From f9e662abcd4764ed15dc598ff609d220e8382038 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 9 Jan 2006 00:33:43 +0000 Subject: texmf-dist/bibtex git-svn-id: svn://tug.org/texlive/trunk@71 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/bibtex/bib/IEEEtran/IEEEabrv.bib | 411 + .../texmf-dist/bibtex/bib/IEEEtran/IEEEbcpat.bib | 77 + .../texmf-dist/bibtex/bib/IEEEtran/IEEEexample.bib | 1067 + Master/texmf-dist/bibtex/bib/IEEEtran/IEEEfull.bib | 381 + Master/texmf-dist/bibtex/bib/abstyles/acompat.bib | 45 + Master/texmf-dist/bibtex/bib/acmconf/pubform.bib | 96 + Master/texmf-dist/bibtex/bib/acmtrans/acmtr.bib | 116 + Master/texmf-dist/bibtex/bib/adrconv/example.bib | 73 + .../texmf-dist/bibtex/bib/aiaa/bibtex_database.bib | 124 + Master/texmf-dist/bibtex/bib/amslatex/jr.bib | 214 + Master/texmf-dist/bibtex/bib/apacite/apa5ex.bib | 2013 + Master/texmf-dist/bibtex/bib/asaetr/asaetr.bib | 16 + Master/texmf-dist/bibtex/bib/ascelike/ascexmpl.bib | 276 + .../bibtex/bib/babelbib/babelbibtest.bib | 3803 ++ Master/texmf-dist/bibtex/bib/base/xampl.bib | 356 + Master/texmf-dist/bibtex/bib/beebe/gut.bib | 1368 + Master/texmf-dist/bibtex/bib/beebe/komoedie.bib | 365 + Master/texmf-dist/bibtex/bib/beebe/texbook1.bib | 5888 +++ Master/texmf-dist/bibtex/bib/beebe/texbook2.bib | 8427 ++++ Master/texmf-dist/bibtex/bib/beebe/texbook3.bib | 13664 +++++++ Master/texmf-dist/bibtex/bib/beebe/texgraph.bib | 2839 ++ Master/texmf-dist/bibtex/bib/beebe/texjourn.bib | 1378 + Master/texmf-dist/bibtex/bib/beebe/texnique.bib | 546 + Master/texmf-dist/bibtex/bib/beebe/tugboat.bib | 39815 +++++++++++++++++++ Master/texmf-dist/bibtex/bib/bibhtml/bibrefs.bib | 64 + Master/texmf-dist/bibtex/bib/bibtopic/articles.bib | 48 + Master/texmf-dist/bibtex/bib/bibtopic/books.bib | 38 + Master/texmf-dist/bibtex/bib/biocon/literature.bib | 43 + Master/texmf-dist/bibtex/bib/camel/camel.bib | 154 + .../bib/computational-complexity/journals.bib | 728 + .../texmf-dist/bibtex/bib/directory/business.bib | 32 + Master/texmf-dist/bibtex/bib/directory/family.bib | 70 + Master/texmf-dist/bibtex/bib/directory/test.bib | 30 + Master/texmf-dist/bibtex/bib/dk-bib/litteratur.bib | 10 + Master/texmf-dist/bibtex/bib/dtk/beispiel.bib | 80 + Master/texmf-dist/bibtex/bib/dtk/dtk.bib | 11386 ++++++ .../texmf-dist/bibtex/bib/figbib/figbib_sample.bib | 18 + .../bibtex/bib/gatech-thesis/example-thesis.bib | 138 + Master/texmf-dist/bibtex/bib/geomsty/manual.bib | 69 + .../texmf-dist/bibtex/bib/germbib/README.bibgerm | 24 + Master/texmf-dist/bibtex/bib/germbib/gerbibtx.bib | 54 + Master/texmf-dist/bibtex/bib/germbib/gerxampl.bib | 359 + Master/texmf-dist/bibtex/bib/germbib/schaum.bib | 531 + Master/texmf-dist/bibtex/bib/gloss/glsbase.bib | 37 + Master/texmf-dist/bibtex/bib/gloss/sample.bib | 98 + Master/texmf-dist/bibtex/bib/gustlib/plbib.bib | 20 + Master/texmf-dist/bibtex/bib/harvard/harvard.bib | 42 + .../bibtex/bib/ieeepes/ieeepes_check.bib | 61 + Master/texmf-dist/bibtex/bib/ifacmtg/ifacsam.bib | 93 + Master/texmf-dist/bibtex/bib/imac/imac.bib | 36 + Master/texmf-dist/bibtex/bib/index/test.bib | 121 + .../bibtex/bib/iopart-num/iopart-num-example.bib | 65 + Master/texmf-dist/bibtex/bib/jurabib/book.bib | 108 + Master/texmf-dist/bibtex/bib/jurabib/comment.bib | 56 + Master/texmf-dist/bibtex/bib/jurabib/jbtest.bib | 226 + Master/texmf-dist/bibtex/bib/jurabib/jbtesthu.bib | 128 + Master/texmf-dist/bibtex/bib/minitoc/add.bib | 24 + Master/texmf-dist/bibtex/bib/minitoc/fminitoc.bib | 435 + Master/texmf-dist/bibtex/bib/minitoc/minitoc.bib | 438 + Master/texmf-dist/bibtex/bib/msc/biblio.bib | 60 + .../bibtex/bib/pst-labo/pst-labo-doc.bib | 100 + Master/texmf-dist/bibtex/bib/revtex/apssamp.bib | 21 + Master/texmf-dist/bibtex/bib/spie/report.bib | 61 + Master/texmf-dist/bibtex/bib/tugboat/tubguide.bib | 106 + Master/texmf-dist/bibtex/bib/urlbst/urlbst.bib | 71 + Master/texmf-dist/bibtex/bib/uwthesis/uwthesis.bib | 84 + Master/texmf-dist/bibtex/bst/IEEEtran/IEEEtran.bst | 2369 ++ .../texmf-dist/bibtex/bst/IEEEtran/IEEEtranS.bst | 2550 ++ Master/texmf-dist/bibtex/bst/abstyles/aabbrv.bst | 1062 + Master/texmf-dist/bibtex/bst/abstyles/aalpha.bst | 1211 + Master/texmf-dist/bibtex/bst/abstyles/anotit.bst | 1075 + Master/texmf-dist/bibtex/bst/abstyles/aplain.bst | 1062 + Master/texmf-dist/bibtex/bst/abstyles/aunsnot.bst | 941 + Master/texmf-dist/bibtex/bst/abstyles/aunsrt.bst | 928 + Master/texmf-dist/bibtex/bst/achemso/achemso.bst | 943 + Master/texmf-dist/bibtex/bst/achemso/achemsol.bst | 966 + Master/texmf-dist/bibtex/bst/acmtrans/acmtrans.bst | 1768 + Master/texmf-dist/bibtex/bst/adrconv/adrconv.bst | 151 + Master/texmf-dist/bibtex/bst/adrconv/adrfax.bst | 150 + Master/texmf-dist/bibtex/bst/adrconv/birthday.bst | 158 + Master/texmf-dist/bibtex/bst/adrconv/email.bst | 141 + Master/texmf-dist/bibtex/bst/aguplus/agu.bst | 1714 + Master/texmf-dist/bibtex/bst/aguplus/agufull.bst | 1689 + Master/texmf-dist/bibtex/bst/aiaa/aiaa.bst | 1255 + Master/texmf-dist/bibtex/bst/amslatex/amsalpha.bst | 1404 + Master/texmf-dist/bibtex/bst/amslatex/amsplain.bst | 1255 + Master/texmf-dist/bibtex/bst/amslatex/amsra.bst | 775 + Master/texmf-dist/bibtex/bst/amslatex/amsrn.bst | 660 + Master/texmf-dist/bibtex/bst/amslatex/amsrs.bst | 773 + Master/texmf-dist/bibtex/bst/amslatex/amsru.bst | 536 + Master/texmf-dist/bibtex/bst/amslatex/amsry.bst | 774 + Master/texmf-dist/bibtex/bst/apacite/apacite.bst | 5091 +++ Master/texmf-dist/bibtex/bst/apacite/apacitex.bst | 5091 +++ Master/texmf-dist/bibtex/bst/asaetr/asaetr.bst | 1209 + Master/texmf-dist/bibtex/bst/ascelike/ascelike.bst | 1461 + .../texmf-dist/bibtex/bst/babelbib/bababbr3-fl.bst | 1343 + .../texmf-dist/bibtex/bst/babelbib/bababbr3-lf.bst | 1341 + Master/texmf-dist/bibtex/bst/babelbib/bababbr3.bst | 1342 + .../texmf-dist/bibtex/bst/babelbib/bababbrv-fl.bst | 1337 + .../texmf-dist/bibtex/bst/babelbib/bababbrv-lf.bst | 1335 + Master/texmf-dist/bibtex/bst/babelbib/bababbrv.bst | 1336 + .../texmf-dist/bibtex/bst/babelbib/babalpha-fl.bst | 1494 + .../texmf-dist/bibtex/bst/babelbib/babalpha-lf.bst | 1492 + Master/texmf-dist/bibtex/bst/babelbib/babalpha.bst | 1493 + Master/texmf-dist/bibtex/bst/babelbib/babamspl.bst | 1210 + .../texmf-dist/bibtex/bst/babelbib/babplai3-fl.bst | 1343 + .../texmf-dist/bibtex/bst/babelbib/babplai3-lf.bst | 1341 + Master/texmf-dist/bibtex/bst/babelbib/babplai3.bst | 1342 + .../texmf-dist/bibtex/bst/babelbib/babplain-fl.bst | 1337 + .../texmf-dist/bibtex/bst/babelbib/babplain-lf.bst | 1335 + Master/texmf-dist/bibtex/bst/babelbib/babplain.bst | 1336 + .../texmf-dist/bibtex/bst/babelbib/babunsrt-fl.bst | 1191 + .../texmf-dist/bibtex/bst/babelbib/babunsrt-lf.bst | 1189 + Master/texmf-dist/bibtex/bst/babelbib/babunsrt.bst | 1190 + Master/texmf-dist/bibtex/bst/base/abbrv.bst | 1097 + Master/texmf-dist/bibtex/bst/base/acm.bst | 1134 + Master/texmf-dist/bibtex/bst/base/alpha.bst | 1257 + Master/texmf-dist/bibtex/bst/base/apalike.bst | 1101 + Master/texmf-dist/bibtex/bst/base/ieeetr.bst | 970 + Master/texmf-dist/bibtex/bst/base/plain.bst | 1097 + Master/texmf-dist/bibtex/bst/base/siam.bst | 1035 + Master/texmf-dist/bibtex/bst/base/unsrt.bst | 951 + Master/texmf-dist/bibtex/bst/beebe/aaai-named.bst | 1283 + Master/texmf-dist/bibtex/bst/beebe/abstract.bst | 1340 + Master/texmf-dist/bibtex/bst/beebe/annotate.bst | 1280 + Master/texmf-dist/bibtex/bst/beebe/annotation.bst | 1105 + Master/texmf-dist/bibtex/bst/beebe/apa.bst | 1130 + Master/texmf-dist/bibtex/bst/beebe/apalike2.bst | 1273 + Master/texmf-dist/bibtex/bst/beebe/astron.bst | 1175 + Master/texmf-dist/bibtex/bst/beebe/authordate1.bst | 1309 + Master/texmf-dist/bibtex/bst/beebe/authordate2.bst | 1310 + Master/texmf-dist/bibtex/bst/beebe/authordate3.bst | 1309 + Master/texmf-dist/bibtex/bst/beebe/authordate4.bst | 1310 + Master/texmf-dist/bibtex/bst/beebe/bbs.bst | 1162 + Master/texmf-dist/bibtex/bst/beebe/bibtoref.bst | 201 + Master/texmf-dist/bibtex/bst/beebe/cbe.bst | 1161 + Master/texmf-dist/bibtex/bst/beebe/cell.bst | 1442 + Master/texmf-dist/bibtex/bst/beebe/chicago.bst | 1654 + Master/texmf-dist/bibtex/bst/beebe/chicagoa.bst | 1684 + .../texmf-dist/bibtex/bst/beebe/econometrica.bst | 1292 + Master/texmf-dist/bibtex/bst/beebe/humanbio.bst | 1134 + Master/texmf-dist/bibtex/bst/beebe/humannat.bst | 1205 + Master/texmf-dist/bibtex/bst/beebe/is-abbrv.bst | 1833 + Master/texmf-dist/bibtex/bst/beebe/is-alpha.bst | 2020 + Master/texmf-dist/bibtex/bst/beebe/is-plain.bst | 1835 + Master/texmf-dist/bibtex/bst/beebe/is-unsrt.bst | 1673 + Master/texmf-dist/bibtex/bst/beebe/jas99.bst | 1336 + Master/texmf-dist/bibtex/bst/beebe/jbact.bst | 1490 + Master/texmf-dist/bibtex/bst/beebe/jmb.bst | 1368 + Master/texmf-dist/bibtex/bst/beebe/jtb.bst | 1202 + Master/texmf-dist/bibtex/bst/beebe/jthcarsu.bst | 986 + Master/texmf-dist/bibtex/bst/beebe/named.bst | 1287 + Master/texmf-dist/bibtex/bst/beebe/namunsrt.bst | 949 + Master/texmf-dist/bibtex/bst/beebe/nar.bst | 1056 + Master/texmf-dist/bibtex/bst/beebe/nature.bst | 1012 + Master/texmf-dist/bibtex/bst/beebe/newapa.bst | 1468 + Master/texmf-dist/bibtex/bst/beebe/phaip.bst | 1885 + Master/texmf-dist/bibtex/bst/beebe/phapalik.bst | 1943 + Master/texmf-dist/bibtex/bst/beebe/phcpc.bst | 1885 + Master/texmf-dist/bibtex/bst/beebe/phiaea.bst | 1889 + Master/texmf-dist/bibtex/bst/beebe/phjcp.bst | 1888 + Master/texmf-dist/bibtex/bst/beebe/phnf.bst | 1890 + Master/texmf-dist/bibtex/bst/beebe/phnflet.bst | 1883 + Master/texmf-dist/bibtex/bst/beebe/phpf.bst | 1877 + Master/texmf-dist/bibtex/bst/beebe/phppcf.bst | 2009 + Master/texmf-dist/bibtex/bst/beebe/phreport.bst | 1885 + Master/texmf-dist/bibtex/bst/beebe/phrmp.bst | 2150 + Master/texmf-dist/bibtex/bst/beebe/plainyr.bst | 1144 + Master/texmf-dist/bibtex/bst/beebe/refer.bst | 163 + Master/texmf-dist/bibtex/bst/beebe/xbtxbst.doc | 2665 ++ Master/texmf-dist/bibtex/bst/bibhtml/alphahtml.bst | 1410 + .../bibtex/bst/bibhtml/alphahtmldate.bst | 1420 + .../bibtex/bst/bibhtml/alphahtmldater.bst | 1420 + Master/texmf-dist/bibtex/bst/bibhtml/plainhtml.bst | 1286 + .../bibtex/bst/bibhtml/plainhtmldate.bst | 1083 + .../bibtex/bst/bibhtml/plainhtmldater.bst | 1294 + Master/texmf-dist/bibtex/bst/camel/law.bst | 1685 + Master/texmf-dist/bibtex/bst/chem-journal/jcc.bst | 990 + Master/texmf-dist/bibtex/bst/chem-journal/jpc.bst | 990 + Master/texmf-dist/bibtex/bst/chem-journal/pccp.bst | 989 + .../bibtex/bst/chem-journal/revcompchem.bst | 993 + .../bibtex/bst/computational-complexity/cc.bst | 1383 + .../bibtex/bst/computational-complexity/cc2.bst | 1667 + Master/texmf-dist/bibtex/bst/context/cont-ab.bst | 1120 + Master/texmf-dist/bibtex/bst/context/cont-au.bst | 1120 + Master/texmf-dist/bibtex/bst/context/cont-no.bst | 1120 + Master/texmf-dist/bibtex/bst/context/cont-ti.bst | 1120 + Master/texmf-dist/bibtex/bst/dinat/dinat.bst | 1952 + .../bibtex/bst/directory/address-html.bst | 791 + Master/texmf-dist/bibtex/bst/directory/address.bst | 767 + .../texmf-dist/bibtex/bst/directory/email-html.bst | 361 + Master/texmf-dist/bibtex/bst/directory/letter.bst | 272 + Master/texmf-dist/bibtex/bst/directory/phone.bst | 487 + Master/texmf-dist/bibtex/bst/dk-bib/dk-abbrv.bst | 1301 + Master/texmf-dist/bibtex/bst/dk-bib/dk-alpha.bst | 1455 + Master/texmf-dist/bibtex/bst/dk-bib/dk-apali.bst | 1295 + Master/texmf-dist/bibtex/bst/dk-bib/dk-plain.bst | 1301 + Master/texmf-dist/bibtex/bst/dk-bib/dk-unsrt.bst | 1155 + Master/texmf-dist/bibtex/bst/dtk/dtk.bst | 1342 + .../texmf-dist/bibtex/bst/elsevier/elsart-harv.bst | 1528 + .../texmf-dist/bibtex/bst/elsevier/elsart-num.bst | 1262 + Master/texmf-dist/bibtex/bst/figbib/figbib.bst | 56 + Master/texmf-dist/bibtex/bst/figbib/figbib1.bst | 56 + Master/texmf-dist/bibtex/bst/finbib/finplain.bst | 1213 + .../bst/gatech-thesis/gatech-thesis-losa.bst | 264 + .../bibtex/bst/gatech-thesis/gatech-thesis.bst | 1137 + Master/texmf-dist/bibtex/bst/germbib/gerabbrv.bst | 1208 + Master/texmf-dist/bibtex/bst/germbib/geralpha.bst | 1369 + Master/texmf-dist/bibtex/bst/germbib/gerapali.bst | 1227 + Master/texmf-dist/bibtex/bst/germbib/gerplain.bst | 1209 + Master/texmf-dist/bibtex/bst/germbib/gerunsrt.bst | 1063 + Master/texmf-dist/bibtex/bst/gloss/glsplain.bst | 252 + Master/texmf-dist/bibtex/bst/gloss/glsshort.bst | 251 + Master/texmf-dist/bibtex/bst/gost/gost71s.bst | 1577 + Master/texmf-dist/bibtex/bst/gost/gost71u.bst | 1465 + Master/texmf-dist/bibtex/bst/gost/gost780s.bst | 1540 + Master/texmf-dist/bibtex/bst/gost/gost780u.bst | 1428 + Master/texmf-dist/bibtex/bst/gustlib/plabbrv.bst | 1209 + Master/texmf-dist/bibtex/bst/gustlib/plalpha.bst | 1410 + Master/texmf-dist/bibtex/bst/gustlib/plplain.bst | 1234 + Master/texmf-dist/bibtex/bst/gustlib/plunsrt.bst | 1072 + Master/texmf-dist/bibtex/bst/harvard/agsm.bst | 1353 + Master/texmf-dist/bibtex/bst/harvard/apsr.bst | 1378 + Master/texmf-dist/bibtex/bst/harvard/jmr.bst | 1357 + Master/texmf-dist/bibtex/bst/harvard/jphysicsB.bst | 1322 + Master/texmf-dist/bibtex/bst/harvard/kluwer.bst | 1355 + .../texmf-dist/bibtex/bst/harvard/nederlands.bst | 1621 + Master/texmf-dist/bibtex/bst/hc/hc-de.bst | 1507 + Master/texmf-dist/bibtex/bst/hc/hc-en.bst | 1539 + Master/texmf-dist/bibtex/bst/ieeepes/ieeepes.bst | 1014 + Master/texmf-dist/bibtex/bst/ifacmtg/ifac.bst | 1294 + Master/texmf-dist/bibtex/bst/imac/imac.bst | 1227 + Master/texmf-dist/bibtex/bst/index/xagsm.bst | 1274 + Master/texmf-dist/bibtex/bst/index/xplain.bst | 1135 + .../texmf-dist/bibtex/bst/inlinebib/inlinebib.bst | 1125 + .../bibtex/bst/iopart-num/iopart-num.bst | 1512 + Master/texmf-dist/bibtex/bst/jurabib/jox.bst | 2397 ++ Master/texmf-dist/bibtex/bst/jurabib/jurabib.bst | 2894 ++ Master/texmf-dist/bibtex/bst/jurabib/jureco.bst | 2809 ++ Master/texmf-dist/bibtex/bst/jurabib/jurunsrt.bst | 2835 ++ Master/texmf-dist/bibtex/bst/kluwer/klunamed.bst | 1181 + Master/texmf-dist/bibtex/bst/kluwer/klunum.bst | 1159 + Master/texmf-dist/bibtex/bst/minitoc/frplain1.bst | 1129 + Master/texmf-dist/bibtex/bst/mslapa/mslapa.bst | 1604 + Master/texmf-dist/bibtex/bst/multibib/mbplain.bst | 1107 + Master/texmf-dist/bibtex/bst/natbib/abbrvnat.bst | 1432 + Master/texmf-dist/bibtex/bst/natbib/plainnat.bst | 1432 + Master/texmf-dist/bibtex/bst/natbib/unsrtnat.bst | 1322 + Master/texmf-dist/bibtex/bst/nature/naturemag.bst | 1524 + Master/texmf-dist/bibtex/bst/opcit/opcit.bst | 789 + Master/texmf-dist/bibtex/bst/oxford/oxford_en.bst | 1889 + Master/texmf-dist/bibtex/bst/oxford/oxford_in.bst | 1889 + Master/texmf-dist/bibtex/bst/oxford/oxford_se.bst | 1890 + .../bibtex/bst/perception/perception.bst | 1584 + Master/texmf-dist/bibtex/bst/revtex/apsrev.bst | 2380 ++ Master/texmf-dist/bibtex/bst/revtex/apsrmp.bst | 2359 ++ .../texmf-dist/bibtex/bst/savetrees/savetrees.bst | 1420 + Master/texmf-dist/bibtex/bst/smflatex/smfalpha.bst | 1279 + Master/texmf-dist/bibtex/bst/smflatex/smfplain.bst | 1118 + Master/texmf-dist/bibtex/bst/spie/spiebib.bst | 1050 + Master/texmf-dist/bibtex/bst/swebib/sweabbrv.bst | 1096 + Master/texmf-dist/bibtex/bst/swebib/swealpha.bst | 1256 + Master/texmf-dist/bibtex/bst/swebib/sweplain.bst | 1096 + Master/texmf-dist/bibtex/bst/texsis/texsis.bst | 1195 + Master/texmf-dist/bibtex/bst/tugboat/ltugbib.bst | 1181 + Master/texmf-dist/bibtex/bst/urlbst/abbrvurl.bst | 1250 + Master/texmf-dist/bibtex/bst/urlbst/alphaurl.bst | 1410 + Master/texmf-dist/bibtex/bst/urlbst/plainurl.bst | 1250 + Master/texmf-dist/bibtex/bst/urlbst/unsrturl.bst | 1104 + Master/texmf-dist/bibtex/csf/base/88592pl.csf | 291 + Master/texmf-dist/bibtex/csf/base/cp1250pl.csf | 292 + Master/texmf-dist/bibtex/csf/base/cp852pl.csf | 292 + Master/texmf-dist/bibtex/csf/base/iso8859-7.csf | 107 + Master/texmf-dist/bibtex/csf/dk-bib/88591-dk.csf | 106 + Master/texmf-dist/bibtex/csf/dk-bib/cp850-dk.csf | 106 + Master/texmf-dist/bibtex/csf/dk-bib/mac-dk.csf | 99 + Master/texmf-dist/bibtex/csf/dk-bib/utf8-dk.csf | 127 + Master/texmf-dist/bibtex/csf/gost/cp1251.csf | 275 + Master/texmf-dist/bibtex/csf/gost/koi8u.csf | 275 + Master/texmf-dist/bibtex/csf/gost/ruscii.csf | 275 + 280 files changed, 372453 insertions(+) create mode 100644 Master/texmf-dist/bibtex/bib/IEEEtran/IEEEabrv.bib create mode 100644 Master/texmf-dist/bibtex/bib/IEEEtran/IEEEbcpat.bib create mode 100644 Master/texmf-dist/bibtex/bib/IEEEtran/IEEEexample.bib create mode 100644 Master/texmf-dist/bibtex/bib/IEEEtran/IEEEfull.bib create mode 100644 Master/texmf-dist/bibtex/bib/abstyles/acompat.bib create mode 100644 Master/texmf-dist/bibtex/bib/acmconf/pubform.bib create mode 100644 Master/texmf-dist/bibtex/bib/acmtrans/acmtr.bib create mode 100644 Master/texmf-dist/bibtex/bib/adrconv/example.bib create mode 100644 Master/texmf-dist/bibtex/bib/aiaa/bibtex_database.bib create mode 100644 Master/texmf-dist/bibtex/bib/amslatex/jr.bib create mode 100644 Master/texmf-dist/bibtex/bib/apacite/apa5ex.bib create mode 100644 Master/texmf-dist/bibtex/bib/asaetr/asaetr.bib create mode 100644 Master/texmf-dist/bibtex/bib/ascelike/ascexmpl.bib create mode 100644 Master/texmf-dist/bibtex/bib/babelbib/babelbibtest.bib create mode 100644 Master/texmf-dist/bibtex/bib/base/xampl.bib create mode 100644 Master/texmf-dist/bibtex/bib/beebe/gut.bib create mode 100644 Master/texmf-dist/bibtex/bib/beebe/komoedie.bib create mode 100644 Master/texmf-dist/bibtex/bib/beebe/texbook1.bib create mode 100644 Master/texmf-dist/bibtex/bib/beebe/texbook2.bib create mode 100644 Master/texmf-dist/bibtex/bib/beebe/texbook3.bib create mode 100644 Master/texmf-dist/bibtex/bib/beebe/texgraph.bib create mode 100644 Master/texmf-dist/bibtex/bib/beebe/texjourn.bib create mode 100644 Master/texmf-dist/bibtex/bib/beebe/texnique.bib create mode 100644 Master/texmf-dist/bibtex/bib/beebe/tugboat.bib create mode 100644 Master/texmf-dist/bibtex/bib/bibhtml/bibrefs.bib create mode 100644 Master/texmf-dist/bibtex/bib/bibtopic/articles.bib create mode 100644 Master/texmf-dist/bibtex/bib/bibtopic/books.bib create mode 100644 Master/texmf-dist/bibtex/bib/biocon/literature.bib create mode 100644 Master/texmf-dist/bibtex/bib/camel/camel.bib create mode 100644 Master/texmf-dist/bibtex/bib/computational-complexity/journals.bib create mode 100644 Master/texmf-dist/bibtex/bib/directory/business.bib create mode 100644 Master/texmf-dist/bibtex/bib/directory/family.bib create mode 100644 Master/texmf-dist/bibtex/bib/directory/test.bib create mode 100644 Master/texmf-dist/bibtex/bib/dk-bib/litteratur.bib create mode 100644 Master/texmf-dist/bibtex/bib/dtk/beispiel.bib create mode 100644 Master/texmf-dist/bibtex/bib/dtk/dtk.bib create mode 100644 Master/texmf-dist/bibtex/bib/figbib/figbib_sample.bib create mode 100644 Master/texmf-dist/bibtex/bib/gatech-thesis/example-thesis.bib create mode 100644 Master/texmf-dist/bibtex/bib/geomsty/manual.bib create mode 100644 Master/texmf-dist/bibtex/bib/germbib/README.bibgerm create mode 100644 Master/texmf-dist/bibtex/bib/germbib/gerbibtx.bib create mode 100644 Master/texmf-dist/bibtex/bib/germbib/gerxampl.bib create mode 100644 Master/texmf-dist/bibtex/bib/germbib/schaum.bib create mode 100644 Master/texmf-dist/bibtex/bib/gloss/glsbase.bib create mode 100644 Master/texmf-dist/bibtex/bib/gloss/sample.bib create mode 100644 Master/texmf-dist/bibtex/bib/gustlib/plbib.bib create mode 100644 Master/texmf-dist/bibtex/bib/harvard/harvard.bib create mode 100644 Master/texmf-dist/bibtex/bib/ieeepes/ieeepes_check.bib create mode 100644 Master/texmf-dist/bibtex/bib/ifacmtg/ifacsam.bib create mode 100644 Master/texmf-dist/bibtex/bib/imac/imac.bib create mode 100644 Master/texmf-dist/bibtex/bib/index/test.bib create mode 100755 Master/texmf-dist/bibtex/bib/iopart-num/iopart-num-example.bib create mode 100644 Master/texmf-dist/bibtex/bib/jurabib/book.bib create mode 100644 Master/texmf-dist/bibtex/bib/jurabib/comment.bib create mode 100644 Master/texmf-dist/bibtex/bib/jurabib/jbtest.bib create mode 100644 Master/texmf-dist/bibtex/bib/jurabib/jbtesthu.bib create mode 100644 Master/texmf-dist/bibtex/bib/minitoc/add.bib create mode 100644 Master/texmf-dist/bibtex/bib/minitoc/fminitoc.bib create mode 100644 Master/texmf-dist/bibtex/bib/minitoc/minitoc.bib create mode 100644 Master/texmf-dist/bibtex/bib/msc/biblio.bib create mode 100644 Master/texmf-dist/bibtex/bib/pst-labo/pst-labo-doc.bib create mode 100644 Master/texmf-dist/bibtex/bib/revtex/apssamp.bib create mode 100644 Master/texmf-dist/bibtex/bib/spie/report.bib create mode 100644 Master/texmf-dist/bibtex/bib/tugboat/tubguide.bib create mode 100644 Master/texmf-dist/bibtex/bib/urlbst/urlbst.bib create mode 100644 Master/texmf-dist/bibtex/bib/uwthesis/uwthesis.bib create mode 100644 Master/texmf-dist/bibtex/bst/IEEEtran/IEEEtran.bst create mode 100644 Master/texmf-dist/bibtex/bst/IEEEtran/IEEEtranS.bst create mode 100644 Master/texmf-dist/bibtex/bst/abstyles/aabbrv.bst create mode 100644 Master/texmf-dist/bibtex/bst/abstyles/aalpha.bst create mode 100644 Master/texmf-dist/bibtex/bst/abstyles/anotit.bst create mode 100644 Master/texmf-dist/bibtex/bst/abstyles/aplain.bst create mode 100644 Master/texmf-dist/bibtex/bst/abstyles/aunsnot.bst create mode 100644 Master/texmf-dist/bibtex/bst/abstyles/aunsrt.bst create mode 100644 Master/texmf-dist/bibtex/bst/achemso/achemso.bst create mode 100644 Master/texmf-dist/bibtex/bst/achemso/achemsol.bst create mode 100644 Master/texmf-dist/bibtex/bst/acmtrans/acmtrans.bst create mode 100644 Master/texmf-dist/bibtex/bst/adrconv/adrconv.bst create mode 100644 Master/texmf-dist/bibtex/bst/adrconv/adrfax.bst create mode 100644 Master/texmf-dist/bibtex/bst/adrconv/birthday.bst create mode 100644 Master/texmf-dist/bibtex/bst/adrconv/email.bst create mode 100644 Master/texmf-dist/bibtex/bst/aguplus/agu.bst create mode 100644 Master/texmf-dist/bibtex/bst/aguplus/agufull.bst create mode 100644 Master/texmf-dist/bibtex/bst/aiaa/aiaa.bst create mode 100644 Master/texmf-dist/bibtex/bst/amslatex/amsalpha.bst create mode 100644 Master/texmf-dist/bibtex/bst/amslatex/amsplain.bst create mode 100644 Master/texmf-dist/bibtex/bst/amslatex/amsra.bst create mode 100644 Master/texmf-dist/bibtex/bst/amslatex/amsrn.bst create mode 100644 Master/texmf-dist/bibtex/bst/amslatex/amsrs.bst create mode 100644 Master/texmf-dist/bibtex/bst/amslatex/amsru.bst create mode 100644 Master/texmf-dist/bibtex/bst/amslatex/amsry.bst create mode 100644 Master/texmf-dist/bibtex/bst/apacite/apacite.bst create mode 100644 Master/texmf-dist/bibtex/bst/apacite/apacitex.bst create mode 100644 Master/texmf-dist/bibtex/bst/asaetr/asaetr.bst create mode 100644 Master/texmf-dist/bibtex/bst/ascelike/ascelike.bst create mode 100644 Master/texmf-dist/bibtex/bst/babelbib/bababbr3-fl.bst create mode 100644 Master/texmf-dist/bibtex/bst/babelbib/bababbr3-lf.bst create mode 100644 Master/texmf-dist/bibtex/bst/babelbib/bababbr3.bst create mode 100644 Master/texmf-dist/bibtex/bst/babelbib/bababbrv-fl.bst create mode 100644 Master/texmf-dist/bibtex/bst/babelbib/bababbrv-lf.bst create mode 100644 Master/texmf-dist/bibtex/bst/babelbib/bababbrv.bst create mode 100644 Master/texmf-dist/bibtex/bst/babelbib/babalpha-fl.bst create mode 100644 Master/texmf-dist/bibtex/bst/babelbib/babalpha-lf.bst create mode 100644 Master/texmf-dist/bibtex/bst/babelbib/babalpha.bst create mode 100644 Master/texmf-dist/bibtex/bst/babelbib/babamspl.bst create mode 100644 Master/texmf-dist/bibtex/bst/babelbib/babplai3-fl.bst create mode 100644 Master/texmf-dist/bibtex/bst/babelbib/babplai3-lf.bst create mode 100644 Master/texmf-dist/bibtex/bst/babelbib/babplai3.bst create mode 100644 Master/texmf-dist/bibtex/bst/babelbib/babplain-fl.bst create mode 100644 Master/texmf-dist/bibtex/bst/babelbib/babplain-lf.bst create mode 100644 Master/texmf-dist/bibtex/bst/babelbib/babplain.bst create mode 100644 Master/texmf-dist/bibtex/bst/babelbib/babunsrt-fl.bst create mode 100644 Master/texmf-dist/bibtex/bst/babelbib/babunsrt-lf.bst create mode 100644 Master/texmf-dist/bibtex/bst/babelbib/babunsrt.bst create mode 100644 Master/texmf-dist/bibtex/bst/base/abbrv.bst create mode 100644 Master/texmf-dist/bibtex/bst/base/acm.bst create mode 100644 Master/texmf-dist/bibtex/bst/base/alpha.bst create mode 100644 Master/texmf-dist/bibtex/bst/base/apalike.bst create mode 100644 Master/texmf-dist/bibtex/bst/base/ieeetr.bst create mode 100644 Master/texmf-dist/bibtex/bst/base/plain.bst create mode 100644 Master/texmf-dist/bibtex/bst/base/siam.bst create mode 100644 Master/texmf-dist/bibtex/bst/base/unsrt.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/aaai-named.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/abstract.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/annotate.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/annotation.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/apa.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/apalike2.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/astron.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/authordate1.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/authordate2.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/authordate3.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/authordate4.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/bbs.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/bibtoref.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/cbe.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/cell.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/chicago.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/chicagoa.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/econometrica.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/humanbio.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/humannat.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/is-abbrv.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/is-alpha.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/is-plain.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/is-unsrt.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/jas99.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/jbact.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/jmb.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/jtb.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/jthcarsu.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/named.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/namunsrt.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/nar.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/nature.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/newapa.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/phaip.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/phapalik.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/phcpc.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/phiaea.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/phjcp.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/phnf.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/phnflet.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/phpf.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/phppcf.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/phreport.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/phrmp.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/plainyr.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/refer.bst create mode 100644 Master/texmf-dist/bibtex/bst/beebe/xbtxbst.doc create mode 100644 Master/texmf-dist/bibtex/bst/bibhtml/alphahtml.bst create mode 100644 Master/texmf-dist/bibtex/bst/bibhtml/alphahtmldate.bst create mode 100644 Master/texmf-dist/bibtex/bst/bibhtml/alphahtmldater.bst create mode 100644 Master/texmf-dist/bibtex/bst/bibhtml/plainhtml.bst create mode 100644 Master/texmf-dist/bibtex/bst/bibhtml/plainhtmldate.bst create mode 100644 Master/texmf-dist/bibtex/bst/bibhtml/plainhtmldater.bst create mode 100644 Master/texmf-dist/bibtex/bst/camel/law.bst create mode 100644 Master/texmf-dist/bibtex/bst/chem-journal/jcc.bst create mode 100644 Master/texmf-dist/bibtex/bst/chem-journal/jpc.bst create mode 100644 Master/texmf-dist/bibtex/bst/chem-journal/pccp.bst create mode 100644 Master/texmf-dist/bibtex/bst/chem-journal/revcompchem.bst create mode 100644 Master/texmf-dist/bibtex/bst/computational-complexity/cc.bst create mode 100644 Master/texmf-dist/bibtex/bst/computational-complexity/cc2.bst create mode 100644 Master/texmf-dist/bibtex/bst/context/cont-ab.bst create mode 100644 Master/texmf-dist/bibtex/bst/context/cont-au.bst create mode 100644 Master/texmf-dist/bibtex/bst/context/cont-no.bst create mode 100644 Master/texmf-dist/bibtex/bst/context/cont-ti.bst create mode 100644 Master/texmf-dist/bibtex/bst/dinat/dinat.bst create mode 100644 Master/texmf-dist/bibtex/bst/directory/address-html.bst create mode 100644 Master/texmf-dist/bibtex/bst/directory/address.bst create mode 100644 Master/texmf-dist/bibtex/bst/directory/email-html.bst create mode 100644 Master/texmf-dist/bibtex/bst/directory/letter.bst create mode 100644 Master/texmf-dist/bibtex/bst/directory/phone.bst create mode 100644 Master/texmf-dist/bibtex/bst/dk-bib/dk-abbrv.bst create mode 100644 Master/texmf-dist/bibtex/bst/dk-bib/dk-alpha.bst create mode 100644 Master/texmf-dist/bibtex/bst/dk-bib/dk-apali.bst create mode 100644 Master/texmf-dist/bibtex/bst/dk-bib/dk-plain.bst create mode 100644 Master/texmf-dist/bibtex/bst/dk-bib/dk-unsrt.bst create mode 100644 Master/texmf-dist/bibtex/bst/dtk/dtk.bst create mode 100644 Master/texmf-dist/bibtex/bst/elsevier/elsart-harv.bst create mode 100644 Master/texmf-dist/bibtex/bst/elsevier/elsart-num.bst create mode 100644 Master/texmf-dist/bibtex/bst/figbib/figbib.bst create mode 100644 Master/texmf-dist/bibtex/bst/figbib/figbib1.bst create mode 100644 Master/texmf-dist/bibtex/bst/finbib/finplain.bst create mode 100644 Master/texmf-dist/bibtex/bst/gatech-thesis/gatech-thesis-losa.bst create mode 100644 Master/texmf-dist/bibtex/bst/gatech-thesis/gatech-thesis.bst create mode 100644 Master/texmf-dist/bibtex/bst/germbib/gerabbrv.bst create mode 100644 Master/texmf-dist/bibtex/bst/germbib/geralpha.bst create mode 100644 Master/texmf-dist/bibtex/bst/germbib/gerapali.bst create mode 100644 Master/texmf-dist/bibtex/bst/germbib/gerplain.bst create mode 100644 Master/texmf-dist/bibtex/bst/germbib/gerunsrt.bst create mode 100644 Master/texmf-dist/bibtex/bst/gloss/glsplain.bst create mode 100644 Master/texmf-dist/bibtex/bst/gloss/glsshort.bst create mode 100644 Master/texmf-dist/bibtex/bst/gost/gost71s.bst create mode 100644 Master/texmf-dist/bibtex/bst/gost/gost71u.bst create mode 100644 Master/texmf-dist/bibtex/bst/gost/gost780s.bst create mode 100644 Master/texmf-dist/bibtex/bst/gost/gost780u.bst create mode 100644 Master/texmf-dist/bibtex/bst/gustlib/plabbrv.bst create mode 100644 Master/texmf-dist/bibtex/bst/gustlib/plalpha.bst create mode 100644 Master/texmf-dist/bibtex/bst/gustlib/plplain.bst create mode 100644 Master/texmf-dist/bibtex/bst/gustlib/plunsrt.bst create mode 100644 Master/texmf-dist/bibtex/bst/harvard/agsm.bst create mode 100644 Master/texmf-dist/bibtex/bst/harvard/apsr.bst create mode 100644 Master/texmf-dist/bibtex/bst/harvard/jmr.bst create mode 100644 Master/texmf-dist/bibtex/bst/harvard/jphysicsB.bst create mode 100644 Master/texmf-dist/bibtex/bst/harvard/kluwer.bst create mode 100644 Master/texmf-dist/bibtex/bst/harvard/nederlands.bst create mode 100644 Master/texmf-dist/bibtex/bst/hc/hc-de.bst create mode 100644 Master/texmf-dist/bibtex/bst/hc/hc-en.bst create mode 100644 Master/texmf-dist/bibtex/bst/ieeepes/ieeepes.bst create mode 100644 Master/texmf-dist/bibtex/bst/ifacmtg/ifac.bst create mode 100644 Master/texmf-dist/bibtex/bst/imac/imac.bst create mode 100644 Master/texmf-dist/bibtex/bst/index/xagsm.bst create mode 100644 Master/texmf-dist/bibtex/bst/index/xplain.bst create mode 100644 Master/texmf-dist/bibtex/bst/inlinebib/inlinebib.bst create mode 100755 Master/texmf-dist/bibtex/bst/iopart-num/iopart-num.bst create mode 100644 Master/texmf-dist/bibtex/bst/jurabib/jox.bst create mode 100644 Master/texmf-dist/bibtex/bst/jurabib/jurabib.bst create mode 100644 Master/texmf-dist/bibtex/bst/jurabib/jureco.bst create mode 100644 Master/texmf-dist/bibtex/bst/jurabib/jurunsrt.bst create mode 100644 Master/texmf-dist/bibtex/bst/kluwer/klunamed.bst create mode 100644 Master/texmf-dist/bibtex/bst/kluwer/klunum.bst create mode 100644 Master/texmf-dist/bibtex/bst/minitoc/frplain1.bst create mode 100644 Master/texmf-dist/bibtex/bst/mslapa/mslapa.bst create mode 100644 Master/texmf-dist/bibtex/bst/multibib/mbplain.bst create mode 100644 Master/texmf-dist/bibtex/bst/natbib/abbrvnat.bst create mode 100644 Master/texmf-dist/bibtex/bst/natbib/plainnat.bst create mode 100644 Master/texmf-dist/bibtex/bst/natbib/unsrtnat.bst create mode 100644 Master/texmf-dist/bibtex/bst/nature/naturemag.bst create mode 100644 Master/texmf-dist/bibtex/bst/opcit/opcit.bst create mode 100644 Master/texmf-dist/bibtex/bst/oxford/oxford_en.bst create mode 100644 Master/texmf-dist/bibtex/bst/oxford/oxford_in.bst create mode 100644 Master/texmf-dist/bibtex/bst/oxford/oxford_se.bst create mode 100644 Master/texmf-dist/bibtex/bst/perception/perception.bst create mode 100644 Master/texmf-dist/bibtex/bst/revtex/apsrev.bst create mode 100644 Master/texmf-dist/bibtex/bst/revtex/apsrmp.bst create mode 100644 Master/texmf-dist/bibtex/bst/savetrees/savetrees.bst create mode 100644 Master/texmf-dist/bibtex/bst/smflatex/smfalpha.bst create mode 100644 Master/texmf-dist/bibtex/bst/smflatex/smfplain.bst create mode 100644 Master/texmf-dist/bibtex/bst/spie/spiebib.bst create mode 100644 Master/texmf-dist/bibtex/bst/swebib/sweabbrv.bst create mode 100644 Master/texmf-dist/bibtex/bst/swebib/swealpha.bst create mode 100644 Master/texmf-dist/bibtex/bst/swebib/sweplain.bst create mode 100644 Master/texmf-dist/bibtex/bst/texsis/texsis.bst create mode 100644 Master/texmf-dist/bibtex/bst/tugboat/ltugbib.bst create mode 100644 Master/texmf-dist/bibtex/bst/urlbst/abbrvurl.bst create mode 100644 Master/texmf-dist/bibtex/bst/urlbst/alphaurl.bst create mode 100644 Master/texmf-dist/bibtex/bst/urlbst/plainurl.bst create mode 100644 Master/texmf-dist/bibtex/bst/urlbst/unsrturl.bst create mode 100644 Master/texmf-dist/bibtex/csf/base/88592pl.csf create mode 100644 Master/texmf-dist/bibtex/csf/base/cp1250pl.csf create mode 100644 Master/texmf-dist/bibtex/csf/base/cp852pl.csf create mode 100644 Master/texmf-dist/bibtex/csf/base/iso8859-7.csf create mode 100644 Master/texmf-dist/bibtex/csf/dk-bib/88591-dk.csf create mode 100644 Master/texmf-dist/bibtex/csf/dk-bib/cp850-dk.csf create mode 100644 Master/texmf-dist/bibtex/csf/dk-bib/mac-dk.csf create mode 100644 Master/texmf-dist/bibtex/csf/dk-bib/utf8-dk.csf create mode 100644 Master/texmf-dist/bibtex/csf/gost/cp1251.csf create mode 100644 Master/texmf-dist/bibtex/csf/gost/koi8u.csf create mode 100644 Master/texmf-dist/bibtex/csf/gost/ruscii.csf diff --git a/Master/texmf-dist/bibtex/bib/IEEEtran/IEEEabrv.bib b/Master/texmf-dist/bibtex/bib/IEEEtran/IEEEabrv.bib new file mode 100644 index 00000000000..e5277445e98 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/IEEEtran/IEEEabrv.bib @@ -0,0 +1,411 @@ +%% +%% IEEEabrv.bib +%% +%% BibTeX bibliography string definitions of the ABBREVIATED titles of +%% IEEE journals and magazines +%% +%% NOTE: This text file uses UNIX line feed conventions. When (human) +%% reading this file on other platforms, you may have to use a text +%% editor that can handle lines terminated by the UNIX line feed +%% character (0x0A). +%% +%% This file is designed for bibliography styles that require +%% abbreviated titles and is not for use in bibliographies that +%% require full-length titles. +%% +%% Version 1.10 (2003/04/02) +%% +%% Composed by Michael Shell +%% +%% See: +%% http://www.ctan.org/tex-archive/macros/latex/contrib/supported/IEEEtran/ +%% for latest version and current contact information. +%% +%% Special thanks to Laura Hyslop of IEEE for her help in obtaining the +%% information needed to compile this file. Also, Volker Kuhlmann kindly +%% provided some corrections and additions. +%% +%%********************************************************************** +%% Legal Notice: +%% This code is offered as-is without any warranty either expressed or +%% implied; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE! +%% User assumes all risk. +%% In no event shall IEEE or any contributor to this code be liable for +%% any damages or losses, including, but not limited to, incidental, +%% consequential, or any other damages, resulting from the use or misuse +%% of any information contained here. +%% +%% This code is distributed under the Perl Artistic License +%% ( http://language.perl.com/misc/Artistic.html ) +%% and may be freely used, distributed and modified - subject to the +%% constraints therein. +%% Retain all contribution notices, credits and disclaimers. +%% +%% All comments are the opinions of their respective authors and are not +%% necessarily endorsed by the IEEE. +%%********************************************************************** +% +% +% USAGE: +% +% \bibliographystyle{mybstfile} +% \bibliography{IEEEabrv,mybibfile} +% +% where the IEEE titles in the .bib database entries use the strings +% defined here. e.g., +% +% +% journal = IEEE_J_AC, +% +% +% to yield "{IEEE} Trans. Automat. Contr." +% +% +% IEEE uses abbreviated journal titles in their bibliographies - +% this file is suitable for work that is to be submitted to the IEEE. +% +% +% For work that requires full-length titles, you should use the full +% titles provided in the companion file, IEEEfull.bib. +% +% +% ** NOTES ** +% +% 1. Journals have been grouped according to subject in order to make it +% easier to locate and extract the definitions for related journals - +% as most works use references that are confined to a single topic. +% Magazines are listed in straight alphabetical order. +% +% 2. String names are closely based on IEEE's own internal acronyms. +% +% 3. Abbreviations follow IEEE's style. +% +% 4. Older, out-of-print IEEE titles are included (but not including titles +% dating prior to IEEE's formation from the IRE and AIEE in 1963). +% +% 5. The following NEW/current journal definitions have been disabled because +% their abbreviations have not yet been finalized/verified: +% +% STRING{IEEE_J_MC = "{IEEE} Trans. Mobile Comput."} +% STRING{IEEE_J_JEM = "{IEEE/TMS} J. Electron. Mater."} +% STRING{IEEE_J_MCTE = "{IEEE} Trans. Molecular Cellular Tissue Eng."} +% STRING{IEEE_J_ESSL = "{IEEE/ECS} Electrochemical Solid-State Lett."} +% STRING{IEEE_J_CJECE = "Canadian J. Elect. Comput. Eng."} +% +% 6. The following OLD journal definitions have been disabled because +% their abbreviations have not yet been found/verified: +% +% STRING{IEEE_J_EWS = "{IEEE} Trans. Eng. Writing Speech"} +% STRING{IEEE_J_BCTV = "{IEEE} Trans. Broadcast Television Receivers"} +% +% If you know what the proper abbreviation is for a string in #5 or #6 above, +% email me and I will correct them in the next release. + + + + +%%%%%%%%%%%%%%%%%%% +%% IEEE Journals %% +%%%%%%%%%%%%%%%%%%% + + +% aerospace and military +@STRING{IEEE_J_AES = "{IEEE} Trans. Aerosp. Electron. Syst."} +@STRING{IEEE_J_ANE = "{IEEE} Trans. Aerosp. Navig. Electron."} +@STRING{IEEE_J_ANNE = "{IEEE} Trans. Aeronaut. Navig. Electron."} +@STRING{IEEE_J_AS = "{IEEE} Trans. Aerosp."} +@STRING{IEEE_J_AIRE = "{IEEE} Trans. Airborne Electron."} +@STRING{IEEE_J_MIL = "{IEEE} Trans. Mil. Electron."} + + + +% autos, transportation and vehicles (non-aerospace) +@STRING{IEEE_J_ITS = "{IEEE} Trans. Intell. Transport. Syst."} +@STRING{IEEE_J_VT = "{IEEE} Trans. Veh. Technol."} +@STRING{IEEE_J_VC = "{IEEE} Trans. Veh. Commun."} + + + +% circuits, signals, systems, audio and controls +@STRING{IEEE_J_SPL = "{IEEE} Signal Processing Lett."} +@STRING{IEEE_J_ASSP = "{IEEE} Trans. Acoust., Speech, Signal Processing"} +@STRING{IEEE_J_AU = "{IEEE} Trans. Audio"} +@STRING{IEEE_J_AUEA = "{IEEE} Trans. Audio Electroacoust."} +@STRING{IEEE_J_AC = "{IEEE} Trans. Automat. Contr."} +@STRING{IEEE_J_CAS = "{IEEE} Trans. Circuits Syst."} +@STRING{IEEE_J_CASVT = "{IEEE} Trans. Circuits Syst. Video Technol."} +@STRING{IEEE_J_CASI = "{IEEE} Trans. Circuits Syst. {I}"} +@STRING{IEEE_J_CASII = "{IEEE} Trans. Circuits Syst. {II}"} +@STRING{IEEE_J_CT = "{IEEE} Trans. Circuit Theory"} +@STRING{IEEE_J_CST = "{IEEE} Trans. Contr. Syst. Technol."} +@STRING{IEEE_J_SP = "{IEEE} Trans. Signal Processing"} +@STRING{IEEE_J_SU = "{IEEE} Trans. Sonics Ultrason."} +@STRING{IEEE_J_SAP = "{IEEE} Trans. Speech Audio Processing"} +@STRING{IEEE_J_UE = "{IEEE} Trans. Ultrason. Eng."} +@STRING{IEEE_J_UFFC = "{IEEE} Trans. Ultrason., Ferroelect., Freq. Contr."} + + + +% communications +@STRING{IEEE_J_COML = "{IEEE} Commun. Lett."} +@STRING{IEEE_J_JSAC = "{IEEE} J. Select. Areas Commun."} +@STRING{IEEE_J_COM = "{IEEE} Trans. Commun."} +@STRING{IEEE_J_COMT = "{IEEE} Trans. Commun. Technol."} +@STRING{IEEE_J_WCOM = "{IEEE} Trans. Wireless Commun."} + + + +% components, packaging and manufacturing +@STRING{IEEE_J_ADVP = "{IEEE} Trans. Adv. Packag."} +@STRING{IEEE_J_CHMT = "{IEEE} Trans. Comp., Hybrids, Manufact. Technol."} +@STRING{IEEE_J_CPMTA = "{IEEE} Trans. Comp., Packag., Manufact. Technol. {A}"} +@STRING{IEEE_J_CPMTB = "{IEEE} Trans. Comp., Packag., Manufact. Technol. {B}"} +@STRING{IEEE_J_CPMTC = "{IEEE} Trans. Comp., Packag., Manufact. Technol. {C}"} +@STRING{IEEE_J_CAPT = "{IEEE} Trans. Comp. Packag. Technol."} +@STRING{IEEE_J_CAPTS = "{IEEE} Trans. Comp. Packag. Technol."} +@STRING{IEEE_J_CPART = "{IEEE} Trans. Comp. Parts"} +@STRING{IEEE_J_EPM = "{IEEE} Trans. Electron. Packag. Manufact."} +@STRING{IEEE_J_MFT = "{IEEE} Trans. Manufact. Technol."} +@STRING{IEEE_J_PHP = "{IEEE} Trans. Parts, Hybrids, Packag."} +@STRING{IEEE_J_PMP = "{IEEE} Trans. Parts, Mater., Packag."} + + + +% CAD +@STRING{IEEE_J_TCAD = "{IEEE} J. Technol. Computer Aided Design"} +@STRING{IEEE_J_CAD = "{IEEE} Trans. Computer-Aided Design"} + + + +% coding, data, information, knowledge +@STRING{IEEE_J_IT = "{IEEE} Trans. Inform. Theory"} +@STRING{IEEE_J_KDE = "{IEEE} Trans. Knowledge Data Eng."} + + + +% computers, computation, networking and software +@STRING{IEEE_J_C = "{IEEE} Trans. Comput."} +@STRING{IEEE_J_ECOMP = "{IEEE} Trans. Electron. Comput."} +@STRING{IEEE_J_EVC = "{IEEE} Trans. Evol. Comput."} +@STRING{IEEE_J_FUZZ = "{IEEE} Trans. Fuzzy Syst."} +% disabled till definition finalized +STRING{IEEE_J_MC = "{IEEE} Trans. Mobile Comput."} +@STRING{IEEE_J_NET = "{IEEE/ACM} Trans. Networking"} +@STRING{IEEE_J_NN = "{IEEE} Trans. Neural Networks"} +@STRING{IEEE_J_PDS = "{IEEE} Trans. Parallel Distrib. Syst."} +@STRING{IEEE_J_SE = "{IEEE} Trans. Software Eng."} + + + +% computer graphics, imaging, and multimedia +@STRING{IEEE_J_IP = "{IEEE} Trans. Image Processing"} +@STRING{IEEE_J_MM = "{IEEE} Trans. Multimedia"} +@STRING{IEEE_J_VCG = "{IEEE} Trans. Visual. Comput. Graphics"} + + + +% cybernetics, ergonomics, robots, man-machine, and automation +@STRING{IEEE_J_JRA = "{IEEE} J. Robot. Automat."} +@STRING{IEEE_J_HFE = "{IEEE} Trans. Hum. Factors Electron."} +@STRING{IEEE_J_MMS = "{IEEE} Trans. Man-Mach. Syst."} +@STRING{IEEE_J_PAMI = "{IEEE} Trans. Pattern Anal. Machine Intell."} +@STRING{IEEE_J_RA = "{IEEE} Trans. Robot. Automat."} +@STRING{IEEE_J_SMC = "{IEEE} Trans. Syst., Man, Cybern."} +@STRING{IEEE_J_SMCA = "{IEEE} Trans. Syst., Man, Cybern. {A}"} +@STRING{IEEE_J_SMCB = "{IEEE} Trans. Syst., Man, Cybern. {B}"} +@STRING{IEEE_J_SMCC = "{IEEE} Trans. Syst., Man, Cybern. {C}"} +@STRING{IEEE_J_SSC = "{IEEE} Trans. Syst. Sci. Cybernetics"} + + + +% earth, wind, fire and water +@STRING{IEEE_J_GE = "{IEEE} Trans. Geosci. Electron."} +@STRING{IEEE_J_GRS = "{IEEE} Trans. Geosci. Remote Sensing"} +@STRING{IEEE_J_OE = "{IEEE} J. Oceanic Eng."} + + + +% education, engineering, history, IEEE, professional +% disabled till definition is verified +STRING{IEEE_J_CJECE = "Canadian J. Elect. Comput. Eng."} +@STRING{IEEE_J_PROC = "Proc. {IEEE}"} +@STRING{IEEE_J_EDU = "{IEEE} Trans. Educ."} +@STRING{IEEE_J_EM = "{IEEE} Trans. Eng. Manage."} +% disabled till definition is verified +STRING{IEEE_J_EWS = "{IEEE} Trans. Eng. Writing Speech"} +@STRING{IEEE_J_PC = "{IEEE} Trans. Prof. Commun."} + + + +% electromagnetics, antennas, EMI, magnetics and microwave +@STRING{IEEE_J_AWPL = "{IEEE} Antennas Wireless Propagat. Lett."} +@STRING{IEEE_J_MGWL = "{IEEE} Microwave Guided Wave Lett."} +% IEEE seems to want "Compon." here, not "Comp." +@STRING{IEEE_J_MWCL = "{IEEE} Microwave Wireless Compon. Lett."} +@STRING{IEEE_J_AP = "{IEEE} Trans. Antennas Propagat."} +@STRING{IEEE_J_EMC = "{IEEE} Trans. Electromagn. Compat."} +@STRING{IEEE_J_MAG = "{IEEE} Trans. Magn."} +@STRING{IEEE_J_MTT = "{IEEE} Trans. Microwave Theory Tech."} +@STRING{IEEE_J_RFI = "{IEEE} Trans. Radio Freq. Interference"} +@STRING{IEEE_J_TJMJ = "{IEEE} Transl. J. Magn. Jpn."} + + + +% energy and power +@STRING{IEEE_J_EC = "{IEEE} Trans. Energy Conversion"} +@STRING{IEEE_J_PWRAS = "{IEEE} Trans. Power App. Syst."} +@STRING{IEEE_J_PWRD = "{IEEE} Trans. Power Delivery"} +@STRING{IEEE_J_PWRE = "{IEEE} Trans. Power Electron."} +@STRING{IEEE_J_PWRS = "{IEEE} Trans. Power Syst."} + + + +% industrial, commercial and consumer +@STRING{IEEE_J_APPIND = "{IEEE} Trans. Applicat. Ind."} +@STRING{IEEE_J_BC = "{IEEE} Trans. Broadcast."} +% disabled till definition is verified +STRING{IEEE_J_BCTV = "{IEEE} Trans. Broadcast Television Receivers"} +@STRING{IEEE_J_CE = "{IEEE} Trans. Consumer Electron."} +@STRING{IEEE_J_IE = "{IEEE} Trans. Ind. Electron."} +@STRING{IEEE_J_IECI = "{IEEE} Trans. Ind. Electron. Contr. Instrum."} +@STRING{IEEE_J_IA = "{IEEE} Trans. Ind. Applicat."} +@STRING{IEEE_J_IGA = "{IEEE} Trans. Ind. Gen. Applicat."} + + + +% instrumentation and measurement +@STRING{IEEE_J_IM = "{IEEE} Trans. Instrum. Meas."} + + + +% insulation and materials +% disabled till definition finalized +STRING{IEEE_J_JEM = "{IEEE/TMS} J. Electron. Mater."} +@STRING{IEEE_J_DEI = "{IEEE} Trans. Dielect. Elect. Insulation"} +@STRING{IEEE_J_EI = "{IEEE} Trans. Elect. Insulation"} + + + +% mechanical +@STRING{IEEE_J_MECH = "{IEEE/ASME} Trans. Mechatron."} +@STRING{IEEE_J_MEMS = "J. Microelectromech. Syst."} + + + +% medical and biological +@STRING{IEEE_J_BME = "{IEEE} Trans. Biomed. Eng."} +% Note: The B-ME journal later dropped the hyphen and became the BME. +@STRING{IEEE_J_B-ME = "{IEEE} Trans. Bio-Med. Eng."} +@STRING{IEEE_J_BMELC = "{IEEE} Trans. Bio-Med. Electron."} +@STRING{IEEE_J_ITBM = "{IEEE} Trans. Inform. Technol. Biomed."} +@STRING{IEEE_J_ME = "{IEEE} Trans. Med. Electron."} +@STRING{IEEE_J_MI = "{IEEE} Trans. Med. Imag."} +% disabled till definition finalized +STRING{IEEE_J_MCTE = "{IEEE} Trans. Molecular Cellular Tissue Eng."} +@STRING{IEEE_J_NB = "{IEEE} Trans. Nanobiosci."} +@STRING{IEEE_J_NSRE = "{IEEE} Trans. Neural Syst. Rehab. Eng."} +@STRING{IEEE_J_RE = "{IEEE} Trans. Rehab. Eng."} + + + +% optics, lightwave and photonics +@STRING{IEEE_J_PTL = "{IEEE} Photon. Technol. Lett."} +@STRING{IEEE_J_JLT = "J. Lightwave Technol."} + + + +% physics, electrons, nanotechnology, nuclear and quantum electronics +@STRING{IEEE_J_EDL = "{IEEE} Electron Device Lett."} +@STRING{IEEE_J_JQE = "{IEEE} J. Quantum Electron."} +@STRING{IEEE_J_JSTQE = "{IEEE} J. Select. Topics Quantum Electron."} +@STRING{IEEE_J_ED = "{IEEE} Trans. Electron Devices"} +@STRING{IEEE_J_NANO = "{IEEE} Trans. Nanotechnol."} +@STRING{IEEE_J_NS = "{IEEE} Trans. Nucl. Sci."} +@STRING{IEEE_J_PS = "{IEEE} Trans. Plasma Sci."} + + + +% reliability +% IEEE seems to want "Mat." here, not "Mater." +@STRING{IEEE_J_DMR = "{IEEE} Trans. Device Mat. Rel."} +@STRING{IEEE_J_R = "{IEEE} Trans. Rel."} + + + +% semiconductors, superconductors, electrochemical and solid state +% disabled till definition finalized +STRING{IEEE_J_ESSL = "{IEEE/ECS} Electrochemical Solid-State Lett."} +@STRING{IEEE_J_JSSC = "{IEEE} J. Solid-State Circuits"} +@STRING{IEEE_J_ASC = "{IEEE} Trans. Appl. Superconduct."} +@STRING{IEEE_J_SM = "{IEEE} Trans. Semiconduct. Manufact."} + + + +% sensors +@STRING{IEEE_J_SENSOR = "{IEEE} Sensors J."} + + + +% VLSI +@STRING{IEEE_J_VLSI = "{IEEE} Trans. {VLSI} Syst."} + + + + + +%%%%%%%%%%%%%%%%%%%% +%% IEEE Magazines %% +%%%%%%%%%%%%%%%%%%%% + + +@STRING{IEEE_M_AES = "{IEEE} Aerosp. Electron. Syst. Mag"} +@STRING{IEEE_M_HIST = "{IEEE} Annals Hist. Comput."} +@STRING{IEEE_M_AP = "{IEEE} Antennas Propagat. Mag."} +@STRING{IEEE_M_ASSP = "{IEEE} {ASSP} Mag."} +@STRING{IEEE_M_CD = "{IEEE} Circuits Devices Mag."} +@STRING{IEEE_M_CAS = "{IEEE} Circuits Syst. Mag."} +@STRING{IEEE_M_COM = "{IEEE} Commun. Mag."} +@STRING{IEEE_M_COMSOC = "{IEEE} Commun. Soc. Mag."} +% CSEM changed to CSE in 1999 +@STRING{IEEE_M_CSE = "{IEEE} Comput. Sci. Eng."} +@STRING{IEEE_M_CSEM = "{IEEE} Comput. Sci. Eng. Mag."} +@STRING{IEEE_M_C = "{IEEE} Computer"} +@STRING{IEEE_M_CAP = "{IEEE} Comput. Appl. Power"} +@STRING{IEEE_M_CGA = "{IEEE} Comput. Graph. Appl."} +@STRING{IEEE_M_CONC = "{IEEE} Concurrency"} +@STRING{IEEE_M_CS = "{IEEE} Control Syst. Mag."} +@STRING{IEEE_M_DTC = "{IEEE} Des. Test. Comput."} +@STRING{IEEE_M_EI = "{IEEE} Electr. Insul. Mag."} +@STRING{IEEE_M_EMB = "{IEEE} Eng. Med. Biol. Mag."} +@STRING{IEEE_M_EMR = "{IEEE} Eng. Manag. Rev."} +@STRING{IEEE_M_EXP = "{IEEE} Expert"} +@STRING{IEEE_M_IA = "{IEEE} Ind. Appl. Mag."} +@STRING{IEEE_M_IM = "{IEEE} Instrum. Meas. Mag."} +@STRING{IEEE_M_IS = "{IEEE} Intell. Syst."} +@STRING{IEEE_M_IC = "{IEEE} Internet Comput."} +@STRING{IEEE_M_ITP = "{IEEE} {IT} Prof."} +@STRING{IEEE_M_MICRO = "{IEEE} Micro"} +@STRING{IEEE_M_MW = "{IEEE} Microwave"} +@STRING{IEEE_M_MM = "{IEEE} Multimedia"} +@STRING{IEEE_M_NET = "{IEEE} Network"} +% IEEE's editorial manual lists "Pers. Commun.", +% but "Personal Commun. Mag." seems to be what is used in the journals +@STRING{IEEE_M_PCOM = "{IEEE} Personal Commun. Mag."} +@STRING{IEEE_M_POT = "{IEEE} Potentials"} +% CAP and PER merged to form PE in 2003 +@STRING{IEEE_M_PE = "{IEEE} Power Energy Mag."} +@STRING{IEEE_M_PER = "{IEEE} Power Eng. Rev."} +@STRING{IEEE_M_RA = "{IEEE} Robot. Automat. Mag."} +@STRING{IEEE_M_SP = "{IEEE} Signal Processing Mag."} +@STRING{IEEE_M_S = "{IEEE} Softw."} +@STRING{IEEE_M_SPECT = "{IEEE} Spectr."} +@STRING{IEEE_M_TS = "{IEEE} Technol. Soc. Mag."} +@STRING{IEEE_M_WC = "{IEEE} Wireless Commun. Mag."} +@STRING{IEEE_M_TODAY = "Today's Eng."} + + + + +%-- +%EOF diff --git a/Master/texmf-dist/bibtex/bib/IEEEtran/IEEEbcpat.bib b/Master/texmf-dist/bibtex/bib/IEEEtran/IEEEbcpat.bib new file mode 100644 index 00000000000..c63f5e8d9e6 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/IEEEtran/IEEEbcpat.bib @@ -0,0 +1,77 @@ +%% IEEEbcpat.bib +%% +%% Obsolete BibTeX bibliography string definitions for backward +%% compatibility of IEEEtran.bst - DO NOT USE FOR NEW WORK! +%% +%% NOTE: This text file uses UNIX line feed conventions. When (human) +%% reading this file on other platforms, you may have to use a text +%% editor that can handle lines terminated by the UNIX line feed +%% character (0x0A). +%% +%% The strings defined here are unchanged from the originals that were +%% contained in the older ieeetr.bst and IEEEbib.bst files. +%% +%% THESE STRING DEFINITIONS ARE NOT CORRECT FOR IEEE RELATED WORK! +%% +%% Please update your databases to use the modern IEEEabrv.bst and not +%% any strings contained here. +%% +%% Version 1.00 (2002/08/13) +%% +%% Composed by Michael Shell +%% +%% See: +%% http://www.ctan.org/tex-archive/macros/latex/contrib/supported/IEEEtran/ +%% for latest version and current contact information. +%% +%%********************************************************************** +%% Legal Notice: +%% This code is offered as-is without any warranty either expressed or +%% implied; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE! +%% User assumes all risk. +%% In no event shall IEEE or any contributor to this code be liable for +%% any damages or losses, including, but not limited to, incidental, +%% consequential, or any other damages, resulting from the use or misuse +%% of any information contained here. +%% +%% This code is distributed under the Perl Artistic License +%% ( http://language.perl.com/misc/Artistic.html ) +%% and may be freely used, distributed and modified - subject to the +%% constraints therein. +%% Retain all contribution notices, credits and disclaimers. +%% +%% All comments are the opinions of their respective authors and are not +%% necessarily endorsed by the IEEE. +%%********************************************************************** +% +% +% USAGE: +% +% \bibliographystyle{mybstfile} +% \bibliography{IEEEbcpat,mybibfile} + + +@STRING{acmcs = "ACM Computing Surveys"} +@STRING{acta = "Acta Informatica"} +@STRING{cacm = "Communications of the ACM"} +@STRING{ibmjrd = "IBM Journal of Research and Development"} +@STRING{ibmsj = "IBM Systems Journal"} +@STRING{ieeese = "IEEE Transactions on Software Engineering"} +@STRING{ieeetc = "IEEE Transactions on Computers"} +@STRING{ieeetcad = "IEEE Transactions on Computer-Aided Design of Integrated Circuits"} +@STRING{ipl = "Information Processing Letters"} +@STRING{jacm = "Journal of the ACM"} +@STRING{jcss = "Journal of Computer and System Sciences"} +@STRING{scp = "Science of Computer Programming"} +@STRING{sicomp = "SIAM Journal on Computing"} +@STRING{tocs = "ACM Transactions on Computer Systems"} +@STRING{tods = "ACM Transactions on Database Systems"} +@STRING{tog = "ACM Transactions on Graphics"} +@STRING{toms = "ACM Transactions on Mathematical Software"} +@STRING{toois = "ACM Transactions on Office Information Systems"} +@STRING{toplas = "ACM Transactions on Programming Languages and Systems"} +@STRING{tcs = "Theoretical Computer Science"} + + + diff --git a/Master/texmf-dist/bibtex/bib/IEEEtran/IEEEexample.bib b/Master/texmf-dist/bibtex/bib/IEEEtran/IEEEexample.bib new file mode 100644 index 00000000000..ad22d5b4b69 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/IEEEtran/IEEEexample.bib @@ -0,0 +1,1067 @@ + +%% IEEEexample.bib +%% V1.10 +%% 2002/09/27 +%% Copyright (c) 2002 by Michael Shell +%% mshell(at)ece.gatech.edu +%% See support website below for current contact information. +%% +%% NOTE: This text file uses UNIX line feed conventions. When (human) +%% reading this file on other platforms, you may have to use a text +%% editor that can handle lines terminated by the UNIX line feed +%% character (0x0A). +%% +%% This is an example BibTeX database for the official IEEEtran.bst +%% BibTeX style file. +%% +%% Some entries call strings that are defined in the IEEEabrv.bib file. +%% Therefore, IEEEabrv.bib should be loaded prior to this file. +%% Usage: +%% +%% \bibliographystyle{./IEEEtran} % use IEEEtran.bst style +%% \bibliography{./IEEEabrv,./IEEEexample} +%% +%% +%% Support sites: +%% http://www.ctan.org/tex-archive/macros/latex/contrib/supported/IEEEtran/ +%% and/or +%% http://www.ieee.org +%%********************************************************************** +%% Legal Notice: +%% This code is offered as-is without any warranty either expressed or +%% implied; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE! +%% User assumes all risk. +%% In no event shall IEEE or any contributor to this code be liable for +%% any damages or losses, including, but not limited to, incidental, +%% consequential, or any other damages, resulting from the use or misuse +%% of any information contained here. +%% +%% This code is distributed under the Perl Artistic License +%% ( http://language.perl.com/misc/Artistic.html ) +%% and may be freely used, distributed and modified - subject to the +%% constraints therein. +%% Retain all contribution notices, credits and disclaimers. +%% +%% All comments are the opinions of their respective authors and are not +%% necessarily endorsed by the IEEE. +%%********************************************************************** + + +% Note that, because the example references were taken from actual IEEE +% publications, these examples do not always contain the full amount +% of information that may be desirable (for use with other BibTeX styles). +% In particular, full names (not abbreviated with initials) should be +% entered whenever possible as some (non-IEEE) bibliography styles use +% full names. IEEEtran.bst will automatically abbreviate when it +% encounters full names. + + + + +% references for the IEEEtran.bst documentation +% the distribution site for IEEEtran.bst +@electronic{IEEEexample:shellCTANpage, + author = "Michael Shell", + title = "{IEEE}tran Homepage on {CTAN}", + url = "http://www.ctan.org/tex-archive/macros/latex/contrib/supported/IEEEtran/", + year = "2002" +}; + +% the IEEE website +% sort key is needed for sorting styles +@electronic{IEEEexample:IEEEwebsite, + title = "The {IEEE} Website", + url = "http://www.ieee.org/", + year = "2002", + key = "IEEE" +}; + +% The BibTeX user's guide. +% The filename could have been put in the URL instead. But, there might +% be other interesting things for the user in the same directory - and +% the filename might change before the directory that contains it. +@electronic{IEEEexample:bibtexuser, + author = "Oren Patashnik", + title = "{\BibTeX}ing", + howpublished = "{btxdoc.pdf}", + url = "http://www.ctan.org/tex-archive/biblio/bibtex/contrib/doc/", + month = feb, + year = "1988" +}; + +% The BibTeX style designer's guide. +@electronic{IEEEexample:bibtexdesign, + author = "Oren Patashnik", + title = "Designing {\BibTeX\ } Styles", + howpublished = "{btxhak.pdf}", + url = "http://www.ctan.org/tex-archive/biblio/bibtex/contrib/doc/", + month = feb, + year = "1988" +}; + +% The BibTeX Tips and FAQ guide. +@electronic{IEEEexample:bibtexFAQ, + author = "David Hoadley and Michael Shell", + title = "{\BibTeX}\ Tips and {FAQ}", + howpublished = "{btxFAQ.txt}", + url = "http://www.ctan.org/tex-archive/biblio/bibtex/contrib/doc/", + month = oct, + year = "2002" +}; + +% TeX User Group Bibliography Archive +@electronic{IEEEexample:beebe_archive, + author = "Nelson H. F. Beebe", + title = "{\TeX\ }User Group Bibliography Archive", + url = "http://www.math.utah.edu:8080/pub/tex/bib/index-table.html", + month = may, + year = "2002" +}; + +% The url.sty package. +@electronic{IEEEexample:urlsty, + author = "Donald Arseneau", + title = "The url.sty package", + url = "http://www.ctan.org/tex-archive/macros/latex/contrib/other/misc/", + month = mar, + year = "1999", +}; + + +% The hyperref.sty package. +@electronic{IEEEexample:hyperrefsty, + author = "Sebastian Rahtz and Heiko Oberdiek", + title = "The hyperref.sty package", + url = "http://www.ctan.org/tex-archive/macros/latex/contrib/supported/hyperref/", + month = jul, + year = "2002", +}; + +% The Babel package. +@electronic{IEEEexample:babel, + author = "Johannes Braams", + title = "The {Babel} package", + url = "http://www.ctan.org/tex-archive/macros/latex/required/babel/", + month = feb, + year = "2001", +}; + + + + + +% The three most common and typical types of references used in +% IEEE publications: + +% an article in a journal +% Note the use of the IEEE_J_EDL string, defined in the IEEEabrv.bib file, +% for the journal name. IEEEtran.bst defines the BibTeX standard three +% letter month codes per IEEE style. +% From the June 2002 issue of "IEEE Transactions on Electron Devices", +% page 996, reference #16. +@article{IEEEexample:article_typical, + author = "S. Zhang and C. Zhu and J. K. O. Sin and P. K. T. Mok", + title = "A Novel Ultrathin Elevated Channel Low-temperature + Poly-{Si} {TFT}", + journal = IEEE_J_EDL, + volume = "20", + month = nov, + year = "1999", + pages = "569-571" +}; + +% journal article using et al. +% The (five) authors are actually: F. Delorme, S. Slempkes, G. Alibert, +% B. Rose, J. Brandon +% The month (July) was not given here. +% From the September 1998 issue of "IEEE Journal on Selected Areas in +% Communications", page 1257, reference #28. +@article{IEEEexample:articleetal, + author = "F. Delorme and others", + title = "Butt-jointed {DBR} Laser With 15 {nm} Tunability Grown + in Three {MOVPE} Steps", + journal = "Electron. Lett.", + volume = "31", + number = "15", + year = "1995", + pages = "1244-1245" +}; + + +% a paper in a conference proceedings +% "conference" can be used as an alias for "inproceedings" +% From the June 2002 issue of "Journal of Microelectromechanical Systems", +% page 205, reference #16. +@inproceedings{IEEEexample:conf_typical, + author = "R. K. Gupta and S. D. Senturia", + title = "Pull-in Time Dynamics as a Measure of Absolute Pressure", + booktitle = "Proc. {IEEE} International Workshop on + Microelectromechanical Systems ({MEMS}'97)", + address = "Nagoya, Japan", + month = jan, + year = "1997", + pages = "290-294" +}; + + +% a book +% From the May 2002 issue of "IEEE Transactions on Magnetics", +% page 1466, reference #4. +@book{IEEEexample:book_typical, + author = "B. D. Cullity", + title = "Introduction to Magnetic Materials", + publisher = "Addison-Wesley", + address = "Reading, MA", + year = "1972" +}; + + + + +% Other examples + +% journal article with large page numbers, IEEE will divide numbers 5 digits +% or longer into groups of three with small spaces between them. Page ranges +% can be separated via either "-" or "--", IEEEtran.bst will automatically +% convert the separator dash(es) to "--". +% Authors and/or IEEE do not always provide/use the journal number, but it +% was used in this case. IEEEtran.bst can be configured to ignore journal +% numbers if desired. +% From the August 2000 issue of "IEEE Photonics Technology Letters", +% page 1039, reference #11. +@article{IEEEexample:articlelargepages, + author = "A. Castaldini and A. Cavallini and B. Fraboni + and P. Fernandez and J. Piqueras", + title = "Midgap Traps Related to Compensation Processes in + {CdTe} Alloys", + journal = "Phys. Rev. B.", + volume = "56", + number = "23", + year = "1997", + pages = "14897-14900" +}; + + +% journal article with dual months +% use the BibTeX "#" concatenation operator +% From the March 2002 issue of "IEEE Transactions on Mechatronics", +% page 21, reference #8. +@article{IEEEexample:articledualmonths, + author = "Y. Okada and K. Dejima and T. Ohishi", + title = "Analysis and Comparison of {PM} Synchronous Motor and + Induction Motor Type Magnetic Bearings", + journal = IEEE_J_IA, + volume = "31", + month = sep # "/" # oct, + year = "1995", + pages = "1047-1053" +}; + + +% journal article to be published as a misc entry type +% date information like month and year is optional +% However, the article form like that below may be a better approach. +% From the May 2002 issue of "IEEE Journal of Selected Areas in +% Communication", page 725, reference #3. +@misc{IEEEexample:TBPmisc, + author = "M. Coates and A. Hero and R. Nowak and B. Yu", + title = "Internet Tomography", + howpublished = IEEE_M_SP, + month = may, + year = "2002", + note = "to be published" +}; + + +% journal article to be published as an article entry type +% year is required, so if absent, use the year field to hold +% the "submitted for publication" in order to avoid a warning for +% the missing year field. +% From the June 2002 issue of "IEEE Transactions on Information Theory", +% page 1461, reference #21. +@article{IEEEexample:TBParticle, + author = "N. Kahale and R. Urbanke", + title = "On the Minimum Distance of Parallel and Serially + Concatenated Codes", + journal = IEEE_J_IT, + year = "submitted for publication" +}; + + + + + +% book with editor and no author +% From the June 2002 issue of "IEEE Transactions on Information Theory", +% page 1725, reference #1. +@book{IEEEexample:bookwitheditor, + editor = "J. C. Candy and G. C. Temes", + title = "Oversampling Delta-Sigma Data Converters Theory, + Design and Simulation", + publisher = "{IEEE} Press.", + address = "New York", + year = "1992" +}; + + +% book with edition, author and editor +% Note that the standard BibTeX styles do not support book entries with both +% author and editor fields, but IEEEtran.bst does. +% The standard BibTeX way of specifying the edition is to use capitalized +% ordinal words such as "First", "Second", etc. Most .bst files can convert +% up to about "Fifth" into the format needed. IEEEtran.bst can convert up +% to "Tenth" to the "Arabic ordinal" form IEEE uses (e.g., "10th"). For +% editions over the tenth, it is best to use the "Arabic ordinal" form for +% IEEE related work (e.g., "101st") +% Note how "Jr." has to be entered. +% From the May 2002 issue of "Journal of Lightwave Technology", page 856, +% reference #17. +@book{IEEEexample:book, + author = "S. M. Metev and V. P. Veiko", + editor = "Osgood, Jr., R. M.", + title = "Laser Assisted Microtechnology", + edition = "Second", + publisher = "Springer-Verlag", + address = "Berlin, Germany", + year = "1998" +}; + + +% book with series and volume +% From the January 2000 issue of "IEEE Transactions on Communications", +% page 11, reference #31. +@book{IEEEexample:bookwithseriesvolume, + editor = "J. Breckling", + title = "The Analysis of Directional Time Series: Applications to + Wind Speed and Direction", + series = "Lecture Notes in Statistics", + publisher = "Springer", + address = "Berlin, Germany", + year = "1989", + volume = "61" +}; + + +% inbook with chapter number. The pages field could also have been given. +% The chapter number could be changed to something else such as a section +% number via the type field: type = "sec.". +% From the May 2002 issue of "IEEE Transactions on Circuits and Systems---I: +% Fundamental Applications and Theory", page 638, reference #22. +@inbook{IEEEexample:inbook, + author = "H. E. Rose", + title = "A Course in Number Theory", + publisher = "Oxford Univ. Press", + address = "New York, NY", + year = "1988", + chapter = "3" +}; + + +% inbook with pages and note. The language field is not set to Russian +% because the title is presented here in its translated, English, form. +% From the May 2002 issue of "IEEE Transactions on Magnetics", page 1533, +% reference #5. +@inbook{IEEEexample:inbookpagesnote, + author = "B. K. Bul", + title = "Theory Principles and Design of Magnetic Circuits", + publisher = "Energia Press", + address = "Moscow", + year = "1964", + pages = "464", + note = "(in Russian)" +}; + + + + + +% incollection with author and editor +% From the May 2002 issue of "Journal of Lightwave Technology", +% page 807, reference #7. +@incollection{IEEEexample:incollection, + author = "W. V. Sorin", + editor = "D. Derickson", + title = "Optical Reflectometry for Component Characterization", + booktitle = "Fiber Optic Test and Measurement", + publisher = "Prentice-Hall", + address = "Englewood Cliffs, NJ", + year = "1998" +}; + + +% incollection with series +% From the April 2000 issue of "IEEE Transactions on Communication", +% page 609, reference #3. +@incollection{IEEEexample:incollectionwithseries, + author = "J. B. Anderson and K. Tepe", + title = "Properties of the Tailbiting {BCJR} Decoder", + booktitle = "Codes, Systems and Graphical Models", + series = "{IMA} Volumes in Mathematics and Its Applications", + publisher = "Springer-Verlag", + address = "New York", + year = "2000" + +}; + + +% incollection with author, editor, chapter and pages +% From the January 2000 issue of "IEEE Transactions on Communications", +% page 16, reference #9. +@incollection{IEEEexample:incollection_chpp, + author = "P. Hedelin and P. Knagenhjelm and M. Skoglund", + editor = "W. B. Kleijn and K. K. Paliwal", + title = "Theory for Transmission of Vector Quantization Data", + booktitle = "Speech Coding and Synthesis", + publisher = "Elsevier Science", + address = "Amsterdam, The Netherlands", + year = "1995", + chapter = "10", + pages = "347-396" +}; + + +% incollection with a large number of authors, some authors/journals will +% use et al. for so many names. IEEEtran.bst can be configured to do this +% if desired, or "R. M. A. Dawson and others" can be used instead. +% Note that IEEE may not include the publisher for incollection entries - +% IEEEtran.bst will not issue a warning if the publisher is missing for +% incollections - but other .bst files often will. +% From the June 2002 issue of "IEEE Transactions on Electron Devices", +% page 996, reference #12. +@incollection{IEEEexample:incollectionmanyauthors, + author = "R. M. A. Dawson and Z. Shen and D. A. Furst and + S. Connor and J. Hsu and M. G. Kane and R. G. Stewart and + A. Ipri and C. N. King and P. J. Green and R. T. Flegal + and S. Pearson and W. A. Barrow and E. Dickey and K. Ping + and C. W. Tang and S. Van. Slyke and + F. Chen and J. Shi and J. C. Sturm and M. H. Lu", + title = "Design of an Improved Pixel for a Polysilicon + Active-Matrix Organic {LED} Display", + booktitle = "{SID} Tech. Dig.", + volume = "29", + year = "1998", + pages = "11-14" +}; + + + + + +% A Motorola data book as a manual +% It is somewhat unusual to include the data book part number. +% in the title. It might be more correct to put this information +% in the howpublished field instead. +% From the December 2000 issue of "IEEE Transactions on Communications", +% page 1986, reference #10. +@manual{IEEEexample:motmanual, + title = "{FLEXChip} Signal Processor ({MC68175/D})", + organization = "Motorola", + year = "1996" +}; + +% same reference, but using IEEEtran's howpublished extension +@manual{IEEEexample:motmanualhowpub, + title = "{FLEXChip} Signal Processor", + howpublished = "{MC68175/D}", + organization = "Motorola", + year = "1996" +}; + + + + +% conference paper with an address and days. Some journals capitalize the +% letters in "Globecom", this one did not. +% From the May 2002 issue of "IEEE Transactions on Communications", +% page 697, reference #12. +@inproceedings{IEEEexample:confwithadddays, + author = "M. S. Yee and L. Hanzo", + title = "Radial Basis Function Decision Feedback Equaliser + Assisted Burst-by-burst Adaptive Modulation", + booktitle = "Proc. {IEEE} Globecom '99", + address = "Rio de Janeiro, Brazil", + month = dec # " 5--9,", + year = "1999", + pages = "2183-2187" +}; + + +% conference paper with volume number. A conference proceedings with a vol +% number is a little uncommon, note that the vol number is placed +% before the address in the formatted bibliography entry +% From the April 2002 issue of "IEEE/ACM Transactions on Networking", +% page 181, reference #26. +@inproceedings{IEEEexample:confwithvolume, + author = "M. Yajnik and S. B. Moon and J. Kurose and D. Towsley", + title = "Measurement and Modeling of the Temporal Dependence in + Packet Loss", + booktitle = "Proc. {IEEE} {INFOCOM}'99", + volume = "1", + address = "New York, NY", + month = mar, + year = "1999", + pages = "345-352" +}; + + +% conference paper with a paper number, the type field can be used to +% override the word "paper", e.g., type = "postdeadline paper". A type +% can be given even without a paper field. +% Also, IEEEtran.bst can be configured to ignore paper numbers and types. +% From the May 2002 issue of "Journal of Lightwave Technology", +% page 807, reference #4. +@inproceedings{IEEEexample:confwithpaper, + author = "M. Wegmuller and J. P. von der Weid and P. Oberson + and N. Gisin", + title = "High Resolution Fiber Distributed Measurements With + Coherent {OFDR}", + booktitle = "Proc. {ECOC}'00", + year = "2000", + paper = "11.3.4", + pages = "109" +}; + + +% conference paper with a postdeadline type paper, the paper field is +% optional. +% From the August 2000 issue of "IEEE Photonics Technology Letters", +% page 1087, reference #12. +@inproceedings{IEEEexample:confwithpapertype, + author = "B. Mikkelsen and G. Raybon and R.-J. Essiambre and + K. Dreyer and Y. Su. and L. E. Nelson and J. E. Johnson + and G. Shtengel and A. Bond and D. G. Moodie and + A. D. Ellis", + title = "160 {Gbit/s} Single-channel Transmission Over 300 km + Nonzero-dispersion Fiber With Semiconductor Based + Transmitter and Demultiplexer", + booktitle = "Proc. {ECOC}'99", + year = "1999", + paper = "2-3", + type = "postdeadline paper", + pages = "28-29" +}; + + +% presented at a conference +% intype overrides the default "in" and causes the booktitle not to be +% emphasized (rendered in italics). +% From the February 2002 issue of "IEEE/ACM Transactions on Networking", +% page 163, reference #6. +@inproceedings{IEEEexample:presentedatconf, + author = "S. G. Finn and M. M{\'e}dard and R. A. Barry", + title = "A Novel Approach to Automatic Protection Switching + Using Trees", + intype = "presented at the", + booktitle = "Proc. Int. Conf. Commun.", + year = "1997" +}; + + + + + +% master's thesis, often the University name will be abbreviated and the +% state or country will be included in the address. The type field can +% used to override the default type "Master's thesis" +% From the June 2002 issue of "IEEE Transactions on Microelectromechanical +% Systems", page 186, reference #11. +@mastersthesis{IEEEexample:masters, + author = "Nin C. Loh", + title = "High-Resolution Micromachined Interferometric + Accelerometer", + school = "Massachusetts Institute of Technology", + address = "Cambridge", + year = "1992" +}; + + +% master's thesis with a type field +% From the August 2001 issue of "IEEE/ACM Transactions on Networking", +% page 391, reference #12. +@mastersthesis{IEEEexample:masterstype, + author = "A. Karnik", + title = "Performance of {TCP} Congestion Control with Rate + Feedback: {TCP/ABR} and Rate Adaptive {TCP/IP}", + school = "Indian Institute of Science", + type = "M. Eng. thesis", + address = "Bangalore, India", + month = jan, + year = "1999" +}; + + + + + +% Ph.D. dissertation with a URL field, the university is abbreviated +% From the October 2001 issue of "IEEE/ACM Transactions on Networking", +% page 590, reference #11. +@phdthesis{IEEEexample:phdurl, + author = "Q. Li", + title = "Delay Characterization and Performance Control of + Wide-area Networks", + school = "Univ. of Delaware", + address = "Newark", + month = may, + year = "2000", + url = "http://www.ece.udel.edu/~qli" +}; + + + + + +% technical report +% From the August 2001 issue of "IEEE/ACM Transactions on Networking", +% page 490, reference #15. +@techreport{IEEEexample:techrep, + author = "R. Jain and K. K. Ramakrishnan and D. M. Chiu", + title = "Congestion Avoidance in Computer Networks with a + Connectionless Network Layer", + institution = "Digital Equipment Corporation", + address = "MA", + number = "DEC-TR-506", + month = aug, + year = "1987" +}; + + +% technical report with type +% for those times when "Tech. Rep." needs to be modified +% From the February 2001 issue of "IEEE/ACM Transactions on Networking", +% page 46, reference #8. +@techreport{IEEEexample:techreptype, + author = "J. Padhye and V. Firoiu and D. Towsley", + title = "A Stochastic Model of {TCP} {R}eno Congestion Avoidance + and Control", + institution = "Univ. of Massachusetts", + address = "Amherst, MA", + type = "CMPSCI Tech. Rep.", + number = "99-02", + year = "1999" +}; + + +% technical report with type +% for those times when "Tech. Rep." needs to be modified +% This reference did not have an address. +% From the January 2000 issue of "IEEE Transactions on Communications", +% page 117, reference #6. +@techreport{IEEEexample:techreptypeii, + author = "D. Middleton and A. D. Spaulding", + title = "A Tutorial Review of Elements of Weak Signal Detection + in Non-{G}aussian {EMI} Environments", + institution = "National Telecommunications and Information + Administration ({NTIA}), U.S. Dept. of Commerce", + type = "NTIA Report", + number = "86-194", + month = may, + year = "1986" +}; + + + + + +% an unpublished work +% for unpublished types, the note field is required. IEEE usually +% just uses the word "unpublished" for the note. +% From the August 2001 issue of "IEEE/ACM Transactions on Networking", +% page 391, reference #16. +@unpublished{IEEEexample:unpublished, + author = "T. J. Ott and N. Aggarwal", + title = "{TCP} over {ATM}: {ABR} or {UBR}", + note = "Unpublished" +}; + + + + + +% electronic with a howpublished information field +% From the August 2001 issue of "IEEE/ACM Transactions on Networking", +% page 391, reference #7. +@electronic{IEEEexample:electronhowinfo, + author = "V. Jacobson", + title = "Modified {TCP} Congestion Avoidance Algorithm", + howpublished = "end2end-interest mailing list", + url = "ftp://ftp.isi.edu/end2end/end2end-interest-1990.mail", + month = apr, + year = "1990" +}; + + +% electronic with a howpublished information field +% From the August 2001 issue of "IEEE/ACM Transactions on Networking", +% page 418, reference #31. +@electronic{IEEEexample:electronhowinfo2, + author = "V. Valloppillil and K. W. Ross", + title = "Cache Array Routing Protocol v1.1", + howpublished = "Internet draft", + url = "http://ds1.internic.net/internet-drafts/draft-vinod-carp-v1-03.txt", + year = "1998" +}; + + +% electronic with an organization and address +% From the February 2002 issue of "IEEE/ACM Transactions on Networking", +% page 114, reference #15. +@electronic{IEEEexample:electronorgadd, + author = "D. H. Lorenz and A. Orda", + title = "Optimal Partition of {QoS} Requirements on Unicast + Paths and Multicast Trees", + organization = "Dept. Elect. Eng., Technion", + address = "Haifa, Israel", + url = "ftp://ftp.technion.ac.il/pub/supported/ee/Network/lor.mopq98.ps", + month = jul, + year = "1998" +}; + + + + + +% U.S. patent +% Use the type field to override the patent type. e.g., +% type = "Patent Application" +% The address is that of the assignee. Note that IEEE does not +% display the assignee, the address, and only displays one date. +% (if year is not present, the filed dates are used.) However, this +% information should be entered as other BibTeX styles may use it. +% alternatively, nationality could be entered as "U.S." +% From the April 2000 issue of "IEEE Transactions on Communications", +% page 542, reference #6. +@patent{IEEEexample:uspat, + author = "Ronald E. Sorace and Victor S. Reinhardt and + Steven A. Vaughn", + assignee = "Hughes Aircraft Company", + address = "Los Angeles, CA", + title = "High-Speed Digital-to-{RF} Converter", + nationality = "United States", + number = "5668842", + dayfiled = "28", + monthfiled = feb, + yearfiled = "1995", + day = "16", + month = sep, + year = "1997" +}; + + +% Japanese Patent +% From the April 2000 issue of "IEEE Transactions on Communications", +% page 556, reference #6. +@patent{IEEEexample:jppat, + author = "U. Hideki", + title = "Quadrature Modulation Circuit", + nationality = "Japanese", + number = "152932/92", + day = "20", + month = may, + year = "1992" +}; + + +% French Patent request, the language field must be entered in lower case +% as this is the option name Babel uses. The nationality field needs to be +% capitalized. Because this is a patent request, the date filed fields are +% used while the date fields are left empty/missing. In other countries, +% the words "Patent Application", etc. are used instead. +% From the April 2000 issue of "IEEE Transactions on Communications", +% page 556, reference #9. +@patent{IEEEexample:frenchpatreq, + author = "F. Kowalik and M. Isard", + title = "Estimateur d'un D{\'e}faut de Fonctionnement + d'un Modulateur en Quadrature et {\'E}tage de Modulation + l'Utilisant", + language = "french", + nationality = "French", + type = "Patent Request", + number = "9500261", + dayfiled = "11", + monthfiled = jan, + yearfiled = "1995" +}; + + + + + +% a periodical +% From the April 2001 issue of "IEEE/ACM Transactions on Networking", +% page 160, reference #1. +% sort key is needed for sorting styles +@periodical{IEEEexample:periodical, + title = IEEE_M_PCOM # ", Special Issue on Wireless {ATM}", + volume = "3", + month = aug, + year = "1996", + key = "IEEE" +}; + + + + + +% standard, IEEE does not use the address for standards, but it is good +% to provide one for BibTeX styles that use it. +% From the August 2001 issue of "IEEE/ACM Transactions on Networking", +% page 451, reference #2. +@standard{IEEEexample:standard, + title = "Wireless {LAN} Medium Access Control {(MAC)} and + Physical Layer {(PHY)} Specification", + organization = "IEEE", + address = "Piscataway, NJ", + number = "802.11", + year = "1997" +}; + + +% standard with type and revision, the type overrides the word standard +% (or std.). Here a standard number is not available and a revision number +% is used. +% From the August 2000 issue of "IEEE Photonics Technology Letters", +% page 1048, reference #13. +@standard{IEEEexample:standardproposed, + title = "Fiber Channel Physical Interface ({FC-PI})", + institution = "NCITS", + address = "Washington, DC", + type = "Working Draft Proposed Standard", + revision = "5.2", + year = "1999" +}; + + +% standard draft as a misc with author +% From the May 2002 issue of "IEEE Journal of Selected Areas in +% Communication", page 725, reference #16. +@misc{IEEEexample:draftasmisc, + author = "I. Widjaja and A. Elwalid", + title = "{MATE}: {MPLS} Adaptive Traffic Engineering", + howpublished = "IETF Draft", + year = "1999" +}; + + + + + +% misc for a techreport like reference +% techreport is not perfectly suitable because this entry lacks +% an institution field +% From the August 2001 issue of "IEEE/ACM Transactions on Networking", +% page 490, reference #22. +@misc{IEEEexample:miscforum, + author = "L. Roberts", + title = "Enhanced Proportional Rate Control Algorithm {PRCA}", + howpublished = "{ATM} Forum Contribution 94-0735R1", + month = aug, + year = "1994" +}; + + +% misc for a white paper +% From the August 2001 issue of "IEEE/ACM Transactions on Networking", +% page 478, reference #4 - Note that the reference there (improperly?) +% used the author field for "Cisco". +@misc{IEEEexample:whitepaper, + title = "Advanced {QoS} Services for the Intelligent Internet", + howpublished = "White Paper", + organization = "Cisco", + month = may, + year = "1997" +}; + + +% misc for a data sheet +% From the November 2000 issue of "IEEE Photonics Technology Letters", +% page 1551, reference #6. +@misc{IEEEexample:datasheet, + title = "{PDCA12-70} data sheet", + organization = "Opto Speed SA", + address = "Mezzovico, Switzerland" +}; + + + + + +% Other unusual references + +% a private communication as a misc entry type +% sometimes the designation "personal communication" is used instead +% From the June 2002 issue of "IEEE Transactions on Information Theory", +% page 1725, reference #16. +@misc{IEEEexample:private, + author = "S. Konyagin", + howpublished = "private communication", + year = "1998" +}; + + +% an internet request for comments (RFC) as a misc entry type +% It would also be nice to add a URL to these types of things. +% RFCs can also be handled as electronic references. +% From the April 2002 issue of "IEEE/ACM Transactions on Networking", +% page 181, reference #14. +@misc{IEEEexample:miscrfc, + author = "K. K. Ramakrishnan and S. Floyd", + title = "A Proposal to Add Explicit Congestion + Notification ({ECN}) to {IP}", + howpublished = "RFC 2481", + month = jan, + year = "1999" +}; + + +% misc for a German regulation +% In German, the first letters of nouns are capitalized, so we do so here. +% From the June 2002 issue of "IEEE Journal in Selected Areas in +% Communication", page 892, reference #9. +@misc{IEEEexample:miscgermanreg, + title = "{M}essung von {S}t{\"o}rfeldern an {A}nlagen + und {L}eitungen der {T}elekommunikation im + {F}requenzbereich 9 {kHz} bis 3 {GHz}", + language = "german", + howpublished = "{M}e{\ss}vorschrift {R}eg {TP} {MV} 05", + organization = "Regulierungsbeh{\"o}rde f{\"u}r {T}elekommunikation und + {P}ost ({R}eg {TP})" +}; + + + +% Ways to handle things like CCSDS's Blue Books +% journal article with a URL. However, this is not a very good approach +% because the Blue Books are not really journals and the author field has +% to be abused. +% From the June 2002 issue of "IEEE Transactions on Information Theory", +% page 1461, reference #7. +@article{IEEEexample:bluebookarticle, + author = "{Consulative Committee for Space Data Systems (CCSDS)}", + title = "Telemetry Channel Coding", + journal = "Blue Book", + number = "4", + year = "1999", + url = "http://www.ccsds.org/documents/pdf/CCSDS-101.0-B-4.pdf" +}; + + +% CCSDS's Blue Book handled as a book +% However, it is not a good idea to have to use the author field for +% an organization (done here because the book entry type requires an +% author field). +@book{IEEEexample:bluebookbook, + author = "{Consulative Committee for Space Data Systems (CCSDS)}", + title = "Telemetry Channel Coding", + series = "Blue Book", + number = "4", + publisher = "CCSDS", + address = "Newport Beach, CA", + year = "1999", + url = "http://www.ccsds.org/documents/pdf/CCSDS-101.0-B-4.pdf" +}; + +% CCSDS's Blue Book handled as a manual +% This is a much better approach, but uses the howpublished field. +@manual{IEEEexample:bluebookmanual, + title = "Telemetry Channel Coding", + howpublished = "ser. Blue Book, No. 4", + organization = "Consulative Committee for Space Data Systems (CCSDS)", + address = "Newport Beach, CA", + year = "1999", + url = "http://www.ccsds.org/documents/pdf/CCSDS-101.0-B-4.pdf" +}; + + + +% CCSDS's Blue Book handled as a standard +% Probably the best approach for this particular case because the work +% is standard related. Note that IEEE does not display the address for +% standards. +@standard{IEEEexample:bluebookstandard, + title = "Telemetry Channel Coding", + howpublished = "ser. Blue Book, No. 4", + organization = "Consulative Committee for Space Data Systems (CCSDS)", + address = "Newport Beach, CA", + type = "Recommendation for Space Data System Standard", + number = "101.0-B-4", + month = May, + year = "1999", + url = "http://www.ccsds.org/documents/pdf/CCSDS-101.0-B-4.pdf" +}; + + + + + + +% An example of a IEEEtran control entry which can change some IEEEtran.bst +% settings. An entry like this must be cited via \bstctlcite{} command +% before the first real \cite{}. The same entry key cannot be called twice +% (just like multiple \cite{} of the same entry key place only one entry +% in the bibliography.) +% The available control fields are: +% +% CTLuse_article_number +% "no" turns off the display of the number for articles. +% "yes" enables +% +% CTLuse_paper +% "no" turns off the display of the paper and type fields in inproceedings. +% "yes" enables +% +% CTLuse_forced_etal +% "no" turns off the forced use of "et al." +% "yes" enables +% +% CTLmax_names_forced_etal +% The maximum number of names that can be present beyond which an "et al." +% usage is forced. Be sure that CTLnames_show_etal (below) +% is not greater than this value! +% +% CTLnames_show_etal +% The number of names that will be shown with a forced "et al.". +% Must be less than or equal to CTLmax_names_forced_etal +% +% CTLuse_alt_spacing +% "no" turns off the alternate interword spacing for entries with URLs. +% "yes" enables +% +% CTLalt_stretch_factor +% If alternate interword spacing for entries with URLs is enabled, this is +% the interword spacing stretch factor that will be used. For example, the +% default "4" here means that the interword spacing in entries with URLs can +% stretch to four times normal. Does not have to be an integer. +% +% CTLdash_repeated_names +% "no" turns off the "dashification" of repeated (i.e., identical to those +% of the previous entry) names. IEEE normally does this. +% "yes" enables +% +% CTLname_format_string +% The name format control string as explained in the BibTeX style hacking +% guide. +% IEEE style "{f.~}{vv~}{ll}{, jj}" is the default, +% +% CTL_name_latex_cmd +% A LaTeX command that each name will be fed to (e.g., "\textsc"). +% Leave empty if no special font is desired for the names. +% The default is empty. +% +% Those fields that are not to be changed can be left out or empty. +@IEEEtranBSTCTL{IEEEexample:BSTcontrol, + CTLuse_article_number = "yes", + CTLuse_paper = "yes", + CTLuse_forced_etal = "no", + CTLmax_names_forced_etal = "10", + CTLnames_show_etal = "1", + CTLuse_alt_spacing = "yes", + CTLalt_stretch_factor = "4", + CTLdash_repeated_names = "yes", + CTLname_format_string = "{f.~}{vv~}{ll}{, jj}", + CTLname_latex_cmd = "" +}; + + + diff --git a/Master/texmf-dist/bibtex/bib/IEEEtran/IEEEfull.bib b/Master/texmf-dist/bibtex/bib/IEEEtran/IEEEfull.bib new file mode 100644 index 00000000000..0372b540505 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/IEEEtran/IEEEfull.bib @@ -0,0 +1,381 @@ +%% +%% IEEEfull.bib +%% +%% BibTeX bibliography string definitions of the FULL titles of +%% IEEE journals and magazines +%% +%% NOTE: This text file uses UNIX line feed conventions. When (human) +%% reading this file on other platforms, you may have to use a text +%% editor that can handle lines terminated by the UNIX line feed +%% character (0x0A). +%% +%% This file is designed for bibliography styles that require +%% full-length titles and is not for use in bibliographies that +%% abbreviate titles. +%% +%% Version 1.10 (2003/04/02) +%% +%% Composed by Michael Shell +%% +%% See: +%% http://www.ctan.org/tex-archive/macros/latex/contrib/supported/IEEEtran/ +%% for latest version and current contact information. +%% +%% Special thanks to Laura Hyslop of IEEE for her help in obtaining the +%% information needed to compile this file. Also, Volker Kuhlmann kindly +%% provided some corrections and additions. +%% +%%********************************************************************** +%% Legal Notice: +%% This code is offered as-is without any warranty either expressed or +%% implied; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE! +%% User assumes all risk. +%% In no event shall IEEE or any contributor to this code be liable for +%% any damages or losses, including, but not limited to, incidental, +%% consequential, or any other damages, resulting from the use or misuse +%% of any information contained here. +%% +%% This code is distributed under the Perl Artistic License +%% ( http://language.perl.com/misc/Artistic.html ) +%% and may be freely used, distributed and modified - subject to the +%% constraints therein. +%% Retain all contribution notices, credits and disclaimers. +%% +%% All comments are the opinions of their respective authors and are not +%% necessarily endorsed by the IEEE. +%%********************************************************************** +% +% +% USAGE: +% +% \bibliographystyle{mybstfile} +% \bibliography{IEEEfull,mybibfile} +% +% where the IEEE titles in the .bib database entries use the strings +% defined here. e.g., +% +% +% journal = IEEE_J_AC, +% +% +% to yield "{IEEE} Transactions on Automatic Control" +% +% +% WARNING: IEEE uses abbreviated journal titles in their bibliographies! +% Because this file provides the full titles, you should NOT use this file +% for work that is to be submitted to the IEEE. +% +% For IEEE work, you should use the abbreviated titles provided in the +% companion file, IEEEabrv.bib. +% +% +% ** NOTES ** +% +% 1. Journals have been grouped according to subject in order to make it +% easier to locate and extract the definitions for related journals - +% as most works use references that are confined to a single topic. +% Magazines are listed in straight alphabetical order. +% +% 2. String names are closely based on IEEE's own internal acronyms. +% +% 3. Older, out-of-print IEEE titles are included (but not including titles +% dating prior to IEEE's formation from the IRE and AIEE in 1963). + + + + + +%%%%%%%%%%%%%%%%%%% +%% IEEE Journals %% +%%%%%%%%%%%%%%%%%%% + + +% aerospace and military +@STRING{IEEE_J_AES = "{IEEE} Transactions on Aerospace and Electronic Systems"} +@STRING{IEEE_J_ANE = "{IEEE} Transactions on Aerospace and Navigational Electronics"} +@STRING{IEEE_J_ANNE = "{IEEE} Transactions on Aeronautical and Navigational Electronics"} +@STRING{IEEE_J_AS = "{IEEE} Transactions on Aerospace"} +@STRING{IEEE_J_AIRE = "{IEEE} Transactions on Airborne Electronics"} +@STRING{IEEE_J_MIL = "{IEEE} Transactions on Military Electronics"} + + + +% autos, transportation and vehicles (non-aerospace) +@STRING{IEEE_J_ITS = "{IEEE} Transactions on Intelligent Transportation Systems"} +@STRING{IEEE_J_VT = "{IEEE} Transactions on Vehicular Technology"} +@STRING{IEEE_J_VC = "{IEEE} Transactions on Vehicular Communications"} + + + +% circuits, signals, systems, audio and controls +@STRING{IEEE_J_SPL = "{IEEE} Signal Processing Letters"} +@STRING{IEEE_J_ASSP = "{IEEE} Transactions on Acoustics, Speech, and Signal Processing"} +@STRING{IEEE_J_AU = "{IEEE} Transactions on Audio"} +@STRING{IEEE_J_AUEA = "{IEEE} Transactions on Audio and Electroacoustics"} +@STRING{IEEE_J_AC = "{IEEE} Transactions on Automatic Control"} +@STRING{IEEE_J_CAS = "{IEEE} Transactions on Circuits and Systems"} +@STRING{IEEE_J_CASVT = "{IEEE} Transactions on Circuits and Systems for Video Technology"} +@STRING{IEEE_J_CASI = "{IEEE} Transactions on Circuits and Systems---Part {I}: Fundamental Theory and Applications"} +@STRING{IEEE_J_CASII = "{IEEE} Transactions on Circuits and Systems---Part {II}: Analog and Digital Signal Processing"} +@STRING{IEEE_J_CT = "{IEEE} Transactions on Circuit Theory"} +@STRING{IEEE_J_CST = "{IEEE} Transactions on Control Systems Technology"} +@STRING{IEEE_J_SP = "{IEEE} Transactions on Signal Processing"} +@STRING{IEEE_J_SU = "{IEEE} Transactions on Sonics and Ultrasonics"} +@STRING{IEEE_J_SAP = "{IEEE} Transactions on Speech and Audio Processing"} +@STRING{IEEE_J_UE = "{IEEE} Transactions on Ultrasonics Engineering"} +@STRING{IEEE_J_UFFC = "{IEEE} Transactions on Ultrasonics, Ferroelectrics, and Frequency Control"} + + + +% communications +@STRING{IEEE_J_COML = "{IEEE} Communications Letters"} +@STRING{IEEE_J_JSAC = "{IEEE} Journal on Selected Areas in Communications"} +@STRING{IEEE_J_COM = "{IEEE} Transactions on Communications"} +@STRING{IEEE_J_COMT = "{IEEE} Transactions on Communication Technology"} +@STRING{IEEE_J_WCOM = "{IEEE} Transactions on Wireless Communications"} + + + +% components, packaging and manufacturing +@STRING{IEEE_J_ADVP = "{IEEE} Transactions on Advanced Packaging"} +@STRING{IEEE_J_CHMT = "{IEEE} Transactions on Components, Hybrids and Manufacturing Technology"} +@STRING{IEEE_J_CPMTA = "{IEEE} Transactions on Components, Packaging and Manufacturing Technology---Part {A}"} +@STRING{IEEE_J_CPMTB = "{IEEE} Transactions on Components, Packaging and Manufacturing Technology---Part {B}: Advanced Packaging"} +@STRING{IEEE_J_CPMTC = "{IEEE} Transactions on Components, Packaging and Manufacturing Technology---Part {C}: Manufacturing"} +@STRING{IEEE_J_CAPT = "{IEEE} Transactions on Components and Packaging Technology"} +@STRING{IEEE_J_CAPTS = "{IEEE} Transactions on Components and Packaging Technologies"} +@STRING{IEEE_J_CPART = "{IEEE} Transactions on Component Parts"} +@STRING{IEEE_J_EPM = "{IEEE} Transactions on Electronics Packaging Manufacturing"} +@STRING{IEEE_J_MFT = "{IEEE} Transactions on Manufacturing Technology"} +@STRING{IEEE_J_PHP = "{IEEE} Transactions on Parts, Hybrids and Packaging"} +@STRING{IEEE_J_PMP = "{IEEE} Transactions on Parts, Materials and Packaging"} + + + +% CAD +@STRING{IEEE_J_TCAD = "{IEEE} Journal on Technology in Computer Aided Design"} +@STRING{IEEE_J_CAD = "{IEEE} Transactions on Computer-Aided Design of Integrated Circuits and Systems"} + + + +% coding, data, information, knowledge +@STRING{IEEE_J_IT = "{IEEE} Transactions on Information Theory"} +@STRING{IEEE_J_KDE = "{IEEE} Transactions on Knowledge and Data Engineering"} + + + +% computers, computation, networking and software +@STRING{IEEE_J_C = "{IEEE} Transactions on Computers"} +@STRING{IEEE_J_ECOMP = "{IEEE} Transactions on Electronic Computers"} +@STRING{IEEE_J_EVC = "{IEEE} Transactions on Evolutionary Computation"} +@STRING{IEEE_J_FUZZ = "{IEEE} Transactions on Fuzzy Systems"} +@STRING{IEEE_J_MC = "{IEEE} Transactions on Mobile Computing"} +@STRING{IEEE_J_NET = "{IEEE/ACM} Transactions on Networking"} +@STRING{IEEE_J_NN = "{IEEE} Transactions on Neural Networks"} +@STRING{IEEE_J_PDS = "{IEEE} Transactions on Parallel and Distributed Systems"} +@STRING{IEEE_J_SE = "{IEEE} Transactions on Software Engineering"} + + + +% computer graphics, imaging, and multimedia +@STRING{IEEE_J_IP = "{IEEE} Transactions on Image Processing"} +@STRING{IEEE_J_MM = "{IEEE} Transactions on Multimedia"} +@STRING{IEEE_J_VCG = "{IEEE} Transactions on Visualization and Computer Graphics"} + + + +% cybernetics, ergonomics, robots, man-machine, and automation +@STRING{IEEE_J_JRA = "{IEEE} Journal of Robotics and Automation"} +@STRING{IEEE_J_HFE = "{IEEE} Transactions on Human Factors in Electronics"} +@STRING{IEEE_J_MMS = "{IEEE} Transactions on Man-Machine Systems"} +@STRING{IEEE_J_PAMI = "{IEEE} Transactions on Pattern Analysis and Machine Intelligence"} +@STRING{IEEE_J_RA = "{IEEE} Transactions on Robotics and Automation"} +@STRING{IEEE_J_SMC = "{IEEE} Transactions on Systems, Man, and Cybernetics"} +@STRING{IEEE_J_SMCA = "{IEEE} Transactions on Systems, Man, and Cybernetics---Part {A}: Systems and Humans"} +@STRING{IEEE_J_SMCB = "{IEEE} Transactions on Systems, Man, and Cybernetics---Part {B}: Cybernetics"} +@STRING{IEEE_J_SMCC = "{IEEE} Transactions on Systems, Man, and Cybernetics---Part {C}: Applications and Reviews"} +@STRING{IEEE_J_SSC = "{IEEE} Transactions on Systems Science and Cybernetics"} + + + +% earth, wind, fire and water +@STRING{IEEE_J_GE = "{IEEE} Transactions on Geoscience Electronics"} +@STRING{IEEE_J_GRS = "{IEEE} Transactions on Geoscience and Remote Sensing"} +@STRING{IEEE_J_OE = "{IEEE} Journal of Oceanic Engineering"} + + + +% education, engineering, history, IEEE, professional +@STRING{IEEE_J_CJECE = "Canadian Journal of Electrical and Computer Engineering"} +@STRING{IEEE_J_PROC = "Proceedings of the {IEEE}"} +@STRING{IEEE_J_EDU = "{IEEE} Transactions on Education"} +@STRING{IEEE_J_EM = "{IEEE} Transactions on Engineering Management"} +@STRING{IEEE_J_EWS = "{IEEE} Transactions on Engineering Writing and Speech"} +@STRING{IEEE_J_PC = "{IEEE} Transactions on Professional Communication"} + + + +% electromagnetics, antennas, EMI, magnetics and microwave +@STRING{IEEE_J_AWPL = "{IEEE} Antennas and Wireless Propagation Letters"} +@STRING{IEEE_J_MGWL = "{IEEE} Microwave and Guided Wave Letters"} +@STRING{IEEE_J_MWCL = "{IEEE} Microwave and Wireless Components Letters"} +@STRING{IEEE_J_AP = "{IEEE} Transactions on Antennas and Propagation"} +@STRING{IEEE_J_EMC = "{IEEE} Transactions on Electromagnetic Compatibility"} +@STRING{IEEE_J_MAG = "{IEEE} Transactions on Magnetics"} +@STRING{IEEE_J_MTT = "{IEEE} Transactions on Microwave Theory and Techniques"} +@STRING{IEEE_J_RFI = "{IEEE} Transactions on Radio Frequency Interference"} +@STRING{IEEE_J_TJMJ = "{IEEE} Translation Journal on Magnetics in Japan"} + + + +% energy and power +@STRING{IEEE_J_EC = "{IEEE} Transactions on Energy Conversion"} +@STRING{IEEE_J_PWRAS = "{IEEE} Transactions on Power Apparatus and Systems"} +@STRING{IEEE_J_PWRD = "{IEEE} Transactions on Power Delivery"} +@STRING{IEEE_J_PWRE = "{IEEE} Transactions on Power Electronics"} +@STRING{IEEE_J_PWRS = "{IEEE} Transactions on Power Systems"} + + + +% industrial, commercial and consumer +@STRING{IEEE_J_APPIND = "{IEEE} Transactions on Applications and Industry"} +@STRING{IEEE_J_BC = "{IEEE} Transactions on Broadcasting"} +@STRING{IEEE_J_BCTV = "{IEEE} Transactions on Broadcast and Television Receivers"} +@STRING{IEEE_J_CE = "{IEEE} Transactions on Consumer Electronics"} +@STRING{IEEE_J_IE = "{IEEE} Transactions on Industrial Electronics"} +@STRING{IEEE_J_IECI = "{IEEE} Transactions on Industrial Electronics and Control Instrumentation"} +@STRING{IEEE_J_IA = "{IEEE} Transactions on Industry Applications"} +@STRING{IEEE_J_IGA = "{IEEE} Transactions on Industry and General Applications"} + + + +% instrumentation and measurement +@STRING{IEEE_J_IM = "{IEEE} Transactions on Instrumentation and Measurement"} + + + +% insulation and materials +@STRING{IEEE_J_JEM = "{IEEE/TMS} Journal of Electronic Materials"} +@STRING{IEEE_J_DEI = "{IEEE} Transactions on Dielectrics and Electrical Insulation"} +@STRING{IEEE_J_EI = "{IEEE} Transactions on Electrical Insulation"} + + + +% mechanical +@STRING{IEEE_J_MECH = "{IEEE/ASME} Transactions on Mechatronics"} +@STRING{IEEE_J_MEMS = "{IEEE/ASME} Journal of Microelectromechanical Systems"} + + + +% medical and biological +@STRING{IEEE_J_BME = "{IEEE} Transactions on Biomedical Engineering"} +% Note: The B-ME journal later dropped the hyphen and became the BME. +@STRING{IEEE_J_B-ME = "{IEEE} Transactions on Bio-Medical Engineering"} +@STRING{IEEE_J_BMELC = "{IEEE} Transactions on Bio-Medical Electronics"} +@STRING{IEEE_J_ITBM = "{IEEE} Transactions on Information Technology in Biomedicine"} +@STRING{IEEE_J_ME = "{IEEE} Transactions on Medical Electronics"} +@STRING{IEEE_J_MI = "{IEEE} Transactions on Medical Imaging"} +@STRING{IEEE_J_MCTE = "{IEEE} Transactions on Molecular, Cellular and Tissue Engineering"} +@STRING{IEEE_J_NB = "{IEEE} Transactions on NanoBioscience"} +@STRING{IEEE_J_NSRE = "{IEEE} Transactions on Neural Systems and Rehabilitation Engineering"} +@STRING{IEEE_J_RE = "{IEEE} Transactions on Rehabilitation Engineering"} + + + +% optics, lightwave and photonics +@STRING{IEEE_J_PTL = "{IEEE} Photonics Technology Letters"} +@STRING{IEEE_J_JLT = "{IEEE/OSA} Journal of Lightwave Technology"} + + + +% physics, electrons, nanotechnology, nuclear and quantum electronics +@STRING{IEEE_J_EDL = "{IEEE} Electron Device Letters"} +@STRING{IEEE_J_JQE = "{IEEE} Journal of Quantum Electronics"} +@STRING{IEEE_J_JSTQE = "{IEEE} Journal of Selected Topics in Quantum Electronics"} +@STRING{IEEE_J_ED = "{IEEE} Transactions on Electron Devices"} +@STRING{IEEE_J_NANO = "{IEEE} Transactions on Nanotechnology"} +@STRING{IEEE_J_NS = "{IEEE} Transactions on Nuclear Science"} +@STRING{IEEE_J_PS = "{IEEE} Transactions on Plasma Science"} + + + +% reliability +@STRING{IEEE_J_DMR = "{IEEE} Transactions on Device and Materials Reliability"} +@STRING{IEEE_J_R = "{IEEE} Transactions on Reliability"} + + + +% semiconductors, superconductors, electrochemical and solid state +@STRING{IEEE_J_ESSL = "{IEEE/ECS} Electrochemical and Solid-State Letters"} +@STRING{IEEE_J_JSSC = "{IEEE} Journal of Solid-State Circuits"} +@STRING{IEEE_J_ASC = "{IEEE} Transactions on Applied Superconductivity"} +@STRING{IEEE_J_SM = "{IEEE} Transactions on Semiconductor Manufacturing"} + + + +% sensors +@STRING{IEEE_J_SENSOR = "{IEEE} Sensors Journal"} + + + +% VLSI +@STRING{IEEE_J_VLSI = "{IEEE} Transactions on Very Large Scale Integration ({VLSI}) Systems"} + + + + + +%%%%%%%%%%%%%%%%%%%% +%% IEEE Magazines %% +%%%%%%%%%%%%%%%%%%%% + + +@STRING{IEEE_M_AES = "{IEEE} Aerospace and Electronics Systems Magazine"} +@STRING{IEEE_M_HIST = "{IEEE} Annals of the History of Computing"} +@STRING{IEEE_M_AP = "{IEEE} Antennas and Propagation Magazine"} +@STRING{IEEE_M_ASSP = "{IEEE} {ASSP} Magazine"} +@STRING{IEEE_M_CD = "{IEEE} Circuits and Devices Magazine"} +@STRING{IEEE_M_CAS = "{IEEE} Circuits and Systems Magazine"} +@STRING{IEEE_M_COM = "{IEEE} Communications Magazine"} +@STRING{IEEE_M_COMSOC = "{IEEE} Communications Society Magazine"} +% CSEM changed to CSE in 1999 +@STRING{IEEE_M_CSE = "{IEEE} Computing in Science and Engineering"} +@STRING{IEEE_M_CSEM = "{IEEE} Computational Science and Engineering Magazine"} +@STRING{IEEE_M_C = "{IEEE} Computer"} +@STRING{IEEE_M_CAP = "{IEEE} Computer Applications in Power"} +@STRING{IEEE_M_CGA = "{IEEE} Computer Graphics and Applications"} +@STRING{IEEE_M_CONC = "{IEEE} Concurrency"} +@STRING{IEEE_M_CS = "{IEEE} Control Systems Magazine"} +@STRING{IEEE_M_DTC = "{IEEE} Design and Test of Computers"} +@STRING{IEEE_M_EI = "{IEEE} Electrical Insulation Magazine"} +@STRING{IEEE_M_EMB = "{IEEE} Engineering in Medicine and Biology Magazine"} +@STRING{IEEE_M_EMR = "{IEEE} Engineering Management Review"} +@STRING{IEEE_M_EXP = "{IEEE} Expert"} +@STRING{IEEE_M_IA = "{IEEE} Industry Applications Magazine"} +@STRING{IEEE_M_IM = "{IEEE} Instrumentation and Measurement Magazine"} +@STRING{IEEE_M_IS = "{IEEE} Intelligent Systems"} +@STRING{IEEE_M_IC = "{IEEE} Internet Computing"} +@STRING{IEEE_M_ITP = "{IEEE} {IT} Professional"} +@STRING{IEEE_M_MICRO = "{IEEE} Micro"} +@STRING{IEEE_M_MW = "{IEEE} Microwave Magazine"} +@STRING{IEEE_M_MM = "{IEEE} Multimedia"} +@STRING{IEEE_M_NET = "{IEEE} Network"} +@STRING{IEEE_M_PCOM = "{IEEE} Personal Communications Magazine"} +@STRING{IEEE_M_POT = "{IEEE} Potentials"} +% CAP and PER merged to form PE in 2003 +@STRING{IEEE_M_PE = "{IEEE} Power and Energy Magazine"} +@STRING{IEEE_M_PER = "{IEEE} Power Engineering Review"} +@STRING{IEEE_M_RA = "{IEEE} Robotics and Automation Magazine"} +@STRING{IEEE_M_SP = "{IEEE} Signal Processing Magazine"} +@STRING{IEEE_M_S = "{IEEE} Software"} +@STRING{IEEE_M_SPECT = "{IEEE} Spectrum"} +@STRING{IEEE_M_TS = "{IEEE} Technology and Society Magazine"} +@STRING{IEEE_M_WC = "{IEEE} Wireless Communications Magazine"} +@STRING{IEEE_M_TODAY = "Today's Engineer"} + + + + +%-- +%EOF diff --git a/Master/texmf-dist/bibtex/bib/abstyles/acompat.bib b/Master/texmf-dist/bibtex/bib/abstyles/acompat.bib new file mode 100644 index 00000000000..fb94505e643 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/abstyles/acompat.bib @@ -0,0 +1,45 @@ +This is ACOMPAT.BIB, a BibTeX database file for the `adaptable' style +family, written by Hans-Hermann Bode (HHBODE at DOSUNI1.BITNET), that contains +compatibility definitions for use with standard styles. Use acompat as the +very first item---even before jourfull or jourabbr---in your \bibliography +command when you have to typeset your new databases---relying on the +adaptable styles---with the standard styles. + +------------------------------------------------------------------------------ + +First, we declare the \abfull switch that is defined by the adaptable +styles. Here, it is unconditionally set to true which might not fit your +needs (in this case, say \abfullfalse instead of \abfulltrue). + +@PREAMBLE{"\newif\ifabfull\abfulltrue"} + +------------------------------------------------------------------------------ + +Next, the strings for edition numbers are defined. + +@STRING{first="First"} +@STRING{second="Second"} +@STRING{third="Third"} +@STRING{fourth="Fourth"} +@STRING{fifth="Fifth"} +@STRING{sixth="Sixth"} +@STRING{seventh="Seventh"} +@STRING{eighth="Eighth"} +@STRING{ninth="Ninth"} +@STRING{tenth="Tenth"} + +------------------------------------------------------------------------------ + +Finally, we have to set up strings for certain ``chapter'' names. + +@STRING{section="Section"} +@STRING{paragraph="Paragraph"} +@STRING{appendix="Appendix"} +@STRING{part="Part"} + +------------------------------------------------------------------------------ + +That's all there is to it. Now you can use your new databases with the old +styles as well. + +------------------------------------------------------------------------------ diff --git a/Master/texmf-dist/bibtex/bib/acmconf/pubform.bib b/Master/texmf-dist/bibtex/bib/acmconf/pubform.bib new file mode 100644 index 00000000000..fa77e74f6f4 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/acmconf/pubform.bib @@ -0,0 +1,96 @@ +%% +%% This is file `pubform.bib', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% acmconf.dtx (with options: `bib') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from pubform.bib. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file acmconf.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% +%% to test the checksum, uncomment \OnlyDescription +%% in the driver +%%\fi +%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} + +@TECHREPORT{template.1999, +AUTHOR = "ACM", +TITLE = "{ACM} {SIG} {PROCEEDINGS} template", +INSTITUTION = "ACM", +ADDRESS = "http://www.acm.org/sigs/ + pubs/proceed/template.html", +YEAR = 1999, +} + +@ARTICLE{anderson.1992, +AUTHOR = "Anderson, R.E", +TITLE = "Social impacts of computing: Codes of + professional ethics", +JOURNAL = "Social Science Computing Review", +YEAR = 1992, +NUMBER = 4, +VOLUME = 10, +PAGES = "453--469", +} + +@ARTICLE{conger.1995, +AUTHOR = "Conger, Sue AND + Loch, Karen D.", +TITLE = "Ethics and computer use", +JOURNAL = "Communications of the {ACM}", +VOLUME = 38, +MONTH = dec, +YEAR = 1995, +NUMBER = 12, +PAGES = "30--32", +} + +@INPROCEEDINGS{mackay.1995, +AUTHOR = "Mackay, W.E.", +TITLE = "Ethics, lies and videotape...", +BOOKTITLE = "Proceedings of {CHI} '95 (Denver CO)", +PUBLISHER = "ACM Press", +MONTH = may, +YEAR = 1995, +PAGES = "138--145", +} + +@TECHREPORT{schwartz.1995, +AUTHOR = "Schwartz, M. AND + {Task Force on Bias-Free Language}", +TITLE = "Guidelines for Bias-Free Writing", +INSTITUTION = "Indiana University", +PUBLISHER = "Indiana University Press, Bloomington IN", +YEAR = 1995, +} +\endinput +%% +%% End of file `pubform.bib'. diff --git a/Master/texmf-dist/bibtex/bib/acmtrans/acmtr.bib b/Master/texmf-dist/bibtex/bib/acmtrans/acmtr.bib new file mode 100644 index 00000000000..9d6d973579f --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/acmtrans/acmtr.bib @@ -0,0 +1,116 @@ +% acmtr.bib +% $Header: acmtr.bib,v 1.3 96/01/30 14:27:43 boyland Exp $ + +@mastersthesis{ko94, +author = "Jacob Kornerup", +title = "Mapping Powerlists onto Hypercubes", +school = "The University of Texas at Austin", +note = "(In preparation)", +year = "1994"} +%month = "dec",} + +@PhdThesis{gerndt:89, + author = "Michael Gerndt", + title = "Automatic Parallelization for Distributed-Memory + Multiprocessing Systems", + school = "University of Bonn", + year = 1989, + address = "Bonn, Germany", + month = dec +} + +@article{6:1:1, +author = "J. E. {Archer, Jr.} and R. Conway and F. B. Schneider", +title = "User recovery and reversal in interactive systems", +journal = "ACM Trans. Program. Lang. Syst.", +volume = "6", +number = "1", +month = jan, +year = 1984, +pages = "1--19"} + +@article{7:1:137, +author = "D. D. Dunlop and V. R. Basili", +title = "Generalizing specifications for uniformly implemented loops", +journal = "ACM Trans. Program. Lang. Syst.", +volume = "7", +number = "1", +month = jan, +year = 1985, +pages = "137--158"} + +@article{7:2:183, +author = "J. Heering and P. Klint", +title = "Towards monolingual programming environments", +journal = "ACM Trans. Program. Lang. Syst.", +volume = "7", +number = "2", +month = apr, +year = 1985, +pages = "183--213"} + +@book{knuth:texbook, +author = "Donald E. Knuth", +title = "The {\TeX{}book}", +publisher = "Addison-Wesley", +address = "Reading, Mass.", +year = 1984} + +@article{6:3:380, +author = "E. Korach and D. Rotem and N. Santoro", +title = "Distributed algorithms for finding centers and medians in networks", +journal = "ACM Trans. Program. Lang. Syst.", +volume = "6", +number = "3", +month = jul, +year = 1984, +pages = "380--401"} + +@book{lamport:latex, +author = "Leslie Lamport", +title = "\it {\LaTeX}: A Document Preparation System", +publisher = "Addison-Wesley", +address = "Reading, Mass.", +year = 1986} + +@article{7:3:359, +author = "F. Nielson", +title = "Program transformations in a denotational setting", +journal = "ACM Trans. Program. Lang. Syst.", +volume = "7", +number = "3", +month = jul, +year = 1985, +pages = "359--379"} + +%testing +@article{test, +author = "F. Nielson", +title = "Program transformations in a denotational setting", +journal = "ACM Trans. Program. Lang. Syst.", +volume = "7", +number = "3", +month = jul, +year = 1986, +pages = "359--379"} + + +@inproceedings{reid:scribe, +author = "Brian K. Reid", +title = "A high-level approach to computer document formatting", +booktitle = "Proceedings of the Seventh Annual Symposium on Principles of + Programming Languages", +month = jan, +year = 1980, +publisher = "ACM", +address = "New York", +pages = "24--31"} + + + + + + + + + diff --git a/Master/texmf-dist/bibtex/bib/adrconv/example.bib b/Master/texmf-dist/bibtex/bib/adrconv/example.bib new file mode 100644 index 00000000000..3309ce2ed3c --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/adrconv/example.bib @@ -0,0 +1,73 @@ +%% +%% This is file `example.bib', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% adrconv.dtx (with options: `bib,example') +%% Copyright (c) 2001 Axel Kielhorn +%% +%% This file will generate fast loadable files from adrconv.dtx when +%% run through LaTeX or TeX. +%% +%% This file is part of the adrconv bundle. +%% +%% This file can be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.2 of the license +%% or (at you option) any later version. +%% The latest version of this license is in +%% http://www.latex-procejt.org/lppl.txt +%% and version 1.2 or later ist part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% The adrconv bundle consists at least of the files adrconv.dtx, +%% adrconv.ins and adrguide.tex. +%% +%% You are NOT ALLOWED to change this file. +%% +%% You are NOT ALLOWED to distribute this file without adrconv.dtx, +%% adrconv.ins or adrguide.tex. +@address{mustermann, + name = {Hans Mustermann}, + city = {Heimstatt}, + zip = 01234, + country = {D -}, + street = {Einbahnstra{\ss}e 1}, + phone = {01234 / 5 67 89}, + fax = {01234 / 5 67 89}, + email = {hm{@}work.com}, + note = {Alles nur Erfindung}, +} +@address{AxelK, + name = {Axel Kielhorn}, + city = {Verden}, + zip = 27283, + street = {Lange Stra{\ss}e 17}, + phone = {04231 / 12 34 56}, + fax = {04231 / 65 34 21}, + email = {a.kielhorn{@}web.de}, + key = {Aki}, + note = {Author of the modified addressen.bst}, + birthday = {16.05.1967}, + nbirthday = 0516, +} +@address{RalfK, + name = {Ralf Kielhorn}, + city = {Braunschweig}, + zip = 38116, + street = {Gro{\ss}e Stra{\ss}e 17}, + phone = {0531 / 12 34 56}, + key = {Rki}, + birthday = {05.08.1969}, + nbirthday = 0805, +} +@address{SabineK, + name = {Sabine Kielhorn}, + city = {Oldenburg}, + zip = 26133, + street = {Fraunhoferstra{\ss}e 21}, + phone = {0441 / 12 34 56}, + key = {Ski}, + birthday = {13.11.1970}, + nbirthday = 1113, +} diff --git a/Master/texmf-dist/bibtex/bib/aiaa/bibtex_database.bib b/Master/texmf-dist/bibtex/bib/aiaa/bibtex_database.bib new file mode 100644 index 00000000000..6fe1f92491b --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/aiaa/bibtex_database.bib @@ -0,0 +1,124 @@ +@InCollection{turner:64a, + author = {M. J. Turner and H. C. Martin and R. C. Leible}, + title = {Further Development and Applications of Stiffness Methods}, + booktitle = {Matrix Methods of Structural Analysis}, + year = 1964, + edition = {1st}, + publisher = {Macmillian}, + address = {New York}, + volume = 1, + pages = {203-266} + } + +@Article{bhutta:90jsr, + author = {B. A. Bhutta and C. H. Lewis}, + title = {Large-Angle-of-Attack Vicous Hypersonic Flows over + Complex Lifting Configurations}, + journal = {Journal of Spacecraft and Rockets}, + year = 1990, + volume = 27, + number = 2, + pages = {194-204}, + note = {also AIAA Paper 89--0269, Jan. 1989} +} + +@InCollection{blottner:70cp, + author = {F. G. Blottner}, + title = {Prediction of Electron Density in the Boundary Layer + of Entry Vehicles with Ablation}, + booktitle = {The Entry Plasma Sheath and Its Effects}, + type = {NASA SP--252}, + volume = 1, + year = 1970, + month = oct, + pages = {219--240} +} + +@InProceedings{wirin:90cp, + author = {W. B. Wirin}, + title = {Space Debris 1989}, + booktitle = {Proceedings of the Thrity-Second Colloquium + on the Law of Outer Space}, + year = 1990, + publisher = {AIAA}, + address = {Wahington, DC}, + pages = {184--196} +} + +@TechReport{bhutta:90vra, + author = {B. A. Bhutta and C. H. Lewis}, + title = {PNS Predictions of External/Internal Hypersonic Flows + for NASP Propulsion Applications}, + institution = {VRA, Inc.}, + type = {VRA--TR--90--01}, + year = 1990, + address = {Blacksburg, VA}, + month = jun +} + +@TechReport{miner:75ncr, + author = {E. W. Miner and C. H. Lewis}, + title = {Hypersonic Ionizing Air Viscous Shock-Layer Flows + over Nonanlytic Blunt Bodies}, + year = 1975, + type = {NASA CR--2250}, + month = may +} + +@TechReport{bhutta:90cp, + author = {B. A. Bhutta and C. H. Lewis}, + title = {Aerothermodynamic Performance of 3-D and Bent-Nose RVs + Hypersonic Conditions}, + year = 1990, + type = {AIAA Paper 90--3068}, + month = aug +} + +@InCollection{sutton:85ar, + author = {K. Sutton}, + title = {Air Radiation Revisted}, + booktitle = {Thermal Design of Aeroassisted Orbital Transfer Vehicles}, + publisher = {AIAA}, + year = 1985, + editor = {H. F. Nelson}, + volume = 96, + type = {Progress in Astronautics and Aeronautics}, + address = {New York}, + pages = {419--441} +} + +@TechReport{anon:53, + author = {Anon.}, + title = {Equations, Tables, and Charts for Compressible Flow}, + year = 1953, + type = {NACA Rept.~1135} +} + +@Misc{moss:90pc, + author = {J. N. Moss}, + howpublished = {private communication, + NASA Langley Research Center, + Hampton, VA}, + year = 1990, + month = jun +} + +@Book{tufte:83bk, + author = {Edward R. Tufte}, + title = {The Visual Display of Quantitative Information}, + publisher = {Graphics Press}, + year = 1983 +} + +@PhdThesis{thoman:66phd, + author = {David Charles Thoman}, + title = {Numerical Solutions of Time Dependent Two Dimensional + Flow of a Viscous, Incompressible Fluid Over + Stationary and Rotating Cylinders}, + school = {University of Notre Dame}, + year = 1966, + address = {Indiana}, + month = aug, + annote = { example of viscous timestep restriction, cell Re } +} + diff --git a/Master/texmf-dist/bibtex/bib/amslatex/jr.bib b/Master/texmf-dist/bibtex/bib/amslatex/jr.bib new file mode 100644 index 00000000000..fdfc83c5689 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/amslatex/jr.bib @@ -0,0 +1,214 @@ +@article{BFMW, + author={J. Bryant and S. Ferry and W. Mio and S. Weinberger}, + title={Topology of homology manifolds}, + journal={Ann. of Math.}, + volume={143}, + pages={435--467}, + year={1996}, + review={\MR{97b:57017}}, +} + +@article{Ch, + author={T. A. Chapman}, + title={Simple homotopy theory for {$ANR$}'s}, + journal={General Topology and its Applications}, + volume={7}, + pages={165--174}, + year={1977}, + review={\MR{58:18414}}, +} + +@article{Co, + author={M. Cohen}, + title={Simplicial structures and transverse cellularity}, + journal={Ann. of Math.}, + volume={85}, + pages={218--245}, + year={1967}, + review={\MR{35:1037}}, +} + +@incollection{FP, + author={S. Ferry and E. K. Pedersen}, + title={Epsilon surgery theory {I}}, + booktitle={Novikov Conjectures, Index Theorems and Rigidity, + Vol. 2 ({O}berwolfach, 1993)}, + series={Lond. Math. Soc. Lecture Note Ser.}, + volume={227}, + publisher={Cambridge University Press}, + year={1995}, + pages={167--226}, + review={\MR{97g:57044}}, +} + +@article{HTW, + author={B. Hughes and L. Taylor and B. Williams}, + title={Manifold approximate fibrations are approximately bundles}, + journal={Forum Math.}, + volume={3}, + pages={309--325}, + year={1991}, + review={\MR{92k:57040}}, +} + +@article{Jo, + author={H. Johnston}, + title={Transversality for homology manifolds}, + journal={Topology}, + volume={38}, + pages={673--697}, + year={1999}, + review={\MR{99k:57048}}, +} + +@article{Jn, + author={L. Jones}, + title={Patch spaces: a geometric representation for {P}oincar\'e + spaces}, + journal={Ann. of Math.}, + volume={97}, + pages={306--343}, + year={1973}, + note={102, 183--185 (1975) \MR{47:4269}; \MR{52:11930}}, +} + +@book{KS, + author={R. Kirby and L. Siebenmann}, + title={Foundational essays on topological manifolds, smoothings, and + triangulations}, + series={Ann. of Math. Study}, + volume={88}, + publisher={Princeton University Press}, + year={1977}, + review={\MR{58:31082}}, +} + +@article{LR, + author={N. Levitt and A. Ranicki}, + title={Intrinsic transversality structures}, + journal={Pacific J. Math.}, + volume={129}, + pages={85--144}, + year={1987}, + review={\MR{88m:57027}}, +} + +@article{M, + author={A. Marin}, + title={La transversalit\'e topologique}, + language={French}, + journal={Ann. of Math.}, + volume={106}, + pages={269--293}, + year={1977}, + review={\MR{57:10707}}, +} + +@article{Q1, + author={F. Quinn}, + title={Resolutions of homology manifolds, and the topological + characterization of manifolds}, + journal={Invent. Math.}, + volume={72}, + pages={264--284}, + year={1983}, + note={Corrigendum \textbf{85} (1986) 653}, + review={\MR{85b:57023}, \MR{87g:57031}}, +} + +@article{Q2, + author={F. Quinn}, + title={An obstruction to the resolution of homology manifolds}, + journal={Michigan Math. J.}, + volume={34}, + pages={284--291}, + year={1987}, + review={\MR{88j:57016}}, +} + +@article{Q3, + author={F. Quinn}, + title={Topological transversality holds in all dimensions}, + journal={Bull. Amer. Math. Soc.}, + volume={18}, + pages={145--148}, + year={1988}, + review={\MR{89c:57016}}, +} + +@article{R1, + author={A. Ranicki}, + title={The algebraic theory of surgery {II}. {A}pplications to topology}, + journal={Proc. Lond. Math. Soc.}, + volume={40}, + pages={193--287}, + year={1980}, + review={\MR{82f:57024b}}, +} + +@book{R2, + author={A. Ranicki}, + title={Exact sequences in the algebraic theory of surgery}, + series={Mathematical Notes}, + volume={26}, + publisher={Princeton University Press}, + year={1981}, + review={\MR{82h:57027}}, +} + +@book{R3, + author={A. Ranicki}, + title={Algebraic {$L$}--theory and topological manifolds}, + series={Cambridge Tracts in Mathematics}, + volume={102}, + publisher={Cambridge University Press}, + year={1992}, + review={\MR{94i:57051}}, +} + +@article{RS, + author={C. P. Rourke and B. J. Sanderson}, + title={On topological neighbourhoods}, + journal={Compositio Math.}, + volume={22}, + pages={387--425}, + year={1970}, + review={\MR{45:7720}}, +} + +@book{Wa, + author={C. T. C. Wall}, + title={Surgery on compact manifolds}, + edition={2}, + publisher={Academic Press}, + year={1970}, +} + +@book{Wei, + author={S. Weinberger}, + title={Nonlocally linear manifolds and orbifolds}, + series={Proc. 1994 Z\"urich ICM}, + pages={637--647}, + publisher={Birkh\"auser}, + year={1995}, + review={\MR{97g:57028}}, +} + +@book{Wein, + author={S. Weinberger}, + title={The topological classification of stratified spaces}, + series={Chicago Lectures in Mathematics}, + publisher={University of Chicago Press}, + year={1994}, + review={\MR{96b:57024}}, +} + +@article{Wes, + author={J. West}, + title={Mapping {H}ilbert cube manifolds to {$ANR$}'s}, + journal={Ann. of Math.}, + volume={106}, + pages={1--18}, + year={1977}, + review={\MR{56:9534}}, +} diff --git a/Master/texmf-dist/bibtex/bib/apacite/apa5ex.bib b/Master/texmf-dist/bibtex/bib/apacite/apa5ex.bib new file mode 100644 index 00000000000..cbaeb444e8d --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/apacite/apa5ex.bib @@ -0,0 +1,2013 @@ +@string{comment = { +% \iffalse meta-comment +% +% This is file `apa5ex.bib'. +% +% Copyright 1994-2005 Erik Meijer and any individual authors listed +% elsewhere in this file. All rights reserved. +% +% This file is part of the `apacite' package. +% ------------------------------------------- +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2003/12/01 or later. +% +% The list of all files belonging to the `apacite' package, with a +% short description, is given in the file `manifest.txt'. +% +% \fi + +%% apa5ex.bib: References from the 5th edition of the Publication Manual +%% of the APA, plus a few additional references +%% Written by Erik Meijer +%% This version: [2005/06/08] + +% Entry labels are section number of the APA manual (5th ed.) +% plus a sequence number within the section. +% +% Note that this ``string'' is used as a comment, because the +% @comment construction of BibTeX does not work: `@'-sign in the +% e-mail address above would be taken as the beginning of an entry. +}} + +@misc{3.94-1, + author = {Walker}, + year = {2000}, + type = {Unknown} +} + +@misc{3.95-1, + author = {Wasserstein and Zappulla and Rosen and Gerstman and Rock}, + year = {1994}, + type = {Unknown} +} + +@misc{3.95-2, + author = {Bradley and Ramirez and Soo}, + year = {1994}, + type = {Unknown} +} + +@misc{3.95-3, + author = {Bradley and Soo and Ramirez and Brown}, + year = {1994}, + type = {Unknown} +} + +@misc{3.95-4, + author = {Kosslyn and Koenig and Barrett and Cave and Tang and Gabrieli}, + year = {1996}, + type = {Unknown} +} + +@misc{3.95-5, + author = {Kosslyn and Koenig and Gabrieli and Tang and Marsolek and Daly}, + year = {1996}, + type = {Unknown} +} + +@misc{3.95-6, + author = {Nightlinger and Littlewood}, + year = {1993}, + type = {Unknown} +} + +@book{3.95-7, + author = {J{\"{o}}reskog, K[arl] G. and S{\"{o}}rbom, D[ag]}, + year = {1989}, + title = {{LISREL} 7: {A} Guide to the Program and Applications}, + edition = {2nd}, + address = {Chicago}, + publisher = {SPSS} +} + +@misc{3.96-1, + author = {{\bibcorporate{National Institute of Mental Health}}}, + firstkey = {{National Institute of Mental Health [NIMH]}}, + key = {{NIMH}}, + year = {1999}, + type = {Unknown} +} + +@misc{3.96-2, + author = {{\bibcorporate{University of Pittsburgh}}}, + year = {1993}, + type = {Unknown} +} + +@book{3.96-3, + author = {{\bibcorporate{Koninklijke Nederlandse Schaakbond}}}, + firstkey = {{Koninklijke Nederlandse Schaakbond [KNSB]}}, + key = {{KNSB}}, + year = {2002}, + title = {Jaarverslag 2002}, + englishtitle = {Annual Report 2002}, + address = {Amsterdam}, + publisher = {Author}, + note = {Fake entry to study sorting and citing of references with + same key, but with different firstkey.} +} + +@book{3.96-4, + author = {{\bibcorporate{Koninklijke Nederlandse Schaakbond}}}, + firstkey = {{Koninklijke Nederlandse Schaakbond [KNSB]}}, + key = {{KNSB}}, + year = {2003}, + title = {Jaarverslag 2003}, + englishtitle = {Annual Report 2003}, + address = {Amsterdam}, + publisher = {Author}, + note = {Fake entry to study sorting and citing of references with + same key, but with different firstkey.} +} + +@book{3.96-5, + author = {{\bibcorporate{Koninklijke Nederlandse Schaatsbond}}}, + firstkey = {{Koninklijke Nederlandse Schaatsbond [KNSB]}}, + key = {{KNSB}}, + year = {2002}, + title = {Jaarverslag 2002}, + englishtitle = {Annual Report 2002}, + address = {Amsterdam}, + publisher = {Author}, + note = {Fake entry to study sorting and citing of references with + same key, but with different firstkey.} +} + +@book{3.96-6, + author = {{\bibcorporate{Koninklijke Nederlandse Schaatsbond}}}, + firstkey = {{Koninklijke Nederlandse Schaatsbond [KNSB]}}, + key = {{KNSB}}, + year = {2003}, + title = {Jaarverslag 2003}, + englishtitle = {Annual Report 2003}, + address = {Amsterdam}, + publisher = {Author}, + note = {Fake entry to study sorting and citing of references with + same key, but with different firstkey.} +} + +@magazine{3.97-1, + key = {{\APACciteatitle{Study Finds}}}, + year = {1982}, + month = apr, + title = {Study Finds Free Care Used More}, + journal = {{APA} Monitor}, + pages = {14} +} + +@book{3.97-2, + year = {1979}, + title = {College Bound Seniors}, + address = {Princeton, NJ}, + publisher = {College Board Publications} +} + +@misc{3.97-3, + author = {Anonymous}, + year = {1998}, + type = {Unknown} +} + +@newspaper{3.97-4, + year = {2002}, + month = mar, + day = {3}, + title = {Editorial}, + journal = {The Edited Newspaper}, + pages = {2}, + note = {Fake entry to study sorting and citing of references without + author, but with the same title.} +} + +@newspaper{3.97-5, + year = {2003}, + month = feb, + day = {12}, + title = {Editorial}, + journal = {The Edited Newspaper}, + pages = {2}, + note = {Fake entry to study sorting and citing of references without + author, but with the same title.} +} + +@newspaper{3.97-6, + year = {2003}, + month = jan, + day = {24}, + title = {Editorial}, + journal = {The Edited Newspaper}, + pages = {2}, + note = {Fake entry to study sorting and citing of references without + author, but with the same title.} +} + +@book{3.98-1, + author = {Luce, R. Duncan}, + year = {1959}, + title = {Individual Choice Behavior}, + address = {New York}, + publisher = {Wiley} +} + +@misc{3.98-2, + author = {Luce, P. A.}, + year = {1986}, + type = {Unknown} +} + +@misc{3.98-3, + author = {Goldberg, J. M. and Neff}, + year = {1961}, + type = {Unknown} +} + +@misc{3.98-4, + author = {Goldberg, M. E. and Wurtz}, + year = {1972}, + type = {Unknown} +} + +@misc{3.99-1, + author = {Edeline and Weinberger}, + year = {1991}, + type = {Unknown} +} + +@misc{3.99-2, + author = {Edeline and Weinberger}, + year = {1993}, + type = {Unknown} +} + +@misc{3.99-3, + author = {Gogel}, + year = {1984}, + type = {Unknown} +} + +@misc{3.99-4, + author = {Gogel}, + year = {1990}, + type = {Unknown} +} + +@misc{3.99-5, + author = {Gogel}, + year = {\BIP}, + type = {Unknown} +} + +@misc{3.99-6, + author = {Johnson}, + year = {1991}, + title = {Aaa} +} + +@misc{3.99-7, + author = {Johnson}, + year = {1991}, + title = {Bbb} +} + +@misc{3.99-8, + author = {Johnson}, + year = {1991}, + title = {Ccc} +} + +@misc{3.99-9, + author = {Singh}, + year = {1983}, + type = {Unknown} +} + +@misc{3.99-10, + author = {Singh}, + year = {\BIP}, + title = {Aaa} +} + +@misc{3.99-11, + author = {Singh}, + year = {\BIP}, + title = {Bbb} +} + +@misc{3.99-12, + author = {Balda}, + year = {1980}, + type = {Unknown} +} + +@misc{3.99-13, + author = {Kamil}, + year = {1988}, + type = {Unknown} +} + +@misc{3.99-14, + author = {Pepperberg and Funk}, + year = {1990}, + type = {Unknown} +} + +@misc{3.99-15, + author = {Minor}, + year = {2001}, + type = {Unknown} +} + +@misc{3.99-16, + author = {Adams}, + year = {1999}, + type = {Unknown} +} + +@misc{3.99-17, + author = {Storandt}, + year = {1997}, + type = {Unknown} +} + +@misc{3.100-1, + author = {Author}, + year = {\bibnodate}, + type = {Unknown}, + note = {no example, but rule given in text} +} + +@book{3.100-2, + author = {Aristotle}, + year = {1931}, + title = {Unknown}, + translator = {Someone}, + originalyear = {\bibnodate} +} + +@book{3.100-3, + author = {James}, + year = {1983}, + title = {Unknown}, + originalyear = {1890} +} + +@misc{3.101-1, + author = {Cheek and Buss}, + year = {1981}, + type = {Unknown} +} + +@misc{3.101-2, + author = {Shimamura}, + year = {1989}, + type = {Unknown} +} + +@misc{3.101-3, + author = {Myers}, + year = {2000}, + type = {Unknown} +} + +@misc{3.101-4, + author = {Beutler}, + year = {2000}, + type = {Unknown} +} + +@misc{3.103-1, + author = {Hashtroudi and Chrosniak and Schwartz}, + year = {1991}, + type = {Unknown} +} + +@misc{4.04-t1, + author = {Brown, J. R.}, + year = {\bibnodate}, + type = {Unknown} +} + +@misc{4.04-t2, + author = {Browning, A. R.}, + year = {\bibnodate}, + type = {Unknown} +} + +@misc{4.04-t3, + author = {MacArthur}, + year = {\bibnodate}, + type = {Unknown} +} + +@misc{4.04-t4, + author = {McAllister}, + year = {\bibnodate}, + type = {Unknown} +} + +@misc{4.04-t5, + author = {MacNeil}, + year = {\bibnodate}, + type = {Unknown} +} + +@misc{4.04-t6, + author = {M'Carthy}, + year = {\bibnodate}, + type = {Unknown} +} + +@misc{4.04-t7, + author = {DeBase}, + year = {\bibnodate}, + type = {Unknown} +} + +@misc{4.04-t8, + author = {De Vries, J.}, + year = {\bibnodate}, + type = {Unknown} +} + +@misc{4.04-t9, + author = {von Helmholtz, H. L. F.}, + year = {\bibnodate}, + type = {Unknown} +} + +@article{4.04-t10, + year = {2003}, + title = {{\APACSortNoop{Two-Thousand and Three}}2003 Hottest Summer Ever}, + journal = {Journal of Meteorology}, + note = {This is a fake entry, used for didactical purposes.} +} + +@misc{4.04-1, + author = {Hewlett, L. S.}, + year = {1996}, + type = {Unknown} +} + +@misc{4.04-2, + author = {Hewlett, L. S.}, + year = {1999}, + type = {Unknown} +} + +@misc{4.04-3, + author = {Alleyne, R. L.}, + year = {2001}, + type = {Unknown} +} + +@misc{4.04-4, + author = {Alleyne, R. L. and Evans, A. J.}, + year = {1999}, + type = {Unknown} +} + +@misc{4.04-5, + author = {Gosling, J. R. and Jerald, K. and Belfar, S. F.}, + year = {2000}, + type = {Unknown} +} + +@misc{4.04-6, + author = {Gosling, J. R. and Tevlin, D. F.}, + year = {1996}, + type = {Unknown} +} + +@misc{4.04-7, + author = {Hayward, D. and Firsching, A. and Brown, J.}, + year = {1999}, + type = {Unknown} +} + +@misc{4.04-8, + author = {Hayward, D. and Firsching, A. and Smigel, J.}, + year = {1999}, + type = {Unknown} +} + +@misc{4.04-9, + author = {Cabading, J. R. and Wright, K.}, + year = {2000}, + type = {Unknown} +} + +@misc{4.04-10, + author = {Cabading, J. R. and Wright, K.}, + year = {2001}, + type = {Unknown} +} + +@article{4.04-11, + author = {Baheti, J. R.}, + year = {2001}, + title = {Control {\ldots}} +} + +@article{4.04-12, + author = {Baheti, J. R.}, + year = {2001}, + title = {Roles of {\ldots}} +} + +@misc{4.04-13, + author = {Mathur, A. L. and Wallston, J.}, + year = {1999}, + type = {Unknown} +} + +@misc{4.04-14, + author = {Mathur, S. E. and Ahlers, R. J.}, + year = {1998}, + type = {Unknown} +} + +@book{4.05-1, + author = {Bandura, A. J.}, + year = {1977}, + title = {Social Learning Theory}, + address = {Englewood Cliffs, NJ}, + publisher = {Prentice Hall} +} + +@article{4.05-2, + author = {Bretschneider, J. G. and McCoy, N. L.}, + year = {1968}, + title = {Sexual Interest and Behavior in Healthy + 80- to 102-Year-Olds}, + journal = {Archives of Sexual Behavior}, + volume = {14}, + pages = {343--350} +} + +@article{4.08-1, + author = {Kernis, M. H. and Cornell, D. P. and Sun, C.-R. + and Berry, A. and Harlow, T.}, + year = {1993}, + title = {There's More to Self-Esteem than Whether it is High + or Low: {T}he Importance of Stability of Self-Esteem}, + journal = {Journal of Personality and Social Psychology}, + volume = {65}, + pages = {1190--1204} +} + +@book{4.08-2, + editor = {Robinson, D. N.}, + year = {1992}, + title = {Social Discourse and Moral Judgment}, + address = {San Diego, CA}, + publisher = {Academic Press} +} + +@misc{4.08-3, + author = {Bulatao, E. {\bibliteral{(with Winford, C. A.)}}}, + year = {\bibnodate}, + type = {Unknown} +} + +@article{4.09-1, + author = {Fowers, B. J. and Olson, D. H.}, + year = {1993}, + title = {{ENRICH} {M}arital {S}atisfaction {S}cale: + {A} Brief Research and Clinical Tool}, + journal = {Journal of Family Psychology}, + volume = {7}, + pages = {176--185} +} + +@article{4.10-1, + author = {Deutsch, F. M. and Lussier, J. B. and Servis, L. J.}, + year = {1993}, + title = {Husbands At Home: {P}redictors of Paternal Participation + in Childcare and Housework}, + journal = {Journal of Personality and Social Psychology}, + volume = {65}, + pages = {1154--1166} +} + +@incollection{4.10-2, + author = {O'Neil, J. M. and Egan, J.}, + year = {1992}, + title = {Men's and Women's Gender Role Journeys: + {M}etaphor for Healing, Transition, and Transformation}, + editor = {Wainrib, B. R.}, + booktitle = {Gender Issues Across the Life Cycle}, + pages = {107--123}, + address = {New York}, + publisher = {Springer} +} + +@article{4.11-1, + author = {Buss, D. M. and Schmitt, D. P.}, + year = {1993}, + title = {Sexual Strategies Theory: {A}n Evolutionary Perspective + on Human Mating}, + journal = {Psychological Review}, + volume = {100}, + pages = {204--232} +} + +@magazine{4.11-2, + author = {Henry, III, W. A.}, + year = {1990}, + month = apr, + day = {9}, + title = {Beyond the Melting Pot}, + journal = {Time}, + volume = {135}, + pages = {28--31} +} + +@book{4.12-1, + author = {Saxe, G. B.}, + year = {1991}, + title = {Cultural and Cognitive Development: {S}tudies in + Mathematical Understanding}, + address = {Hillsdale, NJ}, + publisher = {Erlbaum} +} + +@incollection{4.13-1, + author = {Baker, F. M. and Lightfoot, O. B.}, + year = {1993}, + title = {Psychiatric Care of Ethnic Elders}, + editor = {Gaw, A. C.}, + booktitle = {Culture, Ethnicity, and Mental Illness}, + pages = {517--552}, + address = {Washington, DC}, + publisher = {American Psychiatric Press} +} + +@incollection{4.13-2, + author = {Merikle, Philip M.}, + year = {2000}, + title = {Subliminal Perception}, + editor = {Kazdin, Alan E. and Blanchard, Edward B. and + Bootzin, Richard R. and Bower, Gordon and + Close Conoley, Jane and Deaux, Kay and Fox, Ronald E. and + Harmon, Lenore W. and Howell, William C. and + Marsella, Anthony J. and Price, Richard H. and + Roediger, III, Henry L. and Rosenthal, Robert and + Schmitt, Neal W. and Singer, Jerome L. and Squire, Larry R. and + Zahn-Waxler, Carolyn}, + booktitle = {Encyclopedia of Psychology}, + volume = {7}, + pages = {497--499}, + address = {New York}, + publisher = {Oxford University Press} +} + +@misc{4.15-1, + key = {{\APACcitebtitle{Electronic Reference Formats}}}, + title = {Electronic Reference Formats Recommended by the + {A}merican {P}sychological {A}ssociation}, + year = {2000}, + month = oct, + day = {12}, + howpublished = {Retrieved October 23, 2000, from + \url{http://www.apa.org/journals/webref.html}\bibnodot{.}} +} + +@article{4.15-2, + author = {Eid, M. and Langeheine, R.}, + year = {1999}, + title = {The Measurement of Consistency and Occasion Specificity + with Latent Class Models: {A} New Model and its + Application to the Measurement of Affect}, + journal = {Psychological Methods}, + volume = {4}, + pages = {100--116}, + howpublished = {Retrieved November 19, 2000, from the PsycARTICLES database} +} + +@string{comment = { +% +% The rest is from section 4.16. Section number is omitted, +% but A-I are used instead. For the numbered examples, these +% letters are also omitted in favor of ``ex''. +% +}} + +@article{A-1, + author = {Herman, L. M. and Kuczaj, III, S. A. and Holder, M. D.}, + year = {1993}, + title = {Responses to Anomalous Gestural Sequences by a + Language-Trained Dolphin: {E}vidence for Processing + of Semantic Relations and Syntactic Information}, + journal = {Journal of Experimental Psychology: General}, + volume = {122}, + pages = {184--194} +} + +@article{ex1, + author = {Mellers, B. A.}, + year = {2000}, + title = {Choice and the Relative Pleasure of Consequences}, + journal = {Psychological Bulletin}, + volume = {126}, + pages = {910--924} +} + +@article{ex2, + author = {Klimoski, R. and Palmer, S.}, + year = {1993}, + title = {The {ADA} and the Hiring Process in Organizations}, + journal = {Consulting Psychology Journal: Practice and Research}, + volume = {45}, + number = {2}, + pages = {10--36} +} + +@article{ex3, + author = {Saywitz, K. J. and Mannarino, A. P. and Berliner, L. + and Cohen, J. A.}, + year = {2000}, + title = {Treatment for Sexually Abused Children and Adolescents}, + journal = {American Psychologist}, + volume = {55}, + pages = {1040--1049} +} + +@article{ex4, + author = {Wolchik, S. A. and West, S. G. and Sandler, I. N. and + Tein, J. and Coatsworth, D. and Lengua, L. and others}, + year = {2000}, + title = {An Experimental Evaluation of Theory-Based Mother and + Mother-Child Programs for Children of Divorce}, + journal = {Journal of Consulting and Clinical Psychology}, + volume = {68}, + pages = {843--856} +} + +@article{ex4-2, + author = {Swait, Joffre and Adamowicz, Wiktor and Hanemann, Michael + and Diederich, Adele and Krosnick, Jon and Layton, David + and Provencher, William and Schkade, David and Tourangeau, Roger}, + year = {2002}, + title = {Context Dependence and Aggregation + in Disaggregate Choice Analysis}, + journal = {Marketing Letters}, + volume = {13}, + pages = {195--205} +} + +@article{ex5, + author = {Zuckerman, M. and Kieffer, S. C.}, + year = {\BIP}, + title = {Race Differences in Face-ism: {D}oes Facial Prominence + Imply Dominance?}, + journal = {Journal of Personality and Social Psychology} +} + +@magazine{ex6, + author = {Kandel, E. R. and Squire, L. R.}, + year = {2000}, + month = nov, + day = {10}, + title = {Neuroscience: {B}reaking Down Scientific Barriers to the + Study of Brain and Mind}, + journal = {Science}, + volume = {290}, + pages = {1113--1120} +} + +@article{ex7, + author = {Brown, L. S.}, + year = {1993}, + month = {Spring}, + title = {Antidomination Training as a Central Component of + Diversity in Clinical Psychology Education}, + journal = {The Clinical Psychologist}, + volume = {46}, + pages = {83--87} +} + +@article{ex8, + year = {1993}, + month = {August/September}, + title = {The New Health-Care Lexicon}, + journal = {Copy Editor}, + volume = {4}, + pages = {1--2} +} + +@newspaper{ex9, + key = {{\APACciteatitle{New Drug}}}, + year = {1993}, + month = jul, + day = {15}, + title = {New Drug Appears to Sharply Cut Risk of Death from + Heart Failure}, + journal = {The Washington Post}, + pages = {A12} +} + +@newspaper{ex10, + author = {Schwartz, J.}, + year = {1993}, + month = sep, + day = {30}, + title = {Obesity Affects Economic, Social Status}, + journal = {The Washington Post}, + pages = {A1, A4} +} + +@newspaper{ex11, + author = {Berkowitz, A. D.}, + year = {2000}, + month = nov, + day = {24}, + title = {How to Tackle the Problem of Student Drinking}, + type = {Letter to the editor}, + journal = {The Chronicle of Higher Education}, + pages = {B20} +} + +@article{ex12, + editor = {Barlow, D. H.}, + year = {1991}, + title = {Diagnoses, Dimensions, and \emph{DSM-IV}: + {T}he Science of Classification}, + type = {Special issue}, + journal = {Journal of Abnormal Psychology}, + volume = {100}, + number = {3} +} + +@article{ex13, + author = {Harris, P. L. and Kavanaugh, R. D.}, + year = {1993}, + title = {Young Children's Understanding of Pretense}, + journal = {Monographs of the Society for Research in Child Development}, + volume = {58}, + number = {1, Serial No.~231} +} + +@article{ex14, + author = {Battig, W. F. and Montague, W. E.}, + year = {1969}, + title = {Category Norms for Verbal Items in 56 Categories: + {A} Replication and Extension of the {C}onnecticut + Category Norms}, + journal = {Journal of Experimental Psychology Monographs}, + volume = {80}, + number = {3, Pt.~2} +} + +@article{ex15, + author = {Ganster, D. C. and Schaubroeck, J. and Sime, W. E. + and Mayes, B. T.}, + year = {1991}, + title = {The Nomological Validity of the {T}ype~{A} Personality + Among Employed Adults}, + type = {Monograph}, + journal = {Journal of Applied Psychology}, + volume = {76}, + pages = {143--168} +} + +@article{ex16, + author = {Woolf, N. J. and Young, S. L. and Fanselow, M. S. and + Butcher, L. L.}, + year = {1991}, + title = {{MAP}-2 Expression in Cholinoceptive Pyramidal Cells + of Rodent Cortex and Hippocampus is Altered by + {P}avlovian Conditioning}, + type = {Abstract}, + journal = {Society for Neuroscience Abstracts}, + volume = {17}, + pages = {480} +} + +@article{ex17, + author = {Nakazato, K. and Shimonaka, Y. and Homma, A.}, + year = {{\protect\bibreftext{1992}{1992/1993}}}, + title = {Cognitive Functions of Centenarians: {T}he {T}okyo + {M}etropolitan {C}entenarian {S}tudy}, + journal = {Japanese Journal of Developmental Psychology}, + volume = {3}, + pages = {9--16}, + howpublished = {Abstract obtained from + {\APACcitebtitle{PsycSCAN: Neuropsychology}}, + 1993, \emph{2}, Abstract No.~604} +} + +@article{ex18, + author = {Regier, A. A. and Narrow, W. E. and Rae, D. S.}, + year = {1990}, + title = {The Epidemiology of Anxiety Disorders: {T}he Epidemiologic + Catchment Area ({ECA}) Experience}, + journal = {Journal of Psychiatric Research}, + volume = {24}, + number = {Suppl.~2}, + pages = {3--14} +} + +@article{ex19, + author = {Fiske, S. T.}, + year = {1993}, + title = {Social Cognition and Social Perception}, + journal = {Annual Review of Psychology}, + volume = {44}, + pages = {155--194} +} + +@article{ex20, + author = {Ising, M.}, + year = {2000}, + title = {Intensit{\"{a}}tsabh{\"{a}}ngigkeit evozierter {P}otenzial im + {EEG}: {S}ind impulsive {P}ersonen {A}ugmenter oder + {R}educer?}, + englishtitle = {Intensity Dependence in Event-Related {EEG} Potentials: + {A}re Impulsive Individuals Augmenters or Reducers?}, + journal = {Zeitschrift f{\"{u}}r Differentielle und Diagnostische + Psychologie}, + volume = {21}, + pages = {208--217} +} + +@article{ex21, + author = {Stutte, H.}, + year = {1972}, + title = {Transcultural Child Psychiatry}, + journal = {Acta Paedopsychiatrica}, + volume = {38}, + number = {9}, + pages = {229--231} +} + +@article{ex22, + author = {Coltheart, M. and Curtis, B. and Atkins, P. and Haller, M.}, + year = {1993}, + title = {Models of Reading Aloud: {D}ual-Route and + Parallel-Distributed-Processing Approaches}, + journal = {Psychological Review}, + volume = {100}, + pages = {589--608} +} + +@book{B-1, + author = {Beck, C. A. J. and Sales, B. D.}, + year = {2001}, + title = {Family Mediation: {F}acts, Myths, and Future Prospects}, + address = {Washington, DC}, + publisher = {American Psychological Association} +} + +@book{ex23, + author = {Mitchell, T. R. and Larson, Jr., J. R.}, + year = {1987}, + title = {People in Organizations: {A}n Introduction to + Organizational Behavior}, + edition = {3rd}, + address = {New York}, + publisher = {McGraw-Hill} +} + +@book{ex24, + author = {{\bibcorporate{Australian Bureau of Statistics}}}, + year = {1991}, + title = {Estimated Resident Population by Age and Sex in + Statistical Local Areas, {N}ew {S}outh {W}ales, {J}une 1990}, + number = {3209.1}, + address = {Canberra, Australian Capital Territory}, + publisher = {Author} +} + +@book{ex25, + editor = {Gibbs, J. T. and Huang, L. N.}, + year = {1991}, + title = {Children of Color: {P}sychological Interventions with + Minority Youth}, + address = {San Francisco}, + publisher = {Jossey-Bass} +} + +@book{ex25-t1, + author = {Vygotsky, L. S.}, + year = {1978}, + title = {Mind in Society: {T}he Development of Higher Mental + Processes}, + editor = {Rice, Edgar}, + translator = {Rice, Edgar}, + address = {Cambridge, MA}, + publisher = {Harvard University Press}, + originalyear = {1930, 1933, 1935} +} + +@book{ex25-t2, + author = {J{\"{o}}reskog, Karl G. and S{\"{o}}rbom, Dag}, + year = {1979}, + title = {Advances in Factor Analysis + and Structural Equation Models}, + editor = {Magidson, Jay}, + address = {Cambridge, MA}, + publisher = {Abt Books} +} + +@book{ex26, + year = {1993}, + title = {Merriam-{W}ebster's Collegiate Dictionary}, + edition = {10th}, + address = {Springfield, MA}, + publisher = {Merriam-Webster} +} + +@book{ex27, + author = {Rosenthal, R.}, + year = {1987}, + title = {Meta-Analytic Procedures for Social Research}, + edition = {Rev.{}}, + address = {Newbury Park, CA}, + publisher = {Sage} +} + +@book{ex28, + editor = {Koch, S.}, + year = {1959--1963}, + title = {Psychology: {A} Study of Science}, + volume = {1--6}, + address = {New York}, + publisher = {McGraw-Hill} +} + +@book{ex29, + firstkey = {{American Psychiatric Association}}, + key = {{\APACcitebtitle{DSM-IV}}}, + author = {{\bibcorporate{American Psychiatric Association}}}, + year = {1994}, + title = {Diagnostic and Statistical Manual of Mental Disorders}, + edition = {4th}, + address = {Washington, DC}, + publisher = {Author} +} + +@misc{ex29-2, + author = {Americana}, + year = {\bibnodate}, + type = {Unknown}, + note = {Test for sorting of American Psychiatric Association + in \BibTeX{} and \MakeIndex{}.} +} + +@misc{ex29-3, + author = {Americans}, + year = {\bibnodate}, + type = {Unknown}, + note = {Test for sorting of American Psychiatric Association + in \BibTeX{} and \MakeIndex{}.} +} + +@book{ex30, + editor = {Sadie, S.}, + year = {1980}, + title = {The New {G}rove Dictionary of Music and Musicians}, + edition = {6th}, + volume = {1--20}, + address = {London}, + publisher = {Macmillan} +} + +@book{ex30-2, + editor = {Kazdin, Alan E. and Blanchard, Edward B. and + Bootzin, Richard R. and Bower, Gordon and + Close Conoley, Jane and Deaux, Kay and Fox, Ronald E. and + Harmon, Lenore W. and Howell, William C. and + Marsella, Anthony J. and Price, Richard H. and + Roediger, III, Henry L. and Rosenthal, Robert and + Schmitt, Neal W. and Singer, Jerome L. and Squire, Larry R. and + Zahn-Waxler, Carolyn}, + year = {2000}, + title = {Encyclopedia of Psychology}, + address = {New York}, + publisher = {Oxford University Press} +} + +@book{ex31, + author = {Piaget, J. and Inhelder, B.}, + year = {1951}, + title = {La Gen{\`{e}}se de l'Id{\'{e}}e de Hasard chez l'Enfant}, + englishtitle = {The Origin of the Idea of Chance in the Child}, + address = {Paris}, + publisher = {Presses Universitaires de France} +} + +@book{ex32, + author = {Laplace, P.-S.}, + year = {1951}, + title = {A Philosophical Essay on Probabilities}, + translator = {Truscott, F. W. and Emory, F. L.}, + address = {New York}, + publisher = {Dover}, + originalyear = {1814} +} + +@book{ex33, + author = {{\bibcorporate{Research and Training Center on + Independent Living}}}, + firstkey = {{Research and Training Center on Independent Living [RTCIL]}}, + key = {RTCIL}, + year = {1993}, + title = {Guidelines for Reporting and Writing About People + with Disabilities}, + edition = {4th}, + type = {Brochure}, + address = {Lawrence, KS}, + publisher = {Author} +} + +@incollection{B-2, + author = {Massaro, D.}, + year = {1992}, + title = {Broadening the Domain of the Fuzzy Logical Model of Perception}, + editor = {Pick, Jr., H. L. and van den Broek, P. and Knill, D. C.}, + booktitle = {Cognition: {C}onceptual and Methodological Issues}, + pages = {51--84}, + address = {Washington, DC}, + publisher = {American Psychological Association} +} + +@incollection{ex34, + author = {Bjork, R. A.}, + year = {1989}, + title = {Retrieval Inhibition as an Adaptive Mechanism in Human Memory}, + editor = {Roediger, III, H. L. and Craik, F. I. M.}, + booktitle = {Varieties of Memory \& Consciousness}, + pages = {309--330}, + address = {Hillsdale, NJ}, + publisher = {Erlbaum} +} + +@incollection{ex35, + author = {Auerbach, J. S.}, + year = {\BIP}, + title = {The Origins of Narcissism and Narcissistic Personality + Disorder: {A} Theoretical and Empirical Reformulation}, + editor = {Masling, J. M. and Bornstein, R. F.}, + booktitle = {Empirical Studies of Psychoanalytic Theories: + {V}ol.~4. {P}sychoanalytic Perspectives on Psychopathology}, + address = {Washington, DC}, + publisher = {American Psychological Association} +} + +@incollection{ex36, + author = {Maccoby, E. E. and Martin, J.}, + year = {1983}, + title = {Socialization in the Context of the Family: + {P}arent-Child Interaction}, + editor = {Mussen (Series Ed.), P. H. and + Hetherington{\bibeditortype{Vol.\ Ed.}}, E. M.}, + booktitle = {Handbook of Child Psychology: + {V}ol.~4. {S}ocialization, Personality, and Social Development}, + edition = {4th}, + pages = {1--101}, + address = {New York}, + publisher = {Wiley} +} + +@incollection{ex37, + author = {Davydov, V. V.}, + year = {1972}, + title = {De Introductie van het Begrip Grootheid in de Eerste + Klas van de Basisschool: {E}en Experimenteel Onderzoek}, + englishtitle = {The Introduction of the Concept of Quantity in the + First Grade of the Primary School: {A}n Experimental Study}, + editor = {Van Parreren, C. F. and Carpay, J. A. M.}, + booktitle = {Sovjetpsychologen aan het Woord}, + pages = {227--289}, + address = {Groningen, The Netherlands}, + publisher = {Wolters-Noordhoff} +} + +@incollection{ex38, + author = {Bergmann, P. G.}, + year = {1993}, + title = {Relativity}, + booktitle = {The New Encyclopaedia {B}ritannica}, + volume = {26}, + pages = {501--508}, + address = {Chicago}, + publisher = {Encyclopaedia Britannica} +} + +@incollection{ex39, + author = {Freud, Sigmund}, + year = {1961}, + title = {The Ego and the Id}, + editor = {Strachey, J.}, + translator = {Strachey, J.}, + booktitle = {The Standard Edition of the Complete Psychological + Works of {S}igmund {F}reud}, + volume = {19}, + pages = {3--66}, + address = {London}, + publisher = {Hogarth Press}, + originalyear = {1923} +} + +@incollection{ex40, + author = {Piaget, J.}, + year = {1988}, + title = {Extracts from {P}iaget's Theory}, + translator = {Gellerier, G. and Langer, J.}, + editor = {Richardson, K. and Sheldon, S.}, + booktitle = {Cognitive Development to Adolescence: {A} Reader}, + pages = {3--18}, + address = {Hillsdale, NJ}, + publisher = {Erlbaum}, + originalbooktitle = {Manual of Child Psychology}, + originalpages = {703--732}, + originaleditor = {Mussen, P. H.}, + originalyear = {1970}, + originaladdress = {New York}, + originalpublisher = {Wiley} +} + +@techreport{C-1, + author = {Mazzeo, J. and Druesne, B. and Raffeld, P. C. + and Checketts, K. T. and Muhlstein, A.}, + year = {1991}, + title = {Comparability of Computer and Paper-and-Pencil Scores + for Two {CLEP} General Examinations}, + type = {College Board Rep.}, + number = {91-5}, + address = {Princeton, NJ}, + institution = {Educational Testing Service} +} + +@techreport{ex41, + author = {{\bibcorporate{National Institute of Mental Health}}}, + firstkey = {{National Institute of Mental Health [NIMH]}}, + key = {{NIMH}}, + year = {1990}, + title = {Clinical Training in Serious Mental Illness}, + type = {{DHHS} Publication}, + number = {ADM 90-1679}, + address = {Washington, DC}, + institution = {U.S. Government Printing Office} +} + +@techreport{ex42, + author = {Osgood, D. W. and Wilson, J. K.}, + year = {1990}, + title = {Covariation of Adolescent Health Problems}, + type = {\bibnotype}, + address = {Lincoln}, + institution = {University of Nebraska}, + note = {NTIS No.{} PB~91-154~377/AS} +} + +@techreport{ex43, + author = {Mead, J. V.}, + year = {1992}, + title = {Looking at Old Photographs: {I}nvestigating the Teacher + Tales that Novice Teachers Bring with Them}, + type = {Report}, + number = {NCRTL-RR-92-4}, + address = {East Lansing, MI}, + institution = {National Center for Research on Teacher Learning}, + note = {ERIC Document Reproduction Service No.{} ED346082} +} + +@techreport{ex44, + author = {{\bibcorporate{U.S. Department of Health and + Human Services}}}, + firstkey = {{U.S. Department of Health and Human Services [DHHS]}}, + key = {{DHHS}}, + year = {1992}, + title = {Pressure Ulcers in Adults: {P}rediction and Prevention}, + type = {AHCPR Publication}, + number = {92-0047}, + address = {Rockville, MD}, + institution = {Author} +} + +@intechreport{ex45, + author = {Matthews, K. A.}, + year = {1985}, + title = {Assessment of {T}ype~{A} Behavior, Anger, and Hostility + in Epidemiologic Studies of Cardiovascular Disease}, + editor = {Ostfield, A. M. and Eaker, E. D.}, + booktitle = {Measuring Psychological Variables in Epidemiologic Studies + of Cardiovascular Disease}, + type = {NIH Publication}, + number = {85-2270}, + pages = {153--183}, + address = {Washington, DC}, + institution = {U.S. Department of Health and Human Services} +} + +@techreport{ex46, + author = {Broadhurst, R. G. and Maller, R. A.}, + year = {1991}, + title = {Sex Offending and Recidivism}, + number = {3}, + address = {Nedlands}, + institution = {University of Western Australia, Crime Research Centre} +} + +@techreport{ex47, + editor = {Shuker, R. and Openshaw, R. and Soler, J.}, + year = {1990}, + title = {Youth, Media, and Moral Panic in {N}ew {Z}ealand: + {F}rom Hooligans to Video Nasties}, + type = {Delta Research Monograph}, + number = {11}, + address = {Palmerston North, New Zealand}, + institution = {Massey University, Department of Education} +} + +@techreport{ex48, + author = {{\bibcorporate{Employee Benefit Research Institute}}}, + firstkey = {{Employee Benefit Research Institute [EBRI]}}, + key = {{EBRI}}, + year = {1992}, + month = feb, + title = {Sources of Health Insurance and Characteristics of the + Uninsured}, + type = {Issue Brief}, + number = {123}, + address = {Washington, DC}, + institution = {Author} +} + +@incollection{ex49, + author = {Deci, E. L. and Ryan, R. M.}, + year = {1991}, + title = {A Motivational Approach to Self: + {I}ntegration in Personality}, + editor = {Dienstbier, R.}, + booktitle = {Nebraska {S}ymposium on {M}otivation: {V}ol.~38. + {P}erspectives on Motivation}, + pages = {237--288}, + address = {Lincoln}, + publisher = {University of Nebraska Press} +} + +@article{ex50, + author = {Cynx, J. and Williams, H. and Nottebohm, F.}, + year = {1992}, + title = {Hemispheric Differences in Avian Song Discrimination}, + journal = {Proceedings of the National Academy of Sciences, USA}, + volume = {89}, + pages = {1372--1375} +} + +@lecture{ex51, + author = {Lichstein, K. L. and Johnson, R. S. and Womack, T. D. + and Dean, J. E. and Childers, C. K.}, + year = {1990}, + month = jun, + title = {Relaxation Therapy for Polypharmacy Use in Elderly + Insomniacs and Noninsomniacs}, + chair = {Rosenthal, T. L.}, + symposium = {Reducing Medication in Geriatric Populations}, + howpublished = {Symposium conducted at the meeting of the First + International Congress of Behavioral Medicine, + Uppsala, Sweden} +} + +@lecture{ex52, + author = {Lanktree, C. and Briere, J.}, + year = {1991}, + month = jan, + title = {Early Data on the {T}rauma {S}ymptom {C}hecklist + for {C}hildren ({TSC-C})}, + howpublished = {Paper presented at the meeting of the American + Professional Society on the Abuse of Children, + San Diego, CA} +} + +@lecture{ex53, + author = {Ruby, J. and Fulton, C.}, + year = {1993}, + month = jun, + title = {Beyond Redlining: {E}diting Software that Works}, + howpublished = {Poster session presented at the annual meeting of the + Society for Scholarly Publishing, Washington, DC} +} + +@phdthesis{ex54, + author = {Bower, D. L.}, + year = {1993}, + title = {Employee Assistant Programs Supervisory Referrals: + {C}haracteristics of Referring and Nonreferring + Supervisors}, + journal = {Dissertation Abstracts International}, + volume = {54}, + number = {01}, + pages = {534B}, + note = {UMI No.{} 9315947} +} + +@phdthesis{ex55, + author = {Ross, D. F.}, + year = {1990}, + title = {Unconscious Transference and Mistaken Identity: {W}hen + a Witness Misidentifies a Familiar but Innocent Person + from a Lineup}, + school = {Cornell University}, + originalyear = {1990}, + journal = {Dissertation Abstracts International}, + volume = {51}, + pages = {417} +} + +@phdthesis{ex56, + author = {Wilfley, D. E.}, + year = {1989}, + title = {Interpersonal Analyses of Bulimia: {N}ormalweight + and Obese}, + school = {University of Missouri}, + address = {Columbia} +} + +@mastersthesis{ex57, + author = {Almeida, D. M.}, + year = {1990}, + title = {Fathers' Participation in Family Work: {C}onsequences + for Fathers' Stress and Father-Child Relations}, + school = {University of Victoria}, + address = {Victoria, British Columbia, Canada} +} + +@unpublished{ex58, + author = {Stinson, C. and Milbrath, C. and Reidbord, S. and Bucci, W.}, + year = {1992}, + title = {Thematic Segmentation of Psychotherapy Transcripts for + Convergent Analyses}, + howpublished = {Unpublished manuscript} +} + +@unpublished{ex59, + author = {D{\'{e}}pret, E. F. and Fiske, S. T.}, + year = {1993}, + title = {Perceiving the Powerful: {I}ntriguing Individuals Versus + Threatening Groups}, + howpublished = {Unpublished manuscript}, + organization = {University of Massachusetts at Amherst} +} + +@unpublished{ex60, + author = {McIntosh, D. N.}, + year = {1993}, + title = {Religion as Schema, with Implications for the Relation + Between Religion and Coping}, + howpublished = {Manuscript submitted for publication} +} + +@unpublished{ex61, + author = {Bordi, F. and LeDoux, J. E.}, + year = {1993}, + type = {Auditory response latencies in rat auditory cortex}, + howpublished = {Unpublished raw data} +} + +@misc{ex62, + editor = {Klombers, N.}, + year = {1993}, + month = {Spring}, + title = {{ADAA} {R}eporter}, + note = {Available from the Anxiety Disorders Association of + America, 6000 Executive Boulevard, Suite 513, + Rockville, MD 20852} +} + +@article{G-1, + author = {Mroczek, D. K.}, + year = {2000}, + title = {The Emerging Study of Midlife}, + type = {Review of the book {\APACcitebtitle{Life in the middle: + Psychological and social development in middle age}}}, + journal = {Contemporary Psychology: APA Review of Books}, + volume = {45}, + pages = {482--485} +} + +@article{ex63, + author = {Schatz, B. R.}, + year = {2000}, + title = {Learning by Text or Context?}, + type = {Review of the book + {\APACcitebtitle{The social life of information}}}, + journal = {Science}, + volume = {290}, + pages = {1304} +} + +@article{ex64, + author = {Kraus, S. J.}, + year = {1992}, + title = {Visions of Psychology: {A} Videotext of Classic Studies}, + type = {Review of the motion picture + {\APACcitebtitle{Discovering Psychology}}}, + journal = {Contemporary Psychology}, + volume = {37}, + pages = {1146--1147} +} + +@misc{ex65-1, + author = {Scorsese, M. {\bibliteral{(Producer)}\protect\bibskipbracenodot} + and Lonergan, K. {\bibliteral{(Writer/Director)}}}, + year = {2000}, + title = {You Can Count On Me}, + type = {Motion picture}, + address = {United States}, + publisher = {Paramount Pictures} +} + +@misc{ex65-2, + author = {Harrison, J. {\bibliteral{(Producer)}\protect\bibskipbracenodot} + and Schmiechen, R. {\bibliteral{(Director)}}}, + year = {1992}, + title = {Changing Our Minds: {T}he Story of {E}velyn {H}ooker}, + type = {Motion picture}, + note = {Available from Changing Our Minds, Inc., 170 West End + Avenue, Suite 25R, New York, NY 10023} +} + +@misc{ex65-3, + author = {{\bibcorporate{American Psychological Association (Producer)}}}, + firstkey = {{American Psychological Association [APA]}}, + key = {{APA}}, + year = {2000}, + title = {Responding Therapeutically to Patient Expressions of + Sexual Attraction: {A} Stimulus Training Tape}, + type = {Motion picture}, + note = {Available from the American Psychological Association, + 750 First Street, NE, Washington, DC 20002-4242} +} + +@misc{ex66, + author = {Crystal, L. {\bibliteral{(Executive Producer)}}}, + year = {1993}, + month = oct, + day = {11}, + title = {The {M}ac{N}eil/{L}ehrer News Hour}, + type = {Television broadcast}, + address = {New York and Washington, DC}, + publisher = {Public Broadcasting Service} +} + +@misc{ex67, + editor = {Miller, {\bibliteral{R\protect\bibeditortype{Producer}}}}, + year = {1989}, + title = {The Mind}, + type = {Television series}, + address = {New York}, + publisher = {WNET} +} + +@incollection{ex68, + author = {Hall, B. {\bibliteral{(Writer)}\protect\bibskipbracenodot} + and Bender, J. {\bibliteral{(Director)}}}, + year = {1991}, + title = {The Rules of the Game}, + type = {Television series episode}, + editor = {Sander{\bibeditortype{Producer}}, J.}, + booktitle = {I'll Fly Away}, + address = {New York}, + publisher = {New York Broadcasting Company} +} + +@incollection{ex69-1, + key = {{\protect\bibsong{Shocked}{1992}{Over the + Waterfall}{track~5}}}, + author = {Shocked, Michelle}, + year = {1992}, + title = {Over the Waterfall{\bibInstring{\BOn}}}, + booktitle = {Arkansas Traveler {\upshape[\uppercase{CD}]}}, + address = {New York}, + publisher = {PolyGram Music} +} + +@incollection{ex69-2, + key = {{\protect\bibsong{Goodenough}{1982}{Tails + and Trotters}{track~5}}}, + author = {Goodenough, J. B.}, + year = {1982}, + title = {Tails and Trotters{\bibInstring{\BOn}}}, + type = {Recorded by G. Bok, A. Mayo, \& E. Trickett}, + booktitle = {And So Will We Yet {\upshape[\uppercase{CD}]}}, + address = {Sharon, CT}, + publisher = {Folk-Legacy Records}, + note = {1990} +} + +@misc{ex70, + author = {Costa, Jr. {\bibliteral{(Speaker)}}, P. T.}, + year = {1988}, + title = {Personality, Continuity, and Changes of Adult Life}, + type = {Cassette Recording}, + number = {207-433-88A-B}, + address = {Washington, DC}, + publisher = {American Psychological Association} +} + +@article{ex71-1, + author = {VandenBos, G. and Knapp, S. and Doe, J.}, + year = {2001}, + title = {Role of Reference Elements in the Selection of Resources + by Psychology Undergraduates}, + type = {Electronic version}, + journal = {Journal of Bibliographic Research}, + volume = {5}, + pages = {117--123} +} + +@article{ex71-2, + author = {VandenBos, G. and Knapp, S. and Doe, J.}, + year = {2001}, + title = {Role of Reference Elements in the Selection of Resources + by Psychology Undergraduates}, + journal = {Journal of Bibliographic Research}, + volume = {5}, + pages = {117--123}, + howpublished = {Retrieved October 13, 2001, from + \url{http://jbr.org/articles.html}\bibnodot{.}} +} + +@article{ex72, + author = {Fredrickson, B. L.}, + year = {2000}, + month = mar, + day = {7}, + title = {Cultivating Positive Emotions to Optimize Health + and Well-Being}, + journal = {Prevention \& Treatment}, + volume = {3}, + pages = {Article 0001a}, + howpublished = {Retrieved November 20, 2000, from + \url{http://journals.apa.org/prevention/volume3/ + pre0030001a.html}\bibnodot{.}} +} + +@article{ex73, + author = {Crow, T. J.}, + year = {2000}, + title = {Did \emph{Homo} {\emph{Sapiens}} Speciate on the + {\emph{Y}} Chromosome?}, + journal = {Psycoloquy}, + volume = {11}, + howpublished = {Retrieved March 25, 2001, from + \url{ftp://ftp.princeton.edu/harnad/Psycoloquy/2000.volume.11/ + psyc.00.11.001.language-sex-chromosomes.1.crow}\bibnodot{.}} +} + +@article{ex74, + author = {Glueckauf, R. L. and Whitton, J. and Baxter, J. and Kain, J. + and Vogelgesang, S. and Hudson, M. and others}, + year = {1998}, + month = jul, + title = {Videocounseling for Families of Rural Teens with + Epilepsy---{P}roject Update}, + journal = {Telehealth News}, + volume = {2}, + number = {2}, + howpublished = {Retrieved June 6, 2000, from + \url{http://www.telehealth.net/subscribe/newslettr_4a.html#1}\bibnodot{.}} +} + +@misc{ex75, + author = {{\bibcorporate{Greater New Milford (Ct) Area Healthy + Community 2000, + Task Force on Teen and Adolescent Issues}}}, + firstkey = {{Greater New Milford (Ct) Area Healthy Community 2000, + Task Force on Teen and Adolescent Issues [TFTAI]}}, + key = {{TFTAI}}, + year = {\bibnodate}, + title = {Who Has Time for a Family Meal? {Y}ou Do!}, + howpublished = {Retrieved October 5, 2000, from + \url{http://www.familymealtime.org}\bibnodot{.}} +} + +@incollection{ex76, + author = {{\bibcorporate{Benton Foundation}}}, + year = {1998}, + month = jul, + day = {7}, + title = {Barriers to Closing the Gap}, + booktitle = {Losing Ground Bit by Bit: {L}ow-Income Communities in the + Information Age}, + chapter = {2}, + howpublished = {Retrieved August 18, 2001, from + \url{http://www.benton.org/Library/Low-Income/ + two.html}\bibnodot{.}} +} + +@misc{ex77, + year = {\bibnodate}, + title = {{GVU}'s 8th {WWW} User Survey}, + howpublished = {Retrieved August 8, 2000, from + \url{http://www.cc.gatech.edu/gvu/user_surveys/ + survey-1997-10/}\bibnodot{.}} +} + +@misc{ex78, + author = {Chou, L. and McClintock, R. and Moretti, F. and Nix, D. H.}, + year = {1993}, + title = {Technology and Education: {N}ew Wine in New Bottles: + {C}hoosing Pasts and Imagining Educational Futures}, + howpublished = {Retrieved August 24, 2000, from Columbia University, + Institute for Learning Technologies Web site: + \url{http://www.ilt.columbia.edu/publications/papers/ + newwine1.html}\bibnodot{.}} +} + +@misc{ex79, + author = {{\bibcorporate{University of California, San Francisco, + Institute for Health and Aging}}}, + firstkey = {{University of California, San Francisco, Institute for + Health and Aging [UCSF-IHA]}}, + key = {{UCSF-IHA}}, + year = {1996}, + month = nov, + title = {Chronic Care in {A}merica: {A} 21st Century Challenge}, + howpublished = {Retrieved September 9, 2000, from the Robert Wood Johnson + Foundation Web site: + \url{http://www.rwjf.org/library/chrcare/}\bibnodot{.}} +} + +@misc{ex80, + author = {{\bibcorporate{United States Sentencing Commission}}}, + firstkey = {{United States Sentencing Commission [USSC]}}, + key = {{USSC}}, + year = {\bibnodate}, + title = {{\APACSortNoop{Nineteen Ninety-Seven}}1997 Sourcebook of + Federal Sentencing Statistics}, + howpublished = {Retrieved December 8, 1999, from + \url{http://www.ussc.gov/annrpt/1997/sbtoc97.htm}\bibnodot{.}} +} + +@misc{ex81, + author = {{\bibcorporate{Canarie, Inc.}}}, + year = {1997}, + month = sep, + day = {27}, + title = {Towards a {C}anadian Health {IWAY}: {V}ision, Opportunities + and Future Steps}, + howpublished = {Retrieved November 8, 2000, from + \url{http://www.canarie.ca/press/publications/pdf/health/ + healthvision.doc}\bibnodot{.}} +} + +@techreport{ex82, + author = {Kruschke, J. K. and Bradley, A. L.}, + year = {1995}, + title = {Extensions to the Delta Rule of Associative Learning}, + type = {Indiana University Cognitive Science Research Report}, + number = {14}, + howpublished = {Abstract retrieved October 21, 2000, from + \url{http://www.indiana.edu/~kruschke/ + deltarule_abstract.html}\bibnodot{.}} +} + +@lecture{ex83, + author = {Cutler, L. D. and Fr{\"{o}}lich, B. and Hanrahan, P.}, + year = {1997}, + month = jan, + day = {16}, + title = {Two-Handed Direct Manipulation on the Responsive + Workbench}, + howpublished = {Paper presented at the 1997 Symposium on Interactive 3D + Graphics. Abstract retrieved June 12, 2000, from + \url{http://www.graphics.stanford.edu/papers/ + twohanded/}\bibnodot{.}} +} + +@lecture{ex84, + author = {Tan, G. and Lewandowsky, S.}, + year = {1996}, + title = {A Comparison of Operator Trust in Humans Versus Machines}, + howpublished = {Paper presented at the CybErg 96 virtual conference. + Retrieved May 16, 2000, from + \url{http://www.curtin.edu.au/conference/cyberg/centre/ + outline.cgi/frame?dir=tan}\bibnodot{.}} +} + +@misc{ex85, + author = {Chalmers, D.}, + year = {2000}, + month = nov, + day = {17}, + title = {Seeing with Sound}, + type = {\bibmessage}, + number = {1}, + howpublished = {Message posted to + \url{news://sci.psychology.consciousness}\bibnodot{.}} +} + +@misc{ex86, + author = {Simons, D. J.}, + year = {2000}, + month = jul, + day = {14}, + title = {News Resources for Visual Cognition}, + type = {\bibmessage}, + number = {31}, + howpublished = {Message posted to + \url{http://groups.yahoo.com/group/visualcognition/message/ + 31}\bibnodot{.}} +} + +@misc{ex87, + author = {Hammond, T.}, + year = {2000}, + month = nov, + day = {20}, + title = {{YAHC}: {H}andle {P}arameters, {DOI} {G}enres, etc.}, + type = {\bibmessage}, + howpublished = {Message posted to Ref-Links electronic mailing list, + archived at + \url{http://www.doi.org/mail-archive/ref-link/ + msg00088.html}\bibnodot{.}} +} + +@article{ex88, + author = {Borman, W. C. and Hanson, M. A. and Oppler, S. H. and + Pulakos, E. D. and White, L. A.}, + year = {1993}, + title = {Role of Early Supervisory Experience in Supervisor Performance}, + journal = {Journal of Applied Psychology}, + volume = {78}, + pages = {443--449}, + howpublished = {Retrieved October 23, 2000, from PsycARTICLES database} +} + +@newspaper{ex89, + author = {Hilts, P. J.}, + year = {1999}, + month = feb, + day = {16}, + title = {In Forecasting Their Emotions, Most People Flunk Out}, + journal = {New York Times}, + howpublished = {Retrieved November 21, 2000, from + \url{http://www.nytimes.com}\bibnodot{.}} +} + +@article{ex90, + author = {Fournier, M. and {\lowercase{D}}e Ridder, D. and Bensing, J.}, + year = {1999}, + title = {Optimism and Adaptation to Multiple Sclerosis: {W}hat Does + Optimism Mean?}, + journal = {Journal of Behavioral Medicine}, + volume = {22}, + pages = {303--326}, + howpublished = {Abstract retrieved October 23, 2000, from PsycINFO database} +} + +@techreport{ex91, + author = {{\bibcorporate{U.S. General Accounting Office}}}, + year = {1997}, + month = feb, + title = {Telemedicine: {F}ederal Strategy is Needed to Guide Investments}, + type = {Publication}, + number = {GAO/NSAID/HEHS-97-67}, + howpublished = {Retrieved September 15, 2000, from General Accounting Office + Reports Online via GPO Access: + \url{http://www.access.gpo.gov/su_docs/aces/aces160.shtml?/ + gao/index.html}\bibnodot{.}} +} + +@misc{ex92, + author = {Miller, M. E.}, + year = {1993}, + title = {The {I}nteractive {T}ester ({V}ersion~4.0)}, + type = {\bibcomputersoftware}, + address = {Westminster, CA}, + publisher = {Psytek Services} +} + +@misc{ex93, + author = {Schwarzer, R.}, + year = {1989}, + title = {Statistics Software for Meta-Analysis}, + type = {\bibcomputersoftwareandmanual}, + howpublished = {Retrieved from + \url{http://www.yorku.ca/faculty/academic/schwarze/ + meta_e.htm}\bibnodot{.}} +} + +@misc{ex94, + key = {{\APACcitebtitle{National Health Interview Survey}}}, + title = {National {H}ealth {I}nterview {S}urvey---{C}urrent Health + Topics: 1991---{L}ongitudinal Study of Aging + {\upshape(\uppercase{V}ersion~4)}}, + type = {Data file}, + year = {\bibnodate}, + address = {Hyattsville, MD}, + publisher = {National Center for Health Statistics} +} + +@misc{ex95, + author = {{\bibcorporate{Department of Health and Human Services, + National Center for Health Statistics}}}, + firstkey = {{Department of Health and Human Services, + National Center for Health Statistics [DHHS-NCHS]}}, + key = {{DHHS-NCHS}}, + year = {1991}, + title = {National {H}ealth {P}rovider {I}nventory: {H}ome Health + Agencies and Hospices, 1991}, + type = {Data file}, + howpublished = {Available from National Technical Information Service + Web site, \url{http://www.ntis.gov}\bibnodot{.}} +} + + +@string{comment = { +% +% Additional references. +% +}} + +@book{APAManual3, + author = {{\bibcorporate{American Psychological Association}}}, + firstkey = {{American Psychological Association [APA]}}, + key = {{APA}}, + year = {1984}, + title = {Publication Manual of the {A}merican {P}sychological + {A}ssociation}, + edition = {3rd}, + address = {Washington, DC}, + publisher = {Author}, + note = {with revisions} +} + +@book{APAManual, + author = {{\bibcorporate{American Psychological Association}}}, + firstkey = {{American Psychological Association [APA]}}, + key = {{APA}}, + year = {2001}, + title = {Publication Manual of the {A}merican {P}sychological + {A}ssociation}, + edition = {5th}, + address = {Washington, DC}, + publisher = {Author} +} + +@book{TeXbook, + author = {Knuth, Donald E.}, + year = {1986}, + title = {The {\APACSortNoop{TeX}}{\TeX}book}, + address = {Reading, MA}, + publisher = {Addison Wesley}, + note = {Reprinted with corrections September, 1993. Therefore, + the year should officially be 1986/1993 I guess, but + the corrections are presumably very minor.} +} + +@book{LaTeXbook, + author = {Lamport, Leslie}, + year = {1994}, + title = {{\APACSortNoop{LaTeX}}{\LaTeX}: {A} Document Preparation System. + {U}ser's Guide and Reference Manual}, + edition = {2nd}, + address = {Reading, MA}, + publisher = {Addison-Wesley} +} + +@book{LaTeXcomp, + author = {Goossens, Michel and Mittelbach, Frank and Samarin, Alexander}, + year = {1994}, + title = {The {\APACSortNoop{LaTeX}}{\LaTeX} Companion}, + address = {Reading, MA}, + publisher = {Addison-Wesley} +} + +@book{meijer1998, + author = {Meijer, Erik}, + year = {1998}, + title = {Structural Equation Models for Nonnormal Data}, + address = {Leiden, The Netherlands}, + publisher = {DSWO Press} +} + +@book{WaMe00, + author = {Wansbeek, Tom and Meijer, Erik}, + year = {2000}, + title = {Measurement Error and Latent Variables in Econometrics}, + address = {Amsterdam}, + publisher = {North-Holland} +} + +@unpublished{APA-3rd-ed-ex53, + author = {Gottfredson, G. D.}, + year = {1978}, + title = {Why Don't Vocational Interests Predict Job + Satisfaction Better Than They Do?}, + howpublished = {Unpublished manuscript}, + organization = {Johns Hopkins University, Center for Social + Organization of Schools}, + address = {Baltimore} +} + diff --git a/Master/texmf-dist/bibtex/bib/asaetr/asaetr.bib b/Master/texmf-dist/bibtex/bib/asaetr/asaetr.bib new file mode 100644 index 00000000000..1ed6d6ef1b9 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/asaetr/asaetr.bib @@ -0,0 +1,16 @@ +@book { ll:86 , +author = "Leslie Lamport" , +title = "\LaTeX: A Document Preparation System" , +publisher = "Addison--Wesley Pub.\ Co." , +year = "1986" , +address = "Reading, MA" , +} + +@article { asaeins , +author = "{ASAE}" , +title = "Instructions to Authors of {ASAE} Technical Publications" , +journal = "Transactions of the {ASAE}" , +year = "1990" , +volume = "33" , +number = "4" , +} diff --git a/Master/texmf-dist/bibtex/bib/ascelike/ascexmpl.bib b/Master/texmf-dist/bibtex/bib/ascelike/ascexmpl.bib new file mode 100644 index 00000000000..a2000218ef1 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/ascelike/ascexmpl.bib @@ -0,0 +1,276 @@ +% Bibtex bibliographic data base using the canonical set given in the +% ASCE web document "Instructions For Preparation Of Electronic Manuscripts" +% For use with the ascelike.bst bibliographic style file. +% +% A few 'fine points' about bibtex data bases: +% 1) Entries that are NOT enclosed in quotations marks ("" "") +% must contain data. For example, the NUMBER entry. If you don't +% know the NUMBER, don't leave it blank. Just remove the entire +% NUMBER line. +% 2) Bibtex will suppress capital letters within the TITLE of an article +% (except for the first word of the title). To force capitalization, +% enclose the capitalized letter(s) in curly braces, such as {ASCE} +% of {SI}. +% 3) Although unusual, if the reference has no author, you will need to +% be somewhat creative to produce ASCE-like output. This usually occurs +% when the "non-author" is an organization instead of a person, but +% it also applies to newspaper articles. Try the following: +% a) if the non-author is a a single word or abreviation ("ASTM" or +% "Newsweek"), try formatting as a book, incollection, or article, +% placing the non-author in the AUTHOR field. +% b) if the non-author is multiple word (Federal Highway +% Administration), you will need to be creative, since bibtex +% will confuse the non-author as a person with first, middle, and +% last names (for example, Federal, H. A.). Try using the MANUAL +% format as shown in FHWA:1991a, FR:1968a, and ICBO:1988a +% +% +@INCOLLECTION{ASTM:1991a, + AUTHOR = "ASTM", + TITLE = "Standard practice for the use of the international system of units ({SI}) (the modernized metric system)", + EDITOR = "", + BOOKTITLE = "E 380-91a", + PUBLISHER = "", + ADDRESS = "Philadelphia, Pa.", + MONTH = "", + YEAR = 1991, + EDITION = "", + PAGES = "", + ORGANIZATION = "", + NOTE = "", + } +% +@TECHREPORT{Duan:1990a, + AUTHOR = "Duan, L. and Loh, J. T. and Chen, W. F.", + TITLE = "M-{P}-f-based analysis of dented tubular members", + INSTITUTION = "School of Civ. Engrg., Purdue Univ.", + TYPE = "Struct. Engrg. Rep. No.", + NUMBER = "CE-STR-90-27", + ADDRESS = "West Lafayette, Ind.", + MONTH = "", + YEAR = 1990, + NOTE = "", +} +% +@BOOK{Duvant:1972a, + AUTHOR = "Duvant, G. and Lions, J. L.", + EDITOR = "", + TITLE = "Les in{\'{e}}quations en m{\'{e}}chanique et en physique", + PUBLISHER = "Dunod", + ADDRESS = "Paris, France", + MONTH = "", + YEAR = 1972, + EDITION = "", + NOTE = "(in French)", + } +% +@PHDTHESIS{Chang:1987a, + AUTHOR = "Chang, T. C.", + TITLE = "Network resource allocation using an expert system + with fuzzy logic reasoning", + SCHOOL = "University of California at Berkeley, Calif.", + ADDRESS = "", + YEAR = 1987, + TYPE = "PhD thesis", + } +% +@INPROCEEDINGS{Eshenaur:1991a, + AUTHOR = "Eshenaur, S. R. and Kulicki, J. M. and Mertz, D. R.", + TITLE = "Retrofitting distortion-induced fatigue cracking of + non-composite steel girder-floorbeam-stringer bridges", + BOOKTITLE = "Proc., 8th Annual Int. Bridge Conf.", + EDITOR = "", + PUBLISHER = "", + MONTH = "", + YEAR = 1991, + ORGANIZATION = "Engineers' Soc. of Western Pennsylvania", + ADDRESS = "Pittsburgh, Pa.", + PAGES = "380--388", + NOTE = "", + } +% +@MANUAL{FHWA:1991a, + AUTHOR = "", + KEY = "Federal", + TITLE = "Evaluating scour at bridges", + ORGANIZATION = "Federal Highway Administration (FHWA)", + PUBLISHER = "Rep., Hydr. Engrg. Circular No. 18: FHWA-IP-90-017", + ADDRESS = "Washington, D.C.", + MONTH = "", + YEAR = 1991, + NOTE = "", +} +% +@MANUAL{FR:1968a, + AUTHOR = "", + KEY = "Federal", + TITLE = "Federal Register", + HOWPUBLISHED = "", + MONTH = "", + YEAR = 1988, + NOTE = "33(No. 146; July 27), 10756", + } +% +@ARTICLE{Frater:1992a, + AUTHOR = "Frater, G. S. and Packer, J. A.", + TITLE = "Weldment design for {RHS} truss connections. {I}: Applications", + JOURNAL = "J. Struct. Engrg.", + ORGANIZATION = "ASCE", + MONTH = "", + YEAR = 1992, + VOLUME = 118, + NUMBER = 10, + PAGES = "2784--2803", + NOTE = "", + } +% +@ARTICLE{Frater:1992b, + AUTHOR = "Frater, G. S. and Packer, J. A.", + TITLE = "Weldment design for {RHS} truss connections. {II}: Experimentation", + JOURNAL = "J. Struct. Engrg.", + ORGANIZATION = "ASCE", + MONTH = "", + YEAR = 1992, + VOLUME = 118, + NUMBER = 10, + PAGES = "2804--2820", + NOTE = "", + } +% +@BOOK{Goossens:1994a, + AUTHOR = "Goossens, M. and Mittlebach, F. and Samarin, A.", + TITLE = "The \LaTeX\ Companion", + PUBLISHER = "Addison--Wesley Pub. Co.", + ADDRESS = "Reading, Mass.", + YEAR = 1994, + } +% +@MANUAL{ICBO:1988a, + AUTHOR = "", + ORGANIZATION = "International Conference of Building Officials", + TITLE = "Uniform building code", + KEY = "International", + PUBLISHER = "", + ADDRESS = "Whittier, Calif.", + MONTH = "", + YEAR = 1988, + EDITION = "", + NOTE = "", + } +% +@ARTICLE{Ireland:1954a, + AUTHOR = "Ireland, H. O.", + TITLE = "Stability analysis of {C}ongress {S}treet open cut + in {C}hicago", + JOURNAL = "G{\'{e}}otechnique", + ORGANIZATION = "London, England", + MONTH = "", + YEAR = 1954, + VOLUME = 4, + NUMBER = 4, + PAGES = "163--168", + NOTE = "", + } +% +@BOOK{Lamport:1994a, + AUTHOR = "Lamport, L.", + TITLE = "\LaTeX: A Document Prepartation System User's Guide + and Reference Manual", + PUBLISHER = "Addison--Wesley Pub. Co.", + ADDRESS = "Reading, Mass.", + YEAR = 1994, + } +% +@MANUAL{Lotus:1985a, + AUTHOR = "", + TITLE = "Lotus 1-2-3 reference manual; release 2.01", + PUBLISHER = "Lotus Development Corp.", + KEY = "Lotus", + ADDRESS = "Cambridge, Mass.", + EDITION = "", + MONTH = "", + YEAR = 1985, + NOTE = "", + } +% +@BOOK{Melan:1913a, + AUTHOR = "Melan, J.", + EDITOR = "", + TITLE = "Theory of arches and suspension bridges", + PUBLISHER = "Myron C. Clark", + ADDRESS = "Chicago, Ill", + MONTH = "", + YEAR = 1913, + EDITION = "", + NOTE = "D. B. Steinman, translator", + } +% +@MANUAL{Moody:1988a, + AUTHOR = "", + TITLE = "Moody's municipal \& government manual", + PUBLISHER = "Moody's Investors Service", + KEY = "Moody", + ADDRESS = "New York, N.Y.", + EDITION = "", + MONTH = "", + YEAR = 1988, + NOTE = "", + } +% +@ARTICLE{Pennoni:1992a, + AUTHOR = "Pennoni, C. R.", + TITLE = "Visioning: the future of civil engineering", + JOURNAL = "J. Profl. Issues in Engrg. Education and Practice", + ORGANIZATION = "ASCE", + MONTH = "", + YEAR = 1992, + VOLUME = 118, + NUMBER = 3, + PAGES = "221--233", + NOTE = "", + } +% +@ARTICLE{Reiffenstuhl:1982a, + AUTHOR = "Reiffenstuhl, H.", + TITLE = "Das Vorspannen von Bewehrung auf Druck: + Grundsaetzliches und Anwendungsmoeglichkeiten + [prestressing of reinforcing in compression: + fundamentals and application possibilities]", + JOURNAL = "Beton-und Stahlbetonbau", + ORGANIZATION = "Berlin, Germany", + MONTH = "", + YEAR = 1982, + VOLUME = 77, + NUMBER = 3, + PAGES = "69--73", + NOTE = "(in German)", + } +% +@ARTICLE{Vesilind:1992a, + AUTHOR = "Vesilind, P. A.", + TITLE = "Discussion of `{G}uidance for engineering-design-class + lectures on ethics,' by {R}ichard {H}. {M}c{C}uen", + JOURNAL = "J. Profl. Issues in Engrg. Education and Practice", + ORGANIZATION = "ASCE", + MONTH = "", + YEAR = 1992, + VOLUME = 118, + NUMBER = 2, + PAGES = "214--215", + NOTE = "", + } +% +@INCOLLECTION{Zadeh:1981a, + AUTHOR = "Zadeh, L. A.", + TITLE = "Possibility theory and soft data analysis", + EDITOR = "L. Cobb and R. M. Thrall", + BOOKTITLE = "Mathematical frontiers of the social and policy sciences", + PUBLISHER = "Westview Press, Inc.", + ADDRESS = "Boulder, Colo.", + MONTH = "", + YEAR = 1981, + EDITION = "", + PAGES = "69--129", + ORGANIZATION = "", + NOTE = "", + } diff --git a/Master/texmf-dist/bibtex/bib/babelbib/babelbibtest.bib b/Master/texmf-dist/bibtex/bib/babelbib/babelbibtest.bib new file mode 100644 index 00000000000..83adaa69f73 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/babelbib/babelbibtest.bib @@ -0,0 +1,3803 @@ +@Misc{harders2005a, + author = {Harders, Harald}, + title = {Homepage von Harald Harders}, + month = jul, + year = 2004, + url = {http://www.harald-harders.de}, + urldate = {2005-02-17}, + language = {ngerman} +} + +@Article{abinger1988a, + author = {Abinger, R. and Hammer, F. and Leopold, J. and others}, + title = {Gro"sschaden an einem 300"=MW"=Dampfturbosatz}, + journal = {Der Maschinenschaden}, + year = 1988, + volume = 61, + number = 2, + pages = {58--60}, + language = {ngerman}, +} + + +@Article{aboav1997a, + author = {Aboav, D.{\,}A.}, + title = {Foam and Polycrystal}, + journal = {Materials characterization}, + year = 1997, + volume = 39, + pages = {169--181}, + issn = {1044-5803} +} +% language = {english}, + + +@Misc{akprueftechnik2000a, + key = {Protokoll}, + title = {Protokoll des Arbeitskreistreffens "`Mechanische + Pr"uftechnik"' und "`Quantitative Gef"ugebeschreibung"' am + 29.\ und 30.\,03.~2000 an der TU Bergakademie Freiberg, + Institut f"ur Metallkunde}, + month = {04.\,04.}, + year = 2000, + language = {ngerman} +} + +@Book{altenpohl1994a, + author = {Altenpohl, D.}, + title = {aluminium von innen}, + publisher = {Aluminium"=Verlag}, + year = 1994, + address = {D"usseldorf}, + edition = {5.}, + language = {ngerman}, + isbn = {3-87017-235-5} +} + +@Book{aluminium1983a, + editor = {Aluminium-Zentrale}, + title = {Aluminium-Taschenbuch}, + publisher = {Aluminium-Verlag}, + year = 1983, + address = {D"usseldorf}, + edition = {14.}, + language = {ngerman}, + isbn = {3-87017-169-3} +} + +@Article{andrews1999a, + author = {Andrews, E. and Sanders, W. and Gibson, L.{\,}J.}, + title = {Compressive and Tensile Behaviour of Aluminium Foams}, + journal = {Materials Science and Engineering}, + year = 1999, + volume = {A~270}, + pages = {113--124}, + language = {english} +} + +@Article{andrews2001a, + author = {Andrews, E.{\,}W. and Gibson, L.{\,}J.}, + title = {The Influence of Cracks, Notches and Holes on the Tensile + Strength of Cellular Solids}, + journal = {Acta Materialia}, + year = 2001, + volume = 49, + pages = {2975--2979}, + language = {english} +} + +@Article{andrews2001b, + author = {Andrews, E.{\,}W. and Gibson, L.{\,}J.}, + title = {The Influence of Crack-Like Defects on the Tensile Strength + of an Open-Cell Aluminum Foam}, + journal = {Scripta materialia}, + year = 2001, + volume = 44, + pages = {1005--1010}, + language = {english} +} + +@Article{andrews2001c, + author = {Andrews, E.{\,}W. and Gioux, G. and Onck, P.{\,}R. and + Gibson, L.{\,}J.}, + title = {Size effects in ductile cellular solids. Part~I: + experimental results}, + journal = {International Journal of Mechanical Sciences}, + year = 2001, + volume = 43, + pages = {701--713}, + language = {english} +} + +@Article{andrieux2000a, + author = {Andrieux, F. and Sun, D.-Z.}, + title = {Entwicklung und Anwendung von Werkstoffmodellen zur + Beschreibung des Verformungs- und Versagensverhaltens von + Aluminiumsch"aumen}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {531--534}, + language = {ngerman} +} + +@InProceedings{arzt1999a, + author = {Arzt, M. and Brocks, W. and Mohr, R.}, + title = {An implicit integration method for solving non-linear + problems in mechanics of structures under complex loading + histories}, + booktitle = {Proceedings of the Ninth International Conference on + Computational Methods and Experimental Measurements -- + CMEM 99}, + pages = {371--380}, + year = 1999, + editor = {Carlomagno, C.{\,}M. and Brebbia, C.{\,}A.}, + volume = 2, + series = {Computational Engineering}, + address = {Southhampton}, + publisher = {WIT Press}, + language = {english}, + isbn = {1-85312-683-7} +} + +@Book{ashby1980a, + author = {Ashby, M.{\,}F. and Jones, D.{\,}R.{\,}H.}, + title = {Engineering Materials 1: An Introduction to their + Properties and Applications}, + publisher = {Pergamon Press}, + year = 1980, + address = {Oxford}, + language = {english}, + isbn = {0-08-026138-8} +} + +@Article{ashby1983a, + author = {Ashby, M.{\,}F.}, + title = {The mechanical properties of cellular solids}, + journal = {Metallurgical Transactions}, + year = 1983, + volume = {14~A}, + pages = 1755, + language = {english} +} + +@Book{ashby1986a, + author = {Ashby, M.{\,}F. and Jones, D.{\,}R.{\,}H.}, + title = {Engineering Materials 2: An Introduction to + Microstructure, Processing and Design}, + publisher = {Pergamon Press}, + year = 1986, + address = {Oxford}, + language = {english}, + isbn = {0-08-032532-7} +} + +@Book{ashby1992a, + author = {Ashby, M.{\,}F.}, + title = {Materials Selection in Mechanical Design}, + publisher = {Butterworth-Heinemann}, + year = 1992, + address = {Oxford}, + isbn = {0-7506-2727-1}, + language = {english} +} + +@Book{ashby1998a, + editor = {Ashby, M.{\,}F. and Evans, A.{\,}G. and Hutchinson, J.{\,}W. and + Fleck, N.{\,}A.}, + title = {Metal Foams: a Design Guide}, + publisher = {Cambridge Centre for Micromechanics}, + year = 1998, + number = {Report Number CUED/C-MICROMECH/TR3}, + language = {english} +} + +@Book{ashcroft1988a, + author = {Ashcroft, N.{\,}W. and Mermin, N.{\,}D.}, + title = {Solid State Physics}, + publisher = {ITPS Thomson Learning}, + year = 2000, + language = {english}, + isbn = {0-03-083993-9} +} + +@Book{askeland1996a, + author = {Askeland, D.{\,}R.}, + title = {Materialwissenschaften}, + publisher = {Spektrum Akademischer Verlag}, + year = 1996, + address = {Heidelberg}, + language = {ngerman}, + isbn = {3-86025-357-3} +} + +@InBook{astm399a, + editor = {Storer, R.{\,}A. and others}, + title = {Metals Test Methods and Analytical Procedures}, + chapter = {Standard Test Method for Plane-Strain Fracture Toughness + of Metallic Materials}, + publisher = {American Society for Testing and Materials}, + year = 1995, + volume = {03.01}, + series = {1995 Annual Book of ASTM Standards}, + address = {Philadelphia}, + pages = {412--442}, + language = {english}, + isbn = {0-8031-2200-4} +} + +@InBook{astm561a, + editor = {Storer, R.{\,}A. and others}, + title = {Metals Test Methods and Analytical Procedures}, + chapter = {Standard Practice for {$R$}-Curve Determination}, + publisher = {American Society for Testing and Materials}, + year = 1995, + volume = {03.01}, + series = {1995 Annual Book of ASTM Standards}, + address = {Philadelphia}, + pages = {492--504}, + language = {english}, + isbn = {0-8031-2200-4} +} + +@TechReport{aurenhammer1996a, + author = {Aurenhammer, F. and Klein, R.}, + title = {Voronoi Diagrams, english, Nummer}, + institution = {FernUniversit\"at Gesamthochschule in Hagen}, + year = 1996, + number = 198, + month = 5, + type = {Gross klein Gross klein}, + language = {english} +} + +@TechReport{aurenhammer1996b, + author = {Aurenhammer, F. and Klein, R.}, + title = {Voronoi Diagrams, ngerman, Nummer}, + institution = {FernUniversit\"at Gesamthochschule in Hagen}, + year = 1996, + number = 198, + month = 5, + type = {Gross klein Gross klein}, + language = {ngerman} +} + +@TechReport{aurenhammer1996c, + author = {Aurenhammer, F. and Klein, R.}, + title = {Voronoi Diagrams, english}, + institution = {FernUniversit\"at Gesamthochschule in Hagen}, + year = 1996, + month = 5, + type = {Gross klein Gross klein}, + language = {english} +} + +@TechReport{aurenhammer1996d, + author = {Aurenhammer, F. and Klein, R.}, + title = {Voronoi Diagrams, ngerman}, + institution = {FernUniversit\"at Gesamthochschule in Hagen}, + year = 1996, + month = 5, + type = {Gross klein Gross klein}, + language = {ngerman} +} + +@TechReport{aurenhammer1996e, + author = {Aurenhammer, F. and Klein, R.}, + title = {Voronoi Diagrams, english}, + institution = {FernUniversit\"at Gesamthochschule in Hagen}, + year = 1996, + month = 5, + language = {english} +} + +@TechReport{aurenhammer1996f, + author = {Aurenhammer, F. and Klein, R.}, + title = {Voronoi Diagrams, ngerman}, + institution = {FernUniversit\"at Gesamthochschule in Hagen}, + year = 1996, + month = 5, + language = {ngerman} +} + +@TechReport{aurenhammer1996g, + author = {Aurenhammer, F. and Klein, R.}, + title = {Voronoi Diagrams, english, Nummer}, + institution = {FernUniversit\"at Gesamthochschule in Hagen}, + year = 1996, + month = 5, + number = 198, + language = {english} +} + +@TechReport{aurenhammer1996h, + author = {Aurenhammer, F. and Klein, R.}, + title = {Voronoi Diagrams, ngerman, Nummer}, + institution = {FernUniversit\"at Gesamthochschule in Hagen}, + year = 1996, + month = 5, + number = 198, + language = {ngerman} +} + +@Manual{baeker1998a, + title = {Automatische Neuvernetzung mit ABAQUS/Standard -- Technik + und Anwendungen}, + author = {B"aker, M.}, + organization = {Institut f"ur Werkstoffe, Technische Universit"at + Braunschweig}, + address = {Braunschweig}, + month = {Oktober}, + year = 1998, + language = {ngerman} +} + +@Book{baeker2002a, + author = {B"aker, M.}, + title = {Numerische Methoden in der Materialwissenschaft}, + publisher = {Fachbereich Maschinenbau der TU Braunschweig}, + year = 2002, + volume = 8, + series = {Braunschweiger Schriften zum Maschinenbau}, + language = {ngerman}, + isbn = {3-936148-08-2} +} + +@InCollection{baker1997a, + author = {Baker, A.-M.{\,}M. and Barry, C.{\,}M.{\,}F.}, + title = {Effects of Composition, Processing, and Structure on + Properties of Engineering Plastics}, + booktitle = {Materials Selection and Design}, + pages = {434--456}, + publisher = {ASM International}, + year = 1997, + editor = {Dieter, G.{\,}E.}, + volume = 20, + series = {ASM Handbook}, + language = {english}, + isbn = {0-87170-386-6} +} + +@Article{banhart1994a, + author = {Banhart, J. and Baumeister, J. and Weber, M.}, + title = {Metallschaum~-- ein Werkstoff mit Perspektiven}, + journal = {Aluminium}, + year = 1994, + volume = 70, + number = {3/4}, + pages = {209--213}, + language = {ngerman} +} + +@Article{banhart1997a, + author = {Banhart, J. and Baumeister, J. and Weber, M.}, + title = {Aluminium foams for transport industry}, + journal = {Materials \&\ Design}, + year = 1997, + volume = 18, + pages = 221, + language = {english} +} + +@Article{banhart1997b, + author = {Banhart, J. and Baumeister, J.}, + title = {Das Verformungsverhalten gesch"aumter Metalle}, + journal = {Metall}, + year = 1997, + volume = 51, + pages = {19--24}, + note = {vgl.\ \cite{banhart1998a}}, + language = {ngerman} +} + +@Article{banhart1998a, + author = {Banhart, J. and Baumeister, J.}, + title = {Deformation characteristics of metal foams}, + journal = {Journal of Materials Science}, + year = 1998, + volume = 33, + number = 6, + pages = {1431--1440}, + note = {vgl.\ \cite{banhart1997b}}, + language = {english} +} + +@Article{banhart1999a, + author = {Banhart, J.}, + title = {Foam Metal: The Recipe}, + journal = {europhysics news}, + year = 1999, + pages = {17--20}, + month = {January/February}, + language = {english} +} + +@Article{banhart1999b, + author = {Banhart, J.}, + title = {Offenporige Aluminiumsch"aume -- Eigenschaften und + Anwendungen}, + journal = {ALUMINIUM}, + year = 1999, + volume = 75, + number = 12, + language = {ngerman} +} + +@Article{banhart1999c, + author = {Banhart, J. and Baumeister, J. and Melzer, A. and + Seeliger, W. and Weber, M.}, + title = {Aluminiumschaum-Leichtbaustrukturen f"ur den Fahrzeugbau}, + journal = {Werkstoffe im Automobilbau}, + year = {1998/1999}, + language = {ngerman} +} + +@Article{banhart1999d, + author = {Banhart, J. and Brinkers, W.}, + title = {Fatige Behavior of Aluminum Foams}, + journal = {Journal of Materials Science Letters}, + year = 1999, + volume = 18, + pages = {617--619}, + language = {english} +} + +@Article{banhart2000a, + author = {Banhart, J.}, + title = {Manufacturing Routes for Metallic Foams}, + journal = {JOM}, + year = 2000, + month = {December}, + language = {english} +} + +@Article{banhart2000b, + author = {Banhart, J.}, + title = {Eigenschaften und Anwendungsgebiete offenporiger + metallischer Werkstoffe}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {501--504}, + language = {ngerman} +} + +@Article{banhart2001a, + author = {Banhart, J. and Bellmann, D. and Clemens, H.}, + title = {Investigation of Metal Foam Formation by Microscopy and + Ultra Small-Angle Neutron Scattering}, + journal = {Acta materialia}, + year = 2001, + volume = 49, + pages = {3409--3420}, + language = {english} +} + +@Article{banhart2001b, + author = {Banhart, J. and Stanzick, H. and Helfen, L. and + Baumbach, T.}, + title = {Metal form evolution studied by synchroton radioscopy}, + journal = {Applied Physics Letters}, + year = 2001, + volume = 78, + number = 8, + pages = {1152--1154}, + language = {english} +} + +@Article{bart-smith1998a, + author = {Bart-Smith, H. and Bastawros, A.-F. and Mumm, + D.{\,}R. and Evans, A.{\,}G. and Sypeck, D.{\,}J. and Wadley, + H.{\,}N.{\,}G.}, + title = {Compressive Deformation and Yielding Mechanisms in + Cellular {Al} Alloys Determined Using X-Ray Tomography + and Surface Strain Mapping}, + journal = {Acta Materialia}, + year = 1998, + volume = 46, + number = 10, + pages = {3583--3592}, + language = {english} +} + +@InProceedings{bart-smith1998b, + author = {Bart-Smith, H. and Bastawros, A.-F. and Mumm, D.{\,}R. and + Evans, A.{\,}G. and Sypeck, D.{\,}J. and Wadley, H.{\,}N.{\,}G.}, + title = {Compressive Deformation and Yielding Mechanisms in + Cellular {Al} Alloys Determined Using X-Ray Tomography and + Surface Strain Mapping}, + booktitle = {Porous and Cellular Materials for Structural Applications}, + pages = {71--81}, + year = 1998, + editor = {Schwartz, D.{\,}S. and Shih, D.{\,}S. and Evans, A.{\,}G. and + Wadley, H.{\,}N.{\,}G.}, + volume = 521, + series = {Symposium Proceedings}, + address = {Warrendale, Pennsylvania}, + month = {April}, + publisher = {Materials Research Society}, + language = {english} +} + +@Article{bastawros2000a, + author = {Bastawros, A.-F. and Bart-Smith, H. and Evans, A.{\,}G.}, + title = {Experimental Analysis of Deformation Mechanisms in a + Closed-Cell Aluminium Alloy Foam}, + journal = {Journal of the Mechanics and Physics of Solids}, + year = 2000, + volume = 48, + pages = {301--322}, + language = {english} +} + +@InProceedings{baumeister1997a, + author = {Baumeister, J.}, + title = {"Uberblick: Verfahren zur Herstellung von + Metallsch"aumen}, + booktitle = {Metallsch"aume (Beitr"age zum Symposium Metallsch"aume, + IFAM, Bremen, 06.~--~07.{\,}03.~1997)}, + pages = 3, + year = 1997, + address = {Bremen}, + publisher = {Verlag MIT Bremen}, + language = {ngerman} +} + +@Article{beals1997a, + author = {Beals, J.{\,}T. and Thompson, M.{\,}S.}, + title = {Density gradient effects on aluminium foam + compression behavior}, + journal = {Journal of Materials Science}, + year = 1997, + volume = 32, + pages = 3595, + language = {english} +} + +@Book{becker1975a, + author = {Becker, E. and B"urger, W.}, + title = {Kontinuumsmechanik}, + publisher = {B.\,G.\ Teubner}, + year = 1975, + volume = 20, + series = {Leitf"aden der angewandten Mathematik und Mechanik}, + address = {Stuttgart}, + language = {ngerman}, + isbn = {3-519-02319-9} +} + +@InProceedings{begley1971a, + author = {Begley, J.{\,}A. and Landes, J.{\,}D.}, + title = {The {$J$} Integral as a Fracture Criterion}, + booktitle = {Fracture Toughness. Proceedings of the 1971 National + Symposium on Fracture Mechanics}, + pages = {1--20}, + year = 1971, + volume = {Part~II}, + address = {Philadelphia}, + organization = {American Society for Testing and Materials}, + language = {english} +} + +@Book{begley1973a, + author = {Begley, J.{\,}A.}, + title = {An estimation model for the application of the {$J$} + integral}, + publisher = {Pa.\ \&\ Scientific papers}, + year = 1973, + address = {Pittsburgh}, + language = {english} +} + +@Book{beiser1983a, + author = {Beiser, A.}, + title = {Atome, Molek"ule, Festk"orper}, + publisher = {Vieweg Verlag}, + year = 1983, + address = {Braunschweig}, + language = {ngerman}, + isbn = {3-528-08459-6} +} + +@Unpublished{bergmann1997a, + author = {Bergmann, D. and Galanulis, K.}, + title = {Zum Einsatz der optischen Feldme"stechnik in der + Bruchmechanik}, + year = 1997, + language = {ngerman} +} + +@Book{bergmann2000a, + author = {Bergmann, W.}, + title = {Werkstofftechnik, Teil 1: Grundlagen}, + publisher = {Hanser}, + year = 2000, + edition = {3.}, + language = {ngerman}, + isbn = {3-446-21409-7} +} + +@Unpublished{bergmanna, + author = {Bergmann, D.}, + title = {3D Deformation Measurement in small Areas based on + Grating Method and Photogrammetry}, + language = {english} +} + +@Unpublished{bergmannb, + author = {Bergmann, D. and Reich, C. and Ritter, R.}, + title = {Experimentelle Untersuchungen zum Vergleich mit + Modellrechnungen bei der Aufstellung von Kriterien der + Flie"sbruchmechanik}, + language = {ngerman} +} + +@Article{bernard2002a, + author = {Bernard, T. and Zoch, H.-W.}, + title = {Aluminiumsch"aume -- Eigenschaften und Einsetzbarkeit}, + journal = {H"arterreitechnische Mitteilungen (HTM)}, + year = 2002, + volume = 57, + number = 5, + pages = {308--315}, + language = {ngerman} +} + +@Book{betten1993a, + author = {Betten, J.}, + title = {Kontinuumsmechanik}, + publisher = {Springer"=Verlag}, + year = 1993, + address = {Berlin}, + language = {ngerman}, + isbn = {3-540-56646-5} +} + +@Book{blumenauer1993a, + author = {Blumenauer, H. and Pusch, G.}, + title = {Technische Bruchmechanik}, + publisher = {Deutscher Verlag f"ur Grundstoffindustrie}, + year = 1993, + address = {Stuttgart}, + language = {ngerman}, + isbn = {3-342-00659-5} +} + +@Article{boehm2000a, + author = {B"ohm, H. and Ismar, H. and Schmitt, J.}, + title = {Flie"sfl"ache metallischer Sch"aume}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {21--23}, + language = {ngerman} +} + +@InProceedings{boellinghaus2000a, + author = {B"ollinghaus, T. and von Hagen, H. and Bleck, W.}, + title = {Erm"udung von Sandwichverbunden aus + Aluminiumschaum mit Stahldeckblechen}, + booktitle = {Metallsch"aume}, + pages = {488--492}, + year = 2000, + editor = {Degischer, H.{\,}P.}, + publisher = {Wiley-VCH}, + language = {ngerman} +} + +@Article{boellinghaus2000b, + author = {B"ollinghaus, T. and von Hagen, H. and Bleck, W.}, + title = {Erm"udung von Sandwichverbunden aus Aluminiumschaum mit + Stahldeckblechen}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {488--492}, + language = {ngerman} +} + +@Article{boellinghaus2000c, + author = {B\"ollinghaus, T. and von Hagen, H. and Bleck, W.}, + title = {Laserstrahlschwei\ss{}en von sch\"aumbarem + Aluminiumhalbzeug}, + journal = {UTF science}, + year = 2000, + volume = {II}, + pages = {23--26}, + language = {ngerman} +} + +@InProceedings{bramfitt1994a, + author = {Bramfitt, J.{\,}E. and Hess, R.{\,}L.}, + title = {A Novel Heat Activated Recoverable Temporary Stent + (Hearts System)}, + booktitle = {Proceedings of SMST-94}, + pages = {435--442}, + year = 1994, + address = {California}, + language = {english} +} + +@Article{braune2000a, + author = {Braune, R. and Otto, A.}, + title = {Tailored Blanking mit Kernverbunden aus aufsch\"aumbarem + Aluminiumhalbzeug}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {562--565}, + language = {ngerman} +} + +@Book{bronstein1993a, + author = {Bron\v{s}tein, I.{\,}N. and Semendjaev, K.{\,}A. and Musiaol, G. + and M"uhlig, H.}, + title = {Taschenbuch der Mathematik}, + publisher = {Verlag Harri Deutsch}, + year = 1993, + address = {Thun}, + edition = {1.}, + language = {ngerman}, + isbn = {3-8171-2001-X} +} + +@Article{bross1998a, + author = {Bross, S. and Steck E.}, + title = {Simulation of selforganised dislocation structures in + b.c.c. single crystals}, + journal = {Computational Materials Science}, + year = 1998, + volume = 13, + pages = {16--22}, + language = {english} +} + +@Article{buengener2000a, + author = {B\"ungener, N. and Sch\"one, A. and Fritsching, U.}, + title = {Zum kontinuierlichen thermisch-chemischen Aufsch\"aumen + uns Ausbringen von Aluminium und Aluminiumlegierungen}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {535--537}, + language = {ngerman} +} + +@Book{buergel1998a, + author = {B"urgel, R.}, + title = {Handbuch Hochtemperatur"=Werkstofftechnik}, + publisher = {Vieweg Verlag}, + year = 1998, + address = {Braunschweig}, + language = {ngerman}, + isbn = {3-528-03107-7} +} + +@Book{callister2000a, + author = {Callister, W.{\,}D.}, + title = {Materials Science and Engineering}, + publisher = {Wiley \&\ Sons}, + year = 2000, + edition = {5.}, + language = {english}, + isbn = {0-471-32013-7} +} + +@Book{chawla1993a, + author = {Chawla, K.{\,}K.}, + title = {Ceramic Matrix Composites}, + publisher = {Chapman \&\ Hall}, + year = 1993, + address = {London}, + edition = {1.}, + language = {english}, + isbn = {0-412-36740-8} +} + +@InCollection{clements1988a, + author = {Clements, L.{\,}L.}, + title = {Polymer Science for Engineers}, + booktitle = {Engineering Plastics}, + pages = {48--62}, + publisher = {ASM International}, + year = 1988, + editor = {Epel, J.{\,}N.}, + volume = 2, + series = {Engineered Materials Handbook}, + language = {english}, + isbn = {0-87170-279-7} +} + +@InProceedings{cordes2000a, + author = {Cordes, M. and Bardenheier, R.}, + title = {Hochgeschwindigkeitsversuche und Crashsimulation}, + booktitle = {Vortr\"age der Tagung Werkstoffpr\"ufung 2000}, + year = 2000, + address = {Bad Nauheim}, + month = {Dezember}, + organization = {Deutscher Verband f\"ur Materialforschung und -pr\"ufung}, + language = {ngerman}, + note = {Nicht im Tagungsband enthalten} +} + +@Book{cottrell1956a, + author = {Cottrell, A.{\,}H.}, + title = {Dislocations and plastic flow in crystals}, + publisher = {Clarendon Press}, + address = {Oxford}, + year = 1965, + language = {english} +} + +@Book{courtney1990a, + author = {Courtney, T.{\,}H.}, + title = {Mechanical Behaviour of Materials}, + publisher = {McGraw-Hill}, + year = 1990, + address = {New York}, + language = {english}, + isbn = {0-07-013265-8} +} + +@Article{davies1983a, + author = {Davies, G.{\,}J. and Zhen, Shu}, + title = {Metallic foams: their production, properties and + applications}, + journal = {Journal of Materials Science}, + year = 1983, + volume = 18, + pages = {1899--1911}, + language = {english} +} + +@Book{davis1994a, + editor = {Davis, J.{\,}R.}, + title = {Stainless Steels}, + publisher = {ASM International}, + year = 1994, + series = {ASM Specialty Handbook}, + language = {english}, + isbn = {0-87170-503-6} +} + +@Article{daxner2000a, + author = {Daxner, T. and B\"ohm, H.{\,}J. and Ramerstorfer, F.{\,}G. and + Denzer, R. and Maier, M.}, + title = {Simulation des elasto-plastischen Verhaltens von + Metallschaum mit Hilfe von 2D und 3D Einheits-Modellen}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {447--450}, + language = {ngerman} +} + +@Article{degischer1997a, + author = {Degischer, H.{\,}P.}, + title = {Innovative light metals: metal matrix composites + and foamed aluminium}, + journal = {Materials \& Design}, + year = 1997, + volume = 18, + pages = 221, + language = {english} +} + +@InProceedings{degischer1997b, + author = {Degischer, H.{\,}P. and Galovsky, U. and Gradinger, + R. and Kretz, R. and Simanc\'ik, F.}, + title = {\"Uber mechanische Eigenschaften von + Aluminiumsch"aumen}, + booktitle = {Metallsch"aume (Beitr"age zum Symposium Metallsch"aume, + IFAM, Bremen, 06.~--~07.{\,}03.~1997}, + pages = 79, + year = 1997, + editor = {Banhart, J.}, + publisher = {Verlag MIT Bremen}, + language = {ngerman} +} + +@Article{deshpande2001a, + author = {Deshpande, V.{\,}S. and Ashby, M.{\,}F. and Fleck, N.{\,}A.}, + title = {Foam Topology Bending Versus Stretching Dominated + Architectures}, + journal = {Acter Materialia}, + year = 2001, + volume = 49, + pages = {1035--1040}, + language = {english} +} + +@Article{deshpande2001b, + author = {Deshpande, V.{\,}S. and Fleck, N.{\,}A.}, + title = {Multi-Axial Yield Behaviour of Polymer Foams}, + journal = {Acter materialia}, + year = 2001, + volume = 49, + pages = {1859--1866}, + language = {english} +} + +@Misc{dfgdaempfung2000a, + key = {Arbeitsbericht}, + title = {Arbeitsbericht zum DFG-Vorhaben SI~408/5-1 \quotedblbase + Mechanische D\"ampfung metallischer + Sch\"aume\textquotedblleft\ + im DFG-Schwerpunktprogramm SPP~1075}, + year = 2000, + language = {ngerman} +} + +@Book{dieter1986a, + author = {Dieter, G.{\,}E.}, + title = {Mechanical Metallurgy}, + publisher = {McGraw-Hill}, + year = 1988, + address = {New York}, + language = {english}, + isbn = {0-07-100406-8} +} + +@Book{dieter1988a, + author = {Dieter, G.{\,}E.}, + title = {Mechanical Metallurgy}, + publisher = {McGraw-Hill}, + year = 1988, + address = {London}, + language = {english}, + isbn = {0-07-100406-8} +} + +@Book{dieter1995a, + editor = {Dieter, G.}, + title = {Mechanical Metallurgy}, + publisher = {McGraw-Hill}, + year = 1995, + language = {english} +} + +@Book{domininghaus1998a, + author = {Domininghaus, H.}, + title = {Die Kunststoffe und ihre Eigenschaften}, + publisher = {Springer"=Verlag}, + year = 1998, + address = {Berlin}, + edition = {5.}, + language = {ngerman}, + isbn = {3-540-62659-X} +} + +@Book{domke1994a, + author = {Domke, W.}, + title = {Werkstoffkunde und Werkstoffpr"ufung}, + publisher = {Cornelsen Verlag}, + year = 1994, + address = {Berlin}, + edition = {10.}, + language = {ngerman}, + isbn = {3-590-81220-6}, +} + +@Article{duarte2000a, + author = {Duarte, I. and Banhart, J.}, + title = {A Study of Aluminium Foam Formation---Kinetics and + Microstructure}, + journal = {Acta materialia}, + year = 2000, + volume = 48, + pages = {2349--2362}, + language = {english} +} + +@Book{dubbel1990a, + editor = {Beitz, W. and Grote, K.-H.}, + title = {Dubbel~-- Taschenbuch f"ur den Maschinenbau}, + publisher = {Springer"=Verlag}, + year = 2001, + address = {Berlin}, + edition = {20.}, + isbn = {3-540-67777-1}, + language = {ngerman} +} + +@Article{ehlers1999a, + author = {Ehlers, W. and Droste, A.}, + title = {A Continuum Model for Highly Porous Aluminium Foam}, + journal = {Technische Mechanik}, + year = 1999, + volume = 19, + number = 4, + pages = {341--350}, + language = {english} +} + +@Book{ehrenstein1999a, + author = {Ehrenstein, G.{\,}W.}, + title = {Polymer-Werkstoffe}, + publisher = {Hanser Verlag}, + year = 1999, + address = {M"unchen}, + edition = {2.}, + language = {ngerman}, + isbn = {3-446-21161-6} +} + +@InProceedings{elmoutaouakkail2001a, + author = {Elmoutaouakkail, A. and Salvo, L. and Maire, E. and + Peix, G.}, + title = {{2D} and {3D} characterisation of metal foams using + {X}-ray tomography}, + booktitle = {Cellular Metals and Metal Foaming Technology}, + pages = {245--250}, + year = 2001, + editor = {Banhart, J. and Ashby, M.{\,}F. and Fleck, N.{\,}A.}, + address = {Bremen}, + publisher = {Verlag MIT Publishing}, + language = {english}, + isbn = {3-935538-11-1} +} + +@Article{erbe1994a, + author = {Erbe, M. and Galanulis, K. and Ritter, R. and Steck, E.}, + title = {Theoretical and Experimental Investigations of Fracture + by Finite Element and Grating Methods}, + journal = {Engineering Fracture Mechanics}, + year = 1994, + volume = 48, + number = 1, + pages = {103-118}, + language = {english} +} + +@Book{erhard1993a, + author = {Erhard, G.}, + title = {Konstruieren mit Kunststoffen}, + publisher = {Carl-Hanser-Verlag}, + year = 1993, + address = {M"unchen}, + language = {ngerman}, + isbn = {3-446-17397-8} +} + +@Article{fatima2001a, + author = {F\'atima Vaz, M. and Fortes, M.{\,}A.}, + title = {Simulation of cell collapse in the compression of + non-uniform cellular solids}, + journal = {Scripta Materialia}, + year = 2001, + volume = 45, + pages = {375--382}, + language = {english} +} + +@InProceedings{fazekas2001a, + author = {Fazekas, A. and Dendievel, R. and Salvo, L. and + Br\'echet, Y.}, + title = {Influence of microstructural dispersions on the effective + properties of cellular solids}, + booktitle = {Cellular Metals and Metal Foaming Technology}, + pages = {259--264}, + year = 2001, + editor = {Banhart, J. and Ashby, M.{\,}F. and Fleck, N.{\,}A.}, + address = {Bremen}, + publisher = {Verlag MIT Publishing}, + language = {english}, + isbn = {3-935538-11-1} +} + +@Article{feith2000a, + author = {Feith, G.}, + title = {Schaumteile als Dauerkerne in Gu"steilen}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {407--408}, + language = {ngerman} +} + +@Book{feynman1989a, + author = {Feynman, R.{\,}P. and Leighton, R.{\,}B. and Sands, M.}, + title = {The Feynman Lectures on Physics, Vol~I, II \&\ III}, + publisher = {Pearson Higher Education}, + year = 1989, + language = {english}, + isbn = {0-201-50064-7} +} + +@Article{foroughi2000a, + author = {Foroughi, B. and Kriszt, B. and Degischer, H.{\,}P.}, + title = {Simulation des Verformungsverhaltens von por\"osen + Metallen}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {451--454}, + language = {ngerman} +} + +@InProceedings{foroughi2001a, + author = {Foroughi, B. and Kriszt, B. and Degischer, H.{\,}P.}, + title = {Modelling of mechanical properties of inhomogeneous cellular + materials}, + booktitle = {Cellular Metals and Metal Foaming Technology}, + pages = {265--268}, + year = 2001, + editor = {Banhart, J. and Ashby, M.{\,}F. and Fleck, N.{\,}A.}, + address = {Bremen}, + publisher = {Verlag MIT Publishing}, + language = {english}, + isbn = {3-935538-11-1} +} + +@Book{frost1982a, + author = {Frost, H.{\,}J. and Ashby, M.{\,}F.}, + title = {Deformation-Mechanism Maps}, + publisher = {Pergamon Press}, + year = 1982, + edition = {1.}, + language = {english}, + isbn = {0-08-029338-7} +} + +@Book{fujita1998a, + editor = {Fujita, F.{\,}E.}, + title = {Physics of New Materials}, + publisher = {Springer-Verlag}, + year = 1998, + volume = 27, + series = {Springer Series in Materials Science}, + address = {Berlin}, + edition = {2.}, + language = {english}, + isbn = {3-540-64143-2} +} + +@InProceedings{galanulis1999a, + author = {Galanulis, K. and Hofmann, A.}, + title = {Determination of Forming Limit Diagrams Using an Optical + Measurement System}, + booktitle = {Sheet Metal 1999}, + year = 1999, + editor = {Geiger, M. and Kals, H.{\,}J.{\,}J. and Shirvani, B. and + Singh, U.{\,}P.}, + address = {Erlangen}, + month = {September}, + language = {english}, + isbn = {3-87525-110-5} +} + +@Article{galovsky2000a, + author = {Galovsky, U.}, + title = {Bestimmung von Bruchz\"ahigkeitswerten bei + Schaumaluminium}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {578--580}, + language = {ngerman} +} + +@Article{gent1963a, + author = {Gent, A.{\,}N. and Thomas, A.{\,}G.}, + title = {Mechanics of Foamed Elastic Materials}, + journal = {Rubber Chemistry and Technology}, + year = 1963, + volume = 36, + pages = {597--610}, + language = {english} +} + +@InProceedings{gent1963b, + author = {Gent, A.{\,}N. and Thomas, A.{\,}G.}, + title = {Mechanics of Foamed Elastic Materials}, + booktitle = {Proceedings of the 7th Annual Technical Conference of the + Cellular Plastics Division}, + year = 1963, + address = {New York}, + organization = {Society of the Plastics Industry}, + language = {english} +} + +@Article{gers2000a, + author = {Gers, H. and Brungs, D. and Nijhof, K. and Baumg\"artner, F. + and M\"aurer, H.-J.}, + title = {Pulvermetallurgische Fertigung von Bauteilen aus + Aluminiumschaum}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {403--406}, + language = {ngerman} +} + +@InProceedings{giamei1997a, + author = {Giamei, A.}, + title = {Aero-Engine and Naval Applications for Ultra-Lightweight + Metals}, + booktitle = {Proceedings of the Fraunhofer USA Metal Foam Symposium}, + pages = {63--78}, + year = 1997, + address = {Bremen (Germany)}, + publisher = {MIT-Verlag}, + language = {english} +} + +@Article{gibson1982a, + author = {Gibson, L.{\,}J. and Ashby, M.{\,}F.}, + title = {The Mechanics of Three-Dimensional Cellular Materials}, + journal = {Proceedings of the Royal Society of London}, + year = 1982, + volume = {A~382}, + pages = {43--59}, + language = {english} +} + +@Article{gibson1982b, + author = {Gibson, L.{\,}J. and Ashby, M.{\,}F. and Schajer, G.{\,}S. and + Robertson, C.{\,}I.}, + title = {The mechanics of two-dimensional cellular materials}, + journal = {Proceedings of the Royal Society of London}, + year = 1982, + volume = {A~382}, + pages = {25--42}, + language = {english} +} + +@Article{gibson1989a, + author = {Gibson, L.{\,}J.}, + title = {Modelling the mechanical behaviour of cellular + materials}, + journal = {Materials Science and Engineering}, + year = 1989, + volume = {A~110}, + pages = 1, + language = {english} +} + +@Book{gibson1997a, + author = {Gibson, L.{\,}J. and Ashby, M.{\,}F.}, + title = {Cellular solids}, + publisher = {Cambridge University Press}, + year = 1997, + edition = {2nd}, + language = {english} +} + +@Article{gioux2000a, + author = {Gioux, G. and McCormack, T.{\,}M. and Gibson, L.{\,}J.}, + title = {Failure of aluminum foams under multiaxial loads}, + journal = {International Journal of Mechanical Sciences}, + year = 2000, + volume = 42, + pages = {1097--1117}, + language = {english} +} + +@InProceedings{golovin2000a, + author = {Golovin, I.{\,}S. and Sinning, H.-R.}, + title = {Damping of Some Aluminium Foams at Low Amplitudes}, + booktitle = {MS-2, Poland, 2-8 December 2000, Solid State Phenomena}, + year = 2000, + language = {english} +} + +@InProceedings{golovin2000b, + author = {Golovin, I.{\,}S. and Sinning, H.-R.}, + title = {Low-amplitude Mechanical Damping of Some Aluminium Foams}, + booktitle = {Materials Week}, + year = 2000, + address = {Munich}, + month = {October}, + language = {english} +} + +@InProceedings{golovin2000c, + author = {Golovin, I.{\,}S. and Sinning, H.-R. and G\"oken, J. and + Riehemann, W.}, + title = {Amplitude Dependent Damping of Some Metallic Foams}, + booktitle = {2nd Mechanical Spectroscopy School}, + year = 2000, + address = {Krakow, Poland}, + month = {December}, + language = {english} +} + +@Book{gottstein1998a, + author = {Gottstein, G.}, + title = {Physikalische Grundlagen der Materialkunde}, + publisher = {Springer"=Verlag}, + year = 1998, + address = {Berlin}, + language = {ngerman}, + isbn = {3-540-62670-0} +} + +@InCollection{greenhut1997a, + author = {Greenhug, V.{\,}A.}, + title = {Effects of Composition, Processing, and Structure on + Properties of Ceramics and Glasses}, + booktitle = {Materials Selection and Design}, + pages = {416--433}, + publisher = {ASM International}, + year = 1997, + editor = {Dieter, G.{\,}E.}, + volume = 20, + series = {ASM Handbook}, + language = {english}, + isbn = {0-87170-386-6} +} + +@Article{grenestedt2000a, + author = {Grenestedt, J.{\,}L.}, + title = {Influence of Cell Wall Wiggles on Stiffness of Cellular + Solids}, + journal = {International Journal of Mechanical Sciences}, + year = 2000, + volume = 42, + number = 7, + pages = {1327--1338}, + language = {english}, +} + +@Article{grenestedt2000b, + author = {Grenestedt, J.{\,}L. and Bassinet, F.}, + title = {Influence of Cell Wall Thickness Variations on Elastic + Stiffness of Closed-Cell Cellular Solids}, + journal = {International Journal of Mechanical Sciences}, + year = 2000, + volume = 42, + pages = {1327--1338}, + language = {english} +} + +@Book{gross2001a, + author = {Gross, D. and Seelig, T.}, + title = {Bruchmechanik mit einer Einf"uhrung in die Mikromechanik}, + publisher = {Springer"=Verlag}, + address = {Berlin}, + year = 2001, + edition = {3.}, + language = {ngerman}, + isbn = {3-540-42203-X} +} + +@Article{grote2000a, + author = {Grote, F. and Stemmler, M. and Kaesberg, S.}, + title = {\"Ubertragung realer zellularer Strukturen auf + 3D-FEM-Modell -- Methoden und Potential}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {455--458}, + language = {ngerman} +} + +@Book{guy1970a, + author = {Guy, A.{\,}G.}, + title = {Metallkunde f\"ur Ingenieure}, + publisher = {Akademische Verlagsgesellschaft}, + year = 1970, + volume = 7, + series = {Technisch-physikalische Sammlung}, + address = {Frankfurt am Main}, + language = {ngerman} +} + +@Article{haag2003a, + author = {Haag, M. and Wanner, A. and Clemens, H. and Zhang, P. and + Kraft, O. and Arzt, E.}, + title = {Creep of Aluminium-Based Closed-Cell Foams}, + journal = {Acta Materialia}, + year = 2003, + note = {Submitted to Acta Materialia}, + language = {english} +} + +@Article{haberling2000a, + author = {Haberling, C. and Haldenwanger, H.-G.}, + title = {Leichtbau durch lokales Aussteifen von Strukturbauteilen + im PKW-Bau}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {505--510}, + language = {ngerman} +} + +@InProceedings{hagen1998a, + author = {von Hagen, H. and Bleck, W.}, + title = {Compressive, Tensile and Shear Testing of Melt-Foamed + Aluminium}, + booktitle = {Porous and Cellular Materials for Structural Applications}, + pages = {59--64}, + year = 1998, + editor = {Schwartz, D.{\,}S. and Shih, D.{\,}S. and Evans, A.{\,}G. and + Wadley, H.{\,}N.{\,}G.}, + volume = 521, + series = {Symposium Proceedings}, + address = {Warrendale, Pennsylvania}, + month = {April}, + publisher = {Materials Research Society}, + language = {english} +} + +@Article{hahn2000a, + author = {Hahn, M. and Otto, A.}, + title = {Hochtemperatur-Umformung von zellularem Aluminium}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {432--435}, + language = {ngerman} +} + +@PhdThesis{harder1997a, + author = {Harder, J.}, + title = {Simulation lokaler Flie"svorg"ange in Polykristallen}, + school = {Mechanik"=Zentrum, TU Braunschweig}, + year = 1997, + language = {ngerman}, + isbn = {3-920395-27-1} +} + +@Article{harder1999a, + author = {Harder, J.}, + title = {A crystallographic model for the study of local deformation + processes in polycrystals}, + journal = {International Journal of Plasticity}, + year = 1999, + volume = 15, + pages = {605--624}, + language = {english}, + issn = {0749-6419} +} + +@TechReport{harders1999a, + author = {Harders, Harald and Wei\ss{}, Susanne and Thielecke, Frank}, + title = {Verwendung des datengest\"utzten Systemidentifizierungstools + RAPID zur fehlertoleranten Modellierung des + Luftdatensystems FADS}, + institution = {Institut f\"ur Flugmechanik, Deutsches Zentrum f\"ur Luft- + und Raumfahrt e.\,V.}, + year = 1999, + number = {Institutsbericht IB 111-1999/25}, + address = {Braunschweig}, + language = {ngerman} +} + +@InProceedings{harders2000a, + author = {Harders, Harald and R\"osler, Joachim and Hupfer, Knut}, + title = {Schwingfestigkeitsversuche an Aluminiumschaum}, + booktitle = {Vortr\"age der Tagung Werkstoffpr\"ufung 2000}, + pages = {241--246}, + year = 2000, + address = {Bad Nauheim}, + month = {Dezember}, + organization = {Deutscher Verband f\"ur Materialforschung und -pr\"ufung}, + language = {ngerman} +} + +@InProceedings{harders2001a, + author = {Harders, Harald and R\"osler, Joachim and Hupfer, Knut and + Steck, Elmar}, + title = {Experimental Studies and Simulations of the Fatigue + Behaviour of Metal Foams}, + booktitle = {Cellular Metals and Metal Foaming Technology}, + pages = {317--322}, + year = 2001, + editor = {Banhart, J. and Ashby, M.{\,}F. and Fleck, N.{\,}A.}, + address = {Bremen (Germany)}, + publisher = {MIT-Verlag}, + language = {english} +} + +@Article{harte1999a, + author = {Harte, A.-M. and Fleck, N.{\,}A. and Ashby, M.{\,}F.}, + title = {Fatigue failure of an open cell and a closed cell + aluminium alloy foam}, + journal = {Acta Materialia}, + year = 1999, + volume = 47, + number = 8, + pages = {2511--2524}, + language = {english}, + issn = {1359-6454} +} + +@Article{herrmann1997a, + author = {Herrmann, K.{\,}P.}, + title = {Ri"sausbreitungsvorg\"ange in thermomechanisch belasteten + Zweikomponentenmedien: Analysis und Experiment}, + journal = {Zeitschrift f\"ur angewandte Mathematik und Mechanik (ZAMM)}, + year = 1997, + volume = 77, + number = 3, + pages = {163--188}, + language = {ngerman} +} + +@Book{hill1950a, + author = {Hill, R.}, + title = {The Mathematical Theory of Plasticity}, + publisher = {Oxford University Press}, + year = 1998, + address = {Oxford}, + language = {english}, + isbn = {0-19-850367-9} +} + +@Article{hipke2000a, + author = {Hipke, T. and Wunderlich, T.}, + title = {Chancen und Hemmnisse f\"ur den Metallschaumeinsatz}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {396--399}, + language = {ngerman} +} + +@Article{hoenscheidt2000a, + author = {H\"ohnscheidt, W.}, + title = {Aluminium-Schaum-Strukturen bald serienreif f\"ur den Pkw}, + journal = {VDI nachrichten}, + year = 2000, + volume = 34, + pages = {18--19}, + month = {August}, + language = {ngerman} +} + +@Book{holzapfel2000a, + author = {Holzapfel, G.{\,}A.}, + title = {Nonlinear Solid Mechanics}, + publisher = {John Wiley \&\ Sons}, + year = 2000, + address = {Chichester}, + language = {english}, + isbn = {0-471-82319-8} +} + +@Book{honeycombe2000a, + author = {Honeycombe, R.{\,}W.{\,}K.}, + title = {Steels~-- Microstructure and Properties}, + publisher = {Edward Arnold}, + year = 2000, + address = {London}, + language = {english}, + isbn = {0-7131-2793-7} +} + +@book{hornbogen1983a, + author = {Hornbogen, E.}, + title = {Werkstoffe}, + publisher = {Springer"=Verlag}, + year = 1994, + address = {Berlin}, + edition = {6.}, + language = {ngerman}, + isbn = {3-540-57325-9} +} + +@Book{hoser1996a, + author = {Ohser, J. and Lorz, U.}, + title = {Quantitative Gef\"ugeanalyse: theoretische Grundlagen und + Anwendungen}, + publisher = {TU Bergakademie Freiberg}, + year = 1996, + volume = {B~276}, + series = {Freiberger Forschungshefte}, + address = {Freiberg}, + edition = {2.}, + language = {ngerman}, + isbn = {3-86012-025-5} +} + +@InProceedings{huang1998a, + author = {Huang, J.{\,}S. and Lin, J.{\,}Y.}, + title = {Modeling of Fatigue for Cellular Materials}, + booktitle = {Porous and Cellular Materials for Structural Applications}, + pages = {27--32}, + year = 1998, + editor = {Schwartz, D.{\,}S. and Shih, D.{\,}S. and Evans, A.{\,}G. and + Wadley, H.{\,}N.{\,}G.}, + volume = 521, + series = {Symposium Proceedings}, + address = {Warrendale, Pennsylvania}, + month = {April}, + publisher = {Materials Research Society}, + language = {english} +} + +@Article{huebler1999a, + author = {H\"ubler, A.{\,}C. and Hahn, U. and Weidner, J. and + Schneider, J.}, + title = {Krafteinleitung an Bauelementen aus Aluminiumschaum}, + journal = {konstruktionspraxis}, + year = 1999, + volume = 04, + language = {ngerman} +} + +@Article{hunsche1986a, + author = {Hunsche, A. and Neumann, P.}, + title = {Quantitative measurement of persistent slip band profiles + and crack initiation}, + journal = {Acta metallurgica}, + year = 1986, + volume = 34, + number = 2, + pages = {207--217}, + language = {english} +} + +@PhdThesis{hupfer2003a, + author = {Hupfer, K.}, + title = {Einflu\ss\ der Mikrostruktur auf die + Festigkeitseigenschaften von Metallsch\"aumen}, + school = {Braunschweiger Schriften zur Mechanik}, + year = 2003, + type = {Dissertation}, + address = {Braunschweig}, + language = {ngerman} +} + +@InProceedings{huschka1997a, + author = {Huschka, S. and Hicken, S. and Arendts, F.-J.}, + title = {Modellierung der Spannungs-Stauchungskurven von + Aluminiumschaum unter Ber\"ucksichtigung der + Porengr"o"senverteilung}, + booktitle = {Metallsch"aume (Beitr"age zum Symposium Metallsch"aume, + IFAM, Bremen 06.~--~07.{\,}03.~1997}, + pages = 189, + year = 1997, + editor = {Banhart, J.}, + publisher = {Verlag MIT Bremen}, + language = {ngerman} +} + +@PhdThesis{huschka1998a, + author = {Huschka, S.}, + title = {Modellierung eines Materialgesetzes zur + Beschreibung der mechanischen Eigenschaften von + Aluminiumschaum}, + school = {Universit"at Stuttgart}, + year = 1998, + type = {Dissertation}, + address = {VDI-Verlag. Fortschrittberichte, Reihe 5, Nr. 525}, + language = {ngerman} +} + +@Article{hutchinson2000a, + author = {Hutchinson, J.{\,}W. and He, M.{\,}Y.}, + title = {Buckling of cylindrical sandwich shells with metal foam + cores}, + journal = {International journal of solids and structures}, + year = 2000, + volume = 37, + number = {46--47}, + pages = {6777-6794}, + language = {english}, + issn = {0020-7683} +} + +@Article{ichitsubo2002a, + author = {Ichitsubo, T. and Tane, M. and Ogi, H. and Hirao, M. and + Ikeda, T. and Nakajima, H.}, + title = {Anisotropic elastic constants of lotus-type porous copper: + measurements and micromechanics modeling}, + journal = {Acta Materialia}, + year = 2002, + volume = 50, + pages = {4105--5115}, + language = {english} +} + +@Manual{ifam2001a, + title = {Metal Foams}, + organization = {Frauhofer Institut f\"ur Fertigungstechnik und + Angewandte Materialforschung (IFAM)}, + address = {Bremen}, + month = 01, + year = 2001, + language = {english} +} + +@Manual{ifam2001b, + title = {FOAMINAL}, + organization = {Frauhofer Institut f\"ur Fertigungstechnik und + Angewandte Materialforschung (IFAM)}, + address = {Bremen}, + month = 01, + year = 2001, + language = {english} +} + +@Article{illerhaus2000a, + author = {Illerhaus, B. and Goebbels, J.}, + title = {Dreidimensionale Charakterisierung von Metallschaumk\"orpern + mittels MikroComputertomographie}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {527--528}, + language = {ngerman} +} + +@Book{ilschner2002a, + author = {Ilschner, B. and Singer, R.{\,}F.}, + title = {Werkstoffwissenschaften und Fertigungstechnik}, + publisher = {Springer"=Verlag}, + year = 2002, + address = {Berlin}, + language = {ngerman}, + isbn = {3-540-67451-9} +} + +@Article{ishikawa2000a, + author = {Ishikawa, N. and Parks, D.{\,}M. and Socrate, S. and + Kurihara, M.}, + title = {Micromechanical Modeling of Ferrite-Pearlite Steels Using + Finite Element Unit Cell Models}, + journal = {ISIJ International}, + year = 2000, + volume = 40, + number = 11, + pages = {1170--1179}, + language = {english} +} + +@Book{issler1995a, + author = {Issler, L. and Ruo"s, H. and H"afele, P.}, + title = {Festigkeitslehre~-- Grundlagen}, + publisher = {Springer"=Verlag}, + year = 1997, + edition = {2.}, + address = {Berlin}, + language = {ngerman}, + isbn = {3-540-61998-4} +} + +@InProceedings{jasiuniene2001a, + author = {Jansiunien\"e, E. and Goebbels, J. and Illerhaus, B. and + L\"owe, P. and Kottar, A.}, + title = {{3D} investigation of strength tested metallic foams by + micro-tomography}, + booktitle = {Cellular Metals and Metal Foaming Technology}, + pages = {251--254}, + year = 2001, + editor = {Banhart, J. and Ashby, M.{\,}F. and Fleck, N.{\,}A.}, + address = {Bremen}, + publisher = {Verlag MIT Publishing}, + language = {english}, + isbn = {3-935538-11-1} +} + +@Book{jenkins1972a, + editor = {Jenkins, A.{\,}D.}, + title = {Polymer Science}, + publisher = {North-Holland Publishing Company}, + year = 1972, + volume = 1, + address = {Amsterdam}, + language = {english}, + isbn = {0-7204-0246-8} +} + +@Book{kaliszky1984a, + author = {Kaliszky, S.}, + title = {Plastizit"atslehre}, + publisher = {VDI"=Verlag}, + year = 1984, + address = {D"usseldorf}, + language = {ngerman}, + isbn = {3-18-400447-3} +} + +@Article{kathuria2001a, + author = {Kathuria, Y.{\,}P.}, + title = {Laser Assisted Foaming of Aluminum}, + journal = {Advanced Engineering Materials}, + year = 2001, + volume = 3, + number = 9, + pages = {702--705}, + language = {english} +} + +@Book{kausch1983a, + editor = {Kausch, H.-H.}, + title = {Crazing in Polymers, Vol.~1}, + publisher = {Springer-Verlag}, + year = 1983, + volume = {52/53}, + series = {Advances in Polymer Science}, + address = {Berlin}, + language = {english}, + isbn = {3-540-12571-X} +} + +@Book{kausch1990a, + editor = {Kausch, H.-H.}, + title = {Crazing in Polymers, Vol.~2}, + publisher = {Springer-Verlag}, + year = 1990, + volume = {91/92}, + series = {Advances in Polymer Science}, + language = {english}, + isbn = {3-540-51306-X} +} + +@Book{kittel1999a, + author = {Kittel, Ch.}, + title = {Einf"uhrung in die Festk"orperphysik}, + publisher = {R. Oldenbourg Verlag}, + year = 1999, + address = {M"unchen}, + edition = {12.}, + language = {ngerman}, + isbn = {3-486-23843-4} +} + +@Article{ko1965a, + author = {Ko, W.{\,}L.}, + title = {Deformations of Foamed Elastomers}, + journal = {Journal of CELLULAR PLASTICS}, + year = 1965, + pages = {45--50}, + month = {January}, + language = {english} +} + +@Article{kottar2000a, + author = {Kottar, A. and Degischer, H.{\,}P. and Kriszt, B.}, + title = {R\"ontgen-Computertomographie zur Charakterisierung von + zellularem Aluminium und seiner Verformung}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {465--469}, + language = {ngerman} +} + +@InProceedings{kretz1999a, + author = {Kretz, R. and Hombergsmeier, E. and Eipper, K.}, + title = {Manufacturing and testing of aluminium foam structural parts + for passenger cars demonstrated by example of a rear + intermediate panel}, + booktitle = {Metal Foams and Porous Metal Structures}, + pages = {23--38}, + year = 1999, + editor = {Banhart, J. and Ashby, M.{\,}F. and Fleck, N.{\,}A.}, + address = {Bremen}, + publisher = {MIT-Verlag}, + language = {english} +} + +@Article{kretz2000a, + author = {Kretz, R. and Wolfsgruber, E.}, + title = {Potential des Alulight Verfahrens zur Herstellung von + dreidimensionalen Net Shape Schaumaluminiumbauteilen}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {400--402}, + language = {ngerman} +} + +@TechReport{kriszt1997a, + author = {Kriszt, B. and Ashby, M.{\,}F.}, + title = {Structure and Properties of Nickel Foams}, + institution = {University of Cambridge}, + year = 1997, + number = {CUED/C-MATS/TR240}, + language = {english} +} + +@Article{kriszt2000a, + author = {Kriszt, B. and Kraft, O. and Clemens, H.}, + title = {Mikrostruktureigenschaften von Alporas Schaum in + Abh\"angigkeit von thermisch mechanischer Belastung}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {478--480}, + language = {ngerman} +} + +@Article{kumar1994a, + author = {Kumar, S. and Kurtz, S.{\,}K.}, + title = {Simulation of Material Microstructure Using a 3D Voronoi + Tesselation: Calculation of Effective Thermal Expansion + Coefficient of Polycrystalline Materials}, + journal = {Acta metallurgica et materialia}, + year = 1994, + volume = 42, + number = 12, + pages = {3917--3927}, + language = {english} +} + +@Article{kunz2001a, + author = {Kunz, L. and Luk\'a\v{s}, P. and Weiss, B. and Melisova, D.}, + title = {Effect of loading history on cyclic stress-strain response}, + journal = {Materials Science and Engineering}, + year = 2001, + volume = {A~314}, + pages = {1--6}, + language = {english} +} + +@Book{landau1997a, + author = {Landau, L.{\,}D. and Lifschitz, E.{\,}M.}, + title = {Lehrbuch der theoretischen Physik}, + publisher = {Verlag Harri Deutsch}, + year = 1997, + volume = {Bd.{\,}2: Klassische Feldtheorie}, + edition = {12.}, + language = {ngerman}, + isbn = {3-8171-1327-7} +} + +@Article{lange1974a, + author = {Lange, G.}, + title = {Vereinfachte Ermittlung der Flie"skurve metallischer + Werkstoffe im Zugversuch w"ahrend der Einschn"urung der + Proben}, + journal = {Archiv f"ur das Eisenh"uttenwesen}, + year = 1974, + volume = 45, + number = 11, + pages = {809--812}, + month = {November}, + language = {ngerman} +} + +@Book{lange1992a, + editor = {Lange, G.}, + title = {Systematische Beurteilung technischer Schadensf"alle}, + publisher = {Wiley-VCH}, + year = 2001, + address = {Weinheim}, + edition = {5.}, + language = {ngerman}, + isbn = {3-527-30417-7} +} + +@InProceedings{lankford1998a, + author = {Lankford, J., Jr. and Dannemann, K.{\,}A.}, + title = {Strain Rate Effects in Porous Materials}, + booktitle = {Porous and Cellular Materials for Structural Applications}, + pages = {103--108}, + year = 1998, + editor = {Schwartz, D.{\,}S. and Shih, D.{\,}S. and Evans, A.{\,}G. and + Wadley, H.{\,}N.{\,}G.}, + volume = 521, + series = {Symposium Proceedings}, + address = {Warrendale, Pennsylvania}, + month = {April}, + publisher = {Materials Research Society}, + language = {english} +} + +@Article{lederman1971a, + author = {Lederman, J.{\,}M.}, + title = {The Prediction of the Tensile Properties of Flexible Foams}, + journal = {Journal of Applied Polymer Science}, + year = 1971, + volume = 15, + pages = {693--703}, + language = {english} +} + +@InCollection{lehman1991a, + author = {Lehman, R.{\,}L.}, + title = {Overview of Ceramic Design and Process Engineering}, + booktitle = {Ceramics and Glasses}, + pages = {29--37}, + publisher = {ASM International}, + year = 1991, + editor = {Schneider, Samuel J.}, + volume = 4, + series = {Engineered Materials Handbook}, + language = {english}, + isbn = {0-87170-282-7} +} + +@Article{lehmhus2000a, + author = {Lehmhus, D. and Marschner, C. and Banhart, J.}, + title = {Einflu\ss{} von W\"armebehandlungen auf Gef\"uge und + Festigkeitseigenschaften von Aluminiumsch\"aumen}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {474--477}, + language = {ngerman} +} + +@Article{lehmhus2002a, + author = {Lehmhus, D. and Banhart, J. and Rodriguez-Perez, M.{\,}A.}, + title = {Adaptation of aluminium foam properties by means of + precipitation hardening}, + journal = {Materials Science and Technology}, + year = 2002, + volume = 18, + month = {May}, + language = {english} +} + +@InProceedings{leitlmeier2000a, + author = {Leitlmeier, D. and Flankl, H.}, + title = {Vergleich der Herstellverfahren von Aluminiumschaum unter + dem Aspekt zuk"unftiger industrieller + Anwendungsm"oglichkeiten}, + booktitle = {1.~Ranshofer Leichtmetalltage: + Vom Werkstoff zum Bauteilsystem}, + pages = {155--167}, + year = 2000, + editor = {Kaufmann, U. and Uggowitzer, P.{\,}J.}, + month = {Mai}, + language = {ngerman} +} + +@InBook{lemaitre2001a, + editor = {Lemaitre, J.}, + title = {Handbook of Materials Behavior Models}, + chapter = {Damage mechanisms in amorphous glassy polymers: crazing}, + publisher = {Harcourt Publishers}, + year = 2001, + language = {english}, + isbn = {0-12-443341-3} +} + +@Article{loethman2000a, + author = {L\"othman, P.{\,}A. and Andersen, O. and Gr\"under, J. and + Landgraf, G.}, + title = {Mechanische Eigenschaften metallischer Hohlkugelformk\"orper + und Charakterisierung ihrer Zellwandeigenschaften}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {529--530}, + language = {ngerman} +} + +@Article{lukas2002a, + author = {Luk\'{a}\v{s}, P. and Kunz, L.}, + title = {Specific features of high-cycle and ultra-high-cycle + fatigue}, + journal = {Fatigue and fracture of engineering materials and + structures}, + year = 2002, + volume = 25, + number = 8, + pages = {747--753}, + language = {english} +} + +@Book{macherauch1990a, + author = {Macherauch, E.}, + title = {Praktikum in Werkstoffkunde}, + publisher = {Vieweg Verlagsgesellschaft}, + year = 1990, + address = {Braunschweig}, + edition = {9.}, + language = {ngerman}, + isbn = {3-528-83306-8} +} + +@Article{magnin2001a, + author = {Magnin, T. and Bosch, C. and Wolski, K. and Delafosse, D.}, + title = {Cyclic plastic deformation behaviour of {Ni} single crystal + oriented for single slip as a function of hydrogen content}, + journal = {Materials Science and Engineering}, + year = 2001, + volume = {A\,314}, + pages = {7--11}, + language = {english} +} + +@Article{maire2001a, + author = {Maire, E. and Buffi\`ere, J.-Y. and Salvo, L.}, + title = {On the Application of X-ray Microtomography in the Field + of Materials Science}, + journal = {Advanced Engineering Materials}, + year = 2001, + volume = 3, + number = 8, + pages = {539--546}, + language = {english} +} + +@InProceedings{margevicius1998a, + author = {Margevicius, R.{\,}W. and Stanek, P.{\,}W. and Jacobson, L.{\,}A.}, + title = {Effects of Thermomechanical Processing on the Resulting + Mechanical Properties of 6101 Aluminium Foam}, + booktitle = {Porous and Cellular Materials for Structural Applications}, + pages = {65--70}, + year = 1998, + editor = {Schwartz, D.{\,}S. and Shih, D.{\,}S. and Evans, A.{\,}G. and + Wadley, H.{\,}N.{\,}G.}, + volume = 521, + series = {Symposium Proceedings}, + address = {Warrendale, Pennsylvania}, + month = {April}, + publisher = {Materials Research Society}, + language = {english} +} + +@Article{markaki2001a, + author = {Markaki, A.{\,}E. and Clyne, T.{\,}W.}, + title = {The Effect of Cell Wall Microstructure on the Deformation and + Fracture of Aluminium-Based Foams}, + journal = {Acta Materialia}, + year = 2001, + volume = 49, + pages = {1677--1686}, + language = {english} +} + +@Article{maurer2000a, + author = {Maurer, M. and Lugscheider, E.}, + title = {Erh\"ohung und Charakterisierung der Festigkeit von + Metallsch\"aumen f\"ur lasttragende Anwendungen durch + thermisch gespritzte Verbundstrukturen}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {523--526}, + language = {ngerman} +} + +@Article{mcclintock1968a, + author = {McClintock, F.{\,}A.}, + title = {A Criterion for Ductile Fracture by the Growth of Holes}, + journal = {Journal of Applied Mechanics}, + year = 1968, + pages = {363--371}, + month = {June}, + language = {english} +} + +@Book{mccrum1988a, + author = {McCrum, N.{\,}G. and Buckley, C.{\,}P. and Bucknall, C.{\,}B.}, + title = {Principles of Polymer Engineering}, + publisher = {Oxford University Press}, + year = 1988, + language = {english}, + isbn = {0-19-856152-0} +} + +@Article{mccullough2000a, + author = {McCullough, K.{\,}Y.{\,}G. and Fleck, N.{\,}A. and Ashby, M.{\,}F.}, + title = {The stress-life fatigue behaviour of aluminium alloy foams}, + journal = {Fatigue \&\ fracture of engineering materials \&\ + structures}, + year = 2000, + volume = 23, + number = 3, + pages = {199--208}, + language = {english}, + issn = {0160-4112} +} + +@Misc{mems1997a, + key = {mems}, + title = {MEMS Material Database}, + howpublished = {http://www.memsnet.org}, + year = 1997, + language = {english} +} + +@Article{menges1975a, + author = {Menges, G. and Knipschild, F.}, + title = {Estimation of Mechanical Properties for Rigid Polyurethane + Foams}, + journal = {Polymer Engineering and Science}, + year = 1975, + volume = 15, + number = 8, + pages = {623--627}, + month = {August}, + language = {english} +} + +@Misc{mepura1997a, + key = {MEPURA}, + title = {MEPURA: "`Alulight"'}, + howpublished = {Firmenschrift der MEPURA-Metallpulver GmbH}, + month = {April}, + year = 1997, + note = {Ranshofen, "Osterreich}, + language = {ngerman} +} + +@Book{merkel2000a, + author = {Merkel, M. and Thomas, K.-H.}, + title = {Taschenbuch der Werkstoffe}, + publisher = {Fachbuchverlag Leipzig}, + year = 2000, + edition = {5.}, + language = {ngerman}, + isbn = {3-446-21410-0} +} + +@InCollection{miyayama1991a, + author = {Miyayama, M. and Koumoto, K. and Yanagida, H.}, + title = {Engineering Properties of Single Oxides}, + booktitle = {Ceramics and Glasses}, + pages = {748--757}, + publisher = {ASM International}, + year = 1991, + editor = {Schneider, Samuel J.}, + volume = 4, + series = {Engineered Materials Handbook}, + language = {english}, + isbn = {0-87170-282-7} +} + +@Article{miyoshi2000a, + author = {Miyoshi, T. and Itoh, M. and Akiyama, S. and Kitahara, A.}, + title = {{ALPORAS} Aluminium Foam: Production Process, Properties, + and Applications}, + journal = {Advanced Engineering Materials}, + year = 2000, + volume = 2, + number = 4, + pages = {179--183}, + language = {english} +} + +@Unpublished{moehrmann2001a, + author = {M\"ohrmann, C. and Jung, A. and Woldt, E.}, + title = {The Packing Density of Randomly Packed Spheres and the + Structural Stability of Metallic Glasses}, + note = {abgelehnt von Elsevier Science}, + year = 2001, + language = {english} +} + +@InCollection{moet1988a, + author = {Moet, A. and Aglan, H.}, + title = {Fatigue Failure}, + booktitle = {Engineering Plastics}, + pages = {741--750}, + publisher = {ASM International}, + year = 1988, + editor = {Epel, J.{\,}N.}, + volume = 2, + series = {Engineered Materials Handbook}, + language = {english}, + isbn = {0-87170-279-7} +} + +@Article{mohr2000a, + author = {Mohr, U. and Bleck, W. and Scholz P.-F.}, + title = {Metallic Foams Produced by Slipcasting}, + journal = {Advanced Engineering Materials}, + year = 2000, + volume = 4, + number = {1--2}, + pages = {28--33}, + language = {english} +} + +@Article{mosler2000a, + author = {Mosler, U. and Heinzel, G. and Martin, U. and Oettel, H.}, + title = {Mikrostruktur und Verformungsverhalten von + Aluminium-Sch\"aumen}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {519--522}, + language = {ngerman} +} + +@Unpublished{mosler2000b, + author = {Mosler, U.}, + title = {Mikrostrukturuntersuchungen von AlSi\,7-Schaum}, + note = {Vortrag beim Arbeitskreistreffen \emph{Quantitative + Gef\"ugebestimmung} des DFG-SPP~1075 am 29. und 30.{\,}03.~2000, + unver"offentlicht, Institut f\"ur Metallkunde, + TU~Bergakademie Freiberg}, + year = 2000, + language = {ngerman} +} + +@Article{mosler2001a, + author = {Mosler, U. and M\"uller, A.}, + title = {Gef\"ugeinterpretation von Aluminium-Sch"aumen}, + journal = {Praktische Metallographie (Sonderb"ande)}, + year = 2001, + volume = 32, + pages = {279--284}, + language = {ngerman} +} + +@InProceedings{mosler2001b, + author = {Mosler, U. and M\"uller, A. and Baum, H. and Martin, U. and + Oettel, H.}, + title = {Microstructure of the Foamable Precursor and Foamed Aluminium + Material}, + booktitle = {Cellular Metals and Metal Foaming Technology}, + pages = {233--238}, + year = 2001, + editor = {Banhart, J. and Ashby, M.{\,}F. and Fleck, N.{\,}A.}, + address = {Bremen}, + publisher = {Verlag MIT Publishing}, + language = {english}, + isbn = {3-935538-11-1} +} + +@Misc{mosler2001c, + author = {Mosler, U.}, + title = {LiMi-Aufnahmen von AlSi\,7}, + howpublished = {E-Mail an Knut Hupfer}, + month = {August}, + year = 2001, + language = {ngerman} +} + +@Unpublished{moslera, + author = {Mosler, U. and M\"uller, A. and Baum, H. and Martin, U. + and Oettel, H.}, + title = {Microstructure of the foamable precursor and foamed + aluminium material}, + note = {TU Freiberg}, + language = {english} +} + +@Article{motz2000a, + author = {Motz, C. and Pippan, R.}, + title = {Bruchz\"ahigkeit und Ri"sfortschritt in den Zellw\"anden + von Schaumaluminium}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {493--496}, + language = {ngerman} +} + +@Article{motz2001a, + author = {Motz, C. and Pippan, R.}, + title = {Deformation Behaviour of Closed-Cell Aluminium Foams in + Tension}, + journal = {Acta Materialia}, + year = 2001, + volume = 49, + pages = {2463--2470}, + language = {english} +} + +@Article{motz2002a, + author = {Motz, C. and Pippan, R.}, + title = {Fracture behaviour and fracture toughness of ductile + closed-cell metallic foams}, + journal = {Acta Materialia}, + year = 2002, + volume = 50, + pages = {2013--2033}, + language = {english} +} + +@PhdThesis{mueller1983a, + author = {M"uller, H.}, + title = {Flie"sspannung von Zink in Abh"angigkeit von + Korngr"o"se, + Beanspruchungsrichtung und Verformungsgrad}, + school = {Technische Universit"at Braunschweig}, + year = 1983, + type = {Dissertation}, + language = {ngerman} +} + +@Unpublished{muellera, + author = {M\"uller, A. and Mosler, U.}, + title = {Gef\"ugeinterpretation von Aluminium-Sch\"aumen}, + note = {Institut f\"ur Metallkunde, TU Bergakademie Freiberg. + Ist es vielleicht in Sonderb\"ande der Praktischen + Metallographie 32 (2001) 279}, + language = {ngerman} +} + +@Article{muench2000a, + author = {M\"unch, M. and Schlimmer, M.}, + title = {Ermittlung mechanischer Kennwerte von Aluminiumsch\"aumen}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {544--546}, + language = {ngerman} +} + +@Book{munz1989a, + author = {Munz, D. and Fett, T.}, + title = {Mechanisches Verhalten keramischer Werkstoffe}, + publisher = {Springer"=Verlag}, + year = 1989, + address = {Berlin}, + language = {ngerman}, + isbn = {3-540-51508-9} +} + +@Book{nadgornyi1988a, + author = {Nadgornyi, E.}, + title = {Dislocation dynamics and mechanical properties of crystals}, + publisher = {Pergamon Press}, + year = 1988, + volume = 31, + series = {Progress in materials science}, + address = {Oxford}, + edition = {1.}, + language = {english}, + isbn = {0-08-036864-6} +} + +@Book{nadgronyi1988a, + author = {Nadgornyi, E.{\,}M.}, + title = {Dislocation dynamics and mechanical properties of crystals}, + publisher = {Pergamon Press}, + year = 1988, + volume = 31, + series = {Progress in materials science}, + address = {Oxford}, + language = {english}, + isbn = {0-08-036864-6} +} + +@Book{neuber1985a, + author = {Neuber, H.}, + title = {Kerbspannungslehre}, + publisher = {Springer"=Verlag}, + year = 1985, + address = {Berlin}, + edition = {3.}, + language = {ngerman}, + isbn = {3-540-13558-8} +} + +@InProceedings{neugebauer1998a, + author = {Neugebauer, R. and Hipke, Th.}, + title = {Parameters of Construction for Applications of Metal Foams}, + booktitle = {Porous and Cellular Materials for Structural Applications}, + pages = {265--270}, + year = 1998, + editor = {Schwartz, D.{\,}S. and Shih, D.{\,}S. and Evans, A.{\,}G. and + Wadley, H.{\,}N.{\,}G.}, + volume = 521, + series = {Symposium Proceedings}, + address = {Warrendale, Pennsylvania}, + month = {April}, + publisher = {Materials Research Society}, + language = {english} +} + +@InProceedings{neugebauer1998b, + author = {Neugebauer, R. and Br\"aunlich, H. and Wagner, U.}, + title = {Lightweight Products with Metal Foam---Properties and + Methods of Processing}, + booktitle = {Porous and Cellular Materials for Structural Applications}, + pages = {271--278}, + year = 1998, + editor = {Schwartz, D.{\,}S. and Shih, D.{\,}S. and Evans, A.{\,}G. and + Wadley, H.{\,}N.{\,}G.}, + volume = 521, + series = {Symposium Proceedings}, + address = {Warrendale, Pennsylvania}, + month = {April}, + publisher = {Materials Research Society}, + language = {english} +} + +@Article{neugebauer2000a, + author = {Neugebauer, R. and Wagner, U.}, + title = {Strukturanalyse von Metallsch\"aumen}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {462--464}, + language = {ngerman} +} + +@Misc{newprocess2000a, + key = {AAA}, + title = {Foam Metal Developed with New Process}, + howpublished = {Japan Chemical Week}, + month = {June 15}, + year = 2000, + language = {english} +} + +@InProceedings{olurin1999a, + author = {Olurin, O.{\,}B. and Fleck, N.{\,}A. and Ashby, M.{\,}F.}, + title = {Fatigue of an aluminium alloy foam}, + booktitle = {Metal Foams and Porous Metal Structures}, + pages = {365--371}, + year = 1999, + editor = {Banhart, J. and Ashby, M.{\,}F. and Fleck, N.{\,}A.}, + publisher = {MIT Verlag}, + language = {english} +} + +@Article{olurin2001a, + author = {Olurin, O.{\,}B. and Fleck, N.{\,}A. and Ashby, M.{\,}F.}, + title = {Tensile and Compressive Failure of Notched Cellular Foams}, + journal = {Advanced Engineering Materials}, + year = 2001, + volume = 3, + number = {1--2}, + pages = {55--58}, + language = {english} +} + +@Article{olurin2002a, + author = {Olurin, O.{\,}B. and Arnold, M. and K\"orner, C. and + Singer, R.{\,}F.}, + title = {The investigation of morphometric parameters of aluminium + foams using micro-computed tomography}, + journal = {Materials Science and Engineering}, + year = 2002, + volume = {A~328}, + pages = {334--343}, + language = {english} +} + +@Article{onck2001a, + author = {Onck, P.{\,}R. and Andrews, E.{\,}W. and Gibson, L.{\,}J.}, + title = {Size effects in ductile cellular solids. Part~I: modeling}, + journal = {International Journal of Mechanical Sciences}, + year = 2001, + volume = 43, + pages = {681--699}, + language = {english} +} + + +@InCollection{ownby1991a, + author = {Ownby, P.{\,}D. and Stewart, R.{\,}W.}, + title = {Engineering Properties of Diamond and Graphite}, + booktitle = {Ceramics and Glasses}, + pages = {821--834}, + publisher = {ASM International}, + year = 1991, + editor = {Schneider, Samuel J.}, + volume = 4, + series = {Engineered Materials Handbook}, + language = {english}, + isbn = {0-87170-282-7} +} + + +@Book{podesta1996a, + author = {de Podesta, M.}, + title = {Understanding the Properties of Matter}, + publisher = {UCL Press}, + year = 1996, + address = {London}, + language = {english}, + isbn = {1-85728-299-X} +} + + +@Article{poeppe1999a, + author = {P"oppe, C.}, + title = {Der Beweis der Keplerschen Vermutung}, + journal = {Spektrum der Wissenschaft}, + year = 1999, + volume = 4, + language = {ngerman} +} + + +@Book{polmear1995a, + author = {Polmear, I.{\,}J.}, + title = {Light Alloys}, + publisher = {Arnold}, + year = 1995, + series = {Metallurgy and Materials Science Series}, + address = {London}, + edition = {3.}, + language = {english}, + isbn = {0-340-63207-0} +} + + +@Book{prager1961a, + author = {Prager, W.}, + title = {Einf"uhrung in die Konitnuumsmechanik}, + publisher = {Birkh"auser Verlag}, + year = 1961, + volume = 20, + series = {Lehr- und Handb"ucher der Ingenieurwissenschaften}, + address = {Basel}, + language = {ngerman} +} + + +@Article{quelheillalt2002a, + author = {Queheillalt, D.{\,}T. and Sypeck, D.{\,}J. and Wadley, H.{\,}N.{\,}G.}, + title = {Ultrasonic characterization of cellular metal structures}, + journal = {Materials Science and Engineering}, + year = 2002, + volume = {A~323}, + pages = {138--147}, + language = {english} +} + + +@Article{rabiei2000a, + author = {Rabiei, A. and Evans, A.{\,}G. and Hutchinson, J.{\,}W.}, + title = {Heat Generation During the Fatigue of a Cellular {Al} Alloy}, + journal = {Metallurgical and materials transactions}, + year = 2000, + volume = 31, + number = 4, + pages = {1129--1136}, + language = {english}, + issn = {1073-5623} +} + + +@Book{radaj1995a, + author = {Radaj, D.}, + title = {Erm"udungsfestigkeit}, + publisher = {Springer"=Verlag}, + year = 1995, + address = {Berlin}, + language = {ngerman}, + isbn = {3-540-58348-3} +} + + +@Article{rausch2000a, + author = {Rausch, G. and Hartwig, T. and Weber, M. and Schulz, O.}, + title = {Herstellung und Eigenschaften von Titansch\"aumen}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {412--414}, + language = {ngerman} +} + + +@Article{rausch2000b, + author = {Rausch, G. and Weber, M. and Kn\"uwer, M.}, + title = {Neue Entwicklungen zur Herstellung von Stahlsch\"aumen}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {424--427}, + language = {ngerman} +} + + +@Book{reckling1967a, + author = {Reckling, K.-A.}, + title = {Plastizit"atstheorie und ihre Anwendung auf + Festigkeitsprobleme}, + publisher = {Springer"=Verlag}, + year = 1967, + address = {Berlin}, + language = {ngerman} +} + + +@Book{reif1987a, + author = {Reif, F.}, + title = {Statistische Physik und Theorie der W"arme}, + publisher = {De Gruyter}, + year = 1987, + edition = {3.}, + language = {ngerman}, + isbn = {3-11-011383-X} +} + + +@InProceedings{renauld1998a, + author = {Renauld, M.{\,}L. and Giamei, A.{\,}F. and Thompson, M.{\,}S. and + Priluck, J.}, + title = {The Effect of Parent Metal Properties on the Performance + of Lattice Block Material}, + booktitle = {Porous and Cellular Materials for Structural Applications}, + pages = {109--117}, + year = 1998, + editor = {Schwartz, D.{\,}S. and Shih, D.{\,}S. and Evans, A.{\,}G. and + Wadley, H.{\,}N.{\,}G.}, + volume = 521, + series = {Symposium Proceedings}, + address = {Warrendale, Pennsylvania}, + month = {April}, + publisher = {Materials Research Society}, + language = {english} +} + + +@Book{rhines1956a, + author = {Rhines, F.{\,}N.}, + title = {Phase Diagrams in Metallurgy}, + publisher = {McGraw-Hill Book Company}, + year = 1956, + series = {Metallurgy and Metallurgical Engineering Series}, + address = {New York}, + language = {english} +} + + +@Article{rice1968a, + author = {Rice, J.{\,}R.}, + title = {A Path Independent Integral and the Approximate Analysis + of Strain Concentration by Notches and Cracks}, + journal = {Journal of Applied Mechanics}, + year = 1968, + pages = {379--386}, + month = {June}, + language = {english} +} + + +@Book{riedel1990a, + author = {Riedel, E.}, + title = {Allgemeine und Anorganische Chemie}, + publisher = {Walter de Gruyter}, + year = 1990, + address = {Berlin}, + edition = {5.}, + language = {ngerman}, + isbn = {3-11-012586-2} +} + + +@Article{rinebolt1951a, + author = {Rinebolt, J.{\,}A. and Harris, W.{\,}J., Jr.}, + title = {Effect of Alloying Elements on Notch Toughness of + Pearlitic Steels}, + journal = {Transactions of the American Society of Metals}, + year = 1951, + volume = 43, + pages = {1175--1202}, + language = {english} +} + + +@Article{roberts2001a, + author = {Roberts, A.{\,}P. and Garboczi, E.{\,}J.}, + title = {Elastic Moduli of Model Random Three-Dimensional + Closed-Cell Cellular Solids}, + journal = {Acta Materialia}, + year = 2001, + volume = 49, + pages = {189--197}, + language = {english} +} + + +@Article{roberts2002a, + author = {Roberts, A.{\,}P. and Garboczi, E.{\,}J.}, + title = {Elastic properties of model random three-dimensional + open-cell solids}, + journal = {Journal of the Mechanics and Physics of Solids}, + year = 2002, + volume = 50, + pages = {35--55}, + language = {english} +} + + +@Article{roesler1992a, + author = {R\"osler, J. and Joos, R. and Arzt, E.}, + title = {Microstructure and Creep Properties of + Dispersion-Strengthened Aluminium Alloys}, + journal = {Metallurgical Transactions A}, + year = 1992, + volume = {23\,A}, + pages = {1521--1539}, + month = {May}, + language = {english} +} + + +@Book{roesler2003a, + editor = {R{\"o}sler, J. and Harders, H. and B{\"a}ker, M.}, + title = {Mechanisches Verhalten der Werkstoffe}, + publisher = {Teubner-Verlag}, + edition = {1.}, + year = 2003, + language = {ngerman} +} + + +@Book{ruge2001a, + author = {Ruge, J. and Wohlfahrt, H.}, + title = {Technologie der Werkstoffe}, + publisher = {Vieweg Verlag}, + year = 2001, + address = {Braunschweig}, + edition = {6.}, + language = {ngerman}, + isbn = {3-528-53021-9} +} + + +@InProceedings{saenz1998a, + author = {Saenz, E. and Baranda, P.{\,}S. and Bonhomme, J.}, + title = {Shear Properties on Aluminium Metal Foams Prepared by + the Melt Route}, + booktitle = {Porous and Cellular Materials for Structural Applications}, + pages = {83--89}, + year = 1998, + editor = {Schwartz, D.{\,}S. and Shih, D.{\,}S. and Evans, A.{\,}G. and + Wadley, H.{\,}N.{\,}G.}, + volume = 521, + series = {Symposium Proceedings}, + address = {Warrendale, Pennsylvania}, + month = {April}, + publisher = {Materials Research Society}, + language = {english} +} + + +@Book{salmang1982a, + author = {Salmang, H. and Scholze, H.}, + title = {Keramik, Teil 1}, + publisher = {Springer"=Verlag}, + year = 1982, + address = {Berlin}, + edition = {6.}, + language = {ngerman}, + isbn = {3-540-10987-0} +} + + +@Book{salmang1983a, + author = {Salmang, H. and Scholze, H.}, + title = {Keramik, Teil 2}, + publisher = {Springer"=Verlag}, + year = 1983, + address = {Berlin}, + edition = {6.}, + language = {ngerman}, + isbn = {3-540-12595-7} +} + + +@InProceedings{sanders1998a, + author = {Sanders, W. and Gibson, L.{\,}J.}, + title = {Reduction in Young's Modulus of Aluminum Foams Due to + Cell Wall Curvature and Corrugation}, + booktitle = {Porous and Cellular Material for Structural Applications}, + pages = {53--57}, + year = 1998, + volume = 521, + organization = {Materials Research Society}, + language = {english} +} + + +@Article{santosa1998a, + author = {Santosa, S. and Wierzbicki, T.}, + title = {On the modeling of crush behavior of a closed-cell + aluminium foam structure}, + journal = {Journal of the Mechanics and Physics of Solids}, + year = 1998, + volume = 46, + pages = 645, + language = {english} +} + + +@PhdThesis{sass1997a, + author = {Sa"s, V.}, + title = {Untersuchung der Anisotropie im Kriechverhalten der + einkristallinen Nickelbasis"=Superlegierung CMSX"~4}, + school = {TU Berlin}, + year = 1997, + type = {Dissertation}, + language = {ngerman}, + isbn = {3-89574-236-8} +} + + +@Article{sassov2000a, + author = {Sassov, A. and Cronelis, E. and Van Dyck, D.}, + title = {Non destructive 3-D Investigation of Metal Foam + Microstructure}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {571--573}, + language = {english} +} + + +@PhdThesis{schacht2001a, + author = {Schacht, T.}, + title = {Orientierungsabh"angige Rissbildung in duktilen Metallen}, + school = {TU~Braunschweig}, + year = {2001}, + type = {Dissertation}, + address = {Braunschweiger Schriften zur Mechanik, Nr.~42-2001, + Mechanik-Zentrum der TU Braunschweig}, + language = {ngerman} +} + + +@Book{schatt1996a, + editor = {Schatt, W. and Worch, H.}, + title = {Werkstoffwissenschaft}, + publisher = {Deutscher Verlag f"ur Grundstoffindustrie}, + year = 1996, + address = {Stuttgart}, + language = {ngerman}, + isbn = {3-527-30956-X} +} + + +@Book{schimpke1977a, + author = {Schimpke, P. and Schropp, H. and K\"onig, R.}, + title = {Technologie der Maschinenbaustoffe: + Werkstoffkunde, Werkstoffpr\"ufung, Werkstoffverarbeitung}, + publisher = {Hirzel}, + year = 1977, + address = {Stuttgart}, + edition = {18.}, + language = {ngerman}, + isbn = {3-7776-0312-0} +} + + +@Article{schlums1992a, + author = {Schlums, H. and Steck, E.}, + title = {Description of Cyclic Deformation Processes With a + Stochastic Model for Inelastic Behaviour of Metals}, + journal = {International Journal of Plasticity}, + year = 1992, + volume = 8, + pages = {147--159}, + language = {english} +} + + +@InProceedings{schneider1990a, + author = {Schneider, K.}, + title = {Advanced Blading}, + booktitle = {High Temperature Materials for Power Engineering 1990~-- + Part~{II}}, + pages = {935--954}, + year = 1990, + editor = {Bauchelet, E. and others}, + address = {Dordrecht}, + publisher = {Kluwer Academic Publishers}, + language = {english} +} + + +@Book{schott1997a, + editor = {Schott, G.}, + title = {Werkstofferm"udung~-- Erm"udungsfestigkeit}, + publisher = {Deutscher Verlag f"ur Grundstoffindustrie}, + year = 1997, + address = {Stuttgart}, + edition = {4.}, + language = {ngerman}, + isbn = {3-342-00511-4} +} + + +@Book{schultz1977a, + author = {Schultz, J.{\,}M.}, + title = {Properties of solid polymeric materials~-- Part B}, + publisher = {Academic Press}, + year = 1977, + volume = 10, + series = {Treatise on materials science and technology}, + address = {New York}, + language = {english}, + isbn = {0-12-341841-0} +} + + +@InProceedings{schultz1999a, + author = {Schultz, O. and Ligneris, A. des and Haider, O. and + Starke, P.}, + title = {Fatigue behaviour, Strength and Failure of + Aluminium Foam}, + booktitle = {Metal Foams and Porous Metal Structures}, + pages = {379--386}, + year = 1999, + editor = {Banhart, J. and Ashby, M.{\,}F. and Fleck, N.{\,}A.}, + publisher = {MIT Verlag}, + language = {english} +} + + +@Article{schultz2000a, + author = {Schultz, O. and Ligneris, A. des and Haider, O. and + Starke, P.}, + title = {Fatigue behaviour, Strength and Failure of + Aluminium Foam}, + journal = {Advanced Engineering Materials}, + year = 2000, + volume = 2, + number = 4, + pages = {215--218}, + language = {english} +} + + +@Article{schultz2000b, + author = {Schultz, O. and Schindler, R.}, + title = {Aluminiumschaum: Dynamische Festigkeit und Anwendung im + Hubschrauber}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {511--514}, + language = {ngerman} +} + + +@Book{schumann1962a, + author = {Schumann, H.}, + title = {Metallographie}, + publisher = {VEB Deutscher Verlag f\"ur Grundstoffindustrie}, + year = 1962, + address = {Leipzig}, + edition = {4.}, + language = {ngerman} +} + + +@Book{schwalbe1980a, + author = {Schwalbe, K.-H.}, + title = {Bruchmechanik metallischer Werkstoffe}, + publisher = {Carl Hanser Verlag}, + address = {M"unchen}, + year = 1980, + language = {ngerman}, + isbn = {3-446-12983-9} +} + + +@Article{schwalbe2001a, + author = {Schwalbe, H.-J. and Baumg"artner, F. and Beichelt, Ch.}, + title = {Investigations on the Failure Behaviour of Aluminium Foams}, + journal = {ALUMINIUM}, + year = 2001, + volume = {1/2}, + pages = {87--92}, + language = {english} +} + + +@InProceedings{seeliger1997a, + author = {Seeliger, H.-W.}, + title = {Complex Shaped Aluminum Foam Sandwich Panels for + Automotive Applications}, + booktitle = {Proceedings of the Fraunhofer USA Metal Foam Symposium}, + pages = {79--89}, + year = 1997, + address = {Bremen (Germany)}, + publisher = {MIT-Verlag}, + language = {english} +} + + +@Article{seitzberger2000a, + author = {Seitzberger, M. and Willminger, S.}, + title = {Versagensmechanismen zur Kollapsanalyse axial gedr\"uckter + Aluminiumschaum-gef\"ullter Profile}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {459--461}, + language = {ngerman} +} + + +@Article{shiozawa2002a, + author = {Shiozawa, K. and Lu, L.}, + title = {Very high-cycle fatigue behaviour of shot-peened + high-carbon-chromium bearing steel}, + journal = {Fatigue and fracture of engineering materials and + structures}, + year = 2002, + volume = 25, + number = 8, + pages = {813--833}, + language = {english} +} + + +@Article{silva1995a, + author = {Silva, M.{\,}J. and Hayes, W.{\,}C. and Gibson, L.{\,}J.}, + title = {The effects of non-periodic microstructure on the elastic + properties of two-dimensional cellular solids}, + journal = {International journal of mechanical sciences}, + year = 1995, + volume = 37, + number = 11, + pages = {1161--1177}, + language = {english} +} + + +@Article{silva1997a, + author = {Silva, M.{\,}J. and Gibson, L.{\,}J.}, + title = {The effect of non-periodic microstructure and + defects on the compressive strength of + two-dimensional cellular solids}, + journal = {International Journal of Mechanical Sciences}, + year = 1997, + volume = 39, + pages = 549, + language = {english} +} + + +@InProceedings{simancik1998a, + author = {Siman\v{c}ik, F. and Kov\'a\v{c}ik, J. and Min\'arikov\'a, N.}, + title = {Bending Properties of Foamed Aluminium Panels and + Sandwiches}, + booktitle = {Porous and Cellular Materials for Structural Applications}, + pages = {91--97}, + year = 1998, + editor = {Schwartz, D.{\,}S. and Shih, D.{\,}S. and Evans, A.{\,}G. and + Wadley, H.{\,}N.{\,}G.}, + volume = 521, + series = {Symposium Proceedings}, + address = {Warrendale, Pennsylvania}, + month = {April}, + publisher = {Materials Research Society}, + language = {english} +} + +@Article{simone1998a, + author = {Simone, A.{\,}E. and Gibson, L.{\,}J.}, + title = {Aluminium foams produced by liquid-state + processes}, + journal = {Acta Materialia}, + year = 1998, + volume = 46, + pages = 3109, + language = {english} +} + +@Article{simone1998b, + author = {Simone, A.{\,}E. and Gibson, L.{\,}J.}, + title = {Effects of solid distribution on the stiffness and + strength of metallic foams}, + journal = {Acta Materialia}, + year = 1998, + volume = 46, + pages = {2139--2150}, + language = {english} +} + +@Manual{stahlschluessel1992a, + title = {Stahlschl"ussel-Taschenbuch}, + key = {Stahlschluessel}, + organization = {Verlag Stahlschl"ussel Wegst GmbH}, + address = {Marbach/N.}, + year = 1992, + language = {ngerman}, + isbn = {3-922599-08-7} +} + +@Article{stanzick2000a, + author = {Stanzick, H. and Duarte, I. and Banhart, J.}, + title = {Der Sch\"aumproze\ss{} von Aluminium}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {409--411}, + language = {ngerman} +} + +@Article{steck1989a, + author = {Steck, E.}, + title = {A Stochastic Model for the Interaction of Plasticity and + Creep in Metals}, + journal = {Nuclear Engineering and Design}, + year = 1989, + volume = 114, + pages = {285--294}, + language = {english} +} + +@Article{steck1991a, + author = {Steck, E. and Kublik, F.}, + title = {Application of Constitutive Models for the Prediction of + Multiaxial Inelastic Behaviour}, + journal = {SMiRT 11 Transactions}, + year = 1991, + volume = {L}, + language = {english} +} + +@InProceedings{steck1992a, + author = {Steck, E.}, + title = {Stochastic Modelling of Cyclic Deformation Processes in + Metals}, + booktitle = {Proceedings of the 13th Ris\o\ International Symposium on + Materials Science: Modelling of Plastic Deformation and + Its Engineering Applications}, + pages = {439--444}, + year = 1992, + editor = {Andersen, S.{\,}I. and Bilde-S\o{}rensen, J.{\,}B. and Hansen, N. + and Juul Jensen, D. and Leffers, T. and Lilholt, H. and + Lorentzen, T. and Pedersen, O.{\,}B. and Ralph, B.}, + address = {Roskilde, Denmark}, + organization = {Ris\o\ National Laboratory}, + language = {english} +} + + + +@Article{steck1995a, + author = {Steck, E.}, + title = {Zur Ber\"ucksichtigung von Vorg\"angen im Mikrobereich + metallischer Werkstoffe bei der Entwicklung von + Stoffmodellen}, + journal = {Zeitschrift f\"ur angewandte Mathematik und Mechanik (ZAMM)}, + year = 1995, + volume = 75, + number = 5, + pages = {331--341}, + language = {ngerman}, + issn = {0946-8463} +} + +@InProceedings{steck1995b, + author = {Steck, E.}, + title = {Zur Ber\"ucksichtigung von Vorg\"angen im Mikrobereich + kristalliner Werkstoffe bei der Entwicklung von + Stoffmodellen}, + booktitle = {Jahrbuch 1995}, + pages = {115--130}, + year = 1995, + organization = {Braunschweigische Wissenschaftliche Gesellschaft}, + language = {ngerman} +} + +@Article{steck1997a, + author = {Steck, E.}, + title = {Zur Berechnung der Ri"sausbreitung in z\"ahen metallischen + Werkstoffen}, + journal = {Abhandlungen der Braunschweigischen Wissenschaftlichen + Gesellschaft}, + year = 1997, + volume = {XLVII}, + pages = {211--229}, + language = {ngerman} +} + +@InCollection{stevens1991a, + author = {Stevens, R.}, + title = {Engineering Properties of Zirconia}, + booktitle = {Ceramics and Glasses}, + pages = {775--786}, + publisher = {ASM International}, + year = 1991, + editor = {Schneider, Samuel J.}, + volume = 4, + series = {Engineered Materials Handbook}, + language = {english}, + isbn = {0-87170-282-7} +} + +@Article{stiebel2001a, + author = {Stiebel, C. and W\"urtz, T. and Janocha, H.}, + title = {Leistungsverst\"arker f\"ur piezoelektrische Aktoren}, + journal = {Elektronik}, + year = 2001, + volume = 12, + pages = {82--88}, + language = {ngerman} +} + +@Book{stoyan1995a, + author = {Stoyan, D. and Kendall, W.{\,}S. and Mecke, J.}, + title = {Stochastic Geometry and its Applications}, + publisher = {John Wiley \&\ Sons}, + year = 1995, + address = {Chichester}, + edition = {2nd}, + language = {english}, + isbn = {0-471-95099-8} +} + + +@Article{stroehla2000a, + author = {Str\"ohla, S. and Winter, W. and Kuhn, G.}, + title = {Numerische Ermittlung elastischer Eigenschaften von + Metallsch\"aumen mit Polyeder-Einheitszellen}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {444--446}, + language = {ngerman} +} + +@Book{stuewe1991a, + author = {Stwe, H.-P.}, + title = {Einf\"uhrung in die Werkstoffkunde}, + publisher = {B.I.-Wissenschaftsverlag}, + year = 1991, + series = {B.I.-Hochschultaschenbuch}, + volume = {467}, + edition = {2.}, + address = {Mannheim, Wien, Z\"urich}, + language = {ngerman} +} + +@Article{sugimura1997a, + author = {Sugimura, Y. and Meyer, J. and He, M.{\,}Y. and + Bart-Smith, H. and Greenstedt, J. and Evans, A.{\,}G.}, + title = {On the mechanical performance of closed cell {Al} alloy + foams}, + journal = {Acta Materialia}, + year = 1997, + volume = 45, + number = 12, + pages = {5245--5260}, + language = {english} +} + +@Article{sugimura1999a, + author = {Sugimura, Y. and Rabiei, A. and Evans, A.{\,}G. and + Harte, A.{\,}M. and Fleck, N.{\,}A.}, + title = {Compression fatigue of a cellular {Al} alloy}, + journal = {Materials Science \&\ Engineering}, + year = 1999, + volume = {A~269}, + pages = {38--48}, + language = {english} +} + +@Book{tabellenbuch1999a, + author = {Fischer, U. and Heinzler, M. and Kilgus, R. and N"aher, F. + and Paetzold, H. and R"ohrer, W. and Schilling, K. and + Stephan, A.}, + title = {Tabellenbuch Metall}, + publisher = {Verlag Europa-Lehrmittel}, + year = 1999, + address = {Haan-Gruiten}, + edition = {41.}, + language = {ngerman}, + isbn = {3-8085-1721-2} +} + + +@Book{tada2000a, + author = {Tada,H. and Paris, P. and Irwin, G.}, + title = {The Stress Analysis of Cracks Handbook}, + publisher = {ASME}, + year = 2000, + address = {New York}, + language = {english}, + isbn = {1-86058-304-0} +} + + + + +@Article{tanaka2002a, + author = {Tanaka, K. and Akiniwa, Y.}, + title = {Fatigue crack propagation behaviour derived from S-N + data in very high cycle regime}, + journal = {Fatigue and fracture of engineering materials and + structures}, + year = 2002, + volume = 25, + number = 8, + pages = {775--784}, + language = {english} +} + +@Book{tenckhoff1980a, + author = {Tenckhoff, E.}, + title = {Verformungsmechanismen, Textur und Anisotropie in + Zirkonium und Zircaloy}, + publisher = {Gebr"uder Borntraeger, Berlin, Stuttgart}, + year = 1980, + series = {Materialkundlich-Technische Reihe~5}, + language = {ngerman} +} + +@Article{torquato1998a, + author = {Torquato, S. and Gibiansky, L.{\,}V. and Silva, M.{\,}J. and + Gibson, L.{\,}J.}, + title = {Effective Mechanical and Transport Properties of Cellular + Solids}, + journal = {International Journal of Mechanical Sciences}, + year = 1998, + volume = 40, + number = 1, + pages = {71--82}, + language = {english} +} + +@Article{triantafillou1989a, + author = {Triantafillou, T.{\,}C. and Zhang, J. and Shercliff, + T.{\,}L. and Gibson, L.{\,}J. and Ashby, M.{\,}F.}, + title = {Failure surfaces for cellular materials under + multiaxial loads -- {II}.~Comparison of models with + experiment}, + journal = {International Journal of Mechanical Sciences}, + year = 1997, + volume = 39, + pages = 549, + language = {english} +} + +@TechReport{vesper2000a, + author = {Vesper, M. and Steck, E.}, + title = {Customizing ABAQUS Material Subroutines UMAT Incorporating + Constitutive Laws for FCC Polycrystalline Metals}, + institution = {Institut f\"ur Allgemeine Mechanik und Festigkeitslehre, + Technische Universi\"at Braunschweig}, + year = 2000, + type = {Technical Report}, + address = {Braunschweig}, + language = {english} +} + +@InProceedings{wadley2001a, + author = {Wadley, H.{\,}N.{\,}G.}, + title = {Cellular metals manufacturing: an overview of stochastic + and periodic concepts}, + booktitle = {Cellular Metals and Metal Foaming Technology}, + pages = {137--146}, + year = 2001, + editor = {Banhart, J. and Ashby, M.{\,}F. and Fleck, N.{\,}A.}, + address = {Bremen}, + publisher = {Verlag MIT Publishing}, + language = {english}, + isbn = {3-935538-11-1} +} + +@Article{wallach2001a, + author = {Wallach, J.{\,}C. and Gibson, L.{\,}J.}, + title = {Mechanical behavior of a three-dimensional truss material}, + journal = {International Journal of Solids and Structures}, + year = 2001, + volume = 38, + pages = {7181--7196}, + language = {english} +} + + + +@Article{wallach2001b, + author = {Wallach, J.{\,}C. and Gibson, L.{\,}J.}, + title = {Defect sensitivity of a {3D} truss material}, + journal = {Scripta Materialia}, + year = 2001, + volume = 45, + pages = {639--644}, + language = {english} +} + +@Article{wanner2000a, + author = {Wanner, A. and Kriszt, B.}, + title = {Charakterisierung des linear-elastischen Verhaltens von + Metallsch\"aumen mittels Ultraschall-Phasenspektroskopie}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {481--483}, + language = {ngerman} +} + +@Article{weaire1994a, + author = {Weaire, D. and Fortes, M.{\,}A.}, + title = {Stress and strain in liquid and solid foams}, + journal = {Advances in Physics}, + year = 1994, + volume = 43, + pages = 685, + language = {english} +} + + +@PhdThesis{weber1995a, + author = {Weber, M.}, + title = {Herstellung von Metallsch\"aumen und Beschreibung der + Werkstoffeigenschaften}, + school = {Technische Universit\"at Clausthal}, + year = 1995, + type = {Dissertation}, + language = {ngerman} +} + +@InProceedings{weiss1999a, + author = {Wei\ss{}, S. and Thielecke, F. and Harders, H.}, + title = {Ein neuer Ansatz zur Modellierung von Luftdatensystemen}, + booktitle = {Deutscher Luft- und Raumfahrtkongre\ss{} 1999\,/\,DGLR + Jahrestagung 1999}, + year = 1999, + address = {Berlin}, + month = {27.\,--\,30.\,09.}, + language = {ngerman} +} + +@Book{wellinger1976a, + author = {Wellinger, K. and Dietmann, H.}, + title = {Festigkeitsberechnung: Grundlagen und technische Anwendung}, + publisher = {Alfred Kr"oner Verlag}, + year = 1976, + address = {Stuttgart}, + edition = {3.}, + language = {ngerman}, + isbn = {3-520-90303-2} +} + +@Article{westergaard1939a, + author = {Westergaard, H.{\,}M.}, + title = {Bearing Pressures and Cracks}, + journal = {Journal of Applied Mechanics}, + year = 1939, + volume = 6, + pages = {49--53}, + language = {english} +} + +@MastersThesis{wieding1991a, + author = {Wieding, H., v.}, + title = {Entwicklung eines Programmpaketes zur Berechnung der + ertragbaren Spannungen bzw.\ der Lebensdauer bei + mehrachsiger Betriebsbeanspruchung auf der Basis der + modifizierten Okaederschubspannungshypothese}, + school = {Institut f"ur Werkstoffe, TU Braunschweig}, + year = 1991, + type = {Studienarbeit}, + language = {ngerman} +} + +@Unpublished{witzela, + author = {Witzel, W. and Drude, H. and Schwarze, R. and B\"uckle, R. + and Hagedorn, U. and Otremba, R.}, + title = {Torsionspr\"ufung mit Laserextensometer zur Messung von + Dehnungsverteilungen}, + language = {ngerman} +} + +@Misc{www.copper.org, + key = {CopperPage}, + title = {The Copper Page}, + howpublished = {http://www.copper.org}, + language = {english} +} + +@Article{yamada2000a, + author = {Yamada, Y. and Shimojima, K. and Mabuchi, M. and + Nakamura, M. and Asahina, T. and Mukai, T. and + Kanahashi, H. and Higashi, K.}, + title = {Compressive deformation behavior of {Al$_2$O$_3$} foam}, + journal = {Materials Science and Engineering}, + year = 2000, + volume = {A~277}, + pages = {213--217}, + language = {english} +} + +@Article{yang2000a, + author = {Yang, C.{\,}C. and Nakae, H.}, + title = {Foam Structure Effect on the Compression Behavior of + Foamed Aluminium Alloy}, + journal = {ISIJ International}, + year = 2000, + volume = 40, + number = 12, + pages = {1283--1286}, + language = {english} +} + +@Article{yu1998a, + author = {Yu, C.J. and Eifert, H.{\,}H. and Banhart, J. and + Baumeister, J.}, + title = {Metal foaming by a powder metallurgy method: Production, + properties and applications}, + journal = {Materials research innovations}, + year = 1998, + volume = 2, + pages = {181--188}, + language = {english} +} + +@InProceedings{zettl1998a, + author = {Zettl, B. and Stanzl-Tschegg, S. and Gradinger, R. + and Degischer, H.{\,}P.}, + title = {High Cycle Fatigue Properties of Aluminium Foams}, + booktitle = {Porous and Cellular Materials for Structural Applications}, + pages = {97--102}, + year = 1998, + editor = {Schwartz, D.{\,}S. and Shih, D.{\,}S. and Evans, A.{\,}G. and + Wadley, H.{\,}N.{\,}G.}, + volume = 521, + series = {Symposium Proceedings}, + address = {Warrendale, Pennsylvania}, + month = {April}, + publisher = {Materials Research Society}, + language = {english} +} + + +@InProceedings{zettl1999a, + author = {Zettl, B. and Stanzl-Tschegg, S.}, + title = {Fatigue of Aluminium Foams at Ultrasonic + Frequencies}, + booktitle = {Metal Foams and Porous Metal Structures}, + pages = {373--378}, + year = 1999, + editor = {Banhart, J. and Ashby, M.{\,}F. and Fleck, N.{\,}A.}, + publisher = {MIT Verlag}, + language = {english} +} + + +@InProceedings{zettl2000a, + author = {Zettl, B. and Stanzl-Tschegg, S.}, + title = {Er\"udungssch\"aden in Aluminiumschaum}, + booktitle = {Metallsch\"aume}, + pages = {484--487}, + year = 2000, + editor = {Degischer, H.{\,}P.}, + publisher = {Wiley-VCH}, + language = {ngerman} +} + +@Article{zettl2000b, + author = {Zettl, B. and Stanzl-Tschegg, S.}, + title = {Erm\"udungssch\"aden in Aluminiumschaum}, + journal = {Materialwissenschaft und Werkstofftechnik}, + year = 2000, + volume = 31, + pages = {484--487}, + language = {ngerman} +} + +@Book{zhang1989a, + author = {Zhang, J.}, + title = {The Mechanics of Foams and Honeycombs}, + publisher = {University of Cambridge}, + year = 1989, + language = {english} +} + +@Article{zhou2002a, + author = {Zhou, J. and Mercer, C. and Soboyejo, W.{\,}O.}, + title = {An Investigation of the Mictrostructure and Strengh of + Open-Cell 6101 Aluminum Foams}, + journal = {Metallurgical and Materials Transactions A}, + year = 2002, + volume = {33A}, + pages = {1413--1427}, + month = {May}, + language = {english} +} + +@InCollection{ziegler1991a, + author = {Ziegler, G.}, + title = {Engineering Properties of Carbon-Carbon and Ceramic-Matrix + Composites}, + booktitle = {Ceramics and Glasses}, + pages = {835--844}, + publisher = {ASM International}, + year = 1991, + editor = {Schneider, Samuel J.}, + volume = 4, + series = {Engineered Materials Handbook}, + language = {english}, + isbn = {0-87170-282-7} +} + +@PhdThesis{zorn2002a, + author = {Zorn, C.}, + title = {Plastisch instabile Verformung aufgrund dynamischer + Reckalterung und korrelierten Versetzungsgleitens}, + school = {Mechanik"=Zentrum, TU Braunschweig}, + year = 2002, + type = {Dissertation}, + language = {ngerman}, + isbn = {3-920395-45-X} +} + +@PhDThesis{ov-mori-sanchez2002, + author = {Mori-S{\'a}nchez, Paula}, + title = {Densidad electr{\'o}nica y enlace qu{\'\i}mico. + {De} la mol{\'e}cula al cristal}, + year = 2002, + month = {Febrero}, + type = {Tesis Doctoral}, + school = {Universidad de Oviedo}, + language = {spanish}, + url = {http://www.uniovi.es/~quimica.fisica/qcg/pms/tesis.html}, + } + +@MastersThesis{ov-montes2002, + author = {Men{\'e}ndez Montes, Jos{\'e} Manuel}, + title = {Sumas electrost{\'a}ticas en sistemas bidimensionales: + Fundamentos, algoritmos y aplicaciones}, + year = 2002, + school = {Universidad de Oviedo}, + type = {{S}eminario de {I}nvestigaci{\'o}n}, + note = {Directores: A. Mart{\'\i}n Pend{\'a}s + M.{\,}A. Blanco y A. Costales Castro}, + pages = 127, + language = {spanish}, +} + +@misc{ov-luana2002, + author = {Lua{\~n}a, V{\'\i}ctor}, + booktitle = {Curso de Espectroscop\'{\i}a Molecular 2002}, + title = {Curso de Espectroscop\'{\i}a Molecular 2002}, + year = 2002, + abstract = {% + Conjunto de 166 transparencias en formato PDF creadas para impartir + la asignatura Espectroscop\'{\i}a Molecular correspondiente al + tercer a\~{n}o de la Licenciatura en Ciencias Qu\'{\i}micas. Estas + transparencias, junto con el resto del material docente desarrollado, + est\'{a}n disponibles en el servidor web de la Universidad de Oviedo. + }, + url = {http://www.uniovi.es/~quimica.fisica/qcg/asignaturas.html}, + language = {spanish}, +} + +@Book{ov-LG2002, + author = {Lua{\~n}a, V{\'\i}ctor + and Garc{\'\i}a Fern{\'a}ndez, V.{\,}M. + and Francisco, E. + and Recio, J.{\,}M.}, + title = {Espectroscop\'{\i}a Molecular}, + year = 2002, + publisher = {{S}ervicio de {P}ublicaciones, {U}niversidad de {O}viedo}, + address = {Oviedo}, + isbn = {84-8317-273-9}, + pages = {269+x}, + note = {269+x p\'{a}gs}, + language = {spanish}, +} + +@Article{ov-PB86, + author = {Pueyo, L. + and Barandiar{\'a}n, Z. + and Fern{\'a}ndez Rodrigo, G. + and Fl{\'o}rez, M. + and Francisco, E. + and Lua{\~n}a, V. + and Recio, J.{\,}M. + and van der Maelen, F.{\,}J. + and Bermejo, M. + and Seijo, L.}, + title = {Algunos problemas en el c\'{a}lculo de la estructura + electr\'{o}nica de iones de transici\'{o}n en redes + i\'{o}nicas}, + journal = {Studia Chemica}, + year = 1986, + volume = 11, + pages = {285--301}, + note = {(Homenaje a Jos\'{e} Antonio Herr\'{a}ez)}, + language = {spanish}, +} + +@Book{plateau1873a, + author = {Plateau, Joseph}, + title = {Statique exp\'erimentale et th\'eorique des liquides}, + publisher = {Gauthier-Villars}, + year = 1873, + volume = {1.}, + address = {Paris}, + language = {frenchb} +} + +@Article{voronoi1908a, + author = {Vorono\"\i, G.}, + title = {Nouvelles applications des param\`etres continus \`a la + th\'eorie des formes quadratiques}, + journal = {Journal f\"ur die reine und angewandte Mathematik}, + year = 1908, + volume = 134, + pages = {198--312}, + language = {frenchb} +} + diff --git a/Master/texmf-dist/bibtex/bib/base/xampl.bib b/Master/texmf-dist/bibtex/bib/base/xampl.bib new file mode 100644 index 00000000000..f651547ce26 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/base/xampl.bib @@ -0,0 +1,356 @@ +@preamble{ "\newcommand{\noopsort}[1]{} " + # "\newcommand{\printfirst}[2]{#1} " + # "\newcommand{\singleletter}[1]{#1} " + # "\newcommand{\switchargs}[2]{#2#1} " } + +@ARTICLE{article-minimal, + author = {L[eslie] A. Aamport}, + title = {The Gnats and Gnus Document Preparation System}, + journal = {\mbox{G-Animal's} Journal}, + year = 1986, +} + +@ARTICLE{article-full, + author = {L[eslie] A. Aamport}, + title = {The Gnats and Gnus Document Preparation System}, + journal = {\mbox{G-Animal's} Journal}, + year = 1986, + volume = 41, + number = 7, + pages = "73+", + month = jul, + note = "This is a full ARTICLE entry", +} + +The KEY field is here to override the KEY field in the journal being +cross referenced (so is the NOTE field, in addition to its imparting +information). + +@ARTICLE{article-crossref, + crossref = {WHOLE-JOURNAL}, + key = "", + author = {L[eslie] A. Aamport}, + title = {The Gnats and Gnus Document Preparation System}, + pages = "73+", + note = "This is a cross-referencing ARTICLE entry", +} + +@ARTICLE{whole-journal, + key = "GAJ", + journal = {\mbox{G-Animal's} Journal}, + year = 1986, + volume = 41, + number = 7, + month = jul, + note = {The entire issue is devoted to gnats and gnus + (this entry is a cross-referenced ARTICLE (journal))}, +} + +@INBOOK{inbook-minimal, + author = "Donald E. Knuth", + title = "Fundamental Algorithms", + publisher = "Addison-Wesley", + year = "{\noopsort{1973b}}1973", + chapter = "1.2", +} + +@INBOOK{inbook-full, + author = "Donald E. Knuth", + title = "Fundamental Algorithms", + volume = 1, + series = "The Art of Computer Programming", + publisher = "Addison-Wesley", + address = "Reading, Massachusetts", + edition = "Second", + month = "10~" # jan, + year = "{\noopsort{1973b}}1973", + type = "Section", + chapter = "1.2", + pages = "10--119", + note = "This is a full INBOOK entry", +} + +@INBOOK{inbook-crossref, + crossref = "whole-set", + title = "Fundamental Algorithms", + volume = 1, + series = "The Art of Computer Programming", + edition = "Second", + year = "{\noopsort{1973b}}1973", + type = "Section", + chapter = "1.2", + note = "This is a cross-referencing INBOOK entry", +} + +@BOOK{book-minimal, + author = "Donald E. Knuth", + title = "Seminumerical Algorithms", + publisher = "Addison-Wesley", + year = "{\noopsort{1973c}}1981", +} + +@BOOK{book-full, + author = "Donald E. Knuth", + title = "Seminumerical Algorithms", + volume = 2, + series = "The Art of Computer Programming", + publisher = "Addison-Wesley", + address = "Reading, Massachusetts", + edition = "Second", + month = "10~" # jan, + year = "{\noopsort{1973c}}1981", + note = "This is a full BOOK entry", +} + +@BOOK{book-crossref, + crossref = "whole-set", + title = "Seminumerical Algorithms", + volume = 2, + series = "The Art of Computer Programming", + edition = "Second", + year = "{\noopsort{1973c}}1981", + note = "This is a cross-referencing BOOK entry", +} + +@BOOK{whole-set, + author = "Donald E. Knuth", + publisher = "Addison-Wesley", + title = "The Art of Computer Programming", + series = "Four volumes", + year = "{\noopsort{1973a}}{\switchargs{--90}{1968}}", + note = "Seven volumes planned (this is a cross-referenced set of BOOKs)", +} + +@BOOKLET{booklet-minimal, + key = "Kn{\printfirst{v}{1987}}", + title = "The Programming of Computer Art", +} + +@BOOKLET{booklet-full, + author = "Jill C. Knvth", + title = "The Programming of Computer Art", + howpublished = "Vernier Art Center", + address = "Stanford, California", + month = feb, + year = 1988, + note = "This is a full BOOKLET entry", +} + +@INCOLLECTION{incollection-minimal, + author = "Daniel D. Lincoll", + title = "Semigroups of Recurrences", + booktitle = "High Speed Computer and Algorithm Organization", + publisher = "Academic Press", + year = 1977, +} + +@INCOLLECTION{incollection-full, + author = "Daniel D. Lincoll", + title = "Semigroups of Recurrences", + editor = "David J. Lipcoll and D. H. Lawrie and A. H. Sameh", + booktitle = "High Speed Computer and Algorithm Organization", + number = 23, + series = "Fast Computers", + chapter = 3, + type = "Part", + pages = "179--183", + publisher = "Academic Press", + address = "New York", + edition = "Third", + month = sep, + year = 1977, + note = "This is a full INCOLLECTION entry", +} + +@INCOLLECTION{incollection-crossref, + crossref = "whole-collection", + author = "Daniel D. Lincoll", + title = "Semigroups of Recurrences", + pages = "179--183", + note = "This is a cross-referencing INCOLLECTION entry", +} + +@BOOK{whole-collection, + editor = "David J. Lipcoll and D. H. Lawrie and A. H. Sameh", + title = "High Speed Computer and Algorithm Organization", + booktitle = "High Speed Computer and Algorithm Organization", + number = 23, + series = "Fast Computers", + publisher = "Academic Press", + address = "New York", + edition = "Third", + month = sep, + year = 1977, + note = "This is a cross-referenced BOOK (collection) entry", +} + +@MANUAL{manual-minimal, + key = "Manmaker", + title = "The Definitive Computer Manual", +} + +@MANUAL{manual-full, + author = "Larry Manmaker", + title = "The Definitive Computer Manual", + organization = "Chips-R-Us", + address = "Silicon Valley", + edition = "Silver", + month = apr # "-" # may, + year = 1986, + note = "This is a full MANUAL entry", +} + +@MASTERSTHESIS{mastersthesis-minimal, + author = "{\'{E}}douard Masterly", + title = "Mastering Thesis Writing", + school = "Stanford University", + year = 1988, +} + +@MASTERSTHESIS{mastersthesis-full, + author = "{\'{E}}douard Masterly", + title = "Mastering Thesis Writing", + school = "Stanford University", + type = "Master's project", + address = "English Department", + month = jun # "-" # aug, + year = 1988, + note = "This is a full MASTERSTHESIS entry", +} + +@MISC{misc-minimal, + key = "Missilany", + note = "This is a minimal MISC entry", +} + +@MISC{misc-full, + author = "Joe-Bob Missilany", + title = "Handing out random pamphlets in airports", + howpublished = "Handed out at O'Hare", + month = oct, + year = 1984, + note = "This is a full MISC entry", +} + +@STRING{STOC-key = "OX{\singleletter{stoc}}"} + +@STRING{ACM = "The OX Association for Computing Machinery"} + +@STRING{STOC = " Symposium on the Theory of Computing"} + +@INPROCEEDINGS{inproceedings-minimal, + author = "Alfred V. Oaho and Jeffrey D. Ullman and Mihalis Yannakakis", + title = "On Notions of Information Transfer in {VLSI} Circuits", + booktitle = "Proc. Fifteenth Annual ACM" # STOC, + year = 1983, +} + +@INPROCEEDINGS{inproceedings-full, + author = "Alfred V. Oaho and Jeffrey D. Ullman and Mihalis Yannakakis", + title = "On Notions of Information Transfer in {VLSI} Circuits", + editor = "Wizard V. Oz and Mihalis Yannakakis", + booktitle = "Proc. Fifteenth Annual ACM" # STOC, + number = 17, + series = "All ACM Conferences", + pages = "133--139", + month = mar, + year = 1983, + address = "Boston", + organization = ACM, + publisher = "Academic Press", + note = "This is a full INPROCEDINGS entry", +} + +@INPROCEEDINGS{inproceedings-crossref, + crossref = "whole-proceedings", + author = "Alfred V. Oaho and Jeffrey D. Ullman and Mihalis Yannakakis", + title = "On Notions of Information Transfer in {VLSI} Circuits", + organization = "", + pages = "133--139", + note = "This is a cross-referencing INPROCEEDINGS entry", +} + +@PROCEEDINGS{proceedings-minimal, + key = STOC-key, + title = "Proc. Fifteenth Annual" # STOC, + year = 1983, +} + +@PROCEEDINGS{proceedings-full, + editor = "Wizard V. Oz and Mihalis Yannakakis", + title = "Proc. Fifteenth Annual" # STOC, + number = 17, + series = "All ACM Conferences", + month = mar, + year = 1983, + address = "Boston", + organization = ACM, + publisher = "Academic Press", + note = "This is a full PROCEEDINGS entry", +} + +@PROCEEDINGS{whole-proceedings, + key = STOC-key, + organization = ACM, + title = "Proc. Fifteenth Annual" # STOC, + address = "Boston", + year = 1983, + booktitle = "Proc. Fifteenth Annual ACM" # STOC, + note = "This is a cross-referenced PROCEEDINGS", +} + +@PHDTHESIS{phdthesis-minimal, + author = "F. Phidias Phony-Baloney", + title = "Fighting Fire with Fire: Festooning {F}rench Phrases", + school = "Fanstord University", + year = 1988, +} + +@PHDTHESIS{phdthesis-full, + author = "F. Phidias Phony-Baloney", + title = "Fighting Fire with Fire: Festooning {F}rench Phrases", + school = "Fanstord University", + type = "{PhD} Dissertation", + address = "Department of French", + month = jun # "-" # aug, + year = 1988, + note = "This is a full PHDTHESIS entry", +} + +@TECHREPORT{techreport-minimal, + author = "Tom Terrific", + title = "An {$O(n \log n / \! \log\log n)$} Sorting Algorithm", + institution = "Fanstord University", + year = 1988, +} + +@TECHREPORT{techreport-full, + author = "Tom T{\'{e}}rrific", + title = "An {$O(n \log n / \! \log\log n)$} Sorting Algorithm", + institution = "Fanstord University", + type = "Wishful Research Result", + number = "7", + address = "Computer Science Department, Fanstord, California", + month = oct, + year = 1988, + note = "This is a full TECHREPORT entry", +} + +@UNPUBLISHED{unpublished-minimal, + author = "Ulrich {\"{U}}nderwood and Ned {\~N}et and Paul {\={P}}ot", + title = "Lower Bounds for Wishful Research Results", + note = "Talk at Fanstord University (this is a minimal UNPUBLISHED entry)", +} + +@UNPUBLISHED{unpublished-full, + author = "Ulrich {\"{U}}nderwood and Ned {\~N}et and Paul {\={P}}ot", + title = "Lower Bounds for Wishful Research Results", + month = nov # ", " # dec, + year = 1988, + note = "Talk at Fanstord University (this is a full UNPUBLISHED entry)", +} + +@MISC{random-note-crossref, + key = {Volume-2}, + note = "Volume~2 is listed under Knuth \cite{book-full}" +} diff --git a/Master/texmf-dist/bibtex/bib/beebe/gut.bib b/Master/texmf-dist/bibtex/bib/beebe/gut.bib new file mode 100644 index 00000000000..92377798d89 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/beebe/gut.bib @@ -0,0 +1,1368 @@ +%%% -*-BibTeX-*- +%%% ==================================================================== +%%% BibTeX-file{ +%%% author = "Nelson H. F. Beebe", +%%% version = "1.12", +%%% date = "01 November 2000", +%%% time = "08:10:36 MDT", +%%% filename = "gut.bib", +%%% address = "Center for Scientific Computing +%%% University of Utah +%%% Department of Mathematics, 322 INSCC +%%% 155 S 1400 E RM 233 +%%% Salt Lake City, UT 84112-0090 +%%% USA", +%%% telephone = "+1 801 581 5254", +%%% FAX = "+1 801 585 1640, +1 801 581 4148", +%%% checksum = "46228 1368 4056 36890", +%%% email = "beebe at math.utah.edu, beebe at acm.org, +%%% beebe at computer.org, beebe at ieee.org +%%% (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "bibliography, Cahiers GUTenberg", +%%% supported = "yes", +%%% docstring = "This file contains a BibTeX bibliography +%%% for the journal Cahiers GUTenberg, +%%% published by l'Association GUTenberg +%%% (Groupe des Utilisateurs de \TeX{} +%%% Francophones). +%%% +%%% At version 1.12, the year coverage looked +%%% like this: +%%% +%%% 1988 ( 7) 1990 ( 31) +%%% 1989 ( 42) 1991 ( 47) +%%% +%%% Article: 127 +%%% +%%% Total entries: 127 +%%% +%%% The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== + +@Preamble{"\input gut.sty"} + +@String{j-GUTENBERG = "Cahiers GUTenberg"} + +@Article{Andre:CG-0-1, + author = "J. Andr{\'e} and B. Gaulle", + title = "{\'E}ditorial", + journal = j-GUTENBERG, + year = "1988", + volume = "0", + pages = "1--2", + month = "avril", +} + +@Article{Kolodzieska:CG-0-3, + author = "H. Kolodzieska", + title = "Le traitement des textes polonais avec le logiciel + \smash{\TeX}", + journal = j-GUTENBERG, + year = "1988", + volume = "0", + pages = "3--10", + month = "avril", +} + +@Article{Gaulle:CG-0-11, + author = "B. Gaulle", + title = "La publication assist{\'e}e au {Circ}{\'e}", + journal = j-GUTENBERG, + year = "1988", + volume = "0", + pages = "11--16", + month = "avril", +} + +@Article{Louarn:CG-0-17, + author = "Ph. Louarn", + title = "Une exp{\'e}rience d'utilisation de \smash{\LaTeX}~: + le rapport d'activit{\'e} de l'{Inria}", + journal = j-GUTENBERG, + year = "1988", + volume = "0", + pages = "17--24", + month = "avril", +} + +@Article{Laugier:CG-0-25, + author = "M. Laugier", + title = "\smash{\TeX} et l'imprimerie", + journal = j-GUTENBERG, + year = "1988", + volume = "0", + pages = "25--29", + month = "avril", +} + +@Article{Carnes:CG-0-30, + author = "L. Carnes", + title = "{PC}\smash{\TeX} news", + journal = j-GUTENBERG, + year = "1988", + volume = "0", + pages = "30--31", + month = "avril", +} + +@Article{Gaulle:CG-0-32, + author = "B. Gaulle", + title = "Vous avez dit pol{\'e}mique~?", + journal = j-GUTENBERG, + year = "1988", + volume = "0", + pages = "32--36", + month = "avril", +} + +@Article{Gaulle:CG-1-1, + author = "B. Gaulle", + title = "{\'E}ditorial", + journal = j-GUTENBERG, + year = "1989", + volume = "1", + pages = "1--1", + month = "avril", +} + +@Article{Chahuneau:CG-1-2, + author = "F. Chahuneau", + title = "Quelques r{\'e}flexions sur le traitement de textes + informatis{\'e} {\`a} propos du logiciel \smash{\TeX}", + journal = j-GUTENBERG, + year = "1989", + volume = "1", + pages = "2--15", + month = "avril", +} + +@Article{Poggenbur:CG-1-16, + author = "R.-P. Poggenbur", + title = "\smash{\TeX} et {Beaudelaire}", + journal = j-GUTENBERG, + year = "1989", + volume = "1", + pages = "16--20", + month = "avril", +} + +@Article{Andre:CG-1-21, + author = "J. Andr{\'e}", + title = "\smash{\LaTeX} ou {SGML} pouvaient-ils faire + {\'e}viter la catastrophe de la gare de {Lyon}~?", + journal = j-GUTENBERG, + year = "1989", + volume = "1", + pages = "21--25", + month = "avril", +} + +@Article{Brouard:CG-1-26, + author = "N. Brouard", + title = "Pr{\'e}sentation d'une revue mensuelle compos{\'e}e + automatiquement par \smash{\LaTeX} {\`a} partir d'une + base de donn{\'e}es relationnelle", + journal = j-GUTENBERG, + year = "1989", + volume = "1", + pages = "26--34", + month = "avril", +} + +@Article{Violante:CG-1-35, + author = "A. Violante", + title = "{DDI} dessin {DVI}", + journal = j-GUTENBERG, + year = "1989", + volume = "1", + pages = "35--38", + month = "avril", +} + +@Article{Siebenmann:CG-1-39, + author = "L. Siebenmann", + title = "{\'E}volution en amont de \smash{\TeX}~: le + foisonnement des pr{\'e}processeurs pour la + math{\'e}matique", + journal = j-GUTENBERG, + year = "1989", + volume = "1", + pages = "39--44", + month = "avril", +} + +@Article{Borghi:CG-1-45, + author = "B. Borghi", + title = "Les concepts graphiques de {Post\-Script}", + journal = j-GUTENBERG, + year = "1989", + volume = "1", + pages = "45--51", + month = "avril", +} + +@Article{Weil:CG-1-52, + author = "G. Weil", + title = "Le coin des gourous", + journal = j-GUTENBERG, + year = "1989", + volume = "1", + pages = "52--53", + month = "avril", +} + +@Article{Andre:CG-1-54, + author = "J. Andr{\'e}", + title = "M{\'e}dia\smash{\TeX}", + journal = j-GUTENBERG, + year = "1989", + volume = "1", + pages = "54--60", + month = "avril", +} + +@Article{Louarn:CG-1-61, + author = "Ph. Louarn", + title = "Programma\smash{\TeX}", + journal = j-GUTENBERG, + year = "1989", + volume = "1", + pages = "61--63", + month = "avril", +} + +@Article{Borghi:CG-1-64, + author = "B. Borghi", + title = "Les fiches cuisine d'Onc' {Post\-Script}", + journal = j-GUTENBERG, + year = "1989", + volume = "1", + pages = "64--66", + month = "avril", +} + +@Article{Gaulle:CG-2-3, + author = "B. Gaulle", + title = "L'ann{\'e}e de tous les anniversaires", + journal = j-GUTENBERG, + year = "1989", + volume = "2", + pages = "3--10", + month = "mai", +} + +@Article{Brouard:CG-2-11, + author = "N. Brouard", + title = "X-window, \smash{\LaTeX}, \smash{\TeX}draw, {PLOT79} + ou comment calculer, r{\'e}diger, dessiner et imprimer + plus ais{\'e}ment", + journal = j-GUTENBERG, + year = "1989", + volume = "2", + pages = "11--12", + month = "mai", +} + +@Article{Beebe:CG-2-13, + author = "N. H. F. Beebe", + title = "\smash{\TeX} and graphics: the state of the problem", + journal = j-GUTENBERG, + year = "1989", + volume = "2", + pages = "13--53", + month = "mai", +} + +@Article{Merlet:CG-2-54, + author = "J.-P. Merlet", + title = "{JPdraw}, un {\'e}diteur de dessins pour + \smash{\LaTeX} sur {Sun}", + journal = j-GUTENBERG, + year = "1989", + volume = "2", + pages = "54--62", + month = "mai", +} + +@Article{Antoniadis:CG-2-63, + author = "A. Antoniadis", + title = "Graphisme et \smash{\TeX} dans un environnement + {{Macintosh}}", + journal = j-GUTENBERG, + year = "1989", + volume = "2", + pages = "63--67", + month = "mai", +} + +@Article{Laugier:CG-2-68, + author = "M. Laugier", + title = "Une application pratique~: traduction en \smash{\TeX} + d'un fichier ascii avec r{\'e}cup{\'e}ration des + tableaux et graphiques", + journal = j-GUTENBERG, + year = "1989", + volume = "2", + pages = "68--72", + month = "mai", +} + +@Article{Cerin:CG-2-73, + author = "Ch. C{\'e}rin", + title = "Gi\smash{\TeX}, {Paps}~: deux logiciels manipulant + {Post\-Script} et \smash{\LaTeX}", + journal = j-GUTENBERG, + year = "1989", + volume = "2", + pages = "73--80", + month = "mai", +} + +@Article{Ferguson:CG-2-81, + author = "M. J. Ferguson", + title = "L'incorporation de graphiques dans + {INRS}\smash{\TeX}", + journal = j-GUTENBERG, + year = "1989", + volume = "2", + pages = "81--89", + month = "mai", +} + +@Article{Decouty:CG-2-90, + author = "B. Decouty and Ph. Louarn", + title = "L'environnement de production de documents + \smash{\TeX} {\`a} l'{Irisa}", + journal = j-GUTENBERG, + year = "1989", + volume = "2", + pages = "90--95", + month = "mai", +} + +@Article{Andre:CG-3-1, + author = "J. Andr{\'e}", + title = "{\'E}ditorial~: touche pas {\`a} mon prote", + journal = j-GUTENBERG, + year = "1989", + volume = "3", + pages = "1--3", + month = "octobre", +} + +@Article{Carnes:CG-3-4, + author = "L. Carnes", + title = "\smash{\TeX} et les graphiques pour le {PC}", + journal = j-GUTENBERG, + year = "1989", + volume = "3", + pages = "4--8", + month = "octobre", +} + +@Article{Olejniczak-Burkert:CG-3-9, + author = "R. Olejniczak-Burkert", + title = "{\it texpic} -- design and implementation of a + picture graphics language in \smash{\TeX} {\`a} la + {\em pic}", + journal = j-GUTENBERG, + year = "1989", + volume = "3", + pages = "9--20", + month = "octobre", +} + +@Article{Nicole:CG-3-21, + author = "O. Nicole", + title = "Un pilote graphique entre le logiciel statistique {S} + et {PiC}\smash{\TeX}", + journal = j-GUTENBERG, + year = "1989", + volume = "3", + pages = "21--31", + month = "octobre", +} + +@Article{Chancelier:CG-3-32, + author = "J. Ph. Chancelier and A. Sulem", + title = "{MACRO}\smash{\TeX}~: un g{\'e}n{\'e}rateur de code + \smash{\LaTeX} impl{\'e}ment{\'e} en {MACSYMA}", + journal = j-GUTENBERG, + year = "1989", + volume = "3", + pages = "32--39", + month = "octobre", +} + +@Article{Gaulle:CG-3-40, + author = "B. Gaulle", + title = "Nouvelles de {GUT\-en\-berg}", + journal = j-GUTENBERG, + year = "1989", + volume = "3", + pages = "40--47", + month = "octobre", +} + +@Article{Brouard:CG-3-48, + author = "N. Brouard", + title = "Les disquettes {GUT89}~: une version compl{\`e}te de + \smash{\TeX} du domaine public sous {DOS}", + journal = j-GUTENBERG, + year = "1989", + volume = "3", + pages = "48--54", + month = "octobre", +} + +@Article{Weil:CG-3-55, + author = "G. Weil and R. Seroul", + title = "Le coin des gourous", + journal = j-GUTENBERG, + year = "1989", + volume = "3", + pages = "55--59", + month = "octobre", +} + +@Article{Andre:CG-3-60, + author = "J. Andr{\'e}", + title = "{M{\'e}dia}\smash{\TeX}", + journal = j-GUTENBERG, + year = "1989", + volume = "3", + pages = "60--65", + month = "octobre", +} + +@Article{Borghi:CG-3-66, + author = "B. Borghi", + title = "Les fiches cuisine d'Onc' {Post\-Script}~: 2. un + {\'e}mulateur de table tra{\c{c}}ante", + journal = j-GUTENBERG, + year = "1989", + volume = "3", + pages = "66--68", + month = "octobre", +} + +@Article{Andre:CG-3-69, + author = "J. Andr{\'e} and Ph. Louarn", + title = "Analyses bibliographiques", + journal = j-GUTENBERG, + year = "1989", + volume = "3", + pages = "69--70", + month = "octobre", +} + +@Article{Andre:CG-4-1, + author = "J. Andr{\'e}", + title = "{\'E}ditorial~: mais que fait la police~?", + journal = j-GUTENBERG, + year = "1989", + volume = "4", + pages = "1--1", + month = "decembre", +} + +@Article{Dardailler:CG-4-2, + author = "D. Dardailler", + title = "Normes et fontes", + journal = j-GUTENBERG, + year = "1989", + volume = "4", + pages = "2--8", + month = "decembre", +} + +@Article{Andre:CG-4-9, + author = "J. Andr{\'e}", + title = "M{\'e}triques de fontes en typographie + traditionnelle", + journal = j-GUTENBERG, + year = "1989", + volume = "4", + pages = "9--22", + month = "decembre", +} + +@Article{Andre:CG-4-23, + author = "J. Andr{\'e} and V. Ostromoukhov", + title = "Punk~: de {\METAFONT} {\`a} {Post\-Script}", + journal = j-GUTENBERG, + year = "1989", + volume = "4", + pages = "23--28", + month = "decembre", +} + +@Article{Siebenmann:CG-4-29, + author = "L. Siebenmann", + title = "Une meilleure int{\'e}gration du graphisme + {Macintosh}", + journal = j-GUTENBERG, + year = "1989", + volume = "4", + pages = "29--38", + month = "decembre", +} + +@Article{Knuth:CG-4-39, + author = "D. E. Knuth", + title = "\smash{\TeX} 3.0 ou le \smash{\TeX} nouveau va + arriver", + journal = j-GUTENBERG, + year = "1989", + volume = "4", + pages = "39--45", + month = "decembre", +} + +@Article{Gaulle:CG-4-46, + author = "B. Gaulle", + title = "Br{\`e}ves de {GUT\-en\-berg}", + journal = j-GUTENBERG, + year = "1989", + volume = "4", + pages = "46--48", + month = "decembre", +} + +@Article{Weil:CG-4-49, + author = "G. Weil and Ph. Louarn", + title = "Le coin des gourous", + journal = j-GUTENBERG, + year = "1989", + volume = "4", + pages = "49--51", + month = "decembre", +} + +@Article{Gaulle:CG-4-52, + author = "B. Gaulle", + title = "Lu dans la presse", + journal = j-GUTENBERG, + year = "1989", + volume = "4", + pages = "52--53", + month = "decembre", +} + +@Article{Andre:CG-4-54, + author = "J. Andr{\'e}", + title = "{M{\'e}dia}\smash{\TeX}", + journal = j-GUTENBERG, + year = "1989", + volume = "4", + pages = "54--56", + month = "decembre", +} + +@Article{Gaulle:CG-5-1, + author = "B. Gaulle", + title = "{\'E}ditorial~: {\`a} propos de {GUT\-en\-berg}'90", + journal = j-GUTENBERG, + year = "1990", + volume = "5", + pages = "1--2", + month = "mai", +} + +@Article{Ferguson:CG-5-3, + author = "M. J. Ferguson", + title = "Une {\`e}re nouvelle~: \smash{\TeX} v3.0", + journal = j-GUTENBERG, + year = "1990", + volume = "5", + pages = "3--7", + month = "mai", +} + +@Article{Cerin:CG-5-8, + author = "Ch. C{\'e}rin and B. Lemaire", + title = "Vers l'introduction de la couleur dans \smash{\TeX}", + journal = j-GUTENBERG, + year = "1990", + volume = "5", + pages = "8--15", + month = "mai", +} + +@Article{Grimault:CG-5-16, + author = "J. Grimault and A. Isambard", + title = "D{\'e}buter avec \smash{\LaTeX}", + journal = j-GUTENBERG, + year = "1990", + volume = "5", + pages = "16--19", + month = "mai", +} + +@Article{Laugier:CG-5-20, + author = "M. Laugier", + title = "Pourquoi \smash{\TeX}~? et pourquoi pas~?", + journal = j-GUTENBERG, + year = "1990", + volume = "5", + pages = "20--25", + month = "mai", +} + +@Article{Guillope:CG-5-26, + author = "L. Guillop{\'e}", + title = "Sur les codes {\`a} barre {EAN}", + journal = j-GUTENBERG, + year = "1990", + volume = "5", + pages = "26--29", + month = "mai", +} + +@Article{Quitte:CG-5-30, + author = "P. Naudin et C. Quitt{\'e}", + title = "Typographie des programmes {Ada}", + journal = j-GUTENBERG, + year = "1990", + volume = "5", + pages = "30--40", + month = "mai", +} + +@Article{Borceux:CG-5-41, + author = "F. Borceux", + title = "De la construction de diagrammes", + journal = j-GUTENBERG, + year = "1990", + volume = "5", + pages = "41--48", + month = "mai", +} + +@Article{Laan:CG-5-49, + author = "K. van der Laan", + title = "Typesetting bridge via \smash{\TeX}", + journal = j-GUTENBERG, + year = "1990", + volume = "5", + pages = "49--61", + month = "mai", +} + +@Article{Taupin:CG-5-62, + author = "D. Taupin", + title = "Musique en \smash{\TeX}~: {\'e}criture de musique + polyphonique ou instrumentale en plain \smash{\TeX}", + journal = j-GUTENBERG, + year = "1990", + volume = "5", + pages = "62--73", + month = "mai", +} + +@Article{Laan:CG-5-74, + author = "K. van der Laan", + title = "\smash{\TeX} and {SGML}", + journal = j-GUTENBERG, + year = "1990", + volume = "5", + pages = "74--81", + month = "mai", +} + +@Article{Delabbey:CG-6-1, + author = "C. Delabbe{\"y}", + title = "{\'E}ditorial~: vous avez dit {Toulouse}~?", + journal = j-GUTENBERG, + year = "1990", + volume = "6", + pages = "1--1", + month = "juillet", +} + +@Article{Mittelbach:CG-6-2, + author = "F. Mittelbach and R. Sch{\"o}pf", + title = "\smash{\LaTeX} dans les ann{\'e}es 1990", + journal = j-GUTENBERG, + year = "1990", + volume = "6", + pages = "2--14", + month = "juillet", +} + +@Article{Cousquer:CG-6-15, + author = "A. Cousquer", + title = "En chinois dans le \smash{\TeX}te", + journal = j-GUTENBERG, + year = "1990", + volume = "6", + pages = "15--24", + month = "juillet", +} + +@Article{Siebenmann:CG-6-25, + author = "L. Siebenmann", + title = "L\smash{\AMSTEX} --- un nouveau formateur de {Michael + Spivak}", + journal = j-GUTENBERG, + year = "1990", + volume = "6", + pages = "25--33", + month = "juillet", +} + +@Article{Beebe:CG-6-34, + author = "N. H. F. Beebe", + title = "Greetings from the {TUG} president", + journal = j-GUTENBERG, + year = "1990", + volume = "6", + pages = "34--38", + month = "juillet", +} + +@Article{Marshall:CG-6-39, + author = "A. Marshall", + title = "Manuels typographiques conserv{\'e}s au {Mus{\'e}e} + de l'impri\-merie de {Lyon}", + journal = j-GUTENBERG, + year = "1990", + volume = "6", + pages = "39--41", + month = "juillet", +} + +@Article{Andre:CG-6-42, + author = "J. Andr{\'e} and J. Grimault", + title = "Le{\c{c}}ons de microtypographie~: 1--emploi des + capitales (premi{\`e}re partie)", + journal = j-GUTENBERG, + year = "1990", + volume = "6", + pages = "42--50", + month = "juillet", +} + +@Article{Cornelis:CG-6-51, + author = "{\'E}. Cornelis", + title = "Analyse bibliographique~: {\em \smash{\LaTeX} la + perfection dans le traitement de texte}", + journal = j-GUTENBERG, + year = "1990", + volume = "6", + pages = "51--52", + month = "juillet", +} + +@Article{Weil:CG-6-53, + author = "G. Weil and R. Seroul", + title = "Le coin des gourous", + journal = j-GUTENBERG, + year = "1990", + volume = "6", + pages = "53--59", + month = "juillet", +} + +@Article{Borghi:CG-6-60, + author = "B. Borghi", + title = "Les fiches cuisine d'Onc' {Post\-Script}~: {\'e}crire + en fran{\c{c}}ais avec {Post\-Script} ", + journal = j-GUTENBERG, + year = "1990", + volume = "6", + pages = "60--62", + month = "juillet", +} + +@Article{Andre:CG-7-1, + author = "J. Andr{\'e}", + title = "{\'E}ditorial~: {GUT\-en\-berg} et l'{Europe} de~92", + journal = j-GUTENBERG, + year = "1990", + volume = "7", + pages = "1--2", + month = "novembre", +} + +@Article{Flynn:CG-7-3, + author = "P. Flynn", + title = "Logiciels \smash{\TeX} sur serveurs", + journal = j-GUTENBERG, + year = "1990", + volume = "7", + pages = "3--16", + month = "novembre", +} + +@Article{Vibert:CG-7-17, + author = "J.-F. Vibert", + title = "Le gestionnaire {BIBLIO}\smash{\TeX}", + journal = j-GUTENBERG, + year = "1990", + volume = "7", + pages = "17--22", + month = "novembre", +} + +@Article{Louarn:CG-7-23, + author = "Ph. Louarn", + title = "Traitement d'index avec \smash{\LaTeX}", + journal = j-GUTENBERG, + year = "1990", + volume = "7", + pages = "23--28", + month = "novembre", +} + +@Article{Ferguson:CG-7-29, + author = "M. J. Ferguson", + title = "Fontes latines europ{\'e}ennes et \smash{\TeX} 3.0", + journal = j-GUTENBERG, + year = "1990", + volume = "7", + pages = "29--32", + month = "novembre", +} + +@Article{Baudin:CG-7-33, + author = "F. Baudin", + title = "``La typographie'' {\oguill} entre + guillemets{\fguill}", + journal = j-GUTENBERG, + year = "1990", + volume = "7", + pages = "33--34", + month = "novembre", +} + +@Article{Megevand:CG-7-35, + author = "D. M{\'e}gevand", + title = "\smash{\TeX} 90 -- {\'a}{\i}lte {\i} + {gCol}{\'a}{\i}ste na {hOllsco}{\i}le, Corca{\i}gh", + journal = j-GUTENBERG, + year = "1990", + volume = "7", + pages = "35--37", + month = "novembre", +} + +@Article{Gaulle:CG-7-38, + author = "B. Gaulle and O. Nicole", + title = "Ballades irlandaises", + journal = j-GUTENBERG, + year = "1990", + volume = "7", + pages = "38--40", + month = "novembre", +} + +@Article{Picheral:CG-7-41, + author = "{\'E}. Picheral", + title = "Comment le faire en \smash{\LaTeX}", + journal = j-GUTENBERG, + year = "1990", + volume = "7", + pages = "41--43", + month = "novembre", +} + +@Article{Borghi:CG-7-44, + author = "B. Borghi", + title = "Les fiches cuisine d'Onc {Post\-Script}~: + \smash{\TeX} et {Post\-Script} vont chez l'imprimeur", + journal = j-GUTENBERG, + year = "1990", + volume = "7", + pages = "44--47", + month = "novembre", +} + +@Article{Knuth:CG-8-1, + author = "D. E. Knuth", + title = "L'avenir de \smash{\TeX} et de {\METAFONT}", + journal = j-GUTENBERG, + year = "1991", + volume = "8", + pages = "1--2", + month = "mars", +} + +@Article{Marshall:CG-8-3, + author = "A. Marshall", + title = "La composition typographique", + journal = j-GUTENBERG, + year = "1991", + volume = "8", + pages = "3--9", + month = "mars", +} + +@Article{Bertrand:CG-8-10, + author = "A. Bertrand", + title = "La typographie et la loi", + journal = j-GUTENBERG, + year = "1991", + volume = "8", + pages = "10--20", + month = "mars", +} + +@Article{Trepos:CG-8-21, + author = "R. Tr{\'e}pos and Ph. Louarn", + title = "Serveurs de fichiers et de fontes pour \smash{\TeX}", + journal = j-GUTENBERG, + year = "1991", + volume = "8", + pages = "21--28", + month = "mars", +} + +@Article{Andre:CG-8-29, + author = "J. Andr{\'e} and J. Bur", + title = "M{\'e}trique de fontes {Post\-Script}", + journal = j-GUTENBERG, + year = "1991", + volume = "8", + pages = "29--50", + month = "mars", +} + +@Article{Nicole:CG-8-51, + author = "O. Nicole and J. Andr{\'e}", + title = "Analyses bibliographiques", + journal = j-GUTENBERG, + year = "1991", + volume = "8", + pages = "51--56", + month = "mars", +} + +@Article{Picheral:CG-8-57, + author = "\smash{{\'E}.} Picheral", + title = "Comment le faire en \smash{\LaTeX}", + journal = j-GUTENBERG, + year = "1991", + volume = "8", + pages = "57--58", + month = "mars", +} + +@Article{Weil:CG-8-59, + author = "G. Weil", + title = "Le coin des gourous", + journal = j-GUTENBERG, + year = "1991", + volume = "8", + pages = "59--61", + month = "mars", +} + +@Article{Andre:CG-9-1, + author = "J. Andr{\'e}", + title = "{\'E}ditorial~: un nouveau style pour les {{\em + Cahiers {GUT\-en\-berg}}}", + journal = j-GUTENBERG, + year = "1991", + volume = "9", + pages = "1--2", + month = "juillet", +} + +@Article{Cousquer:CG-9-3, + author = "A. Cousquer and {\'E}. Picheral", + title = "Polices, {\TeX} et Cie", + journal = j-GUTENBERG, + year = "1991", + volume = "9", + pages = "3--31", + month = "juillet", +} + +@Article{Louarn:CG-9-32, + author = "Ph. Louarn", + title = "Lucida, une fonte compl{\`e}te pour {\LaTeX} et son + installation", + journal = j-GUTENBERG, + year = "1991", + volume = "9", + pages = "32--40", + month = "juillet", +} + +@Article{Nicole:CG-9-41, + author = "O. Nicole - {\rm trad.}", + title = "{\em The Economist} polit ses polices", + journal = j-GUTENBERG, + year = "1991", + volume = "9", + pages = "41--48", + month = "juillet", +} + +@Article{Quint:CG-9-49, + author = "V. Quint and others", + title = "Grif et l'{\'e}dition de documents structur{\'e}s", + journal = j-GUTENBERG, + year = "1991", + volume = "9", + pages = "49--65", + month = "juillet", + bibdate = "Wed Nov 1 08:10:29 2000", +} + +@Article{Thomas:CG-9-66, + author = "H. Thomas", + title = "Typographie du jeu d'{\'e}checs", + journal = j-GUTENBERG, + year = "1991", + volume = "9", + pages = "66--74", + month = "juillet", +} + +@Article{Heck:CG-9-75, + author = "A. Heck", + title = "Star{\TeX}", + journal = j-GUTENBERG, + year = "1991", + volume = "9", + pages = "75--78", + month = "juillet", +} + +@Article{Haralambous:CG-9-79, + author = "Y. Haralambous", + title = "Quand {\TeX} rencontre {Mozart}{\ldots}", + journal = j-GUTENBERG, + year = "1991", + volume = "9", + pages = "79--82", + month = "juillet", +} + +@Article{Gaulle:CG-9-83, + author = "B. Gaulle", + title = "L'association{\ldots} fait la force", + journal = j-GUTENBERG, + year = "1991", + volume = "9", + pages = "83--85", + month = "juillet", +} + +@Article{Picheral:CG-9-86, + author = "{\'E}. Picheral", + title = "Distribution {MLTeX} v.3.14 pour {Sun}", + journal = j-GUTENBERG, + year = "1991", + volume = "9", + pages = "86--87", + month = "juillet", +} + +@Article{Malyshev:CG-10-1, + author = "B. Malyshev and A. Samarin and D. Vulis", + title = "Russian {\TeX}", + journal = j-GUTENBERG, + year = "1991", + volume = "10-11", + pages = "1--6", + month = "septembre", +} + +@Article{Jurriens:CG-10-7, + author = "T. Jurriens", + title = "{TeX}\-niques in {Siberia}", + journal = j-GUTENBERG, + year = "1991", + volume = "10-11", + pages = "7--14", + month = "septembre", +} + +@Article{Knappen:CG-10-15, + author = "J. Knappen", + title = "{\TeX} and {Africa}", + journal = j-GUTENBERG, + year = "1991", + volume = "10-11", + pages = "15--24", + month = "septembre", +} + +@Article{Boughaba:CG-10-25, + author = "O. Boughaba and S. Boutalbi and M. Fanton", + title = "Vers une version arabis{\'e}e de {\TeX}", + journal = j-GUTENBERG, + year = "1991", + volume = "10-11", + pages = "25--44", + month = "septembre", +} + +@Article{Malyshev:CG-10-45, + author = "B. Malyshev and A. Samarin", + title = "{\TeX} Integrated Shell for {IBM} {PC}", + journal = j-GUTENBERG, + year = "1991", + volume = "10-11", + pages = "45--56", + month = "septembre", +} + +@Article{Zlatuska:CG-10-57, + author = "J. Zlatu{\v{s}}ka", + title = "Automatic generation of virtual fonts with accented + letters for {\TeX}", + journal = j-GUTENBERG, + year = "1991", + volume = "10-11", + pages = "57--68", + month = "septembre", +} + +@Article{Haralambous:CG-10-69, + author = "Y. Haralambous", + title = "Scholar{\TeX}", + journal = j-GUTENBERG, + year = "1991", + volume = "10-11", + pages = "69--70", + month = "septembre", +} + +@Article{Braams:CG-10-71, + author = "J. Braams", + title = "Babel, a multilingual style-option system", + journal = j-GUTENBERG, + year = "1991", + volume = "10-11", + pages = "71--72", + month = "septembre", +} + +@Article{Fanton:CG-10-73, + author = "M. Fanton", + title = "{\TeX}~: les limites du multilinguisme", + journal = j-GUTENBERG, + year = "1991", + volume = "10-11", + pages = "73--80", + month = "septembre", +} + +@Article{Schrod:CG-10-81, + author = "J. Schrod", + title = "An International Version of {Make\-Index}", + journal = j-GUTENBERG, + year = "1991", + volume = "10-11", + pages = "81--90", + month = "septembre", +} + +@Article{Bacsich:CG-10-91, + author = "P. Bacsich and E. Heyes and P. Lefrere and G. + Yarwood", + title = "Conversion of {Micro\-soft Word} into {\LaTeX}", + journal = j-GUTENBERG, + year = "1991", + volume = "10-11", + pages = "91--92", + month = "septembre", +} + +@Article{Lavaud:CG-10-93, + author = "M. Lavaud", + title = "As{\TeX}~: An integrated and customizable multiwindow + environment for scientific research", + journal = j-GUTENBERG, + year = "1991", + volume = "10-11", + pages = "93--116", + month = "septembre", +} + +@Article{Larsen:CG-10-117, + author = "S. Larsen and A. F. Jensen", + title = "Tailored database publishing with {\TeX}", + journal = j-GUTENBERG, + year = "1991", + volume = "10-11", + pages = "117--134", + month = "septembre", +} + +@Article{Leguy:CG-10-135, + author = "B. Leguy", + title = "Drawing tree structures with {GWEZ}", + journal = j-GUTENBERG, + year = "1991", + volume = "10-11", + pages = "135--146", + month = "septembre", +} + +@Article{Laan:CG-10-147, + author = "K. van der Laan", + title = "Math into {BLU}es: Sing your song", + journal = j-GUTENBERG, + year = "1991", + volume = "10-11", + pages = "147--170", + month = "septembre", +} + +@Article{Binding:CG-10-171, + author = "A. Binding", + title = "Organizing a large collection of stylefiles", + journal = j-GUTENBERG, + year = "1991", + volume = "10-11", + pages = "171--184", + month = "septembre", +} + +@Article{Dobrowolski:CG-10-185, + author = "A. E. Dobrowolski", + title = "Typesetting {SGML}{} Documents Using {\TeX}", + journal = j-GUTENBERG, + year = "1991", + volume = "10-11", + pages = "185--196", + month = "septembre", +} + +@Article{Cerin:CG-10-197, + author = "Ch. C{\'e}rin", + title = "Vers la construction de macros de mise en couleur + pour {\TeX}", + journal = j-GUTENBERG, + year = "1991", + volume = "10-11", + pages = "197--208", + month = "septembre", +} + +@Article{Laugier:CG-10-209, + author = "M. Laugier", + title = "Composition des formules chimiques en {\TeX}", + journal = j-GUTENBERG, + year = "1991", + volume = "10-11", + pages = "209--221", + month = "septembre", +} + +@Article{Gaulle:CG-12-1, + author = "B. Gaulle", + title = "{\'E}ditorial~: {\`a} propos d'erratum", + journal = j-GUTENBERG, + year = "1991", + volume = "12", + pages = "1--2", + month = "decembre", +} + +@Article{Gopelt:CG-12-3, + author = "E. G{\"o}pelt and B. Schmid", + title = "{WY}{\-}{SI}{\-}{WYG}-{\TeX}-editors on the basis of + object-oriented system technology", + journal = j-GUTENBERG, + year = "1991", + volume = "12", + pages = "3--12", + month = "decembre", +} + +@Article{Spivak:CG-12-13, + author = "M. Spivak", + title = "{\LamSTeX}: A Public Domain Document Preparation + System Extended {\AmSTeX}", + journal = j-GUTENBERG, + year = "1991", + volume = "12", + pages = "13--20", + month = "decembre", +} + +@Article{MacKay:CG-12-21, + author = "P. A. MacKay", + title = "Un regard sur les pixels. Obtention de fontes de + qualit{\'e} pour imprimantes {\`a} laser {\`a} 300~dpi + gr{\^a}ce {\`a} {\MF}", + journal = j-GUTENBERG, + year = "1991", + volume = "12", + pages = "21--36", + month = "decembre", +} + +@Article{Goossens:CG-12-37, + author = "M. Goossens and E. van herwijnen", + title = "Introduction {\`a} {SGML}, {DSSSL} et {SPDL}", + journal = j-GUTENBERG, + year = "1991", + volume = "12", + pages = "37--56", + month = "decembre", +} + +@Article{Andre:CG-12-57, + author = "J. Andr{\'e} and Ph. Louarn", + title = "Notes en bas de pages~: comment les faire en + {\LaTeX}?", + journal = j-GUTENBERG, + year = "1991", + volume = "12", + pages = "57--70", + month = "decembre", +} + +@Article{Samarin:CG-12-71, + author = "A. Samarin and A. Urvantsev", + title = "Cyr{TUG}, le monde {\TeX} en cyrillique", + journal = j-GUTENBERG, + year = "1991", + volume = "12", + pages = "71--74", + month = "decembre", +} + +@Article{Kolodziejska:CG-12-75, + author = "H. Ko{\l}odziejska", + title = "{\TeX} en {Pologne}", + journal = j-GUTENBERG, + year = "1991", + volume = "12", + pages = "75--77", + month = "decembre", +} + +@Article{Andre:CG-12-78, + author = "J. Andr{\'e}", + title = "Lu, vu ou entendu", + journal = j-GUTENBERG, + year = "1991", + volume = "12", + pages = "78--83", + month = "decembre", +} + +@Article{Anonymous:CG-12-84, + author = "Anonymous", + title = "Table des mati{\`e}res pour l'ann{\'e}e 1991", + journal = j-GUTENBERG, + year = "1991", + volume = "12", + pages = "84--??", + month = "decembre", +} diff --git a/Master/texmf-dist/bibtex/bib/beebe/komoedie.bib b/Master/texmf-dist/bibtex/bib/beebe/komoedie.bib new file mode 100644 index 00000000000..65005fe671f --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/beebe/komoedie.bib @@ -0,0 +1,365 @@ +%%% ==================================================================== +%%% BibTeX-file{ +%%% author = "Nelson H. F. Beebe and Peter Schmitt", +%%% version = "1.05", +%%% date = "07 October 1996", +%%% time = "08:04:41 MDT", +%%% filename = "komoedie.bib", +%%% address = "Center for Scientific Computing +%%% Department of Mathematics +%%% University of Utah +%%% Salt Lake City, UT 84112 +%%% USA +%%% +%%% Institute of Mathematics +%%% University of Vienna +%%% Strudlhofgasse 4 +%%% A-1090 Wien +%%% Austria", +%%% telephone = "+1 801 581 5254 (NHFB)", +%%% FAX = "+1 801 581 4148 (NHFB)", +%%% checksum = "49532 365 1167 10775", +%%% email = "beebe at math.utah.edu (Internet) and +%%% a8131dal at awiuni11.edvz.univie.ac.at +%%% (Internet) or schmitt at awirap.bitnet", +%%% codetable = "ISO/ASCII", +%%% keywords = "TeX, DANTE, bibliography", +%%% supported = "yes", +%%% docstring = "This bibliography contains the publications +%%% of the journal Die TeXnische Komoedie, the +%%% publication of DANTE, Deutschsprachige +%%% Anwendervereinigung TeX e.V. (the Group of +%%% German-speaking TeX Users). +%%% +%%% At version 1.05, the year coverage looked +%%% like this: +%%% +%%% 1992 ( 24) +%%% +%%% Article: 14 +%%% Book: 1 +%%% Misc: 9 +%%% Periodical: 1 +%%% +%%% Total entries: 25 +%%% +%%% The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== + +@Preamble{"\input bibnames.sty " +# "\input path.sty " +# "\hyphenation{An-wen-der-ver-ein-i-gung Deutsch-spra-chi-ge + Bal-ken-di-a-gram-me}" +# "\def\PiCTeX{Pic\TeX}" +} + +@String{dec = "Dezember"} + +@String{j-KOMOEDIE = "{{Die \TeX nische Kom{\"o}die}}"} +@String{pub-DANTE = "DANTE. Deutschsprachige Anwendervereinigung {\TeX} e.V."} +@String{pub-DANTE:adr = "Postfach 10 18 40, D-6900 Heidelberg, Deutschland"} + +@Periodical{Komoedie, + key = "Komoedie", + title = j-KOMOEDIE, + publisher = pub-DANTE, + address = pub-DANTE:adr, +} + +@Book{Komoedie:4-4, + editor = "Luzia Dietsche", + title = "{{Die \TeX nische Kom{\"o}die}}", + publisher = pub-DANTE, + address = pub-DANTE:adr, + year = "1992", + volume = "4", + series = "4. Jahrgang", + month = dec, + note = "Heft 4/1992 4. Jahrgang Dezember 1992", +} + +@Misc{Komoedie:4-4-3, + key = "Editorial", + title = "{{Editorial}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "3", + month = dec, + note = "[Section:] .", +} + +@Article{Dietsche:Komoedie-4-4-3, + author = "Luzia Dietsche", + title = "{{[Editorial]}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "3", + month = dec, + note = "", +} + +@Misc{Komoedie:4-4-4, + key = "Editorial", + title = "{{Hinter der B{\"u}hne : Vereinsinternes}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "4--8", + month = dec, + note = "[Section:] Behind the stage : Club matters", +} + +@Article{Lammarsch:Komoedie-4-4-4, + author = "Joachim Lammarsch", + title = "{{Gru{\ss}wort}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "4--6", + month = dec, + note = "Welcome message", +} + +@Article{Meyer-Lerbs:Komoedie-4-4-6, + author = "Lothar Meyer-Lerbs", + title = "{{\TeX\ auf dem Mac}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "6", + month = dec, + note = "\TeX\ on the Mac", +} + +@Article{Erlmeier:Komoedie-4-4-6, + author = "Markus Erlmeier", + title = "{{\TeX nische Software f{\"u}r den Amiga}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "6--8", + month = dec, + note = "\TeX nical software for the Amiga", +} + +@Misc{Komoedie:4-4-9, + key = "Editorial", + title = "{{Bretter, die die Welt bedeuten}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "9--34", + month = dec, + note = "[Section:] The stage is the world", +} + +@Article{Gloeckner:Komoedie-4-4-9, + author = "J{\"u}rgen Gl{\"o}ckner", + title = "{{Erzeugung virtueller Fonts}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "9--16", + month = dec, + note = "Generating virtual fonts", +} + +@Article{Dippel:Komoedie-4-4-16, + author = "Joachim Dippel", + title = "{{Neues zum \LaTeX-Seitenlayout: Der Ourhead Style}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "16--20", + month = dec, + note = "News on \LaTeX\ page layout: The ourhead style", +} + +@Article{Breuer:Komoedie-4-4-20, + author = "Stefan Breuer", + title = "{{Anmerkungen zum \verb|\footnote|-Befehl}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "20--22", + month = dec, + note = "Remarks on the \verb|\footnote| command", +} + +@Article{Burkhardt:Komoedie-4-4-22, + author = "Werner Burkhardt", + title = "{{Schaubilder mathematischer Funktionen mit + \PiCTeX}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "22--27", + month = dec, + note = "Diagrams of mathematical functions using \PiCTeX", +} + +@Article{Bleser:Komoedie-4-4-28, + author = "Joachim Bleser and Edmund Lang", + title = "{{Balkendiagramme in \LaTeX-Dok\-u\-ment\-en}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "28--31", + month = dec, + note = "Column charts in \LaTeX\ documents", +} + +@Article{Jurzitza:Komoedie-4-4-32, + author = "Dieter Jurzitza", + title = "{{Schaltbilder mit \LaTeX}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "32--34", + month = dec, + note = "Circuit diagrams with \LaTeX", +} + +@Misc{Komoedie:4-4-35, + key = "Editorial", + title = "{{Was Sie schon immer {\"u}ber \TeX\ wissen wollten + \dots}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "35", + month = dec, + note = "[Section:] What you always wanted to know about \TeX + \dots", +} + +@Article{Dietsche:Komoedie-4-4-35, + author = "Luzia Dietsche", + title = "{{Fette mathematische Akzente}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "35", + month = dec, + note = "Bold mathematical accents", +} + +@Misc{Komoedie:4-4-36, + key = "Editorial", + title = "{{\TeX-Beiprogramm}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "36", + month = dec, + note = "[Section:] Accompanying program", +} + +@Article{Erlmeier:Komoedie-4-4-36, + author = "Markus Erlmeier", + title = "{{Pas\TeX\ --- neue Version in Planung}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "36", + month = dec, + note = "Pas\TeX\ --- a new version is in preparation", +} + +@Misc{Komoedie:4-4-37, + key = "Editorial", + title = "{{Rezensionen}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "37--40", + month = dec, + note = "[Section:] Reviews", +} + +@Article{Bratz:Komoedie-4-4-37, + author = "Ernst Bratz", + title = "{{Beinahe gut --- ein subjektiver Test von Scientific + Word}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "37--38", + month = dec, + note = "Almost good --- a subjective test of Scientific Word", +} + +@Article{Meyer-Lerbs:Komoedie-4-4-38, + author = "Lothar Meyer-Lerbs", + title = "{{Ganz un\TeX ni\-sche B{\"u}cher}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "38--40", + month = dec, + note = "Completely non-\TeX nical books", +} + +@Misc{Komoedie:4-4-41, + key = "Editorial", + title = "{{Spielplan}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "41--51", + month = dec, + note = "[Section:] Repertory", +} + +@Misc{Komoedie:4-4-52, + key = "Editorial", + title = "{{Adressen}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "52--55", + month = dec, + note = "[Section:] Addresses", +} + +@Misc{Komoedie:4-4-56, + key = "Editorial", + title = "{{Inhalt Heft 492 /}}", + journal = j-KOMOEDIE, + year = "1992", + volume = "4", + number = "4", + pages = "56", + month = dec, + note = "[Section:] Contents of issue 492 /", +} diff --git a/Master/texmf-dist/bibtex/bib/beebe/texbook1.bib b/Master/texmf-dist/bibtex/bib/beebe/texbook1.bib new file mode 100644 index 00000000000..8f064217d72 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/beebe/texbook1.bib @@ -0,0 +1,5888 @@ +%%% /u/sy/beebe/tex/bib/texbook1.bib, Mon Jan 6 09:23:25 1992 +%%% Edit by Nelson H. F. Beebe + +%%% ==================================================================== +%%% BibTeX-file{ +%%% author = "Nelson H. F. Beebe", +%%% version = "1.153", +%%% date = "22 July 1994", +%%% time = "12:36:52 MDT", +%%% filename = "texbook1.bib", +%%% address = "Center for Scientific Computing +%%% Department of Mathematics +%%% University of Utah +%%% Salt Lake City, UT 84112 +%%% USA", +%%% telephone = "+1 801 581 5254", +%%% FAX = "+1 801 581 4148", +%%% checksum = "60024 5888 22849 204249", +%%% email = "beebe at math.utah.edu (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "bibliography, TeX", +%%% supported = "yes", +%%% docstring = "This BibTeX file records books, articles, +%%% and electronic forums on TeX, METAFONT, Web, +%%% fonts, typography, indexing, and software +%%% related to these topics. Articles from +%%% TUGboat and TeXniques are excluded, because +%%% they are maintained in separate +%%% bibliographies. The ISBN and ISSN fields +%%% will be printed if the is-alpha.bst or +%%% is-plain.bst style files are used. +%%% +%%% CONVENTIONS +%%% +%%% Books are tagged by the first author's last +%%% name, a colon, up to 3 upper-case letters +%%% taken from the first three upper-case words +%%% in the title (ignoring words like A, And, +%%% The), followed by the last two digits of +%%% the publication year. If there is a volume +%%% entry, it is appended to the tag, prefixed +%%% by a hyphen. +%%% +%%% For Dutch authors, a van part is included +%%% in the author tag. For names with accented +%%% letters, accents are dropped in the author +%%% tag. +%%% +%%% This scheme is systematic enough that it +%%% can be programmed: most of the +%%% Addison-Wesley book entries were created +%%% with an awk program from a dump of the AW +%%% database supplied by Mona Zeftel. Older +%%% entries in this bibliography were modified +%%% on 28-Nov-1990 to conform to this tagging +%%% scheme. +%%% +%%% The choice of a limit of 3 letters was +%%% determined from experiments on the +%%% Addison-Wesley collection. Long tags are +%%% undesirable because they are a nuisance to +%%% type, and also interfere with the tagged +%%% bibliography output produced using the +%%% LaTeX showtags style option. +%%% +%%% Journal article tags look like +%%% author:abbrev-volume-number-page, where the +%%% author part is the last name of the first +%%% author: for example, +%%% Gilchrist:NAMS-36-9-1199. +%%% +%%% Technical report tags look like +%%% author:abbrev-number: for example, +%%% Billawala:STAN-CS-89-1256. +%%% +%%% The Como InProceedings entries look like +%%% author:TEX85-page: for example, +%%% Agostini:TEX85-117. Other InProceedings +%%% entries should follow a similar style. +%%% +%%% Entries are stored ordered by the BibTeX +%%% tag name, independent of the entry type +%%% (the GNU Emacs function sort-bibtex-entries +%%% can be used to ensure correct ordering). +%%% However, entries that are cross-referenced +%%% by others are stored at the end of the +%%% file, since that order is required by +%%% BibTeX. +%%% +%%% With few exceptions, value fields for +%%% acknowledgement, address, journal, and +%%% publisher keywords should use macros +%%% defined in the string preamble below. This +%%% helps to ensure consistency, and reduces +%%% the entry sizes. Address entries must +%%% always include the country. +%%% +%%% The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility." +%%% } +%%% ==================================================================== +%%% +%%% Computing Systems is the Journal of the USENIX Association +%%% published with the collaboration of the EUUG. The ISSN is +%%% 0895-6340. It is published by the University of California +%%% Press, 2120 Berkeley Way, Berkeley, CA 94720. +%%% +%%% Rates are US $40/yr for non-members, plus $4 postage if +%%% outside the US. Single copies are US $10. +%%% +%%% Editorial correspondence should be addressed to +%%% +%%% Computing Systems +%%% Suite 215 +%%% 2560 Ninth Street +%%% Berkeley, CA 94710 +%%% +%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +@Preamble{"\input bibnames.sty " +# "\input path.sty " +# "\ifx \k \undefined \let \k = \c + \immediate\write16{Ogonek accent unavailable: replaced by cedilla}\fi " +# "\hyphenation{An-wen-der-ver-ein-i-gung Co-lo-phon Deutsch-spra-chi-ge + Hol-dys Ko-lo-dziej-ska Lar-ra-bee + mark-up Rijks-uni-ver-si-teit South-all}" +} + +%% Acknowledgements +@String{ack-aa = "Abass Alamnehe, + EthiO Systems Co., + P.O. Box 36921, + Houston, TX 77236, + USA, + Phone: +1 713 995-4360, + FAX: +1 713 995-1346, + e-mail: \path|abassa@sugar.NeoSoft.COM|"} +@String{ack-ab = "Arvind Borde, + Department of Mathematics, + Long Island University, + Southampton, NY 11968, USA, + Tel: (516) 283-4000, + e-mail: BITnet: \path|borde@bnlcl1|"} +@String{ack-bnb = "Barbara N. Beeton + e-mail: \path|bnb@math.ams.org|"} +@String{ack-cb = "Claudio Beccari, + Dipartimento di Elettronica, + Politecnico di Torino, + Corso Duca degli Abruzzi, 24, + I10129 Torino, Italy, + e-mail: \path|beccari@itopoli.bitnet|, + \path|beccari@polito.it|"} +@String{ack-dh = "Don Hosek, + 440F Grinnell, + Claremont, CA 91711, + Tel: (714) 625-0147, + e-mail: BITnet: \path|dhosek@ymir|"} +@String{ack-fm = "Frank Mittelbach, + e-mail: \path|mittelbach@mzdmza.zdv.uni-mainz.de|"} +@String{ack-hk = "Hanna K{\"o}lodziejska, + {\"O}srodek Obliczeniowy, + Instytutu Informatyki UW, + P{\"a}lac Kultury i Nauki pok. 838, + 00-901 Warszawa, + Poland"} +@String{ack-jb = "Janusz S. Bie{\'n}, + e-mail: \path|jsbien@plearn.edu.pl|"} +@String{ack-jpl = "Jeff Lankford, + e-mail: \path|jpl@nrtc.northrop.com|"} +@String{ack-kb = "Karl Berry, + e-mail: \path|karl@cs.umb.edu|"} +@String{ack-mb = "Mimi Burbank, + e-mail: \path|MIMI@scri.fsu.edu|"} +@String{ack-mc = "Malcolm Clark"} +@String{ack-md = "Monika D{\k{a}}bkowska, + Uniwersytet Warszawski, + Wydzia{\l} Matematyki, Informatyki i Mechaniki Stosowanej, + Warszawa, Poland"} +@String{ack-nhfb = "Nelson H. F. Beebe, + Center for Scientific Computing, + Department of Mathematics, + University of Utah, + Salt Lake City, UT 84112, USA, + Tel: +1 801 581 5254, + FAX: +1 801 581 4148, + e-mail: \path|beebe@math.utah.edu|"} +@String{ack-njh = "Nick Higham, + e-mail: \path|higham@vtx.ma.man.ac.uk|"} +@String{ack-ps = "Peter Schmitt, + Institute of Mathematics, + University of Vienna, + Strudlhofgasse 4, + A-1090 Wien, + Austria, + e-mail: \path|a8131dal@awiuni11.edvz.univie.ac.at|, + \path|schmitt@awirap.bitnet|"} +@String{ack-rw = "Reinhard Wonneberger, + Electronic Data Systems, + Eisenstr.56 (N15), + W-6090 Ruesselsheim, + Federal Republic of Germany, + e-mail: \path|qzdmgn@ruipc1e.bitnet|"} +@String{ack-rz = "Reinhard Zierke, + Universitaet Hamburg, FB Informatik, + Vogt-Koelln-Strasse 30 + D-22527 Hamburg, + Germany, + Tel: (040) 54715-295, + Fax: (040) 54715-303, + e-mail: \path|zierke@informatik.uni-hamburg.de|"} + +%%====================================================================== +%% Miscellaneous abbreviations +@String{rep = "Report No."} + +%%====================================================================== +%% Miscellaneous institutions +@String{inst-CIRCE = "CIRCE"} +@String{inst-CIRCE:adr = "Orsay, France"} +@String{inst-CWI = "Centrum voor Wiskunde en Informatica"} +@String{inst-CWI:adr = "P. O. Box 4079, 1009 AB Amsterdam, The Netherlands"} +@String{inst-METAFOUNDRY = "The Metafoundry"} +@String{inst-METAFOUNDRY:adr = "OCLC Online Computer Library Center, Inc., Dublin, + OH, USA"} +@String{inst-STAN-CS = "Stanford University, Department of Computer + Science"} +@String{inst-STANFORD = "Stanford University"} +@String{inst-STANFORD:adr = "Stanford, CA, USA"} +@String{inst-TUG = "\TeX{} Users Group"} +@String{inst-TUG:adr = "Providence, RI, USA"} + +%%====================================================================== +%% Journals +@String{j-ABACUS = "Abacus"} +@String{j-BAMSN = "Bulletin of the American Mathematical Society + (new series)"} +@String{j-CACM = "Communications of the Association for + Computing Machinery"} +@String{j-CGF = "Computer Graphics Forum"} +@String{j-CGIP = "Computer Graphics and Image Processing"} +@String{j-CJ = "The Computer Journal"} +@String{j-COLL-MICRO = "Collegiate Microcomputer"} +@String{j-COMPCHEM = "Computers in Chemistry"} +@String{j-COMPSYS = "Computing Systems"} +@String{j-COMP-SURVEYS = "ACM Computing Surveys"} +@String{j-COMPUTER = "Computer"} +@String{j-COMPUTERSHOPPER = "Computer Shopper"} +@String{j-CPC = "Computer Physics Communications"} +@String{j-EPODD = "Electronic + Publishing\emdash{}Orig{\-}i{\-}na{\-}tion, + Dissemination, and Design"} +@String{j-GUTENBERG = "Cahiers GUTenberg"} +@String{j-IBM-SYS-J = "IBM Systems Journal"} +@String{j-IEEE-COMPUTER = "IEEE Computer"} +@String{j-KOMPUTER = j-COMPUTER} +@String{j-MATHINTEL = "The Mathematical Intelligencer"} +@String{j-MDMV = "Mitteilungen der Deutschen + Mathematiker-Vereinigung"} +@String{j-MIKROLAN = "Mikrolan"} +@String{j-NAMS = "Notices of the American Mathematical Society"} +@String{j-NTG = "Nederlandstalige {\TeX} Geruikersgroup + (Dutch-speaking {\TeX} Users Group)"} +@String{j-PCkurier = "PCkurier"} +@String{j-PCkurier:adr = "PCkurier, + ul. St{\k{e}}pi{\'n}ska 22//23, + 00-739 Warszawa, Poland, + mailbox 41 03 74 (16.00-10.00)"} +@String{j-SA = "Scientific American"} +@String{j-SCHOLAR = "Scholarly Publishing"} +@String{j-SEYBOLD = "The Seybold Report on Desktop Publishing"} +@String{j-SIGACT = "ACM SIGACT News"} +@String{j-SIGAPL = "ACM SIGAPL APL Quote Quad"} +@String{j-SIGPLAN = "ACM SIGPLAN Notices"} +@String{j-SIGDOC = "ACM SIGDOC Asterisk*"} +@String{j-SIGSAM = "SIGSAM Bulletin"} +@String{j-SPE = "Soft{\-}ware\emdash Prac{\-}tice and Experience"} +@String{j-SUNEXPERT = "SunExpert Magazine"} +@String{j-TEXHAX = "{\TeX{}hax}"} +@String{j-TEXLINE = "{\TeX{}}line"} +@String{j-TOGS = "ACM Transactions on Graphics"} +@String{j-TSI = "Technology and Science of Informatics"} +@String{j-TUGboat = "{\TUB{}}"} +@String{j-TWIO = "TWIOscoop"} +@String{j-UMAP = "The UMAP Journal"} +@String{j-UMAP:adr = "COMAP, Inc., Suite 210, 57 Bedford St., + Lexington, MA 02173, USA"} +@String{j-VL = "Visible Language"} +@String{j-WM = "Wiadomo\'sci Matematyczne"} + +%%====================================================================== +%% Languages +@String{lang-eng = "English"} +@String{lang-pl = "Polish"} + +%%====================================================================== +%% Preparation details +@String{prep-latex = "Prepared with {\LaTeX}."} + +%%====================================================================== +%% Proceedings +@String{proc-NIPT91 = "IS\&T's Seventh International Congress on + Advances in Non-impact Printing + Technologies, October 6--11, Portland, OR, USA."} +@String{proc-TEX85 = "Proceedings of the First European Conference + on {\TeX} for Scientific Documentation, + 16--17 May 1985, Como, Italy"} + +%%====================================================================== +%% Publishers +@String{pub-ADTP = "Architecture Design and Technology Press, Ltd."} +@String{pub-ADTP:adr = "140 Kensington Church St., London W84 BN, UK"} +@String{pub-AHV = "Dr. Alfred H{\"u}thing Verlag"} +@String{pub-AHV:adr = "Heidelberg, Germany"} +@String{pub-AMS = "American Mathematical Society"} +@String{pub-AMS:adr = "Providence, RI, USA"} +@String{pub-AP = "Academic Press"} +@String{pub-AP:adr = "New York, NY, USA"} +@String{pub-APA = "American Psychological Association"} +@String{pub-APA:adr = "Washington, DC, USA"} +@String{pub-ARIEL = "Ariel Sp. z o.o"} +@String{pub-ARIEL:adr = "Krak{\'o}w, Poland"} +@String{pub-ASCII = "ASCII Corporation"} +@String{pub-ASCII:adr = "Tokyo, Japan"} +@String{pub-AW = "Ad{\-d}i{\-s}on-Wes{\-l}ey"} +@String{pub-AW:adr = "Reading, MA, USA"} +@String{pub-AWE = "Ad{\-}di{\-}son-Wes{\-}ley Europe"} +@String{pub-AWE:adr = "Amsterdam, The Netherlands"} +@String{pub-AWV = "Ad{\-}di{\-}son-Wes{\-}ley Verlag"} +@String{pub-AWV:adr = "Bonn, Germany"} +@String{pub-BH = "Birkh{\"{a}}user"} +@String{pub-BH:adr = "Basel, Switzerland"} +@String{pub-BIEL = "Biel"} +@String{pub-BIEL:adr = "Savannah, Ga"} +@String{pub-BL = "The British Library"} +@String{pub-BL:adr = "London, UK"} +@String{pub-BLUEPRINT = "Blueprint"} +@String{pub-BLUEPRINT:adr = "London, UK"} +@String{pub-BOWK = "R. R. Bowker Company"} +@String{pub-BOWK:adr = "1180 Avenue of the Americas, New York, NY + 10036, USA"} +@String{pub-BP = "Boole Press"} +@String{pub-BP:adr = "Dublin, Ireland"} +@String{pub-CHARTWELL = "Chartwell Books, Inc."} +@String{pub-CHARTWELL:adr = "110 Enterprise Avenue, Secaucus, New + Jersey 07094, USA"} +@String{pub-CIAOCO = "Editions Ciaoco"} +@String{pub-CIAOCO:adr = "Artel, Bruxelles, Belgium"} +@String{pub-CRC = "CRC Publishers"} +@String{pub-CRC:adr = "2000 Corporate Blvd., Boca Raton, FL 33431, USA"} +@String{pub-CSTUG = "Czechoslovak {\TeX} Users Group"} +@String{pub-CSTUG:adr = "CSTUG M{\'U} UK, Sokolovsk{\'a} 83, 186 00 + Praha 8, The Czech Republic"} +@String{pub-CUP = "Cambridge University Press"} +@String{pub-CUP:adr = "New York"} +@String{pub-DP = "Digital Press"} +@String{pub-DP:adr = "12 Crosby Drive, Bedford, MA 01730, USA"} +@String{pub-EEI = "Editorial Experts, Inc."} +@String{pub-EEI:adr = "Alexandria, VA, USA"} +@String{pub-EH = "Ellis Horwood"} +@String{pub-EH:adr = "Chichester, UK"} +@String{pub-ESPNH = "Elsevier Science Publishers (North-Holland)"} +@String{pub-ESPNH:adr = "Amsterdam, The Netherlands"} +@String{pub-ETHIO = "EthiO Systems Co."} +@String{pub-ETHIO:adr = "P.O. Box 36921, Houston, TX 77236, USA"} +@String{pub-EUH = "Editore Ulrico Hoepli"} +@String{pub-EUH:adr = "Ulrico Hoepli Editore S.p.A., via Hoepli 5, + 20121 Milano, Italy"} +@String{pub-FCGCC = "F{\'e}d{\'e}ration C. G. C. de la Communication"} +@String{pub-FCGCC:adr = ""} +@String{pub-GP = "Graphics Press"} +@String{pub-GP:adr = "Box 430, Cheshire, CT 06410, USA"} +@String{pub-HAMISH = "Hamish Hamilton"} +@String{pub-HAMISH:adr = "London"} +@String{pub-HHP = "Hastings House, Publishers"} +@String{pub-HHP:adr = "New York, NY, USA"} +@String{pub-HLRA = "Harvard Law Review Association"} +@String{pub-HLRA:adr = "Cambridge, MA, USA"} +@String{pub-HRP = "Harper \& Row, Publishers"} +@String{pub-HRP:adr = "New York, NY, USA"} +@String{pub-HSCHV = "Universit{\"a}tsdruckerei und Verlag Hermann + Schmidt"} +@String{pub-HSCHV:adr = "Mainz, Germany"} +@String{pub-IBM = "IBM Corporation"} +@String{pub-IBM:adr = "San Jose, CA, USA"} +@String{pub-IE = "InterEditions"} +@String{pub-IE:adr = "Paris, France"} +@String{pub-INRIA = "INRIA/IRISA"} +@String{pub-INRIA:adr = "Rennes, France"} +@String{pub-IST = "Imaging Science \& Technology"} +@String{pub-IST:adr = "????"} +@String{pub-KLUWER = "Kluwer Academic Publishers Group"} +@String{pub-KLUWER:adr = "Norwell, MA, USA"} +@String{pub-KOMPUT = "a/S ``KompuT'' kirjastus"} +@String{pub-KOMPUT:adr = "Tartumaa, Estonia"} +@String{pub-MARSZALEK = "Adam Marsza{\l}ek"} +@String{pub-MARSZALEK:adr = "Toru{\'n}, Poland"} +@String{pub-MASARYKOVA = "Masarykova Universita"} +@String{pub-MASARYKOVA:adr = "Brno, Czechoslovakia"} +@String{pub-MASSON = "Masson Editeur"} +@String{pub-MASSON:adr = "Paris, France"} +@String{pub-MASSON-SA = "Masson, S.A."} +@String{pub-MASSON-SA:adr = "Barcelona, Spain"} +@String{pub-MH = "McGraw-Hill"} +@String{pub-MH:adr = "New York, NY, USA"} +@String{pub-MIT = "MIT Press"} +@String{pub-MIT:adr = "Cambridge, MA, USA"} +@String{pub-NAB = "New Amsterdam Books"} +@String{pub-NAB:adr = "New York, NY, USA"} +@String{pub-NH = "North-Holland Publishing Company"} +@String{pub-NH:adr = "Amsterdam, The Netherlands"} +@String{pub-NIGGLI = "Niggli/Hatje"} +@String{pub-NIGGLI:adr = "Heiden, Stuttgart, Germany"} +@String{pub-OHIO = "Ohio University Press"} +@String{pub-OHIO:adr = "Athens, OH, USA"} +@String{pub-OLDENBOURG = "R. Oldenbourg Verlag"} +@String{pub-OLDENBOURG:adr = "Munich, Germany and Vienna, Austria"} +@String{pub-ORA = "O'Reilly \& {Associates, Inc.}"} +@String{pub-ORA:adr = "981 Chestnut Street, Newton, MA 02164, USA"} +@String{pub-OUP = "Oxford University Press"} +@String{pub-OUP:adr = "Walton Street, Oxford OX2 6DP, UK"} +@String{pub-PEACHPIT = "Peachpit Press, Inc."} +@String{pub-PEACHPIT:adr = "1085 Keith Avenue, Berkeley, CA 94708, USA"} +@String{pub-PH = "Pren{\-}tice-Hall"} +@String{pub-PH:adr = "Englewood Cliffs, NJ 07632, USA"} +@String{pub-Pitagora = "Pitagora Editrice"} +@String{pub-Pitagora:adr = "Via del legatore, 3, Bologna, Italy"} +@String{pub-POLYGRAPH = "Polygraph Verlag"} +@String{pub-POLYGRAPH:adr = "Frankfurt am Main, Germany"} +@String{pub-PTI = "Personal {\TeX} Inc."} +@String{pub-PTI:adr = "12 Madrona Street, Mill Valley, CA 94941, USA"} +@String{pub-PTRPH = "P T R Pren{\-}tice-Hall"} +@String{pub-PTRPH:adr = "Englewood Cliffs, NJ 07632, USA"} +@String{pub-RISO = "Ris{\o} National Laboratory"} +@String{pub-RISO:adr = "Roskilde, Denmark"} +@String{pub-RRB = "R. R. Bowker Company"} +@String{pub-RRB:adr = "New York, NY, USA"} +@String{pub-SERIF = "Serif Publishing"} +@String{pub-SERIF:adr = "A subsidiary of Xerox Corporation, 701 South + Aviation Boulevard, El Segundo, CA 90245, USA"} +@String{pub-SF = "Scott, Foresman and Company"} +@String{pub-SF:adr = "Glenview, IL, USA"} +@String{pub-SIAM = "Society for Industrial and Applied Mathematics"} +@String{pub-SIAM:adr = "Philadelphia, PA, USA"} +@String{pub-SILICON = "Silicon Press"} +@String{pub-SILICON:adr = "25 Beverly Road, Summit, NJ 07901, USA"} +@String{pub-SP = "Shapolsky Publishers"} +@String{pub-SP:adr = "New York, NY, USA"} +@String{pub-STA = "Society of Typographic Arts"} +@String{pub-STA:adr = "Chicago, IL, USA"} +@String{pub-Steiner = "Steiner"} +@String{pub-Steiner:adr = "Stuttgart, Germany"} +@String{pub-SUCSLI = "Stanford University Center for the Study of + Language and Information"} +@String{pub-SUCSLI:adr = "Stanford, CA, USA"} +@String{pub-SV = "Spring{\-}er-Ver{\-}lag"} +@String{pub-SV:adr = "Berlin, Germany~/ Heidelberg, Germany~/ London, + UK~/ etc."} +@String{pub-SYBEX = "Sybex"} +@String{pub-SYBEX:adr = "2021 Challenger Driver, Suite 100, Alameda, + CA 94501, USA"} +@String{pub-TEXPLORATORS = "The {\TeX}plorators Corporation"} +@String{pub-TEXPLORATORS:adr = "3701 W. Alabama, Suite 450-273, + Houston, TX 77027, USA"} +@String{pub-TH = "Thames and Hudson"} +@String{pub-TH:adr = "London, UK"} +@String{pub-TUB = "Technische Universit{\"a}t Berlin, Institut + f{\"u}r Humanwissenschaft in Arbeit und + Ausbildung"} +@String{pub-TUB:adr = "10623 Berlin, Germany"} +@String{pub-UCP = "University of Chicago Press"} +@String{pub-UCP:adr = "Chicago, IL, USA"} +@String{pub-UNIC = "UNI{$\bullet$}C"} +@String{pub-UNIC:adr = "Danmarks EDB-Center for Forskning og + Uddannelse, Copenhagen, Denmark"} +@String{pub-URW = "URW (Unternehmensberatung Rubow Weber) Verlag"} +@String{pub-URW:adr = "Hamburg, Germany"} +@String{pub-UTP = "University of Toronto Press"} +@String{pub-UTP:adr = "Toronto, Ontario, Canada"} +@String{pub-VIEWEG = "Friedrich Vieweg und Sohn"} +@String{pub-VIEWEG:adr = "Braunschweig, Germany"} +@String{pub-VNR = "Van Nostrand Reinhold"} +@String{pub-VNR:adr = "New York, NY, USA"} +@String{pub-VOGEL = "Vogel Verlag"} +@String{pub-VOGEL:adr = "Postfach 67 40, D-8700 W{\"u}rzburg, Germany"} +@String{pub-W = "Wiley"} +@String{pub-W:adr = "Chichester, UK"} +@String{pub-WCB = "William C. Brown Company Publishers"} +@String{pub-WCB:adr = "Dubuque, IA, USA"} +@String{pub-WGP = "Wat{\-}son-Gup{\-}till Publications"} +@String{pub-WGP:adr = "1515 Broadway, New York, NY 10036, USA"} +@String{pub-WORLD-SCI = "World Scientific"} +@String{pub-WORLD-SCI:adr = "Singapore"} +@String{pub-WPC = "Wadsworth Publishing Company"} +@String{pub-WPC:adr = "Belmont, CA, USA"} +@String{pub-WWS = "The Wynkyn de Worde Society and Bund Deutscher + Buchk{\"u}nstler"} +@String{pub-WWS:adr = "London, UK and Offenbach, Germany"} +@String{pub-YUP = "Yale University Press"} +@String{pub-YUP:adr = "New Haven, CT, USA"} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +@Book{Abdelhamid:VLB92, + author = "Rames Abdelhamid", + title = "{Das Vieweg {\LaTeX}-Buch: Eine praxisorientierte + Einf{\"u}hrung}", + publisher = pub-VIEWEG, + year = "1992", + ISBN = "3-528-05145-0", + address = pub-VIEWEG:adr, + pages = "200", + bibdate = "Thu Mar 11 12:01:24 1993", +} + +@Book{Abdelhamid:VLB93, + author = "Rames Abdelhamid", + title = "{Das Vieweg {\LaTeX}-Buch: Eine praxisorientierte + Einf{\"u}hrung}", + publisher = pub-VIEWEG, + edition = "Second", + year = "1993", + ISBN = "3-528-15145-5", + address = pub-VIEWEG:adr, + pages = "xvi + 169", + acknowledgement = ack-rz, + bibdate = "Wed Mar 2 08:33:46 1994", +} + +@Article{Abikoff:MI-8-3-64, + author = "William Abikoff", + title = "{\TeX}", + journal = j-MATHINTEL, + year = "1986", + volume = "8", + number = "3", + pages = "64--76", + acknowledgement = ack-ps, + bibdate = "Fri Mar 12 09:43:47 1993", +} + +@Article{Abikoff:TEA88, + author = "William Abikoff", + title = "{\TeX}: The Ease and Art of Text Processing", + journal = j-ABACUS, + year = "1988", + volume = "5", + number = "4", + pages = "10--29", + month = "summer", + acknowledgement = ack-nhfb, + bibdate = "Thu Jul 21 23:38:18 1994", +} + +@Book{Abrahams:TI90, + author = "Paul W. Abrahams with Karl Berry and Kathryn A. + Hargreaves", + title = "{\TeX} for the Impatient", + publisher = pub-AW, + year = "1990", + address = pub-AW:adr, + ISBN = "0-201-51375-7", + LCCN = "Z253.4.T47 A27 1990", + pages = "xvii + 357", + bibdate = "Tue Dec 14 23:17:24 1993", +} + +@Book{Abrahams:TI91, + author = "Paul W. Abrahams with Karl Berry and Kathryn A. + Hargreaves", + title = "{\TeX} per l'impaziente", + translator = "Gaia Franchi and Guido Franchi", + publisher = pub-AW, + year = "1991", + address = pub-AW:adr, + ISBN = "88-7192-022-8", + pages = "396", + bibdate = "Fri Dec 31 15:47:25 1993", + acknowledgement = ack-cb, + bookreview = "TUGboat 14, number 4, December 1993, 421--422", + note = "This is an translation to Italian of + \cite{Abrahams:TI90}, with additional material on + Italian hyphenation.", +} + +@InProceedings{Adams:NIPT-353, + author = "Debra A. Adams", + title = "Evaluating font quality: {A} method of predicting + character image defects", + crossref = "Pietrowski:NIPT91", + pages = "353--364", + acknowledgement = ack-kb, + bibdate = "Tue Mar 1 11:52:23 1994", +} + +@Manual{Adobe:AT190, + title = "Adobe Type 1 Font Format", + organization = "{Adobe Systems, Inc.}", + year = "1990", + month = mar, + partnumber = "LPS0064", +} + +@Misc{Adobe:colophon, + author = "{Adobe Systems Incorporated}", + title = "{Colophon}\emdash {Adobe} {Systems} {News} + {Publication}", + year = "198?", +} + +@Manual{Adobe:DPS88, + title = "The Display {\POSTSCRIPT{}} System Reference", + organization = "{Adobe Systems, Inc.}", + year = "1988", + month = oct # " 10", +} + +@Book{Adobe:PLP88, + author = "Glenn C. Reid", + title = "{\POSTSCRIPT{}} Language Program Design", + publisher = pub-AW, + address = pub-AW:adr, + year = "1988", + ISBN = "0-201-14396-8", + LCCN = "QA76.73.P67 R45 1988", + pages = "xii + 224", + bibdate = "Tue Dec 14 23:17:57 1993", +} + +@Book{Adobe:PLR85, + author = "{Adobe Systems Incorporated}", + title = "{\POSTSCRIPT{}} Language Reference Manual", + publisher = pub-AW, + address = pub-AW:adr, + year = "{\noopsort{1985a}}1985", + ISBN = "0-201-10174-2", + LCCN = "QA76.73.P67 A33 1985", + pages = "ix + 321", + bibdate = "Tue Dec 14 23:18:17 1993", +} + +@Book{Adobe:PLT85, + author = "{Adobe Systems Incorporated}", + title = "{\POSTSCRIPT{}} Language Tutorial and Cookbook", + publisher = pub-AW, + address = pub-AW:adr, + year = "{\noopsort{1985b}}1985", + ISBN = "0-201-10179-3", + LCCN = "QA76.73.P67 A34 1985", + pages = "x + 243", + bibdate = "Tue Dec 14 23:18:32 1993", +} + +@InProceedings{Agostini:TEX85-117, + crossref = "Lucarella:TSD85", + author = "M. Agostini and V. Matano and M. Schaerf and M. + Vascotto", + title = "An {Interactive} {User}-{Friendly} {\TeX} in + {VM}/{CMS} {Environment}", + pages = "117--132", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:43:14 1994", +} + +@Article{Aiello:RIV-INF-13-3-261, + author = "L. Aiello and S. Pavan", + title = "A system for the production of documents based on + {\TeX} (in Italian)", + journal = "Riv. Inf. (Milan)", + year = "1983", + volume = "13", + number = "3", + pages = "261--270", + month = jul, + bibdate = "Thu Jul 21 19:48:28 1994", +} + +@Book{Alamnehe:EDP93, + author = "Abass Alamnehe", + title = "{e\LaTeX}: Document Preparation Guide", + publisher = pub-ETHIO, + address = pub-ETHIO:adr, + year = "1993", + note = "This book is typeset in {e\LaTeX}, an Ethiopic-based + version of {\LaTeX}, and is entirely in the Amharic + language, including many of the control sequences.", + pages = "xvi + 230", + acknowledgement = ack-aa, + bibdate = "Fri Apr 1 09:00:27 1994", +} + +@Article{Alexander:SEYBOLD-7-1-3, + author = "George Alexander", + title = "{\TeX} and {\TeX}tures: Page Composition in a + Completely Different Vein", + journal = j-SEYBOLD, + year = "1992", + volume = "7", + number = "1", + pages = "3--7", + month = sep # " 4", + bibdate = "Mon Dec 7 18:26:51 1992", +} + +@Article{AMS:NAMS-37-2-143, + key = "NEWTEXFEATURES", + author = "Anonymous", + title = "New {\TeX} Features from {AMS}", + journal = j-NAMS, + year = "1990", + volume = "37", + number = "2", + pages = "143--144", + month = feb, +} + +@Article{AMSCSD:NAMS-37-8-1027, + author = "{AMS Composition Services Department}", + title = "From Manuscript to Published Paper: How Does it + Happen? Part 2", + journal = j-NAMS, + year = "1990", + volume = "37", + number = "8", + pages = "1027--1028", + month = oct, +} + +@InProceedings{Andre:TEX85-141, + crossref = "Lucarella:TSD85", + author = "Jacques Andr\'e and Richard Southall", + title = "Experiments in teaching {\METAFONT}", + pages = "141--153", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:43:24 1994", +} + +@InProceedings{Andre:TEX85-79, + crossref = "Lucarella:TSD85", + author = "Jacques Andr\'e and Yann Grundt and Vincent Quint", + title = "Towards an {Interactive} {Math} {Mode} in {\TeX}", + pages = "79--92", + bibdate = "Tue Mar 1 12:43:35 1994", +} + +@Article{Andre:TSI-1-5, + author = "Jacques Andr\'e", + title = "Analytical bibliography on text manipulation", + journal = j-TSI, + volume = "1", + number = "5", + year = "1983", + acknowledgement = ack-hk, +} + +@Article{Antweiler:SIGSAM-23-2-26, + author = "Werner Antweiler and Andreas Strotmann and Volker + Winkelmann", + title = "A {\TeX}-{REDUCE} Interface", + journal = j-SIGSAM, + year = "1989", + volume = "23", + number = "2", + pages = "26--33", + month = apr, +} + +@Book{APA:PMA84, + key = "APA", + author = "Anonymous", + title = "Publication Manual of the American Psychological + Association", + publisher = pub-APA, + address = pub-APA:adr, + year = "1984", + edition = "third", + index = "yes", + bibliography = "yes", + pages = "208", + ISBN = "0-912704-57-8", + LCCN = "BF76.7 .P83 1983", + annote = "The book contains style guidelines known as the APA + style. This ranges from spelling conventions to table + formatting. The guidelines assume that papers are + produced using a typewriter. The book itself shows a + very unpleasant design making reading are hard task.", + keywords = "document preparation guidelines, style guidelines, + communications in psychology, psychology authorship, + American Psychological Association, publication manual, + writing", + acknowledgement = ack-fm, + bibdate = "Tue Mar 1 11:52:52 1994", +} + +@InProceedings{Appelt:TEX85-61, + crossref = "Lucarella:TSD85", + author = "Wolfgang Appelt", + title = "The {Hyphenation} of {Non}-{English} {Words} with + {\TeX}", + pages = "61--65", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:43:51 1994", +} + +@Book{Appelt:TF88, + author = "Wolfgang Appelt", + title = "{\TeX{}} f{\"u}r Fortgeschrittene", + publisher = pub-AW, + address = pub-AW:adr, + year = "1988", + ISBN = "3-89319-115-1", + pages = "x + 179", + bibdate = "Wed Dec 15 08:47:26 1993", +} + +@Book{Appelt:TF94, + author = "Wolfgang Appelt", + title = "{\TeX{}} f{\"u}r Fortgeschrittene", + publisher = pub-AW, + address = pub-AW:adr, + edition = "Second", + year = "1994", + ISBN = "3-89319-695-1", + pages = "xii + 183", + acknowledgement = ack-rz, + bibdate = "Tue Mar 1 14:25:32 MET 1994", +} + +@Book{Arnold:IP72, + author = "Edmund C. Arnold", + title = "Ink on Paper 2: a Handbook of the Graphic Arts", + publisher = pub-HRP, + address = pub-HRP:adr, + year = "1972", + note = "Chapter bibliographies, sidebars, glossary, index, pp. + 375.", + annote = "Summarizes evolution of printing technoology, with + focus on current status.", + acknowledgement = ack-jpl, + ISBN = "0-06-010131-8", + LCCN = "Z244 .A83 1972", + pages = "374", + bibdate = "Tue Mar 1 12:44:08 1994", +} + +@Article{Arrabito:EPODD-1-2-117, + author = "R. Arrabito and H. J{\"{u}}rgensen", + title = "Computerized {Braille} Typesetting: Another View of + Mark-up Standards", + journal = j-EPODD, + year = "1988", + volume = "1", + number = "2", + pages = "117--132", + month = sep, +} + +@Book{Baecker:HFT89, + author = "Ronald M. Baecker and Aaron Marcus", + title = "Human Factors and Typography for More Readable + Programs", + publisher = pub-AW, + address = pub-AW:adr, + year = "1989", + ISBN = "0-201-10745-7", + LCCN = "QA76.75 .B34 1990", + pages = "xx + 348", + bibliography = "yes", + index = "yes", + keywords = "visual programming, computer graphics, human-computer + interaction", + acknowledgement = ack-fm, + bibdate = "Tue Dec 14 22:56:18 1993", +} + +@Book{Bailey:ASB70, + author = "Herbert S. {Bailey, Jr.}", + title = "The Art and Science of Book Publishing", + publisher = pub-HRP, + address = pub-HRP:adr, + year = "1970", + note = "Bibliography, tables, figures, appendix, index, pp. + 217.", + annote = "Semi-narrative style analyzing the management of + (book) publishing by a former director of Princeton + University Press.", + LCCN = "Z278 .B15", + pages = "xii + 216", + acknowledgement = ack-jpl, +} + +@Book{Bailey:ASB90, + author = "Herbert S. {Bailey, Jr.}", + title = "The Art and Science of Book Publishing", + publisher = pub-OHIO, + address = pub-OHIO:adr, + edition = "Third", + year = "1990", + ISBN = "0-8214-0970-0", + LCCN = "Z278 .B15 1990", + pages = "xviii + 216", + acknowledgement = ack-nhfb, + bibdate = "Sat Feb 19 12:16:32 1994", +} + +@Book{Barlow:TC92, + author = "Geoff Barlow and Simon Eccles", + title = "Typesetting and Composition", + address = pub-BLUEPRINT:adr, + publisher = pub-BLUEPRINT, + ISBN = "0-948905-72-7", + pages = "274", + year = "1992", + edition = "second", + acknowledgement = ack-mc, +} + +@Article{Barron:EPODD-2-1-3, + author = "D. Barron", + title = "Why Use {SGML}?", + journal = j-EPODD, + year = "1989", + volume = "2", + number = "1", + pages = "3--24", + month = apr, + bibdate = "Tue Mar 1 12:44:34 1994", +} + +@Article{Barwise:NAMS-36-3-241, + author = "Jon Barwise", + title = "{\TeX}, {\LaTeX}, and {\AmSTeX}", + journal = j-NAMS, + year = "1989", + volume = "36", + number = "3", + pages = "241--243", + month = mar, + acknowledgement = ack-ps, + bibdate = "Tue Dec 14 11:08:55 1993", +} + +@Book{Barzun:WEP86, + author = "Jacques Barzun", + title = "On Writing, Editing, and Publishing: Essays, + Explicative and Hortatory", + publisher = pub-UCP, + address = pub-UCP:adr, + year = "1986", + acknowledgement = ack-jpl, + ISBN = "0-226-03857-2 (hardcover), 0-226-03858-0 (paperback)", + LCCN = "PN149 .B295 1986", + pages = "xi + 148", + bibdate = "Tue Dec 14 22:56:20 1993", +} + +@Article{BCS:NAMS-33-1-8, + author = "Report of the {Boston Computer Society}", + title = "Technical {Wordprocessors} for the {IBM PC} and + {Compatibles}", + journal = j-NAMS, + volume = "33", + number = "1", + pages = "8--37", + month = jan, + year = "1986", + acknowledgement = ack-hk, +} + +@Book{Beccari:LGS91, + author = "Claudio Beccari", + title = "{\LaTeX}\emdash{}Guida a un sistema di editoria + elettronica", + publisher = pub-EUH, + address = pub-EUH:adr, + year = "1991", + ISBN = "88-203-1931-4", + pages = "ix + 399", + acknowledgement = ack-cb, + note = "[From the author]: The book is the first and only one + in Italian at this moment [18-Nov-1991]. Although it + contains an introductory chapter for the beginner, its + main purpose is to give the reader advanced information + on {\LaTeX} (and partially on {\TeX}) in order to + prepare sophisticated macros, style files, and to make + a clever use of fonts. + + Here is a reduced table of contents (translated to + English): + + Chapter 1 - Introduction \\ + \hphantom{Chapter }2 - Introductory \LaTeX{} \\ + \hphantom{Chapter }3 - General commands for text mode + \\ + \hphantom{Chapter }4 - Mathematical commands \\ + \hphantom{Chapter }5 - Environments \\ + \hphantom{Chapter }6 - Figures and tables \\ + \hphantom{Chapter }7 - Macros \\ + \hphantom{Chapter }8 - Typical documents and style + files \\ + \hphantom{Chapter }9 - Fonts \\ + Appendix A - \TeX{} Users Group \\ + \hphantom{Appendix }B - Keyboards \\ + \hphantom{Appendix }C - Font tables \\ + \hphantom{Appendix }D - Hyphenation patterns for + Italian \\ + Bibliography \\ + Index \\ + The publisher received camera-ready pages that were + prepared by the author with a 300-dpi laser printer. + The page style dimensions were suitably enlarged while + the photo plates were reduced so as to minimize the + granulosity of the signs. In practice the book was + prepared with 12pt option and reduced by the + photografic ratio of 0.8 so that the final real font + size is 9.6pt. + + The whole book was prepared with the standard Computer + Roman fonts on purpose in order to show the potential + user what he can get witha standard \TeX{}/\LaTeX{} + kit. The simple pictures were prepared with the + ``picture'' environment. The cover and the title page + were designed by a graphic expert of the publishing + company.", + bibdate = "Tue Mar 1 12:44:45 1994", +} + +@Book{Beccari:TLS91, + author = "Claudio Beccari", + title = "La tesi di laurea scientifica\emdash Con note per la + composizione in {\LaTeX}\emdash disco {MS}-{DOS} da + 5.25in contenente macroistruzioni di stile", + publisher = pub-EUH, + year = "1991", + address = pub-EUH:adr, + ISBN = "88-203-1932-2", + note = "The book was typeset by the author and printed with a + laser printer having a resolution of 300 dpi. The pages + were then photographically reduced by a factor of 0.8 + to the final size.. + + The fonts used are those of the standard + {\TeX}/{\LaTeX} set, that is Computer Modern, with a + default normal size of 12pt that the photographic + reduction made equivalent to approximately 10pt. + + The book is a set of instructions for the preparation + of the thesis (Master and PhD levels) according to the + Italian State Universities regulations; it deals mostly + with literary style but it also includes extensive + tables of scientific symbols and nomenclature and many + references to Standards regulations. + + The final chapter deal with the typesetting of the + thesis with a {\LaTeX} style, TOPTESI, whose source is + recorded in a floppy disk that comes with the book.", + pages = "vii + 116", + bibdate = "Tue Mar 1 12:44:57 1994", +} + +@Book{Bechtolsheim:TP93a, + author = "Stephan von Bechtolsheim", + title = "{\TeX} in Practice: Basics", + publisher = pub-SV, + year = "1993", + ISBN = "0-387-97595-0, 3-540-97595-0", + LCCN = "Z253.4.T47 B4 1993", + volume = "1", + address = pub-SV:adr, + bibdate = "Mon Oct 18 15:41:37 1993", + acknowledgement = ack-nhfb, +} + +@Book{Bechtolsheim:TP93b, + author = "Stephan von Bechtolsheim", + title = "{\TeX} in Practice: Paragraphs, Math, and Fonts", + publisher = pub-SV, + year = "1993", + ISBN = "0-387-97596-9, 3-540-97596-9", + LCCN = "Z253.4.T47 B4 1993", + volume = "2", + address = pub-SV:adr, + bibdate = "Mon Oct 18 15:41:37 1993", + acknowledgement = ack-nhfb, +} + +@Book{Bechtolsheim:TP93c, + author = "Stephan von Bechtolsheim", + title = "{\TeX} in Practice: Tokens, Macros", + publisher = pub-SV, + year = "1993", + ISBN = "0-387-97597-7, 3-540-97597-7", + LCCN = "Z253.4.T47 B4 1993", + volume = "3", + address = pub-SV:adr, + bibdate = "Mon Oct 18 15:41:37 1993", + acknowledgement = ack-nhfb, +} + +@Book{Bechtolsheim:TP93d, + author = "Stephan von Bechtolsheim", + title = "{\TeX} in Practice: Output Routines, Tables", + publisher = pub-SV, + year = "1993", + ISBN = "0-387-97598-5, 3-540-97598-5", + LCCN = "Z253.4.T47 B4 1993", + volume = "4", + address = pub-SV:adr, + bibdate = "Mon Oct 18 15:41:37 1993", + acknowledgement = ack-nhfb, +} + +@Article{Becker:EPODD-2-3-119, + author = "Zeev Becker and Daniel Berry", + title = "{{\tt triroff}}, an adaptation of the + device-independent {{\tt troff}} for formatting + tri-directional text", + journal = j-EPODD, + year = "1989", + volume = "2", + number = "3", + pages = "119--142", + month = oct, + bibdate = "Tue Mar 1 12:45:15 1994", +} + +@Manual{Beebe:dvidriver207, + author = "Nelson H. F. Beebe", + title = "A {\TeX} {DVI} {Driver} {Family} --- + ({Revision}~2.07)", + address = "University of Utah, Salt Lake City, UT 84112, USA", + month = apr, + year = "1987", + acknowledgement = ack-nhfb, +} + +@Book{Bennett:BP91, + editor = "Paul A Bennett", + title = "Books and Printing", + address = pub-BIEL:adr, + publisher = pub-BIEL, + ISBN = "0-913720-72-0", + LCCN = "Z116.A3 B58 1991", + pages = "417", + subtitle = "A Treasury for Typophiles", + year = "1991", + note = "first published in 1951", + acknowledgement = ack-mc, + bibdate = "Fri Jul 22 08:46:15 1994", +} + +@Article{Bentley:CACM-29-5-364, + author = "Jon Bentley", + title = "Literate Programming", + journal = j-CACM, + volume = "29", + number = "5", + pages = "364--369", + year = "1986", +} + +@Article{Bentley:EPODD-1-1-3, + author = "J. L. Bentley and B. W. Kernighan", + title = "Tools for Printing Indexes", + journal = j-EPODD, + year = "1988", + volume = "1", + number = "1", + pages = "3--18", + month = apr, +} + +@Book{Bianco:GUP92, + author = "Fiorella Bianco", + title = "{\TeX}\emdash Guida all'uso su personal computer + (Guide for the use on personal computers)", + publisher = pub-Pitagora, + year = "1992", + address = pub-Pitagora:adr, + pages = "ix + 157", + ISBN = "88-371-0583-5", + note = "Prepared with Plain {\TeX} and book macros written by + the author. Final copy produced on a 300-dpi laser + printer at magnification 1.2, then reduced for + printing.", + bibdate = "Tue Mar 1 11:55:51 1994", +} + +@InProceedings{Bien:TEX85-133, + crossref = "Lucarella:TSD85", + author = "Janusz S. Bie{\'n} and Hanna + Ko{\-}{\l}o{\-}dziej{\-}ska", + author-l = lang-pl, + title = "{\TeX} for {Riad} {Computers}", + pages = "133--140", + acknowledgement = ack-hk, + bibdate = "Thu Jun 23 18:11:13 1994", +} + +@Article{Bien:TEXLINE-89, + author = "Janusz S. Bie{\'n}", + author-l = lang-pl, + title = "Polish {Language} and {\TeX}", + journal = j-TEXLINE, + number = "8", + pages = "2", + year = "1988", + acknowledgement = ack-hk, +} + +@Article{Bien:WM-29-1-132, + author = "Janusz S. Bie{\'n}", + author-l = lang-pl, + title = "Co to jest {\TeX}? (What is {\TeX}?)", + title-l = lang-pl, + journal = j-WM, + year = "1990", + volume = "29", + number = "1", + pages = "132--156", + note = "In Polish.", + bibdate = "Thu Jun 23 18:23:05 1994", +} + +@Article{Bigelow:SA-249-2-106, + author = "Charles Bigelow and Donald Day", + title = "Digital Typography", + journal = j-SA, + year = "1983", + volume = "249", + number = "2", + pages = "106--119", + month = aug, +} + +@InProceedings{Bigelow:TPDM86-1, + title = "The Design of {Lucida}: an Integrated Family of Types + for Electronic Literacy", + author = "Charles Bigelow and Kris Holmes", + crossref = "vanVliet:TPDM86", + acknowledgement = ack-kb, + pages = "1--17", + bibdate = "Tue Mar 1 12:45:43 1994", +} + +@TechReport{Billawala:STAN-CS-89-1256, + author = "Neenie Billawala", + title = "Metamarks: Preliminary studies for a {Pandora's Box} + of Shapes", + institution = inst-STAN-CS, + year = "1989", + month = may, + number = "{STAN-CS-89-1256}", + bibdate = "Tue Mar 1 12:45:52 1994", +} + +@Article{Binding:MDM-4-19-22, + author = "Angelika Binding", + title = "Einsatz von {\TeX} beim {Springer-Verlag}", + journal = j-MDMV, + year = "1993", + volume = "19", + pages = "19--22", + acknowledgement = ack-ps, + bibdate = "Tue Dec 14 10:40:35 1993", +} + +@Book{Black:TDP90, + author = "Alison Black", + title = "Typefaces for desktop publishing; a user guide", + publisher = pub-ADTP, + address = pub-ADTP:adr, + pages = "106", + year = "1990", + review = j-TEXLINE # " 13, pp. 10-12", + ISBN = "1-85454-841-7", + LCCN = "Z253.3.B53 1990", + acknowledgement = ack-fm # " and " # ack-mc, + bibdate = "Fri Jul 22 08:46:58 1994", +} + +@Book{Borceux:LPT90, + author = "Francis Borceux", + title = "{\LaTeX}\emdash{}la perfection dans le traitement du + texte", + publisher = pub-CIAOCO, + address = pub-CIAOCO:adr, + year = "1990", + ISBN = "2-87085-194-4", + bibdate = "Wed Dec 15 08:46:29 1993", +} + +@Book{Borde:MTE93, + author = "Arvind Borde", + title = "Mathematical {\TeX} by Example", + publisher = pub-AP, + address = pub-AP:adr, + year = "1993", + ISBN = "0-12-117645-2", + LCCN = "Z253.4.T47 B67 1993", + pages = "xii + 352", + bibdate = "Wed Dec 15 08:46:21 1993", + acknowledgement = ack-nhfb, +} + +@Book{Borde:TE92, + author = "Arvind Borde", + title = "{\TeX} by Example", + publisher = pub-AP, + address = pub-AP:adr, + year = "1992", + ISBN = "0-12-117650-9", + LCCN = "Z253.4.T47 B67 1992", + pages = "xiv + 169", + acknowledgement = ack-ab, + note = "This book was designed by the author, with some + assistance from the production department of Academic + Press, Boston. The covers were done by the publisher. + It was typeset by the author using Plain {\TeX} plus + specially written macros. The code for all macros used + for the book are reproduced in it so that the book + itself contains all the information---page layout + specifications, fonts used, and so on---about its own + typesetting. + + Over half the book consists of {\TeX} input and output + shown side-by-side, providing an explicit example of + how a part of the book was typeset. + + The Academic Press logo on page iii, the + cataloging-in-publication data on page iv, and the + diagrams on page 33 were pasted in place by the + production department of Academic Press. + + The diagrams were drawn using {\LaTeX}. Sample + printouts of pages were made on various laser printers. + When everything seemed satisfactory, the dvi files were + copied onto IBM diskettes and were mailed to Academic + Press, and from them to the American Mathematical + Society. The final copy was produced by the A.M.S. + using an APS micro-5 phototypesetter. All fonts used in + the book are from the Computer Modern family. + + Parts of the covers of the book, inside and outside, + were done in {\TeX} by the author (the code for this is + not included in the book). The outside cover was + designed by Camille Pecoul of Academic Press and + produced at Allison Associates in Boston. The font used + for the title (on the covers) is Meridien. The + background pattern was obtained by shooting a handmade + marble paper as a black-and-white halftone and then + overprinting with the Pantone Matching System (PMS). + The placement of material on the cover was done by hand + by Ms. Pecoul using a mechanical board. The drop shadow + effect was done at Allison Associates.", + bibdate = "Tue Mar 1 11:56:22 1994", +} + +@Book{Borde:UGT93, + author = "Arvind Borde and Tomas Rokicki", + title = "A User's Guide for {\TeX}Help; The On-Line {\TeX} + Handbook", + publisher = pub-AP, + address = pub-AP:adr, + year = "1993", + ISBN = "0-12-117640-1", + pages = "v + 28", + note = "This small booklet documents the {\TeX}Help program + for IBM PC and compatible microcomputers.", + bibdate = "Sat Sep 25 13:57:28 1993", + acknowledgement = ack-nhfb, +} + +@Book{Borkowski:LPS92, + author = "Kazimierz M. Borkowski", + author-l = lang-pl, + title = "{\LaTeX}. Profesjonalny sk{\l}ad publikacji", + title-l = lang-pl, + publisher = pub-MARSZALEK, + publisher-l = lang-pl, + year = "1992", + address = pub-MARSZALEK:adr, + address-l = lang-pl, + note = "In Polish.", + acknowledgement = ack-md, + bibdate = "Thu Jun 23 18:23:12 1994", +} + +@Book{Boston:STT86, + author = "Bruce O. Boston", + title = "{STET!} Tricks of the Trade for Writers and Editors", + publisher = pub-EEI, + address = pub-EEI:adr, + year = "1986", + pages = "310", + annote = "A collection of articles from {\em The Editorial Eye}, + the newsletter on publications standards and practices. + Covers editing, writing, proof-reading, and + publications management (mostly writing, editing, and + proofing).", + acknowledgement = ack-jpl, + price = "US\$15.95", + ISBN = "0-935012-07-9", + LCCN = "PN162 .S741 1986", + bibdate = "Fri Jul 22 08:47:44 1994", +} + +@Booklet{Botway:LCS-85, + author = "Lloyd Botway and Chris Biemesderfer", + title = "{\LaTeX} {Command} {Summary} ({\TeX} 1.3, {\LaTeX} + 2.08)", + howpublished = "Prepared for the Space Telescope Institute, Baltimore, + MD; reprinted with permission and distributed by TUG", + year = "1985", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 11:57:04 1994", +} + +@InProceedings{Bouma:DP88, + author = "Louis G. Bouma and Jeroen Bruijning and Johannes C. + {van Vliet}", + title = "Document processing", + crossref = "vanderVeer:HCI88", + year = "1988", + pages = "144--169", + acknowledgement = ack-nhfb, + bibdate = "Thu Jul 21 23:40:26 1994", +} + +@Book{Brandt:CAC89, + editor = "Josef Brandt and Ivar K. Ugi", + title = "Computer Applications in Chemical Research and + Education: {A} Collection of Papers Based on Lectures + that were Presented at the {VII}th International + Conference on Computers in Chemical Research and + Education at Garmisch-Partenkirchen, {DE}", + publisher = pub-AHV, + year = "1989", + series = "Computeranwendung in der Chemie", + address = pub-AHV:adr, + edition = "1", + ISBN = "3-7785-1804-6", + LCCN = "QD39.3.E46 I56 1985", + price = "DM128.00", + pages = "xiii + 449", + acknowledgement = ack-rw, + bibdate = "Fri Jul 22 08:49:47 1994", +} + +@Book{Braswell:IP89, + author = "Frank Merritt Braswell", + title = "Inside {\POSTSCRIPT{}}", + publisher = pub-PEACHPIT, + year = "1989", + address = pub-PEACHPIT:adr, + price = "US\$37.50", + ISBN = "0-938151-10-X", + LCCN = "QA76.73.P67 B73 1989", + bibdate = "Tue Dec 14 23:35:41 1993", +} + +@Article{Brooks:COMPUTER-24-6-7, + author = "Kenneth P. Brooks", + title = "Lilac: {A} Two-View Document Editor", + journal = j-COMPUTER, + year = "1991", + volume = "24", + number = "6", + pages = "7--19", + month = jun, + bibdate = "Tue Mar 1 11:57:20 1994", +} + +@Article{Bruggemann-Klein:EPODD-2-2-101, + author = "A. Br{\"{u}}ggeman-Klein and D. Wood", + title = "Drawing Trees Nicely with {\TeX{}}", + journal = j-EPODD, + year = "1989", + volume = "2", + number = "2", + pages = "101--115", + month = jul, +} + +@TechReport{Bruin:PL88, + author = "R. de Bruin and C. G. {van der Laan} and J. R. Luyten + and H. F. Vogt", + title = "Publiceren met {\LaTeX{}}", + institution = inst-CWI, + type = "CWI Syllabus", + number = "19", + year = "1988", + address = inst-CWI:adr, + ISBN = "90-6196-357-5", + note = "In Dutch; copious examples.", + bibdate = "Tue Mar 1 12:47:03 1994", +} + +@Book{Bryan:SAG88, + author = "Martin Bryan", + title = "{SGML}\emdash{}An Author's Guide to the Standard + Generalized Markup Language", + publisher = pub-AW, + address = pub-AW:adr, + year = "1988", + ISBN = "0-201-17535-5", + LCCN = "QA76.73.S44 B79 1988", + pages = "xvii + 364", + annote = "Complete description of SGML including example DTDs.", + keywords = "SGML, DTD, document representation", + acknowledgement = ack-nhfb # " and " # ack-fm, + bibdate = "Tue Dec 14 23:35:58 1993", +} + +@Book{Buerger:LES90, + author = "David J. Buerger", + title = "{\LaTeX} for Engineers and Scientists", + publisher = pub-MH, + address = pub-MH:adr, + year = "1990", + ISBN = "0-07-008845-4", + LCCN = "Z253.4.L38 B84 1990", + pages = "xvi + 198", + bibdate = "Tue Dec 14 22:43:21 1993", +} + +@Book{Butcher:CEC81, + author = "Judith Butcher", + title = "Copy editing: the Cambridge handbook", + publisher = pub-CUP, + address = pub-CUP:adr, + year = "1981", + edition = "Second", + inprint = "yes", + price = "UK\pounds22", + annote = "The standard English work on copy editing (CHe)", + acknowledgement = ack-fm, + ISBN = "0-521-23868-4, 0-521-25638-0", + LCCN = "PN162 .B86 1981", + bibdate = "Fri Jul 22 08:50:18 1994", +} + +@Booklet{Bzyl:TT93, + title = "{\TeX}. {\TeX}??", + title-l = lang-pl, + author = "W{\l}odek Bzyl", + author-l = lang-pl, + howpublished = "broszura z konferencji cz{\l}onk{\'o}w GUSTu", + howpublished-l = lang-pl, + address = "Bachotek", + address-l = lang-pl, + year = "1993", + note = "In Polish.", + acknowledgement = ack-md, + bibdate = "Thu Jun 23 18:23:18 1994", +} + +@InProceedings{Canzii:TEX85-15, + crossref = "Lucarella:TSD85", + author = "G. Canzii and G. {Degli Antoni} and S. Mussi and G. + Rossi", + title = "{SDDS}: {Scientific} {Document} {Delivery} {System}", + booktitle = proc-TEX85, + year = "1985", + editor = "Dario Lucarella", + pages = "15--25", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:47:11 1994", +} + +@Article{Casti:NAMS-38-2-105, + author = "John L. Casti", + title = "{V\TeX} Typesetting Package", + journal = j-NAMS, + year = "1991", + volume = "38", + number = "2", + pages = "105--109", + month = feb, +} + +@Article{Casti:NAMS-40-5-464, + author = "John L. Casti", + title = "Bitmap-free {\TeX}", + journal = j-NAMS, + year = "1993", + volume = "40", + number = "5", + pages = "464--468", + month = may # "/" # jun, + note = "A review of {Y\&Y}'s {DVIWindo} and {DVIPSONE}, and + comments on outline fonts for {\TeX}.", + bibdate = "Mon May 10 12:29:15 1993", +} + +@InProceedings{Cerofolini:TEX85-191, + crossref = "Lucarella:TSD85", + author = "Luigi Cerofolini", + title = "A {Low} {Cost} {Laser} {Beam} {Printer} {Controller}", + pages = "191--195", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:56:41 1994", +} + +@Book{CGP87, + author = "Anonymous", + title = "Chicago Guide to Preparing Electronic Manuscripts (For + Authors and Publishers)", + publisher = pub-UCP, + address = pub-UCP:adr, + year = "1987", + ISBN = "0-226-10392-7 (hardcover), 0-226-10393-5 (paperback)", + LCCN = "Z286.E43 U54 1987", + pages = "xi + 143", + note = "Short bibliography, examples, appendices, index", + annote = "Describes techniques for electronic submission of + manuscripts, rather than camera-ready copy. Discusses + publication process from acquisition through + typesetting, from perspective of author and + publisher.", + acknowledgement = ack-jpl, + bibdate = "Fri Jul 22 11:10:32 1994", +} + +@Article{Chen:SPE-19-9-897, + author = "Pehong Chen and Michael A. Harrison", + title = "Index Preparation and Processing", + journal = j-SPE, + year = "1988", + volume = "19", + number = "9", + pages = "897--915", + month = sep, + note = "The {\LaTeX} text of this paper is included in the + {\tt makeindex} software distribution.", +} + +@TechReport{Chen:UCB-TR-87-347, + author = "Pehong Chen and Michael A. Harrison", + title = "Automating Index Preparation", + institution = "Computer Science Division, University of California", + year = "1987", + type = "Technical Report", + number = "87/347", + address = "Berkeley, CA, USA", + month = mar, + note = "This is an expanded version of + \cite{Chen:SPE-19-9-897}.", +} + +@TechReport{Cheswick:ATTCSTR-145, + author = "Bill Cheswick", + title = "A Permuted Index for {\TeX} and {\LaTeX}", + institution = "AT\&T Bell Laboratories", + type = "Computing Science Technical Report", + number = "145", + address = "Murray Hill, NJ, USA", + month = feb, + year = "1990", + note = "Also published by TUG as {\TeX}niques No.~14.", + bibdate = "Tue Mar 1 12:47:28 1994", +} + +@Book{Chicago:CMS82, + key = "Chicago", + author = "Anonymous", + title = "The Chicago Manual of Style", + subtitle = "Rules for Authors, Printers and Publishers", + publisher = pub-UCP, + address = pub-UCP:adr, + ISBN = "0-226-10390-0", + LCCN = "Z253 .U69 1982", + year = "1982", + edition = "13th", + history = "First edition, 1906, 12th edition 1969", + pages = "ix + 737", + abstract = "For over seventy-five years the University of Chicago + Press `Manual of Style' has been the standard reference + tool for authors, editors, copywriters, and + proofreaders. Updated many times since 1906, it now + goes into its thirteenth edition---the first to + introduce a change in title. Bowing to what has become + nearly universal usage, we now call the `Manual' what + everybody else calls it, `The Chicago Manual of + Style'---or, for short, `The Chicago Manual'.\par Two + pervasive features characterize the present edition: it + reflects the impact of the new technology on the entire + editing and publishing process, and it spells out, in + greater detail and with many more examples, the + procedures with which it deals. It is, in short, much + more a ``how-to'' book for authors and editors than was + its predecessor. In chapter 2, on manuscript + preparation and copyediting, for example, new sections + have been added on how to mark a manuscript and how to + mark type specifications on a script. Chapter 12 + (``Tables''), completely rewritten, begins with advice + on how to make a table from raw data. Chapters 15 + through 17, on documentation, have been reorganized and + greatly expanded, offering many more alternative + methods of citation and a wealth of examples. In + chapter 18 (``Indexes''), clear step-by-step procedures + for the mechanics of index making are set forth. The + terminology and methodology of technological advances + (in word processing, computerized electronic + typesetting, and the like) are reflected most + prominently in chapter 20, ``Composition, Printing, and + Binding'' (new to this edition), and in the Glossary. + Other notable features of the present edition are + chapter 4 (``Rights and Permissions''), rewritten in + light of the new copyright law, and chapter 9 + (``Foreign Languages''), which includes a new table of + dicritics, a pinyin (Chinese) conversion chart and data + on several more languages.\par Throughout, `The Chicago + Manual' aims to give clear and straightforward + guidelines for preparing and editing copy---with the + emphasis on the sensible, the practical, and the + economical. As did its predecessors, the thirteenth + edition of the `Manual' states the style preferences of + the University of Chicago Press and reflects the + current practices and requirements of the great + majority of American publishers.", + inprint = "yes", + price = "UK\pounds30", + glossary = "yes", + printermarks = "yes", + bibliography = "yes", + index = "yes", + annote = "The standard American work on typesetting style etc. + (CHe)", + keywords = "printing, practical style manuals, authorship + handbooks, authorship manuals", + acknowledgement = ack-fm # " and " # ack-jpl, + bibdate = "Fri Jul 22 08:53:35 1994", +} + +@Article{Church:NAMS-39-8-842, + author = "P. T. Church", + title = "Using Workshops to Teach {\TeX}", + journal = j-NAMS, + year = "1992", + volume = "39", + number = "8", + pages = "842", + month = oct, + note = "{\AmSTeX} input for two workshop handouts may be + obtained by anonymous ftp from {\tt syr.edu} in the + directory {\tt /math/papers}.", + acknowledgement = ack-bnb, +} + +@Book{Clark:PTP92, + author = "Malcolm Clark", + title = "A Plain {\TeX} Primer", + publisher = pub-OUP, + address = pub-OUP:adr, + year = "1992", + ISBN = "0-19-853784-0 (hardback), 0-19-853724-7 (softback)", + LCCN = "Z253.4.T47 C46 1992", + pages = "481", + bibdate = "Tue Dec 14 23:36:18 1993", + acknowledgement = ack-mc, +} + +@Periodical{Clark:texline, + key = "TEXLINE", + editor = "Malcolm Clark", + title = j-TEXLINE, + year = "1987" # "\unskip--", + note = "This is an informal newsletter of the {\TeX{}} + community.", + ISSN = "0961-3978", +} + +@Misc{comp.text.tex, + key = "comp.text.tex", + title = "comp.text.tex", + year = "1989" # "\unskip--", + note = "This is an unmoderated Usenet discussion list about + {\TeX{}}.", +} + +@Article{Cornell:MI-8-2-64, + author = "Gary Cornell", + title = "Chiwriter: Horstman Software Group", + journal = j-MATHINTEL, + year = "1986", + volume = "8", + number = "2", + pages = "64--65", + acknowledgement = ack-ps, + bibdate = "Fri Mar 12 09:41:19 1993", +} + +@Book{Craig:DT71, + author = "James Craig", + title = "Designing with Type", + publisher = pub-WGP, + address = pub-WGP:adr, + year = "1971", + ISBN = "0-8230-1320-0", + LCCN = "70-159564", + pages = "175", + comments = "Spiralbound. Seventh printing, 1978.", + libnote = "Not yet in my library.", + acknowledgement = ack-nhfb, + bibdate = "Wed Jul 6 13:57:38 1994", +} + +@Manual{CT89, + title = "Code Typographique\emdash Choix de r{\`e}gles {\`a} + l'usage des auteurs et professionels du livre", + organization = pub-FCGCC, + address = pub-FCGCC:adr, + year = "1989", + edition = "Seizi{\`e}me", + note = "This book is a compendium of rules for French + typography, and for the typesetting of several foreign + languages in French texts. It includes tables of + diacritics for most European languages, and hyphenation + rules for English, German, Greek, Italian, Latin, + Portuguese, and Spanish.", + bibdate = "Tue Mar 1 11:59:23 1994", +} + +@Book{Dair:DT67, + author = "Carl Dair", + title = "Design with Type", + publisher = pub-UTP, + address = pub-UTP:adr, + year = "1967", + history = "Paperback reprint 1985", + annote = "A good survey of traditional typography with many + useful rules of thumb. (RRu)", + acknowledgement = ack-fm, + ISBN = "0-8020-1426-7 (hardcover), 0-8020-6519-8 (paperback)", + LCCN = "Z246 D35 1967", + pages = "vi + 162", + bibdate = "Fri Jul 22 08:54:08 1994", +} + +@Misc{DANTE:tex-komodie, + key = "DANTE", + title = "Die {\TeX{}}nische {Kom{\"o}die}", + year = "1989" # "\unskip--", + note = "Journal of DANTE (Deutschsprachige Anwendervereinigung + {\TeX{}} e.V.); Group of German-speaking {\TeX{} + Users}.", + bibdate = "Tue Mar 1 11:59:14 1994", +} + +@Article{Darling:NAMS-40-2-150, + author = "R. W. R. Darling", + title = "FrameMaker 3.0", + journal = j-NAMS, + year = "1993", + volume = "40", + number = "2", + pages = "150--152", + month = feb, + acknowledgement = ack-ps, + bibdate = "Tue Dec 14 10:46:51 1993", +} + +@Article{Deach:SEYBOLD-6-7-21, + author = "Stephen Deach", + title = "Outline font hints and rasterization: {A} technology + primer", + journal = j-SEYBOLD, + year = "1992", + volume = "6", + number = "7", + pages = "21--31", + month = mar # " 9", + note = "This paper is followed by a dissent from Adobe (Terry + O'Donnell), and a response from the author (p. 32). A + sidebar (historical note, p. 25) contains a short + description of {\MF} and cites {\MF} as a forerunner of + the hinting mechanism used in TrueType.", + acknowledgement = ack-bnb, + bibdate = "Tue Mar 1 11:59:50 1994", +} + +@TechReport{DeMillo:SERC-TR-92-P, + author = "Richard A. DeMillo and Aditya P. Mathur", + title = "On the Use of Software Artifacts to Evaluate the + Effectiveness of Mutation Analysis for Detecting Errors + in Production Software", + institution = "Software Engineering Research Center", + year = "1991", + type = "Technical Report", + number = "SERC-TR-92-P", + address = "Purdue University, W. Lafayette, IN 47907, USA", + bibdate = "Tue Mar 1 12:48:47 1994", +} + +@TechReport{Desarmenien:STAN-CS-84-1013, + title = "How to run {\TeX{}} in {French}", + author = "Jacques D{\'e}sarm{\'e}nien", + institution = inst-STANFORD, + number = "STAN-CS-84-1013", + month = aug, + year = "1984", + bibdate = "Tue Mar 1 12:48:56 1994", +} + +@InCollection{Desarmenien:SU-84, + author = "Jacques D{\'e}sarm{\'e}nien", + title = "La division par ordinateur des mots fran\c cais avec + le logiciel {\TeX}", + booktitle = "How to run {\TeX} in {French}", + publisher = inst-STANFORD, + pages = "19--42", + address = inst-STANFORD:adr, + year = "1984", + acknowledgement = ack-hk, + bibdate = "Sat Mar 12 18:15:30 1994", +} + +@InProceedings{Desarmenien:TEX85-41, + crossref = "Lucarella:TSD85", + author = "Jacques D{\'e}sarm{\'e}nien", + title = "The {Use} of {\TeX} in {French}: {Hyphenation} and + {Typography}", + pages = "41--59", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:56:44 1994", +} + +@Book{Diller:LLL93, + author = "Antoni Diller", + title = "{\LaTeX} Line by Line: Tips and Techniques for + Document Processing", + publisher = pub-W, + address = pub-W:adr, + year = "1993", + series = "Wiley Professional Computing", + pages = "xiii + 291", + price = "US\$29.95", + ISBN = "0-471-93471-2 (softcover)", + LCCN = "Z253.4.L38 D55 1993", + note = "Optionally accompanied by disk with examples, ISBN + 0-471-93797-5.", + acknowledgement = ack-bnb, +} + +@Article{Doob:NAMS-36-9-1203, + author = "Michael Doob", + title = "{\TeX} and Typesetting\emdash An Author's View", + journal = j-NAMS, + year = "1989", + volume = "36", + number = "9", + pages = "1203--1204", + month = nov, + bibdate = "Tue Mar 1 11:34:03 1994", +} + +@Article{Doob:NAMS-37-3-270, + author = "Michael Doob", + title = "{\TeX} and the Single {CPU}", + journal = j-NAMS, + year = "1990", + volume = "37", + number = "3", + pages = "270--273", + month = mar, +} + +@Book{Doob:TS193, + author = "Michael Doob", + title = "{\TeX}: Starting from 1", + publisher = pub-SV, + year = "1993", + ISBN = "0-387-56441-1", + LCCN = "Z253.4.T47 D66 1993", + address = pub-SV:adr, + pages = "114", + price = "US\$25.00", + acknowledgement = ack-nhfb, + bibdate = "Thu Jul 7 07:48:20 1994", +} + +@Book{Dreyfus:AFY89, + editor = "John Dreyfus and Knut Erichson", + title = "{ABC-XYZapf}: Fifty Years in Alphabet Design: + Professional and personal contributions selected for + Hermann Zapf", + publisher = pub-WWS, + address = pub-WWS:adr, + year = "1989", + ISBN = "3-922715-35-4", + LCCN = "Z250.A2 Z358 1989", + pages = "251", + bibdate = "Sun Jul 10 01:13:44 1994", +} + +@Article{Duan:EPODD-2-1-47, + author = "G. Duan and R. A. Morris", + title = "The Importance of Phase in the Spectra of Digital + Type", + journal = j-EPODD, + year = "1989", + volume = "2", + number = "1", + pages = "47--60", + month = apr, +} + +@Book{Dyl:KST94, + author = "Dariusz Dyl", + author-l = lang-pl, + title = "Komputerowy sk{\l}ad tekstu w systemie {\LaTeX}. + Przewodnik po komendach i {\'s}rodowiskach wraz z + przyk{\l}adami.", + title-l = lang-pl, + publisher = pub-MARSZALEK, + publisher-l = lang-pl, + year = "1994", + address = pub-MARSZALEK:adr, + address-l = lang-pl, + edition = "1.", + note = "sk{\l}adano w systemie {\LaTeX} (styl book11pt) przy + u{\.z}yciu programu Vector{\TeX} ver. 2.24", + note-l = lang-pl, + note-1 = "In Polish.", + acknowledgement = ack-md, + bibdate = "Thu Jun 23 18:23:22 1994", +} + +@InProceedings{Eickel:LLS89, + crossref = "Nadrchal:ESS89", + author = "J{\"u}rgen Eickel", + title = "Logical and layout structures of documents", + pages = "201--208", + note = "Invited paper.", + acknowledgement = ack-rw, + bibdate = "Tue Mar 1 12:49:13 1994", +} + +@Book{Eijkhout:TTT92, + author = "Victor Eijkhout", + title = "{\TeX} by Topic, {A} {\TeX}nician's Reference", + publisher = pub-AW, + address = pub-AW:adr, + year = "1992", + ISBN = "0-201-56882-9", + LCCN = "Z253.4.T47 E38 1992", + pages = "vii + 307", + bibdate = "Tue Dec 14 22:47:52 1993", +} + +@Article{Eijkhout:TWIOscoop-8-2-44, + author = "Victor Eijkhout and Nico Poppelier", + title = "Wat is {\TeX}", + journal = j-TWIO, + year = "1990", + volume = "8", + number = "2", + pages = "44--48", + notes = "In Dutch.", +} + +@Unpublished{English:MF-design, + title = "Using {\MF} for Original Font Design", + author = "Paul M. English", + month = aug, + year = "1987", + institution = "University of Massachusetts at Boston", +} + +@Misc{EPODD, + key = "EPODD", + title = j-EPODD, + howpublished = pub-W, + year = "1988" # "\unskip--", + note = "This journal accepts papers in \TeX{} form.", + ISSN = "0894-3982", + acknowledgement = ack-nhfb, +} + +@Article{Fateman:SIGSAM-21-4-1, + author = "Richard J. Fateman", + title = "{\TeX} Output from {MACSYMA}-like systems", + journal = j-SIGSAM, + year = "1987", + volume = "21", + number = "4", + pages = "1--5", + month = nov, +} + +@Book{Felici:DPS87, + author = "James Felici and Ted Nace", + title = "Desktop Publishing Skills", + subtitle = "A primer for Typesetting with Computers and Laser + Printers", + publisher = pub-AW, + address = pub-AW:adr, + year = "1987", + month = aug, + pages = "vii + 180", + history = "Reprint with corrections", + abstract = "Until now, books on desktop publishing have focused on + available hardware and software and have neglected the + more lasting skills needed to use these tools + effectively. This book has been written in response to + this need. It provides, in one place, a coherent and + accessible introduction to the principles, processes, + and techniques of publishing that must be understood + before your document production with computers and + laser printers can realize its full potential. \par + Desktop Publishing Skills introduces publishing basics, + such as typesetting, design, and page make-up. It is + independent of any specific computer or laser printer, + making it a more generic and permanent resource for + study or reference. What's more, since the entire book + was produced by the authors using the technologies and + methods described in the book, you will be able to pick + up additional ideas on the effective use of desktop + publishing by just looking at the book itself.", + inprint = "yes", + price = "UK\pounds20", + glossary = "yes", + printermarks = "no", + bibliography = "yes", + index = "yes", + ISBN = "0-201-11537-9", + LCCN = "Z286.D47 F44 1987", + annote = "The book is a good primer for people who wish to get + involved with `inhouse' publishing. While it addresses + people interested in Desktop Publishing, the focus is + on typesetting quality. Typesetting fundamentals are + explained and it is discussed why they are necessary. + This is done from the point of view of the professional + looking at the desktop publishing world.\par + + A well written book, worth reading for laymans who are + interested in document processing.\par + + \TeX{} is one of the few mentioned typesetting programs + but although the quality of its output is acknowledged + the authors seem to be unaware of the underlying + algorithmic concepts (e.g., paragraph builder) that are + superior to the concepts they describe as the + `standard'. (FMi)\par + + From the \TeX{}line review: I have no hesitation in + recommending this book to anyone with any interest in + getting more out of computerised typesetting. (CHe)", + review = j-TEXLINE # " number 7, February 1988", + keywords = "electronic publishing, computerized typesetting, + printing laser use in, self-publishing", + acknowledgement = ack-fm, + bibdate = "Fri Jul 22 08:55:50 1994", +} + +@Manual{Foata:LTI-84, + author = "Dominique Foata and Jean-Jacques Pansiot and Yves + Roy", + title = "{STRATEC\emdash}un logiciel traitement de textes + math\'ematiques en amont de {\TeX} (ver.0.93)", + address = "Laboratoire de Typographie Informatique, Universit\'e + Louis Pasteur, Strasbourg, France", + year = "1984", +} + +@InProceedings{Foata:TEX85-105, + crossref = "Lucarella:TSD85", + author = "Dominique Foata and Jean-Jacques Pansiot and Yves + Roy", + title = "{STRATEC} and a {Rationalized} {Keyboard} for + {Inputting} {\TeX}", + pages = "105--116", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:49:34 1994", +} + +@TechReport{Fuchs:STAN-CS-82-901, + author = "David R. Fuchs and Donald E. Knuth", + title = "Optimal {Font} {Caching}", + institution = inst-STANFORD, + year = "1982", + number = "STAN-CS-82-901", + bibdate = "Tue Mar 1 12:49:38 1994", +} + +@Article{Fujita:COMPCHEM-18-2-109, + author = "Shinsaku Fujita", + institution = "Ashigara Research Labs Fuji Photo Film Company", + title = "Typesetting Structural Formulae with the Text + Formatter {\TeX}/{\LaTeX}", + year = "1994", + journal = j-COMPCHEM, + volume = "18", + number = "2", + pages = "109--116", + acknowledgement = ack-mb, +} + +@Article{Furuta:COMP-SURV-14-3-417, + author = "Richard Furuta and Jeffrey Scofield and Alan Shaw", + title = "Document formatting systems: survey, concepts, and + issues", + journal = j-COMP-SURVEYS, + year = "1982", + volume = "14", + number = "3", + pages = "417--472", + month = sep, + acknowledgement = ack-nhfb, + bibdate = "Thu Jul 21 19:37:03 1994", +} + +@InBook{Furuta:DFS82, + author = "Richard Furuta and Jeffrey Scofield and Alan Shaw", + title = "Document formatting systems: survey, concepts, and + issues", + chapter = "??", + publisher = pub-ESPNH, + year = "1982", + ISBN = "??", + LCCN = "??", + editor = "J. Nievergelt and G. Coray and J.-D. Nicoud and A. C. + Shaw", + address = pub-ESPNH:adr, + pages = "133--220", + acknowledgement = ack-nhfb, + bibdate = "Thu Jul 21 19:40:21 1994", +} + +@Book{Garvey:NEM82, + author = "Daniel E. Garvey and William L. Rivers", + title = "Newswriting for the Electronic Media: Principles, + Examples, Applications", + publisher = pub-WPC, + address = pub-WPC:adr, + year = "1982", + note = "Exercises, appendices, index, pp. 250.", + annote = "College level text.", + acknowledgement = ack-jpl, + ISBN = "0-534-01069-5", + LCCN = "PN4784.B75 .G3", + pages = "xiii + 250", + bibdate = "Fri Jul 22 08:56:11 1994", +} + +@Book{Gehani:DFT87, + author = "Narain Gehani", + title = "Document Formatting and Typesetting on the {UNIX} + System", + publisher = pub-SILICON, + year = "1987", + address = pub-SILICON:adr, + edition = "Second", + ISBN = "0-13-938325-5", + LCCN = "QA76.73.A35 G437 1987", + pages = "xix + 310", + bibdate = "Tue Dec 14 23:36:50 1993", +} + +@TechReport{Ghosh:STAN-CS-83-965, + author = "Pijush K. Ghosh", + title = "An {Approach} to {Type} {Design} and {Text} + {Composition} in {Indian} {Scripts} (with a preface by + Donald {E}. Knuth)", + institution = inst-STANFORD, + year = "1983", + number = "STAN-CS-83-965", + bibdate = "Tue Mar 1 12:49:50 1994", +} + +@TechReport{Ghosh:STAN-CS-83-966, + author = "Pijush K. Ghosh and Charles A. Bigelow", + title = "A {Formal} {Approach} to {Lettershape} {Description} + for {Type} {Design}", + institution = inst-STANFORD, + year = "1983", + number = "STAN-CS-83-966", + bibdate = "Tue Mar 1 12:49:55 1994", +} + +@Article{Gilchrist:NAMS-36-9-1199, + author = "Martin Gilchrist", + title = "{\TeX} and Typesetting\emdash {A} Publisher's View", + journal = j-NAMS, + year = "1989", + volume = "36", + number = "9", + pages = "1199--1201", + month = nov, + bibdate = "Tue Mar 1 11:34:21 1994", +} + +@Article{Gonczarowski:EPODD-2-3-157, + author = "Jakob Gonczarowski and On G. Paradise", + title = "{InScript}\emdash{}a {C}-like preprocessor for + {PostScript}", + journal = j-EPODD, + year = "1989", + volume = "2", + number = "3", + pages = "157--167", + month = oct, +} + +@Book{Goosens:LC94, + author = "Michel Goossens and Frank Mittelbach and Alexander + Samarin", + title = "The {\LaTeX} Companion", + publisher = pub-AW, + year = "1994", + ISBN = "0-201-54199-8", + LCCN = "Z253.4.L38 G66 1994", + pages = "xxi + 528", + address = pub-AW:adr, + acknowledgement = ack-nhfb, + price = "US\$34.25", + bibdate = "Fri Jul 22 11:14:12 1994", +} + +@Article{Gourlay:SPE-29-5-388, + author = "John S. Gourlay", + title = "A language for music printing", + journal = j-SPE, + year = "1986", + volume = "29", + number = "5", + pages = "388--401", + month = may, + acknowledgement = ack-nhfb, + bibdate = "Thu Jul 21 22:21:39 1994", +} + +@Book{Gratzer:MT92, + author = "George Gr{\"a}tzer", + title = "Math into {\TeX}: {A} Simplified Introduction Using + {\AmSLaTeX}", + publisher = pub-SV # " and " # pub-BH, + year = "1992 (or 1993??)", + ISBN = "0-8176-3637-4, 3-7643-3637-4", + LCCN = "Z253.4.A65G7 1993", + address = pub-SV:adr # " and " # pub-BH:adr, + price = "US\$34, SFr 52, DM 57", + pages = "187 (or xxix + 294)??", + bibdate = "Fri Jul 22 08:57:19 1994", +} + +@Article{Gratzer:NAMS-40-2-148, + author = "George Gr{\"a}tzer", + title = "{\AmSLaTeX}", + journal = j-NAMS, + year = "1993", + volume = "40", + number = "2", + pages = "148--150", + month = feb, + acknowledgement = ack-ps, + bibdate = "Tue Dec 14 10:43:48 1993", +} + +@Article{Gratzer:NAMS-40-7-834, + author = "George Gr{\"a}tzer", + title = "Advances in {\TeX} Implementations. {I}. PostScript + Fonts", + journal = j-NAMS, + year = "1993", + volume = "40", + number = "7", + pages = "834--838", + month = sep, + acknowledgement = ack-ps, + bibdate = "Tue Dec 14 10:45:27 1993", +} + +@Article{Griffee:IBMSYSJ-27-2-206, + author = "Alan W. Griffee and Cherrelyn A. Casey", + title = "An introduction to typographic fonts and digital font + resources", + journal = j-IBM-SYS-J, + year = "1988", + volume = "27", + number = "2", + pages = "206", + acknowledgement = ack-nhfb, + bibdate = "Sun Mar 27 18:29:22 1994", +} + +@InProceedings{Guntermann:TEX85-197, + crossref = "Lucarella:TSD85", + author = "Klaus Guntermann", + title = "{GENDRIV}---a driver for low cost devices using + built-in fonts", + pages = "197--204", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:50:17 1994", +} + +@TechReport{Guoan:STAN-CS-82-914, + author = "Gu Guoan and John Hobby", + title = "Using {String} {Matching} to {Compress} {Chinese} + {Characters}", + institution = inst-STAN-CS, + year = "1982", + type = rep, + number = "STAN-CS-82-914", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:50:20 1994", +} + +@Book{Gurari:TLD94, + author = "Eitan M. Gurari", + title = "{\TeX} and {\LaTeX}: Drawing and Literate + Programming", + publisher = pub-MH, + ISBN = "0-07-025208-4 (book), 0-07-911616-7 (book + + diskette)", + LCCN = "Z253.4.T47G87 1994", + year = "1994", + pages = "xiv + 310", + price = "US\$34.95", + address = pub-MH:adr, + bibdate = "Tue Mar 1 12:50:41 1994", + acknowledgement = ack-nhfb, +} + +@Book{Gurari:WT94, + author = "Eitan M. Gurari", + title = "Writing with {\TeX}", + publisher = pub-MH, + year = "1994", + ISBN = "0-07-025207-6", + LCCN = "Z253.4.T47 G87 1994", + address = pub-MH:adr, + pages = "xiv + 249", + price = "US\$29.95", + bibdate = "Wed Sep 29 17:55:14 1993", + acknowledgement = ack-nhfb, +} + +@Misc{GUTenberg:cahiers, + key = "CahiersGUTenberg", + title = "Cahiers {GUTenberg}", + year = "1988" # "\unskip--", + note = "Journal of Groupe des Utilisateurs de {\TeX{}} + Francophones (group of French-speaking {\TeX{}} + Users).", +} + +@Book{Hahn:LE91, + author = "Jane Hahn", + title = "{\LaTeX{}} for Everyone\emdash {A} Reference Guide and + Tutorial for Typesetting Documents Using a Computer", + publisher = pub-PTI, + year = "1991", + address = pub-PTI:adr, + ISBN = "0-9631044-0-3", + LCCN = "Z253.4.L38 H34 1991", + pages = "xi + 346", + price = "US\$19.95", + acknowledgement = ack-nhfb, + bibdate = "Fri Jan 21 15:24:47 1994", +} + +@Book{Hahn:LE93, + author = "Jane Hahn", + title = "{\LaTeX{}} for Everyone\emdash {A} Reference Guide and + Tutorial for Typesetting Documents Using a Computer", + publisher = pub-PH, + year = "1993", + edition = "Second", + address = pub-PH:adr, + ISBN = "0-13-605908-2", + LCCN = "Z253.4.L38 H35 1993", + pages = "xi + 346", + price = "US\$19.95", + acknowledgement = ack-nhfb, + bibdate = "Fri Jan 21 15:24:41 1994", +} + +@Book{Harrower:NDH91, + author = "Tim Harrower", + title = "The Newspaper Designer's Handbook", + publisher = pub-WCB, + address = pub-WCB:adr, + year = "1991", + keywords = "layout, design, typography, newspaper", + acknowledgement = ack-fm, +} + +@Book{Hart:HRC91, + author = "Horace Hart", + title = "Hart's Rules; For Compositors and Readers at the + University Press, Oxford", + publisher = pub-OUP, + address = pub-OUP:adr, + edition = "39th", + year = "1991", + ISBN = "0-19-212983-X", + LCCN = "Z254 .H37 1983", + history = "Originally compiled by Horace Hart, MA Printer to the + University, 1883--1915. First edition, 1893. Fifteenth + edition (the first for general sale), 1904. + Thirty-eighth edition 1978. Thirty-ninth edition 1983, + reprinted 1989 with corrections.", + pages = "182", + abstract = "In printing and publishing houses Hart is a household + word. First printed in 1893, specifically for + Compositors and readers at the University Press, + Oxford, and first published (in its 15th edition) in + 1904, this little book of Rules has become + indispensable to all professionals, and widely useful + to others concerned with the business of putting words + into print --- which includes such matters as + alternative spellings, punctuation, capitalization, + italicization, abbreviations, and many other details.", + inprint = "yes", + price = "UK\pounds8", + annote = "This book and the Oxford Dictionary for Writers and + Editors together give the house style of OUP at its + best. (CHe)", + glossary = "no", + printermarks = "yes", + bibliography = "yes", + index = "yes", + keywords = "typesetting", + acknowledgement = ack-fm, +} + +@Article{Hayashi:SPE-17-1-17, + author = "T. Hayashi", + title = "Transporting {\TeX} into the {HITAC VOS3} + environment", + journal = j-SPE, + year = "1987", + volume = "17", + number = "1", + pages = "17--28", + month = jan, + bibdate = "Thu Jul 21 22:26:53 1994", +} + +@Book{Hayward:SA77, + author = "Stan Hayward", + title = "Scriptwriting for Animation", + publisher = pub-HHP, + address = pub-HHP:adr, + year = "1977", + pages = "160", + annote = "A practical guide.", + acknowledgement = ack-jpl, + ISBN = "0-8038-6741-7", +} + +@TechReport{Hegron:IRISA-244, + author = "G\'erard H\'egron", + title = "Algorithmes de g{\'e}n{\-\'e\-}ra{\-}tion de + caract\`eres", + institution = "IRISA", + address = "Rennes, France", + year = "1984", + type = "Publication interne", + number = "244", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:50:53 1994", +} + +@Book{Heinemann:XPS88, + editor = "Sue Heinemann and Virginia Croft", + title = "Xerox Publishing Standards: {A} Manual of Style and + Design", + publisher = pub-WGP, + address = pub-WGP:adr, + year = "1988", + ISBN = "0-8230-5964-2", + LCCN = "Z286.L68 X47 1988", + acknowledgement = ack-fm, + price = "US\$35.00", + bibdate = "Fri Jul 22 08:59:00 1994", +} + +@TechReport{Hershey:ACT81, + author = "Allen V. Hershey", + title = "Advanced Computer Typography", + institution = "U.~S. Naval Postgraduate School", + year = "1981", + number = "NPS012-81-005", + address = "Monterey, CA 93940, USA", + month = dec, + bibdate = "Tue Mar 1 12:51:07 1994", +} + +@Article{Hershey:CGIP-1-373, + author = "Allen V. Hershey", + title = "A Computer System for Scientific Typography", + journal = j-CGIP, + year = "1972", + volume = "1", + pages = "373--385", +} + +@TechReport{Hershey:TN-K-27-70, + author = "Allen V. Hershey", + title = "Preparation of Reports with the {FORTRAN} Typographic + System", + institution = "U.~S. Naval Weapons Laboratory", + year = "1970", + number = "TN-K/27-70", + address = "Dahlgren, VA 22448, USA", + month = sep, + bibdate = "Tue Mar 1 12:51:11 1994", +} + +@TechReport{Hershey:TR-2339, + author = "Allen V. Hershey", + title = "{FORTRAN} {IV} Programming for Cartography and + Typography", + institution = "U.~S. Naval Weapons Laboratory", + year = "1969", + number = "TR-2339", + address = "Dahlgren, VA 22448, USA", + month = sep, + bibdate = "Tue Mar 1 12:51:17 1994", +} + +@Book{Higham:HWM93, + author = "Nicholas J. Higham", + title = "Handbook of Writing for the Mathematical Sciences", + publisher = pub-SIAM, + year = "1993", + ISBN = "0-89871-314-5", + LCCN = "QA42.H54 1993", + price = "US\$21.50", + address = pub-SIAM:adr, + month = jun, + pages = "xii + 241", + note = "[From the publisher]: Having trouble with your latest + math paper? Giving a presentation that you just can't + pull together? Struggling with your thesis or trying to + get your first article published in a technical + journal? Handbook of Writing for the Mathematical + Sciences is the book for you! + + This handy volume provides information on virtually + every issue you will face when writing a technical + paper or talk, from choosing the right journal to + handling your references. You'll also get an overview + of the entire publication process--invaluable for + anyone hoping to publish in a technical journal. + + To write a truly impressive paper, you'll need to + understand the anatomy of a research paper and the + steps involved in revising a draft. This book offers + discussions of these fundamental topics, along with + illustrative and provocative examples. Also included + are chapters on standard English usage, using computers + for writing and research, and writing technical + material when English is a foreign language. + + This handbook provides much-needed advice on handling + the basic ingredients of a research paper, like + definitions, theorems, examples, and equations. In + addition, appendices provide essential reference + material, including summaries of \LaTeX{} symbols and + Emacs commands, addresses of mathematical societies, + and a list of papers that have won expository writing + prizes. + + This book is ideal for graduate students and teachers. + Among its special features: + + \begin{itemize} \item Detail and extensive use of + examples make it an excellent teaching tool + + \item Discusses \TeX{} and other software tools for + preparing publications + + \item Thorough treatment, with examples, of how to + write slides (transparencies) for a mathematical + talk. + + \item Comprehensive index and extensive bibliography + make it an excellent reference + + \item Readable for everyone in the field--from + undergraduates to seasoned professionals + \end{itemize} + + Contents \\ + Preface; \\ + Chapter 1: General Principles; \\ + Chapter 2: Writer's Tools and Recommended Reading; \\ + Chapter 3: Mathematical Writing; \\ + Chapter 4: English Usage; \\ + Chapter 5: When English is a Foreign Language; \\ + Chapter 6: Writing a Paper; \\ + Chapter 7: Revising a Draft; \\ + Chapter 8: Publishing a Paper; \\ + Chapter 9: Writing a Talk; \\ + Chapter 10: Computer Aids for Writing and Research; \\ + Appendix A: The Greek Alphabet; \\ + Appendix B: Summary of \TeX{} and \LaTeX{} Symbols; \\ + Appendix C: GNU Emacs--The Sixty+ Most Useful Commands; + \\ + Appendix D: Mathematical Organizations in the UK and + USA; \\ + Appendix E: Winners of Prizes for Expository Writing; + \\ + Appendix F: Glossary; \\ + Bibliography; \\ + Index.\\ + About the Author:\\ + Nicholas J. Higham is a Reader in Mathematics at the + University of Manchester, UK. He is the author of more + than 40 publications and is a member of the editorial + board of the SIAM Journal on Matrix Analysis and + Applications.", + bibdate = "Tue Mar 1 12:03:19 1994", + acknowledgement = ack-njh, +} + +@Book{HLRA:91, + key = "Harvard Law Review Association", + author = "Anonymous", + title = "The Bluebook", + subtitle = "A Uniform System of Citation", + publisher = pub-HLRA, + address = pub-HLRA:adr, + edition = "15th", + pages = "xvii + 343", + LCCN = "KF245 .U5 1991", + year = "1991", + history = "Compiled by the editors of the Columbia Law Review, + the Harward Law Review, the University of Pennsylvania + Law Review, and the Yale Law Journal", + inprint = "yes", + index = "yes", + keywords = "bibliographies, citation schemes, law", + acknowledgement = ack-fm, + bibdate = "Fri Jul 22 12:36:10 1994", +} + +@TechReport{Hobby:STAN-CS-83-974, + author = "John Hobby and Gu Guoan", + title = "A {Chinese} {Meta}-{Font}", + institution = inst-STAN-CS, + year = "1983", + type = rep, + number = "STAN-CS-83-974", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:51:34 1994", +} + +@Article{Hohti:SIGAPL-18-3-13, + author = "Aarno Hohti", + title = "Typesetting {APL} with {\TeX}", + journal = j-SIGAPL, + year = "1988", + volume = "18", + number = "3", + pages = "13--16", + month = mar, + acknowledgement = ack-nhfb, + bibdate = "Thu Jul 21 22:32:54 1994", +} + +@Book{Holzgang:PPR89, + author = "David A. Holzgang", + title = "PostScript Programmer's Reference Guide", + publisher = pub-SF, + address = pub-SF:adr, + year = "1989", + ISBN = "0-673-38574-4", + LCCN = "QA76.73.P67 H64 1989", + pages = "x + 486", + bibdate = "Wed Dec 15 09:15:12 1993", +} + +@Book{Holzgang:UPP87, + author = "David A. Holzgang", + title = "Understanding PostScript Programming", + publisher = pub-SYBEX, + address = pub-SYBEX:adr, + year = "1987", + ISBN = "0-89588-396-1", + LCCN = "QA76.73.P67 H65 1987", + pages = "xxxii + 459", + bibdate = "Wed Dec 15 09:15:51 1993", +} + +@TechReport{Huggins:STAN-CS-89-1251, + title = "Egyptian Hieroglyphs for Modern Printing Devices", + author = "K. Cleo R. Huggins", + year = "1988", + month = jun, + number = "STAN-CS-89-1251", + institution = inst-STANFORD, + bibdate = "Tue Mar 1 12:51:41 1994", +} + +@Book{Hurlburt:GMS78, + author = "Allen Hurlburt", + title = "The grid: {A} modular system for the design and + production of newspapers, magazines, and books", + publisher = pub-VNR, + address = pub-VNR:adr, + year = "1978", + annote = "Explains reasons for the use of grid systems in the + design of newspapers, magazines, and books. It contains + many examples, actual layouts and their underlying + grids. (FMi)\par A complete introduction to using grids + in newspaper, magazine, and book design. (RRu)", + keywords = "layout, design, typography, grids", + acknowledgement = ack-fm, + price = "US\$15.00", + ISBN = "0-442-23598-4", + LCCN = "Z246 .H82", + pages = "96", + bibdate = "Fri Jul 22 11:15:07 1994", +} + +@Book{IBM:CDG88, + key = "IBM", + author = "Anonymous", + title = "Composing Documents with the Generalized Markup + Language", + publisher = pub-IBM, + number = "S544-3421", + address = pub-IBM:adr, + year = "1988", + month = mar, + edition = "Second", + keywords = "GML, document preparation systems, DTD, SCRIPT + (Computer Program), DCF (Computer Program)", + acknowledgement = ack-fm, + bibdate = "Sat Mar 12 18:08:55 1994", +} + +@Book{Ibrus:VET93, + author = "Hans Ibrus", + title = "{V\"aike Eesti {\TeX}iraamat}", + publisher = pub-KOMPUT, + address = pub-KOMPUT:adr, + year = "1992", + pages = "144", + note = "In Estonian. Appendix A is a translation into Estonian + of \cite{Samuel:STAN-CS-83-985}.", + acknowledgement = ack-bnb, + bibdate = "Tue Mar 1 12:51:49 1994", +} + +@Manual{Ikarus:83, + key = "Ikarus", + title = "{IKARUS} for {Typefaces} in {Digital} {Form}", + address = "URW Unternehmensberatung Karow Rubow Weber GMBH, + Hamburg, Germany", + year = "1983", + acknowledgement = ack-hk, +} + +@InCollection{Incerpi:GFT86, + author = "Janet Incerpi and Francis Montagnac", + title = "{Using} the {DVI} {Library}", + booktitle = "Getting {Faster} {\TeX} {Output}.", + publisher = pub-INRIA, + year = "1986", + address = pub-INRIA:adr, + acknowledgement = ack-hk, +} + +@TechReport{Incerpi:INRIA-71, + author = "Janet Incerpi and Francis Montagnac", + title = "Getting {Faster} {\TeX} {Output}. {Using} the {DVI} + {Library}", + institution = pub-INRIA, + address = pub-INRIA:adr, + month = jul, + year = "1986", + type = "Rapports Techniques No.", + number = "71", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:52:02 1994", +} + +@Booklet{Jackowski:MZP93, + title = "Metafont: zastosowania praktyczne i niepraktyczne", + title-l = lang-pl, + author = "Bogus{\l}aw Jackowski", + author-l = lang-pl, + howpublished = "broszura z konferencji cz{\l}onk{\'o}w GUSTu", + howpublished-l = lang-pl, + address = "Bachotek", + address-l = lang-pl, + year = "1993", + note = "In Polish.", + acknowledgement = ack-md, + bibdate = "Thu Jun 23 18:19:41 1994", +} + +@Unpublished{Jackowski:WTP88, + author = "Bogus{\l}aw Jackowski and Tomasz Ho{\l}dys and Marek + Ry\'{cko}", + title = "With {\TeX} to the {Poles}: a few parochial remarks on + using {\TeX} by the non-{English}", + year = "1988", + note = "Anima Ltd, Gda\'{nsk}", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:52:14 1994", +} + +@Book{Japanese-texnicolor, + key = "JAPANESETEXNICOLOR", + author = "Anonymous", + title = "The Japanese {\TeX}{\-}ni{\-}color Book", + publisher = pub-ASCII, + year = "1990", + address = pub-ASCII:adr, + ISBN = "4-7561-0405-3", + note = "Japanese; contents include chapters on the history of + {\TeX{}} and of the Japanese {\TeX{}} extension, file + formats (fonts and {{\tt.dvi}}), and device drivers.", +} + +@Book{Johnstone:LC92, + author = "Adrian Johnstone", + title = "{\LaTeX}, Concisely", + publisher = pub-EH, + year = "1992", + ISBN = "0-13-524539-7", + LCCN = "Z253.4.L38 J64 1992", + price = "US\$30.00", + pages = "xviii + 170", + address = pub-EH:adr, + bibdate = "Wed Jul 6 14:01:03 1994", + acknowledgement = ack-nhfb, +} + +@Book{Karow:DFT87, + author = "Peter Karow", + title = "Digital Formats for Typefaces", + publisher = pub-URW, + address = pub-URW:adr, + year = "1987", + ISBN = "3-926515-01-5", + LCCN = "Z253.3 .K371 1987", + pages = "400", + bibdate = "Fri Jul 22 09:01:47 1994", +} + +@Book{Karow:DS92, + author = "Peter Karow", + title = "Digitale Schriften, Darstellung und Formate, + Geleitwort von Hermann Zapf (Digital Fonts, + Representation and Formats, Forward by Hermann Zapf)", + publisher = pub-SV # " and " # pub-URW, + address = pub-SV:adr # " and " # pub-URW:adr, + year = "1992", + pages = "xiii + 457, with 230 illustrations", + acknowledgement = ack-bnb # " and " # ack-ps, +} + +@Book{Karow:F94, + author = "Peter Karow", + title = "Fonttechnology", + publisher = pub-SV, + year = "1994", + ISBN = "0-387-57223-6", + address = pub-SV:adr, + pages = "450", + price = "US\$56.00", + acknowledgement = ack-nhfb, + bibdate = "Mon Dec 27 14:32:40 1993", +} + +@Book{Katzenbeisser:ET93, + author = "Stefan Katzenbeisser", + title = "Einf{\"u}hrung in {\TeX{}}", + publisher = pub-OLDENBOURG, + address = pub-OLDENBOURG:adr, + year = "1993", + pages = "108", + ISBN = "3-486-22682-7", + acknowledgement = ack-rz, + bibdate = "Tue Mar 1 11:30:20 1994", +} + +@InProceedings{Keller:TEX85-1, + crossref = "Lucarella:TSD85", + author = "Arthur M. Keller", + title = "Typesetting by {Authors}", + pages = "1--14", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:52:21 1994", +} + +@Article{Kernighan:COMPSYS-2-2-103, + author = "Brian W. Kernighan and Christopher J. Van Wyk", + title = "Page Makeup by Postprocessing Text Formatter Output", + journal = j-COMPSYS, + year = "1989", + volume = "2", + number = "2", + pages = "103--132", +} + +@Article{Knuth:BAMSN-1-337, + author = "Donald E. Knuth", + title = "Mathematical Typography", + journal = j-BAMSN, + volume = "1", + pages = "337--372", + month = mar, + year = "1979", + note = "Also published as a Stanford CS Report, + STAN-CS-78-648", + acknowledgement = ack-bnb, + bibdate = "Wed Mar 10 11:19:57 1993", +} + +@Article{Knuth:CJ-2-27-97, + author = "Donald E. Knuth", + title = "Literate Programming", + journal = j-CJ, + year = "1984", + number = "2", + volume = "27", + pages = "97--111", + month = may, +} + +@Book{Knuth:CSS93, + author = "Donald E. Knuth and Silvio Levy", + title = "The {CWEB} System of Structured Documentation, Version + 3.0", + publisher = pub-AW, + year = "1993", + ISBN = "0-201-57569-8", + LCCN = "QA76.9.D3 K6 1993", + address = pub-AW:adr, + pages = "226", + acknowledgement = ack-nhfb, + bibdate = "Thu May 12 08:36:22 1994", +} + +@Book{Knuth:ct-a, + author = "Donald E. Knuth", + title = "The {\TeX}book", + publisher = pub-AW, + address = pub-AW:adr, + year = "{\noopsort{1986a}}1986", + volume = "A", + series = "Computers and Typesetting", + ISBN = "0-201-13447-0", + LCCN = "Z253.4.T47 K58 1986", + pages = "ix + 483", + price = "US\$32.95", + bibdate = "Fri Jul 22 09:03:17 1994", +} + +@Book{Knuth:ct-b, + author = "Donald E. Knuth", + title = "{\TeX}: The Program", + publisher = pub-AW, + address = pub-AW:adr, + year = "{\noopsort{1986b}}1986", + volume = "B", + series = "Computers and Typesetting", + ISBN = "0-201-13437-3", + LCCN = "Z253.4.T47 K578 1986", + price = "US\$32.95", + pages = "xv + 594", + bibdate = "Fri Jul 22 09:03:46 1994", +} + +@Book{Knuth:ct-c, + author = "Donald E. Knuth", + title = "The {\METAFONT}book", + publisher = pub-AW, + address = pub-AW:adr, + year = "{\noopsort{1986c}}1986", + volume = "C", + series = "Computers and Typesetting", + pages = "xi + 361", + ISBN = "0-201-13445-4 (hardcover), 0-201-13444-6 (paperback)", + LCCN = "Z250.8.M46 K58 1986", + price = "US\$32.95 (hardcover), US\$16.95 (paperback)", + bibdate = "Fri Jul 22 09:06:26 1994", +} + +@Book{Knuth:ct-d, + author = "Donald E. Knuth", + title = "{\METAFONT}: The Program", + publisher = pub-AW, + address = pub-AW:adr, + year = "{\noopsort{1986d}}1986", + volume = "D", + series = "Computers and Typesetting", + ISBN = "0-201-13438-1", + LCCN = "Z250.8.M46 K578 1986", + price = "US\$32.95", + pages = "xv + 560", + bibdate = "Fri Jul 22 09:06:27 1994", +} + +@Book{Knuth:ct-e, + author = "Donald E. Knuth", + title = "Computer Modern Typefaces", + publisher = pub-AW, + address = pub-AW:adr, + year = "{\noopsort{1986e}}1986", + volume = "E", + series = "Computers and Typesetting", + ISBN = "0-201-13446-2", + LCCN = "Z250.8.M46 K574 1986", + pages = "xv + 588", + bibdate = "Fri Jul 22 09:06:29 1994", +} + +@InProceedings{Knuth:INRIA-119-85, + crossref = "Andre:INRIA85", + author = "Donald E. Knuth", + title = "Le concept de {Metafonte}", + pages = "119--132", + note = "Przedruk z ``Communication et langages'' no.55 (1983) + pp.40--53", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:52:49 1994", +} + +@Book{Knuth:LP92, + author = "Donald E. Knuth", + title = "Literate Programming", + publisher = pub-SUCSLI, + address = pub-SUCSLI:adr, + series = "CSLI Lecture Notes Number 27", + year = "1992", + ISBN = "0-937073-80-6 (paperback), 0-937073-81-4 (hardcover)", + LCCN = "QA76.6 .K644 1992", + pages = "xiii + 368", + price = "US\$24.95 (paperback), US\$59.95 (hardcover)", + acknowledgement = ack-nhfb, + bibdate = "Fri Jul 22 09:08:14 1994", +} + +@Article{Knuth:MI-2-3-114, + author = "Donald E. Knuth", + title = "The Letter {S}", + journal = j-MATHINTEL, + year = "1979, 1980", + volume = "2", + number = "3", + pages = "114--112", + note = "Also published as \cite{Knuth:STAN-CS-80-795}.", + bibdate = "Fri Mar 12 09:49:24 1993", +} + +@Manual{Knuth:MW89, + author = "Donald E. Knuth and Tracy Larrabee and Paul M. + Roberts", + title = "Mathematical Writing", + organization = "Mathematical Association of America Notes Number 14", + year = "1989", + ISBN = "0-88385-063-X", +} + +@Article{Knuth:SP-20-3-131, + author = "Donald E. Knuth and Hermann Zapf", + title = "{AMS} Euler\emdash {A} New Typeface for Mathematics", + journal = j-SCHOLAR, + year = "1989", + volume = "20", + number = "3", + pages = "131--157", + month = apr, +} + +@Article{Knuth:SPE-11-1119, + author = "Donald E. Knuth and Michael F. Plass", + title = "Breaking {Paragraphs} into {Lines}", + journal = j-SPE, + volume = "11", + number = "11", + month = nov, + pages = "1119--1184", + year = "1981", + acknowledgement = ack-hk, + bibdate = "Thu Jul 21 19:31:31 1994", +} + +@Article{Knuth:SPE-19-7-607, + author = "Donald E. Knuth", + title = "The Errors of {\TeX}", + journal = j-SPE, + year = "1989", + volume = "19", + number = "7", + pages = "607--681", + month = jul, + note = "This is an updated version of + \cite{Knuth:STAN-CS-88-1223}.", +} + +@TechReport{Knuth:STAN-CS-78-648, + title = "Mathematical Typography", + author = "Donald E. Knuth", + institution = inst-STANFORD, + number = "STAN-CS-78-648", + month = feb, + year = "1978", + note = "Also published as \cite{Knuth:BAMSN-1-337}.", + bibdate = "Tue Mar 1 12:53:34 1994", +} + +@TechReport{Knuth:STAN-CS-78-675, + author = "Donald E. Knuth", + title = "{TAU EPSILON CHI}. {A} {System} for {Technical} + {Text}", + institution = inst-STAN-CS, + year = "1978", + type = rep, + number = "STAN-CS-78-675", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:53:38 1994", +} + +@TechReport{Knuth:STAN-CS-79-762, + author = "Donald E. Knuth", + title = "Metafont---{A} {System} for {Alphabet} {Design}", + institution = inst-STAN-CS, + year = "1979", + type = rep, + number = "STAN-CS-79-762", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:53:41 1994", +} + +@TechReport{Knuth:STAN-CS-80-780, + author = "Donald E. Knuth", + title = "The {Computer} {Modern} {Family} of {Typefaces}", + institution = inst-STAN-CS, + year = "1980", + type = rep, + number = "STAN-CS-80-780", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:53:42 1994", +} + +@TechReport{Knuth:STAN-CS-80-795, + author = "Donald E. Knuth", + title = "The Letter {S}", + institution = inst-STANFORD, + number = "STAN-CS-80-795", + month = apr, + year = "1980", + note = "Also published as \cite{Knuth:MI-2-3-114}.", + bibdate = "Tue Mar 1 12:53:46 1994", +} + +@TechReport{Knuth:STAN-CS-81-886, + title = "The Concept of a Meta-Font", + author = "Donald E. Knuth", + institution = inst-STANFORD, + number = "STAN-CS-81-886", + month = oct, + year = "1981", + bibdate = "Tue Mar 1 12:53:48 1994", +} + +@TechReport{Knuth:STAN-CS-83-978, + author = "Donald E. Knuth", + title = "Lessons {Learned} from {\METAFONT}", + institution = inst-STAN-CS, + year = "1983", + type = rep, + number = "STAN-CS-83-978", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:53:50 1994", +} + +@TechReport{Knuth:STAN-CS-83-980, + author = "Donald E. Knuth", + title = "The {WEB} {System} of {Structured} + {Documentation}---ver.2.3", + institution = inst-STAN-CS, + year = "1983", + type = rep, + number = "STAN-CS-83-980", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:53:52 1994", +} + +@TechReport{Knuth:STAN-CS-83-981, + author = "Donald E. Knuth", + title = "Literate Programming", + institution = inst-STAN-CS, + year = "1983", + type = rep, + number = "STAN-CS-83-981", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:53:54 1994", +} + +@TechReport{Knuth:STAN-CS-84-1027, + author = "Donald E. Knuth", + title = "A torture test for {\TeX}", + institution = inst-STAN-CS, + year = "1984", + type = rep, + number = "STAN-CS-84-1027", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:53:56 1994", +} + +@TechReport{Knuth:STAN-CS-86-1095, + author = "Donald E. Knuth", + title = "A {Torture} {Test} for {\METAFONT}", + institution = inst-STAN-CS, + year = "1986", + type = rep, + number = "STAN-CS-86-1095", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:53:59 1994", +} + +@TechReport{Knuth:STAN-CS-86-1097, + author = "Donald E. Knuth", + title = "{\TeX}ware", + institution = inst-STAN-CS, + month = apr, + year = "1986", + type = rep, + number = "STAN-CS-86-1097", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:54:01 1994", +} + +@TechReport{Knuth:STAN-CS-88-1223, + author = "Donald E. Knuth", + title = "The Errors of {\TeX}", + institution = inst-STAN-CS, + year = "1988", + number = "STAN-CS-88-1223", + month = sep, + bibdate = "Tue Mar 1 12:54:02 1994", +} + +@Article{Knuth:TB11-1-13-23, + author = "Donald Knuth", + title = "{Virtual Fonts: More Fun for Grand Wizards}", + journal = j-TUGboat, + year = "1990", + volume = "11", + number = "1", + pages = "13--23", + month = Apr, +} + +@Book{Knuth:TB84, + author = "Donald E. Knuth", + title = "The {\TeX}book", + publisher = pub-AW, + address = pub-AW:adr, + year = "1984", + ISBN = "0-201-13448-9 (paperback), 0-201-13447-0 (hardcover)", + LCCN = "Z253.4.T47 K58 1984", + pages = "ix + 483", + price = "US\$15.95 (paperback), US\$32.95 (hardcover)", + bibdate = "Fri Jul 22 09:08:51 1994", +} + +@Book{Knuth:TB89, + author = "Donald E. Knuth", + title = "The {\TeX}book", + publisher = pub-ASCII, + year = "1989", + address = pub-ASCII:adr, + ISBN = "4-7561-0010-4", + note = "Translation of the {\TeX}book into Japanese, with + addition of Appendix K, and new drawings by Duane + Bibby.", +} + +@Book{Knuth:tex82, + author = "Donald E. Knuth", + title = "{\TeX}82", + publisher = inst-STANFORD, + year = "1982", + address = inst-STANFORD:adr, + acknowledgement = ack-hk, + bibdate = "Sat Mar 12 18:14:53 1994", +} + +@Article{Knuth:TEXHAX-89-98, + author = "Donald E. Knuth", + title = "Calling all Grand Wizards", + journal = j-TEXHAX, + year = "1989", + volume = "89", + number = "98", + month = nov, +} + +@Article{Knuth:TEXHAX-90-11, + author = "Donald E. Knuth", + title = "{Virtual fonts: More fun for Grand Wizards}", + journal = j-TEXHAX, + year = "1990", + volume = "90", + number = "11 and 12", + month = jan, +} + +@Article{Knuth:TEXHAX-90-13, + author = "Donald E. Knuth and Joe Weening", + title = "New {{\TeX}{\slash}{\METAFONT}} sources available on + {Stanford's} master archive", + journal = j-TEXHAX, + year = "1990", + volume = "90", + number = "13", + month = jan, +} + +@Book{Knuth:texware82, + author = "Donald E. Knuth", + title = "{\TeX}ware (version 1)", + publisher = inst-STANFORD, + year = "1982", + address = inst-STANFORD:adr, + acknowledgement = ack-hk, + bibdate = "Sat Mar 12 18:14:56 1994", +} + +@Book{Knuth:TFT82, + author = "Donald E. Knuth", + title = "A test file for {\TeX}", + publisher = inst-STANFORD, + year = "1982", + address = inst-STANFORD:adr, + acknowledgement = ack-hk, + bibdate = "Sat Mar 12 18:15:05 1994", +} + +@Book{Knuth:TMN79, + author = "Donald E. Knuth", + title = "{\TeX} and {\METAFONT}\emdash New Directions in + Typesetting", + publisher = pub-DP, + address = pub-DP:adr, + year = "1979", + ISBN = "0-932376-02-9", + LCCN = "Z253.3 .K58 1979", + pages = "xi + 201 + 105", + bibdate = "Wed Dec 15 10:37:42 1993", +} + +@Article{Knuth:TOGS-6-4-245, + author = "Donald E. Knuth", + title = "Digital Halftones by Dot Diffusion", + journal = j-TOGS, + year = "1987", + volume = "6", + number = "4", + pages = "245--273", + month = oct, +} + +@Article{Knuth:VL-16-1-3, + author = "Donald E. Knuth", + title = "The {Concept} of a {Meta}-{Font}", + journal = j-VL, + volume = "16", + number = "1", + pages = "3--27", + month = "winter", + year = "1982", + acknowledgement = ack-hk, +} + +@Book{Knuth:web82, + author = "Donald E. Knuth", + title = "The {WEB} System of Structured Documentation---Version + 1", + publisher = inst-STANFORD, + year = "1982", + address = inst-STANFORD:adr, + acknowledgement = ack-hk, + bibdate = "Sat Mar 12 18:15:11 1994", +} + +@Article{Kolodziejska:CG-0-3, + author = "Hanna Ko{\l}odziejska", + title = "Le traitement des textes polonais avec le logiciel + {\TeX}", + journal = j-GUTENBERG, + number = "0", + pages = "3--10", + month = apr, + year = "1988", + acknowledgement = ack-hk, +} + +@TechReport{Kolodziejska:dzielenie, + author = "Hanna Ko{\l}odziejska", + title = "Dzielenie wyraz{\'o}w polskich w systemie {\TeX}", + institution = "Sprawozdania Instytutu Informatyki Uniwersytetu + Warszawskiego", + year = "1987", + number = "165", + bibdate = "Tue Mar 1 12:54:07 1994", +} + +@Article{Kolodziejska:MIKROLAN-1-12, + author = "Hanna Ko{\l}odziejska", + title = "{\TeX}", + journal = j-MIKROLAN, + year = "1988", + number = "1", + pages = "12", +} + +@Book{Kopka:GLD93, + author = "Helmut Kopka and Patrick W. Daly", + title = "A Guide to {\LaTeX}: Document Preparation for + Beginners and Advanced Users", + ISBN = "0-201-56889-6", + publisher = pub-AW, + year = "1993", + address = pub-AW:adr, + price = "US\$34.50", + acknowledgement = ack-nhfb, + bibdate = "Thu Jan 20 12:34:31 1994", +} + +@Book{Kopka:LE88, + author = "Helmut Kopka", + title = "{\LaTeX}\emdash{}Eine Einf{\"u}hrung", + publisher = pub-AWV, + address = pub-AWV:adr, + edition = "Second", + year = "1988", + pages = "xvi + 340", + ISBN = "3-89319-199-2", + bibdate = "Wed Jul 6 15:09:48 1994", +} + +@Book{Kopka:LE90, + author = "Helmut Kopka", + title = "{\LaTeX{}}\emdash + {}Er{\-}weit{\-}er{\-}ungs{\-}m{\"o}g{\-}lich{\-}keit{\-}en", + publisher = pub-AWV, + address = pub-AWV:adr, + year = "1990", + ISBN = "3-89319-287-5", +} + +@Book{Kopka:LE91, + author = "Helmut Kopka", + title = "{\LaTeX{}}\emdash{}Eine Einf{\"u}hrung", + publisher = pub-AWV, + address = pub-AWV:adr, + edition = "Third", + year = "1991", + pages = "375", + ISBN = "3-89319-338-3", +} + +@Book{Kopka:LE93, + author = "Helmut Kopka", + title = "{\LaTeX{}}\emdash{}Eine Einf{\"u}hrung", + publisher = pub-AWV, + address = pub-AWV:adr, + edition = "Fourth", + year = "1993", + pages = "xviii + 461", + ISBN = "3-89319-434-7", + acknowledgement = ack-rz, + bibdate = "Tue Mar 1 14:25:32 MET 1994", +} + +@Book{Kopka:LE94a, + author = "Helmut Kopka", + title = "{\LaTeX{}} Band 1: Einf{\"u}hrung", + publisher = pub-AWV, + address = pub-AWV:adr, + year = "1994", + pages = "xix + 428", + ISBN = "3-89319-664-1", + note = "Replaces the old series of two volumes.", + acknowledgement = ack-rz, + bibdate = "Tue Mar 1 14:25:32 MET 1994", +} + +@Book{Kopka:LE94b, + author = "Helmut Kopka", + title = "{\LaTeX{}} Band 2: Erg{\"a}nzungen", + publisher = pub-AWV, + address = pub-AWV:adr, + acknowledgement = ack-rz, + year = "1994 (to appear)", + bibdate = "Tue Mar 1 11:31:23 1994", +} + +@Book{Kopka:LE94c, + author = "Helmut Kopka", + title = "{\LaTeX{}} Band 3: Erweiterungen\emdash mit einer + Einf{\"u}rung in {\MF}", + publisher = pub-AWV, + address = pub-AWV:adr, + year = "1994 (to appear)", + acknowledgement = ack-rz, + bibdate = "Tue Mar 1 11:31:31 1994", +} + +@Book{Kopka:LEE91, + author = "Helmut Kopka", + title = "{\LaTeX{}}\emdash + {}Er{\-}weit{\-}er{\-}ungs{\-}m{\"o}g{\-}lich{\-}keit{\-}en + mit einer Einf{\"u}rung in {\MF}", + publisher = pub-AWV, + address = pub-AWV:adr, + edition = "Second", + year = "1991", + pages = "552", + ISBN = "3-89319-356-1", +} + +@Book{Krieger:IT90, + author = "Jost Krieger and Norbert Schwarz", + title = "Introduction to {\TeX}", + publisher = pub-AWE, + year = "1990", + address = pub-AWE:adr, + ISBN = "0-201-51141-X", + note = "English translation of \cite{Schwarz:ET88}. See also + the Dutch translation, \cite{Schwarz:IT90}.", +} + +@InProceedings{Kronert:IIS89, + crossref = "Nadrchal:ESS89", + author = "G{\"u}nther Kr{\"o}nert", + title = "Importance of the {ISO} standard 8613 for document + interchange. {Basic} standard, functional standards, + initial experience, benefits", + pages = "209--218", + note = "Invited paper.", + acknowledgement = ack-rw, + bibdate = "Tue Mar 1 12:55:29 1994", +} + +@Book{Labuz:HTW84, + author = "Ronald Labuz", + title = "How to Typeset from a Word Processor: {A} Practical + Manual for Type Buyers and Typesetters", + publisher = pub-RRB, + address = pub-RRB:adr, + year = "1984", + pages = "xii + 218", + annote = "Decent survey of the field for the computer + illiterate, though details of equipment may be dated by + now, but does cover high-end phototypesetters in + addition to personal computers.", + acknowledgement = ack-jpl, + price = "US\$24.95", + ISBN = "0-8352-1899-6", + LCCN = "Z253.3.L33 1984", + bibdate = "Tue Mar 1 12:55:45 1994", +} + +@Book{Lamport:LDP86, + author = "Leslie Lamport", + title = "{\LaTeX}\emdash {A} Document Preparation System\emdash + User's Guide and Reference Manual", + publisher = pub-AW, + address = pub-AW:adr, + year = "1985", + ISBN = "0-201-15790-X", + LCCN = "Z253.4.L38 L35 1986", + pages = "xiv + 242", + price = "US\$26.95", + acknowledgement = ack-nhfb, + bibdate = "Thu Jul 21 23:00:50 1994", +} + +@Article{Lao:WM-27-1, + author = "Marek J. Lao", + author-l = lang-pl, + title = "Sztuka {\TeX}owania", + title-l = lang-pl, + journal = j-WM, + year = "1986", + volume = "27", + number = "1", + pages = "81--87", + note = "Roczniki Polskiego Towarzystwa Matematycznego, Seria + II. In Polish.", + bibdate = "Thu Jun 23 18:21:02 1994", +} + +@Book{Larsen:LD89, + author = "Steen Larsen", + title = "{\LaTeX} {p\aa} dansk", + publisher = pub-UNIC, + year = "1989", + address = pub-UNIC:adr, + ISBN = "87-7252-089-2", +} + +@Book{Lawson:AT90, + author = "Alexander Lawson", + title = "Anatomy of a Typeface", + address = pub-HAMISH:adr, + publisher = pub-HAMISH, + ISBN = "0-241-13267-3", + pages = "428", + year = "1990", + acknowledgement = ack-mc, +} + +@Book{Lee:B79, + author = "Marshall Lee", + title = "Bookmaking: the Illustrated Guide to Design\slash + Production\slash Editing", + publisher = pub-RRB, + address = pub-RRB:adr, + edition = "Second", + year = "1979", + acknowledgement = ack-jpl, + price = "US\$25.00", + ISBN = "0-8352-1097-9", + LCCN = "Z116.A2 .L44 1979", + pages = "485", + bibdate = "Fri Jul 22 11:16:45 1994", +} + +@InProceedings{Leitch:TEX85-155, + crossref = "Lucarella:TSD85", + author = "S. Leitch and F. J. Smith", + title = "Generalised {Algorithm} for {Drawing} + {Non}-{Parametric} {Splines}", + pages = "155--161", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:56:23 1994", +} + +@InProceedings{Leitch:TEX85-171, + crossref = "Lucarella:TSD85", + author = "S. Leitch", + title = "Implementing {\METAFONT} on an {ICL} {Perq}", + pages = "171--182", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:56:54 1994", +} + +@Article{Lesk:COMPSYS-1-3-207, + author = "Michael Lesk", + title = "{GRAB}\emdash{}Inverted Indexes with Low Storage + Overhead", + journal = j-COMPSYS, + year = "1988", + volume = "1", + number = "3", + pages = "207--220", +} + +@Article{Levine:CPC-58-1-181, + author = "Michael J. S. Levine", + title = "A {\LaTeX} Graphics Routine for drawing Feynman + Diagrams", + journal = j-CPC, + year = "1990", + volume = "58", + number = "1 and 2", + pages = "181--198", + month = feb # "\slash " # mar, + note = "Available in the CPC library, and from + \path|listral@ib.rl.ac.uk| with an e-mail request {\tt + GET CPC INTRO CPCINDEX}.", +} + +@InProceedings{Li:TEX85-161, + crossref = "Lucarella:TSD85", + author = "Jiarong Li", + title = "Generation of {Some} {Chinese} {Characters} with + {Metafont}", + pages = "161--170", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:56:57 1994", +} + +@TechReport{Liang:STAN-CS-83-977, + author = "Franklin Mark Liang", + title = "Word Hy-phen-a-tion by Com-pu-ter", + institution = inst-STANFORD, + number = "STAN-CS-83-977", + year = "1983", + month = aug, + bibdate = "Tue Mar 1 12:54:09 1994", +} + +@Book{Licha:A92, + author = "Michaela Lich{\'a} and Old{\v r}ich Ulrych", + title = "{\AmSTeX} verze 2.1", + publisher = pub-CSTUG, + address = pub-CSTUG:adr, + year = "1992", + note = "This publication provides a short (but complete) tour + through {\AmSTeX} 2.1 together with \path=amsppt.sty= + 2.1. Almost all features are demonstrated with a lot of + examples. The book is organized in such a way that it + is useful for novices (basic textbook), and for + advanced users (quick reference guide) as well. + Contains a table of all symbols.", + pages = "80", + bibdate = "Thu Mar 11 12:11:15 1993", +} + +@Article{Linton:IEEE-COMPUTER-22-2-8, + author = "Mark A. Linton and John M. Vissides and Paul R. + Calder", + title = "Composing user interfaces with InterViews", + journal = j-IEEE-COMPUTER, + year = "1989", + volume = "22", + number = "2", + pages = "8--22", + month = feb, + note = "From {\em Computing Reviews\/}: ``InterViews objects + are combined through a model similar to the boxes and + glues in Knuth's {\TeX}, which allows interface objects + to be combined with little concern for undesired + interactions.''", + bibdate = "Thu Jul 21 22:56:53 1994", +} + +@Article{Lubkin:CS-642, + author = "Saul Lubkin", + title = "Porting sophisticated programs to your {Unix} + environment for free", + journal = j-COMPUTERSHOPPER, + year = "1990", + pages = "642--644", + month = mar, +} + +@InProceedings{Lucarella:TEX85-93, + crossref = "Lucarella:TSD85", + author = "Dario Lucarella", + title = "{\TeX} {Formulae} {Dictionary}", + booktitle = proc-TEX85, + pages = "93--103", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:56:59 1994", +} + +@Book{Luna:UTD92, + author = "Paul Felix John Luna", + title = "Understanding Type for Desktop Publishing", + address = pub-BLUEPRINT:adr, + publisher = pub-BLUEPRINT, + ISBN = "0-948905-76-X", + pages = "136", + year = "1992", + note = "Highly regarded English typographer: designed the + Oxford English Dictionary and the New English Bible.", + acknowledgement = ack-mc, +} + +@InProceedings{MacKay:TASxx, + author = "Pierre A. MacKay", + title = "{\TeX} for {Arabic} script", + booktitle = "???", + year = "??", + publisher = "??", + address = "??", + pages = "391-400", + acknowledgement = ack-nhfb, + bibdate = "Thu Jul 21 19:34:58 1994", +} + +@Article{Manson:SIGDOC-13-1-3, + author = "David Manson", + title = "Using {\TeX} for Electronic Publishing at {I. P. Sharp + Associates}", + journal = j-SIGDOC, + year = "1987", + volume = "13", + number = "1", + pages = "3--7", + month = mar, + bibdate = "Thu Jul 21 22:25:07 1994", +} + +@Book{McLean:THM80, + title = "The Thames and Hudson Manual of Typography", + author = "Ruari McLean", + publisher = pub-TH, + address = pub-TH:adr, + ISBN = "0-500-68022-1", + pages = "216", + year = "1980", + annote = "A broad, very readable introduction to the + conventional typography. This is the best recent + general book if you read only one. (RRu)", + acknowledgement = ack-fm # " and " # ack-mc, +} + +@Booklet{MF:MFC86, + key = "MF", + title = "The {MF} {Chel} {Family} of {Fonts}", + howpublished = inst-METAFOUNDRY, + address = inst-METAFOUNDRY:adr, + year = "1986", + acknowledgement = ack-hk, +} + +@Booklet{MF:MFD87, + key = "MF", + title = "The {MF} {Decorative} {Family} of {Fonts}", + howpublished = inst-METAFOUNDRY, + address = inst-METAFOUNDRY:adr, + year = "1987", + acknowledgement = ack-hk, +} + +@Booklet{MF:MFR86, + key = "MF", + title = "The {MF} {Roman} {Family} of {Fonts}", + howpublished = inst-METAFOUNDRY, + address = inst-METAFOUNDRY:adr, + year = "1986", + acknowledgement = ack-hk, +} + +@Booklet{MF:MFS87, + key = "MF", + title = "The {MF} {Slavic} {Families} of {Fonts}", + howpublished = inst-METAFOUNDRY, + address = inst-METAFOUNDRY:adr, + year = "1987", + acknowledgement = ack-hk, +} + +@Article{Milne:MI-8-1-66, + author = "J. S. Milne", + title = "Review of Two Scientific Word-Processing Programs: + {T$^3$} version 2.02 by {TCI Software Research Inc.}, + and {Volkswriter Scientific} version 1.0 by {Lifetree + Software Inc.}", + journal = j-MATHINTEL, + year = "1986", + volume = "8", + number = "1", + pages = "66--71", + bibdate = "Fri Mar 12 09:46:57 1993", +} + +@Article{Milne:NAMS-37-8-1018, + author = "J. S. Milne", + title = "Four Word Processors with {\TeX} Capabilities", + journal = j-NAMS, + year = "1990", + volume = "37", + number = "8", + pages = "1018--1022", + month = oct, + acknowledgement = ack-bnb, +} + +@Article{Milne:NAMS-39-8-838, + author = "J. S. Milne", + title = "Three Scientific Word Processors", + journal = j-NAMS, + year = "1992", + volume = "39", + number = "8", + pages = "838--840", + month = oct, + note = "The word processors {Chi}{Writer} 4.02, {Leo} 1.4, and + {Scientific} {Word} 1.0 are discussed in terms of ease + of use, effectiveness in producing {\TeX} code, and + other features of interest to users who require {\TeX} + output but do not wish to use {\TeX} directly.", + bibdate = "Tue Mar 1 12:06:32 1994", +} + +@Article{Molnar:UMAP-14-2-97-112, + author = "Suzanne M. Molnar", + title = "A Tour of Graphical Typesetting on the Macintosh", + journal = j-UMAP, + year = "1993", + volume = "14", + number = "2", + pages = "97--112", + acknowledgement = ack-ps, + bibdate = "Tue Dec 14 10:48:29 1993", +} + +@Article{Morin:SUNEXPERT-4-10-42, + author = "Richard Morin", + title = "Tangled up in {\TeX}", + journal = j-SUNEXPERT, + year = "1993", + volume = "4", + number = "10", + pages = "42--46", + month = oct, + note = "A brief review of {\TeX} support, including the + Comprehensive {\TeX} Archive Network (CTAN), the {\TeX} + Users Group, and several books on {\TeX}.", + bibdate = "Mon Oct 18 18:07:05 1993", + acknowledgement = ack-nhfb, +} + +@InProceedings{Morris:NIPT-344, + author = "Robert A. Morris and Karl Berry and Kathryn A. + Hargreaves and Dimitrios Liarokapis", + title = "How typeface variation and typographic variation + affect readability at small sizes", + crossref = "Pietrowski:NIPT91", + pages = "344--352", + acknowledgement = ack-kb, + bibdate = "Tue Mar 1 12:57:02 1994", +} + +@Book{Mortenson:RIT91, + author = "Niels G. Mortensen", + title = "Ris{\o}-rapporter i {\TeX}. Matematisk og + naturvidenskabelig typografi i praksis (Ris{\o} reports + in {\TeX}. Mathematical and scientific typography in + practice).", + publisher = pub-RISO, + year = "1991", + address = pub-RISO:adr, + ISBN = "87-550-1635-9", + note = "Prepared using {\LaTeX}, and typeset on a Chelgraph + IBX photo-typesetter.", +} + +@PhdThesis{Naiman:UGI91, + author = "Avi Naiman", + title = "The Use of Grayscale for Improved Character + Presentation", + school = "University of Toronto", + year = "1991", + address = "ATTN: Technical Reports, Computer Systems Research + Institute, University of Toronto, 6 King's College + Road, Toronto, Ontario M5S 1A1, CANADA, Tel: (416) + 978-8751. The cost is CDN\$16 if inside Canada, US\$16 + if outside. Avi's e-mail address is + \path|avi@cvs.rochester.edu|.", + note = "Technical report CSRI-253", + acknowledgement = ack-kb, + bibdate = "Tue Mar 1 12:57:40 1994", +} + +@Book{Nelson:PD78, + author = "Roy Paul Nelson", + title = "Publication Design", + publisher = pub-WCB, + address = pub-WCB:adr, + year = "1978", + pages = "317 (or 295??)", + edition = "Second", + annote = "This is an introductory text suitable for college + level. It comprises a broad survey a design issues + (production, typography, art, book design), with little + in the way of business management.", + acknowledgement = ack-jpl, + ISBN = "0-697-04324-X", + LCCN = "Z246 .N44 1978", + bibdate = "Fri Jul 22 09:13:36 1994", +} + +@Article{Noot:SPE-13-1-79, + author = "Han Noot", + title = "Structured text formatting", + journal = j-SPE, + year = "1983", + volume = "13", + number = "1", + pages = "79-94", + month = jan, + abstract = "An abstract format machine is presented which can be + ``microprogrammed'' to yield document formatters. A + high-level language to be used for this + microprogramming is discussed. It contains special + constructs for the manipulation of blocks of text. The + format machine has a design which encourages the + implementation of well-structured and concise sets of + layout directives on it. It incorporates a systematic + strategy for dealing with problems such as the + avoidance of ``widows.'' At various points in this + paper we contrast out approach with that of a number of + recent, well-known text formatting systems.", + acknowledgement = ack-nhfb, + bibdate = "Thu Jul 21 22:12:03 1994", +} + +@Misc{NTG, + key = "NTG", + title = "Nederlandstalige {\TeX{}} Gebruikersgroep", + year = "1989" # "\unskip--", + note = "Journal of the NTG (Dutch-speaking {\TeX{}} Users + Group).", +} + +@Article{Oman:CACM-33-5-506, + author = "Paul W. Oman and Curtis R. Cook", + title = "Typographic Style is More than Cosmetic", + journal = j-CACM, + year = "1990", + volume = "33", + number = "5", + pages = "506--520", + month = may, +} + +@Book{OrtegonGallego:LPP92, + author = "Francisco Orteg{\'o}n Gallego", + title = "{\LaTeX}, primeros pasos", + publisher = pub-MASSON-SA, + year = "1992", + ISBN = "84-311-0649-2", + series = "Manuales de Inform{\'a}tica Masson", + address = pub-MASSON-SA:adr, + pages = "xix + 168", + bibdate = "Sun Dec 27 17:42:34 1992", +} + +@Article{Palais:NAMS-33-1-3, + author = "Richard S. Palais", + title = "Mathematical Text Processing", + journal = j-NAMS, + volume = "33", + number = "1", + pages = "3--7", + month = jan, + year = "1986", + acknowledgement = ack-hk, +} + +@Article{Pappas:COMPUTER-23-10-82, + author = "T. L. (Frank) Pappas", + title = "{Post}{Script} output on a {Laser}{Jet} printer", + journal = j-COMPUTER, + year = "1990", + volume = "23", + number = "10", + pages = "82--88", + month = oct, + ISSN = "0018-9162", +} + +@Article{Pappas:COMPUTER-24-6-92, + author = "T. L. (Frank) Pappas", + title = "{\TeX} typesetting with a difference", + journal = j-COMPUTER, + year = "1991", + volume = "24", + number = "6", + pages = "92--93", + month = jun, + ISSN = "0018-9162", +} + +@Misc{Partl:DL93, + author = "Hubert Partl and Elis. Schlegl and Irene Hyna", + title = "Una Descripci{\'o}n de {\LaTeX}", + year = "1993", + note = "Spanish translation by Tomas Bautista of German + introduction to {\LaTeX}, {\LaTeX}-Kurzbeschreibung. + Includes material on the {\tt spanish} style option. + Available in Spain from \path=ftp.eunet.es= (also known + as \path=goya.uu.es=) in the directory + \path=info/unix/text/TeX/spanish/tutorial=, as well as + from the main {\TeX} archives.", + bibdate = "Tue Nov 30 10:08:52 1993", + acknowledgement = ack-ps, +} + +@InProceedings{Partl:HTL89, + crossref = "Nadrchal:ESS89", + author = "Hubert Partl", + title = "How to make {\TeX} and {\LaTeX} international", + pages = "190--200", + note = "Invited paper.", + abstract = "The present article is both a resum{\'e} of a + well-established German standard and a guideline for + other national language styles to be developed.", + acknowledgement = ack-rw, + bibdate = "Tue Mar 1 12:57:04 1994", +} + +@Booklet{Pawlowski:LTL93, + title = "{\LaTeX}, czyli {\TeX} dla ludzi", + title-l = lang-pl, + author = "Wies{\l}aw Paw{\l}owski", + author-l = lang-pl, + howpublished = "broszura z konferencji cz{\l}onk{\'o}w GUSTu", + howpublished-l = lang-pl, + address = "Bachotek", + address-l = lang-pl, + year = "1993", + note = "In Polish.", + acknowledgement = ack-md, + bibdate = "Thu Jun 23 18:23:31 1994", +} + +@InBook{Plass:CBL82, + author = "Michael F. Plass and Donald E. Knuth", + title = "Choosing better line breaks", + chapter = "??", + publisher = pub-ESPNH, + year = "1982", + ISBN = "??", + LCCN = "??", + editor = "J. Nievergelt and G. Coray and J.-D. Nicoud and A. C. + Shaw", + address = pub-ESPNH:adr, + pages = "221--242", + abstract = "This article discusses a new approach to the problem + of dividing the text of a paragraph into lines of + approximately equal length. Instead of simply making + decisions one line at a time, the method considers the + paragraph as a whole, so that the final appearance of a + given line might be influenced by the text on + succeeding lines. A system based on three simple + primitive concepts called ``boxes,'' ``glue,'' and + ``kerns'' provides the ability to deal satisfactorily + with a wide variety of typesetting problems in a + unified framework, using a single algorithm that + determines optimum breakpoints. This algorithm avoids + backtracking by a judicious use of the techniques of + dynamic programming. Extensive computational experience + confirms that the approach is both efficient and + effective in producing high-quality output.", + acknowledgement = ack-nhfb, + bibdate = "Thu Jul 21 19:44:17 1994", +} + +@Article{Popperlier:NTG-92-1-135, + author = "Nico Poppelier and Amy Hendrickson", + title = "Book reviews", + journal = j-NTG, + year = "1992", + month = may, + volume = "92", + number = "1", + pages = "135--138", + annote = "Contains reviews of {\em \LaTeX{} for Everyone\/} + \cite{Hahn:LE91}, {\em Practical SGML\/} + \cite{vanHerwijnen:PS90}, and {\em \TeX{} by Topic, A + \TeX{}nician's Reference\/} \cite{Eijkhout:TTT92}.", + keywords = "reviews", +} + +@Article{Popperlier:TB13-2-182, + author = "Nico Poppelier", + title = "Book reviews: {Jane Hahn, {\em \LaTeX} for + Everyone\/}; {Eric van Herwijnen, {\em Practical + SGML}}", + journal = j-TUGboat, + year = "1992", + volume = "13", + number = "2", + month = jul, + pages = "182--184", + annote = "Contains reviews of {\em \LaTeX{} for Everyone\/} + \cite{Hahn:LE91}, and {\em Practical SGML\/} + \cite{vanHerwijnen:PS90}.", + bibdate = "Tue Mar 1 12:07:33 1994", +} + +@TechReport{Rahtz:CSTR-89-7, + author = "Sebastian Rahtz", + title = "A Survey of {\TeX} and Graphics", + institution = "University of Southampton", + number = "CSTR 89-7", + address = "Department of Electronics and Computer Science, + Southampton SO9 5NH, UK", + month = oct, + year = "1989", + bibdate = "Tue Mar 1 12:54:12 1994", +} + +@Book{Rice:BDT78, + author = "Stanley Rice", + title = "Book Design---Text Format Models", + publisher = pub-BOWK, + year = "1978", + address = pub-BOWK:adr, + acknowledgement = ack-dh, + price = "US\$17.50", + ISBN = "0-8352-1045-6", + LCCN = "Z245 R5 1978", + pages = "xiv + 215", + bibdate = "Fri Jul 22 09:14:04 1994", +} + +@Book{Rolland:LGP93, + author = "Christian Rolland", + title = "{\LaTeX} guide pratique", + ISBN = "2-87908-025-8", + publisher = pub-AW, + year = "1993", + month = jul, + address = pub-AW:adr, + note = "Distributed by Bourdas, code 009808.", + pages = "280", + price = "FF 190", + acknowledgement = ack-ps, + bibdate = "Tue Dec 14 10:38:20 1993", +} + +@InProceedings{Romberger:TEX85-27, + crossref = "Lucarella:TSD85", + author = "Staffan Romberger and Yngve Sundblad", + title = "Adapting {\TeX} to {Languages} that use {Latin} + {Alphabetic} {Characters}", + pages = "27--40", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:57:06 1994", +} + +@TechReport{Rosset:CIRCE-65, + author = "J.-L. {Rosset, editor}", + title = "{S.A.PR.I.S.T.I}. (Syst\`eme Assist\'e de {PR}oduction + Int\'egrant Simplement Textes et Images)", + institution = inst-CIRCE, + address = inst-CIRCE:adr, + year = "1984", + type = "Suppl\'ement au No.", + number = "65", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:54:15 1994", +} + +@Article{Rosson:CACM-31-11-1288, + author = "Mary B. Rosson and Wendy Kellogg and Susanne Maass", + title = "The designer as user: building requirements for design + tools from design practice", + journal = j-CACM, + year = "1988", + volume = "31", + number = "11", + pages = "1288--1298", + month = nov, + note = "From {\em Computing Reviews\/}: ``InterViews objects + are combined through a model similar to the boxes and + glues in Knuth's {\TeX}, which allows interface objects + to be combined with little concern for undesired + interactions.''", + acknowledgement = ack-nhfb, + bibdate = "Thu Jul 21 22:43:20 1994", +} + +@Book{Roth:RWP88, + editor = "Stephen E. Roth", + title = "Real World {\POSTSCRIPT{}}", + publisher = pub-AW, + address = pub-AW:adr, + year = "1988", + ISBN = "0-201-06663-7", +} + +@Book{Roy:TW84, + author = "Yves Roy", + title = "{\TeX}/{WEB}, et le traitement de textes + math\'ematiques", + publisher = pub-MASSON, + address = pub-MASSON:adr, + year = "1984", + acknowledgement = ack-hk, +} + +@Book{Rubinstein:DTI88, + author = "Richard Rubinstein", + title = "Digital Typography\emdash An Introduction to Type and + Composition for Computer System Design", + publisher = pub-AW, + address = pub-AW:adr, + month = nov, + note = "Reprinted with corrections", + year = "1988", + ISBN = "0-201-17633-5", + LCCN = "Z253.3 .R8 1988", + pages = "xi + 340", + price = "US\$32.25", + keywords = "computerized typesetting, type and typefounding, data + processing, electronic publishing, bibliography + annotated", + acknowledgement = ack-nhfb # " and " # ack-fm, + bibdate = "Fri Jul 22 09:15:20 1994", +} + +@Book{Ruder:TG88, + author = "Emil Ruder", + title = "Typographie; Ein Gestaltungsbuch", + publisher = pub-NIGGLI, + year = "1988", + address = pub-NIGGLI:adr, + edition = "Fifth revised", + note = "Contains complete English and French translation.", + annote = "Excellent book about typography and design. Contains + many examples of the explained concepts. The main focus + is on individual typography as an art.", + keywords = "layout, typography, design, fonts", + acknowledgement = ack-fm, + bibdate = "Tue Mar 1 12:08:26 1994", +} + +@TechReport{Ruggles:STAN-CS-83-971, + title = "Letterform Design Systems", + author = "Lynn Ruggles", + year = "1983", + month = apr, + number = "STAN-CS-83-971", + institution = inst-STANFORD, + bibdate = "Tue Mar 1 12:54:18 1994", +} + +@Booklet{Rycko:CNA93, + title = "Co nieco o akapicie", + title-l = lang-pl, + author = "Marek Ry{\'c}ko", + author-l = lang-pl, + howpublished = "broszura z konferencji cz{\l}onk{\'o}w GUSTu", + howpublished-l = lang-pl, + address = "Bachotek", + address-l = lang-pl, + year = "1993", + note = "In Polish.", + acknowledgement = ack-md, + bibdate = "Thu Jun 23 18:23:33 1994", +} + +@TechReport{Samuel:STAN-CS-83-985, + title = "First Grade {\TeX}. {A} Beginner's {\TeX} Manual", + author = "Arthur Samuel", + year = "1983", + month = nov, + number = "STAN-CS-83-985", + institution = inst-STANFORD, + note = "Also published by TUG as {\TeX}niques No.~11.", + bibdate = "Tue Mar 1 12:54:20 1994", +} + +@Book{Sawyer:TPS93, + author = "Stanley A. Sawyer and Steven Krantz", + title = "A {\TeX} Primer for Scientists", + publisher = pub-CRC, + year = "1993", + ISBN = "0-8493-7159-7", + address = pub-CRC:adr, + note = "To appear March 1993.", + price = "US\$29.95", + pages = "175", + acknowledgement = ack-nhfb, + bibdate = "Fri Nov 20 13:46:48 1992", +} + +@Book{Scherber:OST94, + author = "Peter Scherber", + title = "Offizin\emdash Schrift\-en\-reihe zu {\TeX}, {\LaTeX}, + und Metafont (Band 1, Hrsg. von {DANTE} e.{V})", + publisher = pub-AW, + year = "1994", + ISBN = "3-89319-396-0", + address = pub-AW:adr, + pages = "190", + price = "DM 49.90", + acknowledgement = ack-ps, + bibdate = "Tue Dec 14 11:05:41 1993", +} + +@Misc{Schrell:DTS93, + key = "Schrell:DTS93", + editor = "Andreas Schrell", + title = "{DANTE}-{\TeX}-Stammtisch in Wuppertal: Jahrbuch + 1992/93", + year = "1993", + pages = "80", + acknowledgement = ack-rz, + bibdate = "Tue Mar 1 12:09:25 1994", +} + +@Article{Schrod:CG-10-81, + author = "Joachim Schrod", + title = "An International Version of {\em MakeIndex}", + journal = j-GUTENBERG, + year = "1991", + number = "10--11", + pages = "81--90", + month = sep, +} + +@Book{Schumann:PBT89, + author = "Lothar Schumann", + title = "{Professioneller} {Buchsatz} mit {\TeX}", + publisher = pub-OLDENBOURG, + year = "1989", + address = pub-OLDENBOURG:adr, + ISBN = "3-486-21173-0", +} + +@Book{Schumann:PBT91, + author = "Lothar Schumann", + title = "{Professioneller} {Buchsatz} mit {\TeX}: {Lehrbuch} + {f\"ur} {Anwender}", + publisher = pub-OLDENBOURG, + year = "1991", + address = pub-OLDENBOURG:adr, + ISBN = "3-486-21736-4", + acknowledgement = ack-ps, + bibdate = "Tue Dec 14 11:04:59 1993", +} + +@Book{Schwartz:LSD92, + author = "Stefan Schwartz and Rudolf Potu{\v c}ek", + title = "{\LaTeX}\emdash Satzkunst statt {DTP} ({\LaTeX}\emdash + The Art of Typography rather than {DTP})", + publisher = pub-VOGEL, + address = pub-VOGEL:adr, + year = "1992", + ISBN = "3-8023-1178-7", + price = "DM34.00", + bibdate = "Fri Nov 27 12:34:57 1992", + acknowledgement = ack-nhfb, +} + +@Book{Schwartz:WYA88, + author = "Laurens R. Schwartz", + title = "What You Aren't Supposed To Know About Writing And + Publishing: An Expos{/'e} of Editors, Agents, + Publishing Houses, and More \emdash{} An Insider's + Report", + publisher = pub-SP, + address = pub-SP:adr, + year = "1988", + annote = "Satirical (gallows?) humor providing anecdotal insight + into the publishing world from someone who's had a lot + of different jobs in the trade. Down-to-earth + information and really funny.", + acknowledgement = ack-jpl, + ISBN = "0-944007-02-3", + LCCN = "KF300.Z9 S35 1988", + pages = "viii + 173", + bibdate = "Tue Mar 1 12:58:57 1994", +} + +@Book{Schwarz:ET88, + author = "Norbert Schwarz", + title = "Einf{\"u}hrung in {\TeX{}}", + edition = "Second", + publisher = pub-AWV, + year = "1988", + address = pub-AWV:adr, + ISBN = "3-925118-97-7", + note = "Available in English translation, \cite{Krieger:IT90}, + and in Dutch translation, \cite{Schwarz:IT90}.", + bibdate = "Tue Mar 1 12:10:26 1994", +} + +@Book{Schwarz:IT90, + author = "Norbert Schwarz", + title = "Inleiding {\TeX}", + publisher = pub-AWE, + year = "1990", + address = pub-AWE:adr, + ISBN = "90-6789-151-7", + note = "Dutch translation of \cite{Schwarz:ET88}. See also the + English translation, \cite{Krieger:IT90}.", + bibdate = "Mon Jul 11 11:56:40 1994", +} + +@Book{Seroul:BBT91, + author = "Raymond Seroul and Silvio Levy", + title = "A Beginner's Book of {\TeX}", + publisher = pub-SV, + year = "1991", + address = pub-SV:adr, + ISBN = "0-387-97562-4, 3-540-97562-4", + LCCN = "Z253.4.T47 S47 1991", + pages = "xii + 282", + note = "This is a translation and adaption by Silvio Levy of + \cite{Seroul:PLT89}.", + acknowledgement = ack-nhfb, + bibdate = "Fri Jul 22 09:17:14 1994", +} + +@Book{Seroul:PLT89, + author = "Raymond Seroul", + title = "Le petit Livre de {\TeX}", + publisher = pub-IE, + year = "1989", + address = pub-IE:adr, + ISBN = "2-7296-0233-X", + pages = "317", + acknowledgement = ack-nhfb, + bibdate = "Wed Jul 6 14:54:52 1994", +} + +@Book{Sewell:WPL89, + author = "E. Wayne Sewell", + title = "Weaving a Program: Literate Programming in {\WEB}", + publisher = pub-VNR, + address = pub-VNR:adr, + year = "1989", + ISBN = "0-442-31946-0", + LCCN = "QA76.73.W24 S491 1989", + pages = "xx + 556", + price = "US\$34.95", + bibdate = "Thu Jul 21 23:04:56 1994", +} + +@Book{Shultis:LN94, + author = "J. Kenneth Shultis", + title = "{\LaTeX} Notes: Practical Tips for Preparing Technical + Documents", + publisher = pub-PTRPH, + year = "1994", + ISBN = "0-13-120973-6", + LCCN = "Z253.4.L38 S48 1994", + address = pub-PTRPH:adr, + pages = "xi + 180", + price = "US\$32.00", + acknowledgement = ack-nhfb, + bibdate = "Thu May 12 08:36:58 1994", +} + +@Article{Siebenmann:NAMS-33-4-597, + author = "L. C. Siebenmann", + title = "Toward {Wider} {Use} of {\TeX} {Typesetting}. {A} + {Pre}--{\TeX} {Manifesto}", + journal = j-NAMS, + volume = "33", + number = "4", + pages = "597--607", + month = aug, + year = "1986", + acknowledgement = ack-hk, +} + +@TechReport{Siegel:euler-proj, + author = "David R. Siegel", + title = "The {Euler} Project at {Stanford}", + year = "1985", + institution = inst-STANFORD, + bibdate = "Tue Mar 1 12:54:22 1994", +} + +@Book{Siemoneit:TG89, + author = "Manfred Siemoneit", + title = "Typographisches {Gestalten}", + publisher = pub-POLYGRAPH, + year = "1989", + address = pub-POLYGRAPH:adr, + edition = "Second", + annote = "An excellent book on typographic design. Covers almost + all principles of high quality typography. (Written in + German.)", + keywords = "layout, typography, design", + acknowledgement = ack-fm, + bibdate = "Tue Mar 1 12:59:34 1994", +} + +@Book{Skillin:WIT74, + author = "Marjorie E. Skillin and Robert Malcolm Gay", + title = "Words into Type", + publisher = pub-PH, + address = pub-PH:adr, + year = "1974", + edition = "Third", + pages = "xx + 583", + ISBN = "0-13-964262-5", + LCCN = "PN160.S52 1974", + price = "US\$39.95", + acknowledgement = ack-jpl, + bibdate = "Sun Mar 6 17:34:11 1994", +} + +@Article{Smith:SIGPLAN-26-1-14, + author = "Lisa M. C. Smith and Mansur H. Samadzadeh", + title = "An Annotated Bibliography of Literate Programming", + journal = j-SIGPLAN, + year = "1991", + volume = "26", + pages = "14--20", + month = jan, +} + +@Book{Snow:TB92, + author = "Wynter Snow", + title = "{\TeX{}} for the Beginner", + publisher = pub-AW, + address = pub-AW:adr, + year = "1992", + ISBN = "0-201-54799-6", + LCCN = "Z253.4.T47 S64 1992", + pages = "xii + 377", + acknowledgement = ack-bnb, + bibdate = "Fri Jul 22 09:18:21 1994", +} + +@InProceedings{Southall:INRIA-133-85, + crossref = "Andre:INRIA85", + author = "Richard Southall", + title = "{\METAFONT} and the problem of type design", + pages = "133--145", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:57:09 1994", +} + +@TechReport{Southall:STAN-CS-85-1074, + author = "Richard Southall", + title = "Designing New Typefaces with {Metafont}", + year = "1985", + month = sep, + number = "STAN-CS-85-1074", + institution = inst-STANFORD, + bibdate = "Tue Mar 1 12:54:24 1994", +} + +@Book{Spivak:JTG86, + author = "Michael D. Spivak", + title = "The Joy of {\TeX}\emdash {A} Gourmet Guide to + Typesetting with the {\AMSTEX} macro package", + publisher = pub-AMS, + address = pub-AMS:adr, + year = "1986", + ISBN = "0-8218-2999-8", + LCCN = "Z253.4.T47 S6731 1986", + pages = "xviii + 290", + bibdate = "Wed Dec 15 10:41:57 1993", +} + +@Book{Spivak:JTG90, + author = "Michael D. Spivak", + title = "The Joy of {\TeX}\emdash {A} Gourmet Guide to + Typesetting with the {\AmSTeX} macro package", + publisher = pub-AMS, + address = pub-AMS:adr, + edition = "2nd revised", + year = "1990", + price = "US\$40.00", + ISBN = "0-8218-2997-1", + LCCN = "Z253.4.T47 S6731 1990", + pages = "xxii + 309", + acknowledgement = ack-nhfb, + bibdate = "Wed Jul 6 13:55:42 1994", +} + +@Book{Spivak:LS89, + author = "Michael D. Spivak", + title = "{L\AMSTEX}, The Synthesis", + publisher = pub-TEXPLORATORS, + address = pub-TEXPLORATORS:adr, + year = "1989", + pages = "viii + 289", + acknowledgement = ack-nhfb, + bibdate = "Sat Mar 12 18:20:15 1994", +} + +@Book{Spivak:LTW91, + author = "Michael D. Spivak", + title = "The {\LAMSTeX} Wizard's Manual", + publisher = pub-TEXPLORATORS, + address = pub-TEXPLORATORS:adr, + year = "1991", + bibdate = "Tue Mar 15 19:13:42 1994", +} + +@Manual{Spivak:MPT86, + author = "Michael D. Spivak", + title = "Manual ``{PC\TeX}'' ou {\TeX} en 9~le{\c{c}}ons", + publisher = inst-CIRCE, + address = inst-CIRCE:adr, + year = "1986", + note = "French translation of \cite{Spivak:PTM85}.", +} + +@Manual{Spivak:PTM85, + author = "Michael D. Spivak", + title = "{PC\TeX} Manual", + publisher = pub-PTI, + address = pub-PTI:adr, + year = "1985", +} + +@TechReport{Steemers:RRG-26, + author = "L. Steemers and C. G. van der Laan", + title = "Journal Style Guidelines", + institution = "Rekencentrum der Rijksuniversiteit te Groningen", + type = "RC-Rapport", + number = "26", + address = "Groningen, The Netherlands", + year = "1989", + bibdate = "Tue Mar 1 12:54:27 1994", +} + +@Article{Steen:UMAP-2-3-17-35, + author = "Lynn Arthur Steen", + title = "Technical Text Editing", + journal = j-UMAP, + year = "1981", + volume = "2", + number = "3", + pages = "17--35", + acknowledgement = ack-ps, + bibdate = "Tue Dec 14 11:11:12 1993", +} + +@Article{Stone:COMPUTER-25-12-46, + author = "Harold S. Stone", + title = "Copyrights and Author Responsibilities", + journal = j-COMPUTER, + year = "1992", + volume = "25", + number = "12", + pages = "46--51", + month = dec, + note = "This paper discusses U.~S. copyright law and its + implications for the reuse of published text. + Guidelines are given for the citation and quoting of + such material.", + bibdate = "Wed Dec 30 11:53:28 1992", + acknowledgement = ack-nhfb, +} + +@Book{Sutton:TB90, + author = "James Sutton and Alan Bartram", + title = "Typefaces for Books", + publisher = pub-BL # " and " # pub-NAB, + address = pub-BL:adr # " and " # pub-NAB:adr, + year = "1990", + ISBN = "1-56131-016-6, 1-56131-017-4 (paperback)", + LCCN = "Z250 .S896 1990", + pages = "288", + note = "Contains full-page type samples in a variety of point + sizes for a large number of typefaces.", + acknowledgement = ack-nhfb, + bibdate = "Fri Jul 22 09:19:06 1994", +} + +@Book{Swanson:MTC86, + author = "Ellen Swanson", + title = "Mathematics into Type; Copy Editing and Proofreading + of Mathematics for Editorial Assistants and Authors", + publisher = pub-AMS, + year = "1986", + address = pub-AMS:adr, + edition = "Revised", + ISBN = "0-8218-0053-1", + LCCN = "T11.4.S96 1979", + pages = "x + 90", + acknowledgement = ack-fm, + bibdate = "Fri Jul 22 09:19:41 1994", +} + +@TechReport{Tang:STAN-CS-81-848, + author = "Chih-sung Tang", + title = "On the Problem of Inputting {Chinese} Characters", + institution = inst-STAN-CS, + year = "1981", + type = rep, + number = "STAN-CS-81-848", + acknowledgement = ack-hk, + bibdate = "Fri Jul 22 11:18:07 1994", +} + +@Article{Tatarkiewicz:Komputer-8-36-37, + author = "Jakub Tatarkiewicz", + title = "{\TeX}nika {\L}adnego Druku", + journal = j-COMPUTER, + year = "1988", + number = "8", + pages = "36--37", + note = "In Polish.", +} + +@Misc{TEXEURO, + key = "TEXEURO", + title = "{\TeX}-Euro", + year = "1989" # "\unskip--", + note = "This is an unmoderated discussion list for {\TeX{}} + with emphasis on European issues. To subscribe, send a + request with the text {\tt subscribe tex-euro} to + \path|listserv@dhdurz1.bitnet|.", + bibdate = "Tue Mar 1 13:00:22 1994", +} + +@Misc{TEXHAX, + key = "TEXHAX", + title = j-TEXHAX, + year = "1987" # "\unskip--", + note = "This is a TUG-supported moderated electronic mailing + list. To subscribe, send a request to + \path|texhax-request@june.cs.washington.edu|.", +} + +@Misc{TEXMAG, + key = "TEXMAG", + title = "{\TeX}mag", + year = "1988" # "\unskip--", + note = "This is an electronic magazine with articles about + {\TeX}. To subscribe, send a request with the text {\tt + subscribe texmag-l} to \path|listserv@vm.byu.edu|.", + bibdate = "Tue Mar 1 12:11:24 1994", +} + +@Booklet{Tobin:elements-mf-style, + author = "Georgia K. M. Tobin", + title = "The Elements of Metafont Style", + year = "1985", +} + +@Article{Trickey:SIGACT-19-2-55, + author = "Howard Trickey", + title = "Using {\LaTeX}", + journal = j-SIGACT, + year = "1988", + volume = "19", + number = "2", + pages = "55--57", + month = "Summer", + acknowledgement = ack-nhfb, + bibdate = "Thu Jul 21 22:42:07 1994", +} + +@Book{Tschichold:AAF87, + author = "Jan Tschichold", + title = "{Ausgew\"ahlte Aufs\"atze \"uber Fragen der Gestalt + des Buches}", + publisher = pub-BH, + year = "1987", + address = pub-BH:adr, + note = "Second printing", + annote = "A set of interesting articles about typography + issues.", + keywords = "typography, layout, design", + acknowledgement = ack-fm, +} + +@Book{Tschichold:FB91, + author = "Jan Tschichold", + title = "The Form of the Book", + address = "London", + publisher = "Lund Humphries", + year = "1991", + ISBN = "0-85331-623-6", + LCCN = "Z116.A3 T7613 1991b", + subtitle = "Essays on the Morality of Good Design", + pages = "xviii + 180", + translator = "Hajo Hadeler", + editor = "Robert Bringhurst", + note = "Originally published in German as Ausgew{\"a}hlte + Ausfs{\"a}tze {\"u}ber Fragen der Gestalt des Buches + und der Typographie by Birkh{\"a}user Verlag, Basel, + 1975", + price = "UK\pounds 18.95", + acknowledgement = ack-mc, + bibdate = "Fri Jul 22 09:20:17 1994", +} + +@Book{Tschichold:NT91, + author = "Jan Tschichold", + title = "{Die Neue Typographie}", + subtitle = "{Ein Handbuch f{\"u}r zeitgem{"a}{\ss} Schaffende}", + publisher = pub-HSCHV, + address = pub-HSCHV:adr, + year = "1991", + history = "Reprint of the first edition from 1928 with supplement + containing articles about the history of books by + Werner Doede, Jan Tschichold and Gerd Fleischman", + pages = "240", + inprint = "yes", + bibliography = "yes", + price = "DM60", + acknowledgement = ack-fm, + bibdate = "Tue Mar 1 12:12:20 1994", +} + +@Book{Tschichold:TM86, + author = "Jan Tschichold", + title = "{Typographische Mitteilungen, Sonderheft Elementare + Typographie}", + publisher = pub-HSCHV, + address = pub-HSCHV:adr, + year = "1986", + ISBN = "3-87439-233-3", + history = "Reprint of the special edition ``elementare + typographie'' of the october issue of Typographische + Mitteilungen 1925.", + pages = "36", + inprint = "yes", + price = "DM24", + acknowledgement = ack-fm, +} + +@Book{Tufte:EI90, + author = "Edward R. Tufte", + title = "Envisioning Information", + publisher = pub-GP, + LCCN = "QA90 .T82 1990", + year = "1990", + address = pub-GP:adr, + pages = "126", + price = "US\$48.00", + bibdate = "Fri Jul 22 09:22:34 1994", +} + +@Book{Tufte:VDQ83, + author = "Edward R. Tufte", + title = "The Visual Display of Quantitative Information", + publisher = pub-GP, + year = "1983", + address = pub-GP:adr, + price = "US\$34.00", + pages = "197", + ISBN = "0-9613921-0-X", + LCCN = "QA90 .T83 1983", + bibdate = "Fri Jul 22 09:21:51 1994", +} + +@TechReport{Tung:STAN-CS-80-824, + author = "{Tung Yun Mei}", + title = "{LCCD}, {A} {Language} for {Chinese} {Character} + {Design}", + institution = inst-STAN-CS, + year = "1980", + type = rep, + number = "STAN-CS-80-824", + note = "See also " # j-SPE # "Vol. 11 (1981), No. 12, pp. + 1273--1292.", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:54:32 1994", +} + +@Book{Tymms:AI87, + author = "W. R. Tymms and M. D. Wyatt", + title = "The Art of Illuminating", + publisher = pub-CHARTWELL, + year = "1987", + address = pub-CHARTWELL:adr, + pages = "104", + ISBN = "1-55521-198-4", + LCCN = "ND3310 .T95 1987", + bibdate = "Fri Jul 22 09:23:54 1994", +} + +@Misc{UKTEX, + key = "UKTEX", + title = "{UK\TeX{}}", + year = "1987" # "\unskip--", + note = "This is an electronic discussion list for {\TeX} + issues in the United Kingdom.", +} + +@Book{Ulichney:DH87, + author = "Robert Ulichney", + title = "Digital Halftoning", + publisher = pub-MIT, + address = pub-MIT:adr, + year = "1987", + pages = "xiv + 362", + ISBN = "0-262-21009-6", + LCCN = "T385 .U451 1987", + bibdate = "Fri Jul 22 09:24:18 1994", +} + +@Booklet{Urban:IL86, + author = "Michael Urban", + title = "An {Introduction} to {\LaTeX}", + howpublished = "Prepared for the TRW Software Productivity Project; + reprinted with permission and distributed by TUG", + year = "1986", + acknowledgement = ack-hk, +} + +@Booklet{Urban:PPL91, + title = "Premiers pas en {\LaTeX}", + author = "Michael {Urban (adaptation fran{\c{c}}\-aise de + {\'E}ric Cornelis)}", + howpublished = j-GUTENBERG, + month = may, + year = "1991", + note = "French translation of \cite{Urban:IL86}.", + acknowledgement = ack-nhfb, + bibdate = "Tue Mar 1 12:12:35 1994", +} + +@InProceedings{Utting:TEX85-183, + crossref = "Lucarella:TSD85", + author = "Ian Utting", + title = "The {R}\^ole of {Device} {Independent} {Output}", + pages = "183--191", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:57:11 1994", +} + +@TechReport{vanderLaan:RRG-24, + author = "C. G. van der Laan and D. C. Coleman and J. R. + Luyten", + title = "{SGML}--{\LaTeX{}} 1.~{Mathematical} formulas", + institution = "Rekencentrum der Rijksuniversiteit te Groningen", + type = "RC-Rapport", + number = "24", + address = "Groningen, The Netherlands", + year = "1989", + note = "(English version).", + bibdate = "Tue Mar 1 12:54:33 1994", +} + +@TechReport{vanderLaan:RRG-27, + author = "C. G. van der Laan and J. R. Luyten", + title = "{\LaTeX{}} Templates: Letter and Article", + institution = "Rekencentrum der Rijksuniversiteit te Groningen", + type = "RC-Rapport", + number = "27", + address = "Groningen, The Netherlands", + month = nov, + year = "1989", + bibdate = "Tue Mar 1 12:54:36 1994", +} + +@Book{vanHerwijnen:PS90, + author = "Eric van Herwijnen", + title = "Practical {SGML}", + publisher = pub-KLUWER, + address = pub-KLUWER:adr, + year = "1990", + ISBN = "0-7923-0635-X", + LCCN = "QA76.73.S44 V36 1990", + pages = "xviii + 307", + inprint = "yes", + price = "UK\pounds24.90, US\$49.00", + review = "in " # j-TEXLINE # " 10, p. 27 and + \cite{Popperlier:NTG-92-1-135} and + \cite{Popperlier:TB13-2-182}", + acknowledgement = ack-mc # " and " # ack-fm, +} + +@InProceedings{vanHuu:TEX85-67, + crossref = "Lucarella:TSD85", + author = "Le van Huu", + title = "{\TeX} and {ISO}/{STPL} standard", + pages = "67--78", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:57:13 1994", +} + +@TechReport{VanWyk:STAN-CS-80-803, + author = "C. J. {Van Wyk}", + title = "A {Language} for {Typesetting} {Graphics}", + institution = inst-STAN-CS, + year = "1980", + type = rep, + number = "STAN-CS-80-803", + acknowledgement = ack-hk, + bibdate = "Tue Mar 1 12:54:38 1994", +} + +@Book{vonBechtolsheim:TP92, + author = "Stephan von Bechtolsheim", + title = "{\TeX} in Practice", + publisher = pub-SV, + year = "1992", + ISBN = "0-387-97296-X", + LCCN = "Z253.4.T47 B4 1993", + address = pub-SV:adr, + price = "US\$169.00", + bibdate = "Fri Jul 22 09:26:02 1994", + pages = "1587, with 31 illustrations", + note = "Four volume set.", + acknowledgement = ack-nhfb, +} + +@Book{vonBechtolsheim:TPB92, + author = "Stephan von Bechtolsheim", + title = "{\TeX} in Practice: Basics", + publisher = pub-SV, + volume = "1", + year = "{\noopsort{1992a}}1992", + ISBN = "0-387-97595-0", + LCCN = "Z253.4.T47 B4 1993", + pages = "359, with 9 illustrations", + address = pub-SV:adr, + price = "US\$49.00", + bibdate = "Fri Jul 22 09:25:55 1994", + acknowledgement = ack-nhfb, +} + +@Book{vonBechtolsheim:TPO92, + author = "Stephan von Bechtolsheim", + title = "{\TeX} in Practice: Output Routines", + publisher = pub-SV, + volume = "4", + year = "{\noopsort{1992d}}1992", + ISBN = "0-387-97598-5", + LCCN = "Z253.4.T47 B4 1993", + pages = "300", + address = pub-SV:adr, + price = "US\$49.00", + bibdate = "Fri Jul 22 09:25:56 1994", + acknowledgement = ack-nhfb, +} + +@Book{vonBechtolsheim:TPP92, + author = "Stephan von Bechtolsheim", + title = "{\TeX} in Practice: Paragraphs, Math, and Fonts", + publisher = pub-SV, + volume = "2", + year = "{\noopsort{1992b}}1992", + ISBN = "0-387-97596-9", + LCCN = "Z253.4.T47 B4 1993", + pages = "384", + address = pub-SV:adr, + price = "US\$49.00", + bibdate = "Fri Jul 22 09:25:58 1994", + acknowledgement = ack-nhfb, +} + +@Book{vonBechtolsheim:TPT92, + author = "Stephan von Bechtolsheim", + title = "{\TeX} in Practice: Tokens, Macros", + publisher = pub-SV, + volume = "3", + year = "{\noopsort{1992c}}1992", + ISBN = "0-387-97597-7", + LCCN = "Z253.4.T47 B4 1993", + pages = "544, with 22 illustrations", + address = pub-SV:adr, + price = "US\$49.00", + bibdate = "Fri Jul 22 09:26:06 1994", + acknowledgement = ack-nhfb, +} + +@Book{Vulis:MTA92, + author = "Michael Vulis", + title = "Modern {\TeX} and its Applications", + publisher = pub-CRC, + address = pub-CRC:adr, + year = "1992", + ISBN = "0-8493-4431-X", + LCCN = "Z253.4.T47V84 1993", + pages = "275", + price = "US\$32.95", + acknowledgement = ack-nhfb, + bibdate = "Wed Dec 15 19:53:27 1993", +} + +@Book{Walden:MFF87, + author = "Jeff Walden", + title = "More File Formats for Popular {PC} software: {A} + Programmer's Reference", + publisher = pub-W, + year = "1987", + ISBN = "0-471-85077-2", + LCCN = "QA76.9.F5 W35 1987", + address = pub-W:adr, + note = "From {\em Computing Reviews\/}: ``The volume under + review deals with (among others) WordPerfect, SuperCalc + 4, and the unusual Microsoft Rich Text Format (RTF). + RTF has the distinction of being entirely readable + ASCII and is reminiscent of {\TeX} command format.'' + Conversion software from RTF to {\LaTeX} written by + Daniel Taupin is available from major {\TeX} archive + sites.", + pages = "369", + price = "US\$24.95", + acknowledgement = ack-nhfb, + bibdate = "Fri Jul 22 11:19:33 1994", +} + +@Article{Waldschmidt:CGF-6-4-359, + author = "H. Waldschmidt", + title = "An editor for constructing graphics with {\TeX}", + journal = j-CGF, + year = "1987", + volume = "6", + number = "4", + pages = "359--364", + month = dec, + acknowledgement = ack-nhfb, + bibdate = "Thu Jul 21 22:34:23 1994", +} + +@Book{Walsh:MTW94, + author = "Norman Walsh", + title = "Making {\TeX} Work", + publisher = pub-ORA, + year = "1994", + ISBN = "1-56592-051-1", + address = pub-ORA:adr, + pages = "xxxvi + 483", + price = "US\$29.95", + acknowledgement = ack-nhfb, + bibdate = "Thu May 12 08:24:59 1994", +} + +@Book{Weyerich:LLL93a, + author = "Astrid Weyerich and Rainer Kl{\"o}tzer and Sabine + Stromp and Kerstin Rieder and Rainer Oesterreich", + title = "{\LaTeX} Lernen leicht gemacht\emdash Eine + aufgabenorientierte Anleitung\emdash Teil {A}: + Arbeitsheft", + publisher = pub-TUB, + year = "1993", + ISBN = "3-7983-1546-9", + address = pub-TUB:adr, + pages = "100", + acknowledgement = ack-rz, + bibdate = "Tue Mar 1 12:13:06 1994", +} + +@Book{Weyerich:LLL93b, + author = "Astrid Weyerich and Rainer Kl{\"o}tzer and Sabine + Stromp and Kerstin Rieder and Rainer Oesterreich", + title = "{\LaTeX} Lernen leicht gemacht\emdash Eine + aufgabenorientierte Anleitung\emdash Teil {B}: Manual", + publisher = pub-TUB, + year = "1993", + ISBN = "3-7983-1546-9", + address = pub-TUB:adr, + pages = "176", + acknowledgement = ack-rz, + bibdate = "Tue Mar 1 14:25:32 MET 1994", +} + +@Book{White:GDE88, + author = "Jan V. White", + title = "Graphic Design for the Electronic Age", + publisher = pub-WGP, + year = "1988", + address = pub-WGP:adr, + ISBN = "0-8230-2122-X", + LCCN = "Z286.D47 W5 1988", + annote = "A very good book on typography and document design; + main topics are components of larger documents.", + keywords = "typography, layout, design", + acknowledgement = ack-nhfb # " and " # ack-fm, + pages = "xi + 211", + bibdate = "Wed Dec 15 10:59:04 1993", +} + +@Book{White:GP90, + author = "Jan V. White", + title = "Great Pages", + publisher = pub-SERIF, + address = pub-SERIF:adr, + year = "1990", + ISBN = "1-878567-01-2", + LCCN = "Z286.D47 W5 1990", + pages = "128", + bibdate = "Wed Dec 15 10:59:05 1993", +} + +@Book{White:HST87, + author = "Alex White", + title = "How to spec type", + publisher = pub-WGP, + address = pub-WGP:adr, + year = "1987", + ISBN = "0-8230-2473-3", + LCCN = "Z253.W46 1987", + pages = "128", + abstract = "This book is divided into two parts. {\em Part One: + Preparing the Copy for Type}, discusses fundamental + terms and introduces the principles of type speccing. + {\em Part Two: Type Samples}, describes how to spec + typographic examples drawn in thumbnail form, how to + mark up the manuscript copy, and then shows the final + typeset results.", + annote = "A gold mine of ideas, concepts, and their realisation. + Beside general introductions into typographic spec + techniques, the book discusses topics like Runarounds, + Initial Caps, Tables, Rules and Boxes, and many more.", + keywords = "typography, layout, design, fonts, specs", + acknowledgement = ack-fm, + price = "US\$14.95", + bibdate = "Fri Jul 22 09:26:47 1994", +} + +@Book{White:MG83, + author = "Jan V. White", + title = "Mastering Graphics", + publisher = pub-BOWK, + year = "1983", + address = pub-BOWK:adr, + ISBN = "0-8352-1704-3", + LCCN = "Z253 .W47 1983", + pages = "xiii + 180", + libnote = "Not yet in my library.", + bibdate = "Wed Dec 15 10:59:05 1993", +} + +@Article{Wieckowski:PCkurier-3-15-89, + author = "Z. Wi{\k{e}}ckowski", + author-l = lang-pl, + title = "{\TeX} --- polskie znaki inaczej", + title-l = lang-pl, + title-t1 = "{\TeX} --- Polish letters another way", + title-t1-l = lang-eng, + journal = j-PCkurier, + year = "1992", + number = "15", + pages = "89", + month = "lipiec", + month-l = lang-pl, + note = "In Polish.", + acknowledgement = ack-md, + bibdate = "Thu Jun 23 18:23:42 1994", +} + +@Book{Williamson:MBD83, + author = "Hugh Williamson", + title = "Methods of Book Design: The Practice of an Industrial + Craft", + publisher = pub-YUP, + address = pub-YUP:adr, + year = "1983", + ISBN = "0-300-02663-3 (hardcover), 0-300-03035-5 (paperback)", + LCCN = "Z116.A3 W5 1983", + edition = "Third", + history = "First edition, 1956, and second edition, 1966, + published by Oxford University Press.", + pages = "xiv + 391", + note = "Bibliography, many examples and illustrations, index", + annote = "That the {\em frontispiece} is the layout for the + title-page opposite indicates the content of the + book.", + abstract = "Since its first edition was published in 1956, this + book has been recognised as a classic work, and has + become a basic tool for the practising book designer. + \missing{} Writing for authors, booksellers, + librarians, and the general reader, as well as for + teachers and students of printing design and for + publishers and printers, the author assumes no + technical knowledge in his readers. He deals with such + matters as the preparation of copy, the selection and + arrangement of type, the designer's part in book + illustration and jacket design, and the economics of + book production; and he explains the materials and + techniques of book production and their effect on the + design of books. His analysis, for the benefit of the + designer, of computer-centered digital + photo-composition, based on his first-hand experience + as a printer and typographer, is of particular interest + and value. \missing{} The third edition has been + completely rewritten to cover innovations in book + production tendencies and techniques over the last + twenty years, in the light of the author's continued + experience in publishing and printing.", + inprint = "yes", + price = "UK\pounds13", + glossary = "yes", + printermarks = "no", + bibliography = "yes", + index = "yes", + keywords = "book design", + acknowledgement = ack-jpl # " and " # ack-fm, + bibdate = "Fri Jul 22 09:27:41 1994", +} + +@Article{Winkel:COLL-MICRO-5-1-93, + author = "Brian J. Winkel", + title = "{\TeX}: The Software used to Produce this Journal", + journal = j-COLL-MICRO, + year = "1988", + volume = "5", + number = "1", + pages = "93--96", + month = apr # "/" # may, + acknowledgement = ack-nhfb, + bibdate = "Thu Jul 21 22:35:39 1994", +} + +@TechReport{Wolcott:NBS-424, + author = "N. M. Wolcott and J. Hilsenrath", + title = "A Contribution to Computer Typesetting Techniques: + Tables of Coordinates for {Hershey's} Repertory of + Occidental Type Fonts and Graphic Symbols", + institution = "U.~S. National Bureau of Standards", + year = "1976", + number = "Special Publication 424", + month = apr, + bibdate = "Tue Mar 1 12:54:41 1994", +} + +@Book{Wonneberger:L87, + author = "Reinhard Wonneberger", + title = "{\LaTeX}", + series = "Addison-Wesley Kompaktf{\"u}hrer", + publisher = pub-AWV, + address = pub-AWV:adr, + year = "1987", + pages = "141", + ISBN = "3-925118-46-2", +} + +@Book{Wonneberger:L88, + author = "Reinhard Wonneberger", + title = "{\LaTeX}", + series = "Addison-Wesley Kompaktf{\"u}hrer", + edition = "Second", + publisher = pub-AWV, + address = pub-AWV:adr, + year = "1988", + ISBN = "3-89319-152-6", + pages = "xiv + 141", + acknowledgement = ack-nhfb, + bibdate = "Wed Jul 6 15:01:56 1994", +} + +@Book{Wonneberger:L93, + author = "Reinhard Wonneberger", + title = "{\LaTeX}", + series = "Addison-Wesley Kompaktf{\"u}hrer", + edition = "Third", + publisher = pub-AWV, + address = pub-AWV:adr, + year = "1993", + ISBN = "3-89319-589-0", + price = "DM29.80", + month = apr, + pages = "xvi + 166", + abstract = "(Umschlagtext:) {\LaTeX} ist ein im akademischen + Umfeld weit verbreitetes Formatierungswerkzeug f{\"u}r + schwierige Texte. Technisch gesehen handelt es sich um + ein spezielles umfangreiches Makropaket f{\"ur} Donald + E. Knuths Satzsystem {\TeX}. Der Benutzer braucht + normalerweise keine {\TeX}-Kenntnisse. Der bew{\"a}hrte + Addison-Wesley-Kompaktf{\"u}hrer liegt nunmehr in + dritter, erweiterter Auflage vor. Bei der Erweiterung + geht es im wesentlichen um einen neuen Abschnitt ``uber + den `German Style''', eine seit Erscheinen der + fr{\"u}heren Auflage neu entwickelte und inzwischen + weit verbreitete Erg{\"a}nzung von {\LaTeX} im Hinblick + auf die Besonderheiten der deutschen Sprache.", + bibdate = "Thu May 27 07:45:25 1993", +} + +@InProceedings{Wonneberger:SDP89, + crossref = "Nadrchal:ESS89", + author = "Reinhard Wonneberger", + title = "Structured document processing: the {\LaTeX} + approach", + pages = "177--189", + note = "Invited paper.", + acknowledgement = ack-rw, + bibdate = "Tue Mar 1 12:57:15 1994", +} + +@InProceedings{Wonneberger:TPT92, + author = "Reinhard Wonneberger", + title = "{\TeX} for Philological Typesetting", + booktitle = "Proceedings of the XXXII International Congress for + Asian and North African Studies. Hamburg, 25th--30th + August 1986", + year = "1992", + pages = "595--596", + series = "Zeitschrift der Deutschen Morgenl{\"a}ndischen + Gesellschaft, Supplement", + publisher = pub-Steiner, + address = pub-Steiner:adr, + number = "IX", + ISBN = "3-515-04808-1", + acknowledgement = ack-rw, + bibdate = "Tue Mar 1 12:57:19 1994", +} + +@Misc{Wood:plj, + key = "POSTSCRIPTLJ", + editor = "Patrick Wood", + title = "{\POSTSCRIPT{}} {Language} {Journal}", + howpublished = "Pipeline Associates, Inc., P. O. Box 5763, Parsippany, + NJ 07054", + bibdate = "Tue Mar 1 12:16:37 1994", +} + +@Book{Wyrostek:LSP92, + author = "Piotr {Wyrostek, translator}", + title = "{\LaTeX}: System przygotowywania dokument{\'o}w. + Przewodnik u{\.z}ytkownika i podr{\k{e}}cznik", + publisher = pub-ARIEL, + year = "1992", + ISBN = "83-900460-1-6", + address = pub-ARIEL:adr, + note = "Polish translation of \cite{Lamport:LDP86}.", + price = "91000 zl", + bibdate = "Thu Jul 21 23:00:45 1994", + acknowledgement = ack-jb, +} + +@Book{Zapf:HZD87, + author = "Hermann Zapf", + title = "Hermann Zapf and His Design Philosophy: Selected + Articles and Lectures on Calligraphy and Contemporary + Developments in Type Design, with Illustrations and + Bibliographical Notes, and a Complete List of his + Typefaces", + publisher = pub-STA, + year = "1987", + address = pub-STA:adr, + ISBN = "0-941447-00-6", + LCCN = "Z250 .Z323 1987", + price = "US\$45.00", + pages = "254", + bibdate = "Fri Jul 22 09:28:29 1994", +} + +%% ===================================================================== +%% We put all Proceedings entries at the end so they can be +%% cross-referenced by earlier entries. This order is regrettably +%% required by BibTeX. +%% ===================================================================== + +@Proceedings{Andre:AJM83, + title = "Actes des {Journ}\'{ees} sur la {Manipulation} de + {Documents}, Rennes 4--6 Mai 1983", + year = "1983", + editor = "Jacques Andr\'e", + publisher = pub-INRIA, + address = pub-INRIA:adr, + acknowledgement = ack-hk, +} + +@Proceedings{Andre:INRIA85, + booktitle = "Typographie et Informatique, 21--25 janvier 1985", + title = "Typographie et Informatique, 21--25 janvier 1985", + year = "1985", + editor = "Jacques Andr\'e", + publisher = pub-INRIA, + address = pub-INRIA:adr, + acknowledgement = ack-hk, +} + +@Proceedings{Andre:RID89, + title = "Raster Imaging and Digital Topography", + year = "1989", + editor = "Jacques Andr{\'e} and Roger Hersch", + publisher = pub-CUP, + address = pub-CUP:adr, + ISBN = "0-521-37490-1", + LCCN = "Z253.3 .R37 1989", + pages = "x + 292", + bibdate = "Fri Jul 22 09:29:08 1994", +} + +@Proceedings{Clark:TAU88, + title = "{\TeX}: {Applications}, Uses, Methods. {Proceedings}, + {Third} {European} {\TeX} {Conference}, {\TeX88}, + {Exeter}, {August} 1988", + year = "1990", + editor = "Malcolm Clark", + publisher = pub-EH, + address = pub-EH:adr, + ISBN = "0-13-912296-6", + LCCN = "Z253.4.T47 C45 1990", + pages = "277", + price = "US\$69.95", + bibdate = "Fri Jul 22 09:29:34 1994", +} + +@Proceedings{Desarmenien:TSD86, + key = "TEXSCIDOC86", + editor = "Jacques D{\'e}sarm{\'e}nien", + title = "{\TeX} for Scientific Documentation. Second European + Conference. Strasbourg, France, June 19--21, 1986. + Proceedings", + booktitle = "{\TeX} for Scientific Documentation. Second European + Conference. Strasbourg, France, June 19--21, 1986. + Proceedings", + year = "1986", + number = "236", + series = "Lecture Notes in Computer Science", + publisher = pub-SV, + address = pub-SV:adr, + pages = "204", + acknowledgement = ack-hk, + ISBN = "3-540-16807-9, 0-387-16807-9 (paperback)", + LCCN = "T 385 E97 1989", + bibdate = "Thu Jul 21 23:10:24 1994", +} + +@Proceedings{Heck:DPAS92, + editor = "Andr{\'e} Heck", + title = "Desktop Publishing in Astronomy {\&} Space Sciences. + Strasbourg Astronomical Observatory, [1--3] October, + 1991", + booktitle = "Desktop Publishing in Astronomy {\&} Space Sciences. + Strasbourg Astronomical Observatory, [1--3] October, + 1991", + publisher = pub-WORLD-SCI, + address = pub-WORLD-SCI:adr, + year = "1992", + ISBN = "981-02-0915-0", + LCCN = "QB14.2 .D47 1992", + pages = "xi + 240", + acknowledgement = ack-bnb, + note = "In addition to the papers presented at the colloquium, + each paper is followed by a summary of the discussion + about that paper.", + bibdate = "Fri Jul 22 09:30:26 1994", +} + +@Proceedings{Lucarella:TSD85, + key = "TEXSCIDOC85", + editor = "Dario Lucarella", + title = proc-TEX85, + booktitle = proc-TEX85, + year = "1985", + ISBN = "0-201-13399-7", + LCCN = "Q224.E97 1985", + pages = "204", + publisher = pub-AW, + address = pub-AW:adr, + acknowledgement = ack-hk, + bibdate = "Fri Jul 22 09:31:21 1994", +} + +@Proceedings{Miller:PROTEXT-I, + title = "{PROTEXT I}: Proceedings of the First International + Conference on Text Processing Systems held in Dublin + from 24th to 26th October, 1984", + year = "1984", + editor = "John J. H. Miller", + ISBN = "0-906783-41-0 (hardcover), 0-906783-42-9 (paper)", + LCCN = "QA76.9.T48 I591 1984", + pages = "vii + 59", + publisher = pub-BP, + address = pub-BP:adr, + acknowledgement = ack-hk, + bibdate = "Fri Jul 22 09:32:58 1994", +} + +@Proceedings{Miller:PROTEXT-II, + title = "{PROTEXT II}: Proceedings of the Second International + Conference on Text Processing Systems held in Dublin + from 23rd to 25th October, 1985", + year = "1985", + editor = "John J. H. Miller", + pages = "viii + 212", + ISBN = "0-906783-50-X (hardcover), 0-906783-40-2 (paperback)", + LCCN = "QA76.9.T48 I561 1985", + publisher = pub-BP, + address = pub-BP:adr, + acknowledgement = ack-hk, + bibdate = "Fri Jul 22 09:35:19 1994", +} + +@Proceedings{Miller:PROTEXT-III, + title = "{PROTEXT III}: Proceedings of the Third International + Conference on Text Processing Systems held in Dublin + from 22nd to 24th October, 1986", + year = "1986", + editor = "John J. H. Miller", + pages = "vii + 169", + ISBN = "0-906783-57-7 (hardcover), 0-906783-58-5 (paperback)", + LCCN = "QA76.9.T48 I561 1986", + publisher = pub-BP, + address = pub-BP:adr, + acknowledgement = ack-hk, + bibdate = "Fri Jul 22 09:33:46 1994", +} + +@Proceedings{Miller:PROTEXT-IV, + title = "{PROTEXT IV}: Proceedings of the Fourth International + Conference on Text Processing Systems, 20--22 October + 1987, Boston, {USA}", + year = "1987", + editor = "John J. H. Miller", + ISBN = "0-906783-80-1 (hardcover), 0-906783-79-8 (paperback)", + LCCN = "QA76.9.T48 I571 1987", + pages = "vii + 153", + publisher = pub-BP, + address = pub-BP:adr, + bibdate = "Fri Jul 22 09:38:44 1994", +} + +@Proceedings{Nadrchal:ESS89, + key = "CTP", + editor = "J. Nadrchal", + organization = "European Summer Schools on Computing Techniques in + Physics", + title = "Man-Machine Interface in the Scientific Environment. + {Proceedings} of the 8th European Summer School on + Computing Techniques in Physics. Skalsk{\'y} + Dv{\accent'27u}r, Czecholsovakia, 19--28 {September} + 1989", + booktitle = "Man-Machine Interface in the Scientific Environment. + {Proceedings} of the 8th European Summer School on + Computing Techniques in Physics. Skalsk{\'y} + Dv{\accent'27u}r, Czecholsovakia, 19--28 {September} + 1989", + series = j-CPC, + volume = "61", + publisher = pub-NH # "; " # "Elsevier Science Publishers B. V.", + year = "1990", + address = pub-NH:adr, + note = "In addition to the papers presented at the colloquium, + each paper is followed by a summary of the discussion + about that paper.", + bibdate = "Sat Mar 12 18:25:46 1994", +} + +@Proceedings{Pietrowski:NIPT91, + title = proc-NIPT91, + booktitle = proc-NIPT91, + year = "1991", + editor = "Ken Pietrowski", + publisher = pub-IST, + address = pub-IST:adr, + volume = "2", + bibdate = "Sat Mar 12 18:27:13 1994", +} + +@Proceedings{vanderVeer:HCI88, + title = "Human-computer Interaction: Psychonomic Aspects. + Conference of the Dutch Psychonomic Society", + year = "1988", + ISBN = "0-387-18901-7", + editor = "Gerrit C. van der Veer and Gijsbertus Mulder", + publisher = pub-SV, + address = pub-SV:adr, + pages = "458", + acknowledgement = ack-nhfb, + bibdate = "Thu Jul 21 23:41:57 1994", +} + +@Proceedings{vanVliet:DMT88, + title = "Document Manipulation and Typography. Proceedings of + the International Conference on Electronic Publishing, + Document Manipulation and Typography, Nice (France), + April 20--22, 1988", + year = "1988", + ISBN = "0-521-36294-6", + LCCN = "Z286.E43 I571 1988", + editor = "J. C. van Vliet", + publisher = pub-CUP, + address = pub-CUP:adr, + pages = "288", + price = "US\$47.50", + acknowledgement = ack-hk, + bibdate = "Fri Jul 22 08:43:13 1994", +} + +@Proceedings{vanVliet:TPDM86, + editor = "J. C. van Vliet", + booktitle = "Text Processing and Document Manipulation: Proceedings + of the International Conference, University of + Nottingham, 14--16 April 1986", + title = "Text Processing and Document Manipulation: Proceedings + of the International Conference, University of + Nottingham, 14--16 April 1986", + publisher = pub-CUP, + address = pub-CUP:adr, + year = "1986", + pages = "viii + 277", + ISBN = "0-521-32592-7", + LCCN = "QA76.9.T48 T481 1986", + month = apr, + acknowledgement = ack-kb, + bibdate = "Fri Jul 22 09:41:00 1994", +} + +@Proceedings{Zlatuska:ET92, + title = "Euro{\TeX} 92: Proceedings of the 7th European {\TeX} + Conference", + year = "1992", + ISBN = "80-210-0480-0", + editor = "Ji{\v r}{\'\i} Zlatu{\v s}ka", + publisher = pub-MASARYKOVA, + address = pub-MASARYKOVA:adr, + month = sep, + pages = "viii + 330", + bibdate = "Fri Nov 27 12:29:36 1992", + acknowledgement = ack-nhfb, +} + +%%% This is for GNU Emacs file-specific customization: +%%% Local Variables: +%%% bibtex-extra-fields: ("acknowledgement") +%%% End: diff --git a/Master/texmf-dist/bibtex/bib/beebe/texbook2.bib b/Master/texmf-dist/bibtex/bib/beebe/texbook2.bib new file mode 100644 index 00000000000..43e9f0d84c4 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/beebe/texbook2.bib @@ -0,0 +1,8427 @@ +%%% -*-BibTeX-*- +%%% /u/sy/beebe/tex/bib/texbook2.bib, Mon Feb 11 11:29:01 1991 +%%% Edit by Nelson H. F. Beebe +%%% +%%% ==================================================================== +%%% BibTeX-file{ +%%% author = "Nelson H. F. Beebe", +%%% version = "1.217", +%%% date = "01 July 2003", +%%% time = "18:21:29 MDT", +%%% filename = "texbook2.bib", +%%% address = "Center for Scientific Computing +%%% University of Utah +%%% Department of Mathematics, 110 LCB +%%% 155 S 1400 E RM 233 +%%% Salt Lake City, UT 84112-0090 +%%% USA", +%%% telephone = "+1 801 581 5254", +%%% FAX = "+1 801 581 4148", +%%% checksum = "23342 8427 31867 285356", +%%% email = "beebe at math.utah.edu, beebe at acm.org, +%%% beebe at computer.org, beebe at ieee.org +%%% (Internet)", +%%% codetable = "ISO/ASCII", +%%% supported = "yes", +%%% docstring = "This BibTeX file records books and periodicals +%%% prepared with TeX (but not specifically +%%% about TeX). For a listing of publications +%%% about TeX, see texbook1.bib and +%%% texbook3.bib; they too will have been +%%% typeset by TeX. The ISBN fields will be +%%% printed if the is-alpha.bst or is-plain.bst +%%% style files are used. +%%% +%%% At version 1.217, the year coverage looked +%%% like this: +%%% +%%% 1979 ( 1) 1988 ( 41) 1997 ( 3) +%%% 1980 ( 0) 1989 ( 64) 1998 ( 5) +%%% 1981 ( 5) 1990 ( 99) 1999 ( 3) +%%% 1982 ( 5) 1991 ( 80) 2000 ( 2) +%%% 1983 ( 3) 1992 ( 33) 2001 ( 2) +%%% 1984 ( 4) 1993 ( 15) 2002 ( 1) +%%% 1985 ( 12) 1994 ( 10) 2003 ( 2) +%%% 1986 ( 14) 1995 ( 5) +%%% 1987 ( 21) 1996 ( 5) +%%% +%%% Article: 2 +%%% Book: 398 +%%% Booklet: 1 +%%% Misc: 11 +%%% Periodical: 93 +%%% Proceedings: 9 +%%% TechReport: 1 +%%% +%%% Total entries: 515 +%%% +%%% CONVENTIONS +%%% +%%% Books are tagged by the first author's last +%%% name, a colon, up to 3 upper-case letters +%%% taken from the first three upper-case words +%%% in the title (ignoring words like A, And, +%%% The), followed by the last two digits of +%%% the publication year. If there is a volume +%%% entry, it is appended to the tag, prefixed +%%% by a hyphen. +%%% +%%% For Dutch authors, a van part is included +%%% in the author tag. For names with accented +%%% letters, accents are dropped in the author +%%% tag. +%%% +%%% This scheme is systematic enough that it +%%% can be programmed: most of the +%%% Addison-Wesley book entries were created +%%% with an awk program from a dump of the AW +%%% database supplied by Mona Zeftel. Older +%%% entries in this bibliography were modified +%%% on 28-Nov-1990 to conform to this tagging +%%% scheme. +%%% +%%% The choice of a limit of 3 letters was +%%% determined from experiments on the +%%% Addison-Wesley collection. Long tags are +%%% undesirable because they are a nuisance to +%%% type, and also interfere with the tagged +%%% bibliography output produced using the +%%% LaTeX showtags style option. +%%% +%%% Journal article tags look like +%%% author:abbrev-volume-number-page, where the +%%% author part is the last name of the first +%%% author: for example, +%%% Bhattacharya:PR203-1-203. +%%% +%%% Technical report tags look like +%%% author:abbrev-number: for example, +%%% Billawala:STAN-CS-89-1256. +%%% +%%% The Como InProceedings entries look like +%%% author:TEX85-page: for example, +%%% Agostini:TEX85-117. Other InProceedings +%%% entries should follow a similar style. +%%% +%%% Entries are stored ordered by the BibTeX +%%% tag name, independent of the entry type +%%% (the GNU Emacs function sort-bibtex-entries +%%% can be used to ensure correct ordering). +%%% However, entries that are cross-referenced +%%% by others are stored at the end of the +%%% file, since that order is required by +%%% BibTeX. +%%% +%%% With few exceptions, value fields for +%%% acknowledgement, address, journal, and +%%% publisher keywords should use macros +%%% defined in the string preamble below. This +%%% helps to ensure consistency, and reduces +%%% the entry sizes. Address entries must +%%% always include the country. +%%% +%%% `The New Hacker's Dictionary' listed below +%%% includes this remark about TeX: +%%% +%%% ``TeX /tekh/ n. An extremely powerful +%%% macro-based text formatter written by +%%% Donald E. Knuth, very popular in the +%%% computer-science community (it is good +%%% enough to have displaced Unix troff(1), the +%%% other favored formatter, even at many Unix +%%% installations). TeX fans insist on the +%%% correct (guttural) pronunciation, and the +%%% correct spelling (all caps, squished +%%% together, with the E depressed below the +%%% baseline; the mixed-case `TeX' is +%%% considered an acceptable kluge on +%%% ASCII-only devices). Fans like to +%%% proliferate names from the work `TeX' -- +%%% such TeXnician (TeX user), TeXhacker (TeX +%%% programmer), TeXmaster (competent TeX +%%% programmer), TeXhax, and TeXnique. [This +%%% book was typeset in TeX. --- ESR] +%%% +%%% Knuth began TeX because he had become +%%% annoyed at the declining quality of the +%%% typesetting in volumes I--III of his +%%% monumental Art of Computer Programming (see +%%% bible). In a manifestation of the typical +%%% hackish urge to solve the problem at hand +%%% once and for all, he began to design his +%%% own typesetting language. He thought he +%%% would finish it on his sabbatical in 1978; +%%% he was wrong by only about 8 years. The +%%% language was finally frozen around 1985, +%%% but volume IV of The Art of Computer +%%% Programming has yet to appear as of +%%% mid-1991. The impact and influence of TeX's +%%% design has been such that nobody minds this +%%% very much. Many grand hackish projects have +%%% started as a bit of tool-building on the +%%% way to something else; Knuth's diversion +%%% was simply on a grander scale than most.'' +%%% +%%% The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility." +%%% } +%%% ==================================================================== + +@Preamble{"\input bibnames.sty" + # "\input path.sty " + # "\hyphenation{Alex-an-dra Buch-er Di-ode micro-eco-nomic Nij-hoff + trig-o-nom-etry Mat-thew na-tion-al-e-ko-nom or-tho-pae-dics + phys-ics Rie-del sek-el-skift-ets Unu-mane Wald-ing-er + Wy-daw-nic-twa Zieg-ler}"} + +%%====================================================================== +%% +%% CONVENTIONS +%% +%% Books are tagged by the first author's last name, a colon, up to 3 +%% upper-case letters taken from the first three upper-case words in +%% the title (ignoring words like A, And, The), followed by the last +%% two digits of the publication year. If there is a volume entry, it +%% is appended to the tag, prefixed by a hyphen. +%% +%% This scheme is systematic enough that it can be programmed: most of +%% the Addison-Wesley book entries were created with an awk program +%% from a dump of the AW database supplied by Mona Zeftel. Older +%% entries in this bibliography were modified on 28-Nov-1990 to +%% conform to this tagging scheme. +%% +%% The choice of a limit of 3 letters was determined from experiments on +%% the Addison-Wesley collection. Long tags are undesirable because +%% they are a nuisance to type, and also interfere with the tagged +%% bibliography output produced using the LaTeX showtags style option. +%% +%% Journal tags are still somewhat ad-hoc, and need to be systematized. +%% +%% Entries are stored ordered by the BibTeX tag name, independent of +%% the entry type. +%% +%% With few exceptions, value fields for acknowledgement, address, +%% journal, and publisher keywords should use macros defined in the +%% string preamble below. This helps to ensure consistency, and +%% reduces the entry sizes. Address entries must always include the +%% country. +%%====================================================================== + +%%====================================================================== +%% From the author (NHFB): +%% +%% The original version of this file was put together by merging +%% bibliographies that Barbara Beeton at the American Mathematical +%% Society, and editor of TUGboat, and I had collected. +%% +%% This file is likely to be enlarged by contributions from many people, +%% and we may learn more about the process of using TeX for book and +%% journal publication by making contact with one another through these +%% acknowledgements. +%% +%% The BibTeX string facility is useful here; acknowledgements will +%% begin "ack-" followed by last name or initials. I have not written a +%% BibTeX style modification that will list these acknowledgements in an +%% output bibliography. The next time it rains... +%%====================================================================== + +%% Acknowledgement abbreviations: + +@String{ack-arr = "Alan R. Rogers, + Department of Anthropology, + 206 Stewart Building, + University of Utah, + Salt Lake City, UT 84112, USA, + Tel: +1 801 581 5529, + e-mail: \path|rogers@anthro.utah.edu|"} + +@String{ack-bc = "Bart Childs, + e-mail: \path|bart@cs.tamu.edu|"} + +@String{ack-bk = "Prof. Dr. Bernd Kahlbrandt, + Fachhochschule Hamburg, + Fachbereich Elektrotechnik und Informatik, + Berliner Tor 3, + D-20099 Hamburg, + Tel.: (040) 2488-3182, + Tel.: (040) 53 89 78 91, + Fax.: (040) 2488-3121, + email: \path|khb@informatik.fh-hamburg.de|, + www homepage: \path|http://users.informatik.fh-hamburg.de/~khb|"} + +@String{ack-bkph = "Berthold K. P. Horn, + e-mail: \path|bkph@ai.mit.edu|"} + +@String{ack-bnb = "Barbara N. Beeton + e-mail: \path|bnb@math.ams.org|"} + +@String{ack-cb = "Claudio Beccari, + Dipartimento di Elettronica, + Politecnico di Torino, + Corso Duca degli Abruzzi, 24, + I10129 Torino, Italy, + e-mail: \path|beccari@itopoli.bitnet|, + \path|beccari@polito.it|"} + +@String{ack-dfl = "Dag F. Langmyhr, + Department of Informatics, + P.O. Box 1080, + University of Oslo, + N-0316 Oslo, Norway, + e-mail: \path|dag@ifi.uio.no|"} + +@String{ack-dgk = "David G. Kay, + e-mail: \path|kay@ics.uci.edu|"} + +@String{ack-dw = "Dominik Wujastyk, + Wellcome Institute for the History of Medicine, + 183 Euston Road, + London NW1 2BP, UK, + Tel: +44-71-383-4252, + e-mail: Janet: \path|d.wujastyk@uk.ac.ucl|"} + +@String{ack-fl = "Frank Lusardi, + 305 East 40th Street, No. 6X, + New York, NY 10016, USA, + Tel: (212) 661-2472"} + +@String{ack-fs = "Franc Solina, + Faculty of Electrical Engineering and Computer Science, + University of Ljubljana, + Slovenia, Yugoslavia, + e-mail: \path|franc%ninurta.fer.yu@mcsun.eu.net|"} + +@String{ack-ga-gt = "Graham Asher and Graham Toal, + Current Science, + 34--42 Cleveland Street, + London, UK, + e-mail: Internet: \path|gtoal@ed.ac.uk|"} + +@String{ack-gg = "Grant Gustafson, + Department of Mathematics, + University of Utah, + Salt Lake City, UT 84112, USA, + Tel: +1 801 581 6879, + e-mail: Internet: \path|gustafso@math.utah.edu|"} + +@String{ack-gs = "Guy Steele, + Thinking Machines Corporation, + 245 First Street, + Cambridge, MA 02142, USA, + e-mail: \path|gls@Think.COM|"} + +@String{ack-gswan = "George Swan, + Subject Bibliography Unit, + Wilson Library, + University of Minnesota, + Minneapolis, MN 55455, USA, + Tel: +1 612 624 5860, + e-mail: \path|g-swan@staff.tc.umn.edu|"} + +@String{ack-ho = "Hans G. Othmer, + Department of Mathematics, + University of Utah, + Salt Lake City, UT 84112, + USA, + Tel: +1 801 581 3901, + e-mail: \path|othmer@math.utah.edu|"} + +@String{ack-hv = "Hal R. Varian, + Dept of Economics, + University of Michigan, + Ann Arbor, MI 48109, USA, + e-mail: \path|hal@alfred.econ.lsa.umich.edu|"} + +@String{ack-jc = "Jason Christian, + e-mail: \path|jason@gordy.ucdavis.edu|"} + +@String{ack-jl = "John Lancaster, + e-mail: Internet: \path|JLANCASTER@amherst.edu|"} + +@String{ack-jr = "Joseph Romanovsky, + e-mail: Internet: \path|jvr@or.math.lgu.spb.su|"} + +@String{ack-kb = "Karl Berry, + e-mail: \path|karl@cs.umb.edu|"} + +@String{ack-kph = "K. P. Hart, + Faculty of Mathematics and Informatics, + TU Delft, + Postbus 5031, + 2600 GA Delft, + The Netherlands, + e-mail: \path|wiawkph@dutrun2.tudelft.nl|"} + +@String{ack-lmp = "Lori McWilliam Pickert, + Archetype Publishing Inc., + Tel: (217) 359-8178, + FAX: (217) 359-8192, + e-mail: \path|jcs@wri.com|"} + +@String{ack-mb = "Michael Barr, + McGill University, + Mathematics and Statistics, + 805 Sherbrooke Street West, + Montreal H3A 2K6, Quebec, Canada, + Tel: (514) 398-3805, + e-mail: Internet: \path|barr@triples.math.mcgill.ca|"} + +@String{ack-mc = "Malcolm Clark, + e-mail: \path|malcolm@icrf.ac.uk|"} + +@String{ack-md = "Monika D{\k{a}}bkowska, + Uniwersytet Warszawski, + wydzia{\l} Matematyki, Informatyki i Mechaniki Stosowanej, + Warszawa, Poland"} + +@String{ack-mg = "Michel Goossens, + e-mail: \path=Michel.Goossens@cern.ch="} + +@String{ack-mjp = "Michael J. Piff, + Department of Pure Mathematics, PO Box 597, + Hicks Noisy Building Site, Hounsfield Road, + Sheffield S10 2UN, UK. + Tel. SHEFFIELD(0742) 768555 Extension 4431. + JANET: \path|mpiff@uk.ac.shef.pa| or + \path|mpiff@uk.ac.shef.ibm|"} + +@String{ack-mz = "Mona Zeftel, + Addison-Wesley Publishing Company, + Reading, MA, USA, + e-mail: \path|crw@wjh12.harvard.edu|"} + +@String{ack-nad = "Noel Doughty, + e-mail: \path|nad@phys.canterbury.ac.nz|"} + +@String{ack-ngm = "Niels Gylling Mortensen, + e-mail: \path|gylling@risoe.dk|"} + +@String{ack-nhfb = "Nelson H. F. Beebe, + Center for Scientific Computing, + University of Utah, + Department of Mathematics, 110 LCB, + 155 S 1400 E RM 233, + Salt Lake City, UT 84112-0090, USA, + Tel: +1 801 581 5254, + FAX: +1 801 581 4148, + e-mail: \path|beebe@math.utah.edu|, + \path|beebe@acm.org|, + \path|beebe@computer.org|, + \path|beebe@ieee.org| (Internet), + URL: \path|http://www.math.utah.edu/~beebe/|"} + +@String{ack-np = "Nico A. F. M. Poppelier, + TeXnique, + Schiermonnikoog 7, + 3524 AH Utrecht, + The Netherlands, + e-mail: BITnet: \path|Poppelier@Hutruu53| or + Internet: \path|N.Poppelier@elsevier.NL|"} + +@String{ack-nw = "Erich Neuwirth, + Institute for Statistics and Computer Science, + University of Vienna, + Universitaetsstr. 5/9, + A-1010 Vienna, + Austria, + e-mail: \path|a4422DAB@vm.univie.ac.at|, + BITnet: \path|A4422DAB@AWIUNI11|"} + +@String{ack-pcd = "Peter Dibble, + e-mail: \path|mcrware!dibble@uunet.UU.NET|"} + +@String{ack-pj = "Peter Jansson, + Department of Geology and Geophysics, + University of Minnesota, + Pillsbury Hall \#108, + 310 Pillsbury Drive S.E., + Minneapolis, MN 55455, + Tel: (612) 624-6860, + e-mail: \path|fvm6215@ux.acs.umn.edu|"} + +@String{ack-psg = "Paula Spiegel Gudder, + 1710 South Newport Way, + Denver, CO 80224, + USA, + Tel: (303) 757-2941"} + +@String{ack-pt = "Philip Taylor, + The Computer Centre, + RHBNC Univ of London, + Egham Hill, + Egham, Surrey TW20 0EX, UK, + Tel: +44~784~443172, + e-mail: Internet: \path|P.Taylor@Vax.Rhbnc.Ac.UK|"} + +@String{ack-rj = "Rex Jaeschke, + 2051 Swans Neck Way, + Reston, Virginia 22091, USA, + Tel: (703) 860-0091, + e-mail: \path|rex@aussie.com|"} + +@String{ack-rm = "Ronan Melennec, + Service Technique de la Navigation Aerienne, + Departement 7, + 95, rue Henri Rochefort, 91025 EVRY CEDEX, FRANCE, + Tel: +33 1 60 79 82 40, + e-mail: \path|melennec@stna7.stna.dgac.fr|"} + +@String{ack-rs = "Rainer Schoepf, + Konrad-Zuse-Zentrum/Informationstechnik Berlin, + Heilbronner Str. 10, + D-1000 Berlin 31, + Federal Republic of Germany, + e-mail: Internet: \path|Schoepf@sc.ZIB-Berlin.de|"} + +@String{ack-sh = "Steve Hamm, + Motorola Inc. Semiconductor Systems Design Technology, + 3501 Ed Bluestein Blvd., MD-M2, + Austin, TX 78762, USA, + Tel: (512) 928-6612, + Fax: (512) 928-7662, + e-mail: Internet: + \path|hamm@ssdt-bluestein.sps.mot.com|"} + +@String{ack-sjt = "Simon Thompson, + e-mail: Internet: \path|sjt@ukc.ac.uk|"} + +@String{ack-sk = "Samuel Ko, + e-mail: \path|kko@sfu.ca|"} + +@String{ack-sr = "Sebastian Rahtz, + e-mail: Internet: \path|spqr@minster.york.ac.uk|"} + +@String{ack-te = "Teresa A. Ehling, + The MIT Press, + 55 Hayward Street, + Cambridge, MA 02142, USA, + Tel: (617) 253-1672, + e-mail: Internet: \path|ehling@mitvma.mit.edu|"} + +@String{ack-tr = "Thomas Ridgeway: \path|ridgeway@u.washington.edu|"} + +@String{ack-wa = "Wolfgang Appelt, + Gesellschaft fur Math. und Daten., + Schloss Birlinghoven - PF 1240, + W-5202 St. Augustin 1, + FEDERAL REPUBLIC OF GERMANY, + Tel: 49-2241-14-2326, + FAX: 49-2241-14-2326, + e-mail: Internet: \path|appelt@f3svb.gmd.de|"} + +@String{ack-ys = "Yonghe Sun, + e-mail: Internet: \path|ysun@mines.utah.edu|"} + +%%====================================================================== +%% Journal abbreviations + +@String{j-IEEE-TEI = "IEEE Transactions on Electrical Insulation"} + +@String{j-LNCS = "Lecture Notes in Computer Science"} + +@String{j-LOGIN = ";login: the USENIX Association newsletter"} + +@String{j-PHYSREP = "Physics Reports"} + +@String{j-UMAP = "The UMAP Journal"} + +@String{j-UMAP:adr = "COMAP, Inc., Suite 210, 57 Bedford St., + Lexington, MA 02173, USA"} + +%%====================================================================== +%% Languages + +@String{lang-lat = "Latin"} + +@String{lang-pl = "Polish"} + +%%====================================================================== +%% Preparation details. + +@String{prep-amstex = "Prepared with {\AmSTeX}."} + +@String{prep-inrstex = "Prepared with {INRS\TeX}."} + +@String{prep-latex = "Prepared with {\LaTeX}."} + +@String{prep-tex = "Prepared with {\TeX}."} + +@String{prep-unknowntex = "Prepared with {\TeX} (unknown variety)."} + +@String{prep-ytex = "Prepared with Daniel Brotsky's {Y\TeX}."} + +%%====================================================================== +%% publisher abbreviations + +@String{pub-AIAA = "American Institute of Aeronautics and + Astronautics"} + +@String{pub-AIAA:adr = "370 L'Enfant Promenade SW, Washington, DC + 20024--2518"} + +@String{pub-AIP = "American Institute of Physics"} + +@String{pub-AIP:adr = "Woodbury, NY, USA"} + +@String{pub-AP = "Academic Press"} + +@String{pub-AP:adr = "Boston, MA, USA"} + +@String{pub-ARACNE = "Aracne Editrice"} + +@String{pub-ARACNE:adr = "Via Luigi Chiozza, 21b, 00133 Roma, Italy"} + +@String{pub-ARE = "A-R Editions, Inc."} + +@String{pub-ARE:adr = "801 Deming Way, Madison, WI 53717-1903, + USA; Tel: (608) 836-9000"} + +@String{pub-AUG = "Acta Universitatis Gothoburgensis"} + +@String{pub-AUG:adr = "Gothenburg, Sweden"} + +@String{pub-AW = "Ad{\-d}i{\-s}on-Wes{\-l}ey"} + +@String{pub-AW-Can:adr = "Don Mills, Ontario, Canada"} + +@String{pub-AW:adr = "Reading, MA, USA"} + +@String{pub-BENCUM = "Benjamin/Cummings Pub. Co."} + +@String{pub-BENCUM:adr = "Redwood City, CA, USA"} + +@String{pub-BIRKHAUSER = "Birkh{\"{a}}user"} + +@String{pub-BIRKHAUSER:adr = "Cambridge, MA, USA; Berlin, Germany; Basel, + Switzerland"} + +@String{pub-BOOKMAN = "Bookman"} + +@String{pub-BOOKMAN:adr = "Taipei, Taiwan"} + +@String{pub-BRILL = "Brill"} + +@String{pub-BRILL:adr = "Leiden, The Netherlands"} + +@String{pub-BS = "The Bibliographical Society"} + +@String{pub-BS:adr = "London, UK"} + +@String{pub-BSA = "The Bibliographical Society of America"} + +@String{pub-BSA:adr = "New York, NY, USA"} + +@String{pub-CHAPMAN = "Chapman and Hall, Ltd."} + +@String{pub-CHAPMAN:adr = "London, UK"} + +%% NB: CLUT and Loescher Editore did not provide ISBN's on the books +%% listed here + +@String{pub-CLUT = "Edizioni Cooperativa Libraria Universitaria + Torino"} + +@String{pub-CLUT:adr = "Corso Duca degli Abruzzi, 24, I 10129 + Torino, Italy"} + +@String{pub-CP = "Clarendon Press"} + +@String{pub-CP:adr = "Oxford, UK"} + +@String{pub-CRC = "CRC Press"} + +@String{pub-CRC:adr = "2000 N.W. Corporate Blvd., Boca Raton, + FL 33431-9868, USA"} + +@String{pub-CSLI = "CSLI Publications"} + +@String{pub-CSLI:adr = "Stanford, CA, USA"} + +@String{pub-CSP = "Computer Science Press"} + +@String{pub-CSP:adr = "1803 Research Boulevard, Rockville, MD + 20850, USA"} + +@String{pub-CUP = "Cambridge University Press"} + +@String{pub-CUP:adr = "Cambridge, UK"} + +@String{pub-CURSCI = "Current Science"} + +@String{pub-CURSCI:adr = "34--42 Cleveland Street, London, UK"} + +@String{pub-DARWIN = "The Darwin Press"} + +@String{pub-DARWIN:adr = "Princeton, NJ, USA"} + +@String{pub-DP = "Digital Press"} + +@String{pub-DP:adr = "12 Crosby Drive, Bedford, MA 01730, USA"} + +@String{pub-DUXBURY = "Duxbury Press"} + +@String{pub-DUXBURY:adr = "Belmont, CA, USA"} + +@String{pub-EF = "Esperantoforlaget AS"} + +@String{pub-EF:adr = "Oslo, Norway"} + +@String{pub-EFFECT = "Effect Publishing"} + +@String{pub-EFFECT:adr = "501 Fifth Avenue, Suite 1612, New York, NY + 10017, USA"} + +@String{pub-ELLIS-HORWOOD = "Ellis Horwood"} + +@String{pub-ELLIS-HORWOOD:adr = "New York, NY, USA"} + +@String{pub-ESP = "Elsevier Science Publishers"} + +@String{pub-ESP:adr = "Amsterdam, The Netherlands"} + +@String{pub-ESPNH = "Elsevier Science Publishers + (North-Holland)"} + +@String{pub-ESPNH:adr = "Amsterdam, The Netherlands"} + +@String{pub-ET = "Editorial Trillas"} + +@String{pub-ET:adr = "M{\'e}xico DF, M{\'e}xico"} + +@String{pub-GEO = "Geo Books"} + +@String{pub-GEO:adr = "Norwich, UK"} + +@String{pub-GLAGOL = "Glagol"} + +@String{pub-GLAGOL:adr = "St. Petersburg, Russia"} + +@String{pub-GREENWOOD = "Greenwood Press"} + +@String{pub-GREENWOOD:adr = "88 Post Road West, Westport, CT 06881, USA"} + +@String{pub-HD = "Holden-Day, Inc."} + +@String{pub-HD:adr = "Oakland, CA 94609, USA"} + +@String{pub-HPT = "H{\"o}ld{\-}er-Pichler-Tempsky Verlag"} + +@String{pub-HPT:adr = "Vienna, Austria"} + +@String{pub-HRW = "Holt, Rinehart, and Winston"} + +@String{pub-HRW:adr = "New York, NY, USA"} + +@String{pub-IE = "InterEditions"} + +@String{pub-IE:adr = "25 rue Leblanc, 75015 Paris, France"} + +@String{pub-IOS = "IOS Press"} + +@String{pub-IOS:adr = "Amsterdam, The Netherlands"} + +@String{pub-ISO = "International Organization for + Standardization"} + +@String{pub-ISO:adr = "Geneva, Switzerland"} + +@String{pub-ITCP = "International Thomson Computer Press"} + +@String{pub-ITCP:adr = "20 Park Plaza Suite 1001, Boston, MA 02116 + USA"} + +@String{pub-JBENJ = "John Benjamins"} + +@String{pub-JBENJ:adr = "Amsterdam, The Netherlands"} + +@String{pub-JBP = "Jones and Bartlett Publishers, Inc."} + +@String{pub-JBP:adr = "One Exeter Plaza, Boston, MA 02116, USA"} + +@String{pub-JHUP = "The Johns Hopkins University Press"} + +@String{pub-JHUP:adr = "Baltimore, MD, USA"} + +@String{pub-JW = "John Wiley"} + +@String{pub-JW:adr = "New York, NY, USA"} + +@String{pub-KENKYUSHA = "Kenkyusha"} + +@String{pub-KENKYUSHA:adr = "Tokyo, Japan"} + +@String{pub-KLUWER = "Kluwer Academic Publishers Group"} + +@String{pub-KLUWER:adr = "Norwell, MA, USA, and Dordrecht, The + Netherlands"} + +@String{pub-LEC = "Libreria Editrice Cafoscarina"} + +@String{pub-LEC:adr = "Venice, Italy"} + +@String{pub-LGU = "Leningrad University"} + +@String{pub-LGU:adr = "St. Petersburg, Russia"} + +@String{pub-LINUX-JOURNAL-PRESS = "Linux Journal Press"} + +@String{pub-LINUX-JOURNAL-PRESS:adr = "San Francisco, CA, USA"} + +@String{pub-LOESCHER = "Loescher Editore"} + +@String{pub-LOESCHER:adr = "Via Vittorio Amedeo II, 18, Torino, Italy"} + +@String{pub-MAYFIELD = "Mayfield"} + +@String{pub-MAYFIELD:adr = "Palo Alto, CA, USA"} + +@String{pub-MCGRAW-HILL = "Mc{\-}Graw-Hill"} + +@String{pub-MCGRAW-HILL:adr = "New York, NY, USA"} + +@String{pub-MELLEN = "Mellen Press"} + +@String{pub-MELLEN:adr = "Lewiston, NY, USA"} + +@String{pub-MH = "McGraw-Hill"} + +@String{pub-MH:adr = "New York, NY, USA"} + +@String{pub-MICROWARE = "Microware Systems Corporation"} + +@String{pub-MICROWARE:adr = "Des Moines, IA, USA"} + +@String{pub-MIS = "MIS:Press"} + +@String{pub-MIS:adr = "New York, NY, USA"} + +@String{pub-MIT = "The MIT Press"} + +@String{pub-MIT:adr = "Cambridge, MA"} + +@String{pub-MORGAN-KAUFMANN = "Morgan Kaufmann Publishers"} + +@String{pub-MORGAN-KAUFMANN:adr = "Los Altos, CA 94022, USA"} + +@String{pub-NAUKA = "Nauka"} + +@String{pub-NAUKA:adr = "Moscow, Russia"} + +@String{pub-NH = "North-Holland Publishing Company"} + +@String{pub-NH:adr = "Amsterdam, The Netherlands"} + +@String{pub-NIJHOFF = "Martinus Nijhoff/Dr W. Junk Publishers"} + +@String{pub-NIJHOFF:adr = "Dordrecht, The Netherlands"} + +@String{pub-NORTON = "W. W. Norton \& Co."} + +@String{pub-NORTON:adr = "New York, NY, USA"} + +@String{pub-OUP = "Oxford University Press"} + +@String{pub-OUP:adr = "Walton Street, Oxford OX2 6DP, UK"} + +@String{pub-PERGAMON = "Pergamon Press"} + +@String{pub-PERGAMON:adr = "Oxford, UK"} + +@String{pub-PH = "Pren{\-}tice-Hall"} + +@String{pub-PH:adr = "Upper Saddle River, NJ 07458, USA"} + +@String{pub-PH-TRAVEL = "Pren{\-}tice-Hall Travel"} + +@String{pub-PH-TRAVEL:adr = "New York, NY, USA"} + +@String{pub-PHI = "Pren{\-}tice-Hall International"} + +@String{pub-PHI:adr = "Upper Saddle River, NJ 07458, USA"} + +@String{pub-PINTER = "Pinter Publishers, Ltd."} + +@String{pub-PINTER:adr = "25 Floral St., London WC2E 9DS, UK"} + +@String{pub-PPB = "Professional Press Books"} + +@String{pub-PPB:adr = "101 Witmer Road, Horsham, PA 19044, USA"} + +@String{pub-PHPTR = "Pren{\-}tice-Hall PTR"} + +@String{pub-PHPTR:adr = "Upper Saddle River, NJ 07458, USA"} + +@String{pub-PUP = "Princeton University Press"} + +@String{pub-PUP:adr = "Princeton, NJ, USA"} + +@String{pub-RAHS = "Russian-American Historical Society"} + +@String{pub-RAHS:adr = "Washington, DC, USA"} + +@String{pub-REED = "Reed Enterprise"} + +@String{pub-REED:adr = "Reed Business Publishing Group, Room 922, + Quadrant House, The Quadrant, Sutton, Surrey + SM2 5AS, UK"} + +@String{pub-RISO = "{Ris\o} National Laboratory"} + +@String{pub-RISO:adr = "Roskilde, Denmark"} + +@String{pub-ROUTLEDGE = "Routledge"} + +@String{pub-ROUTLEDGE:adr = "London, UK"} + +@String{pub-RRD = "R. R. Donnelley and Sons"} + +@String{pub-RRD:adr = "Harrisburg, VA, USA"} + +@String{pub-SB = "Symposion Bokf{\"o}rlag"} + +@String{pub-SB:adr = "Stockholm/Stehag, Sweden"} + +@String{pub-SCARECROW = "Scarecrow Press"} + +@String{pub-SCARECROW:adr = "Metuchen, NJ, USA"} + +@String{pub-SHK = "De sju h{\"a}radernas kulturhistoriska + f{\"o}rening"} + +@String{pub-SHK:adr = "Gothenburg, Sweden"} + +@String{pub-SIAM = "Society for Industrial and Applied + Mathematics"} + +@String{pub-SIAM:adr = "Philadelphia, PA, USA"} + +@String{pub-SINAUER = "Sinauer Associates, Inc."} + +@String{pub-SINAUER:adr = "Sunderland, MA 01375, USA"} + +@String{pub-STATSCI = "StatSci, a Division of MathSoft, Inc."} + +@String{pub-STATSCI:adr = "Seattle, WA, USA"} + +@String{pub-SUCSLI = "Stanford University Center for the Study of + Language and Information"} + +@String{pub-SUCSLI:adr = "Stanford, CA, USA"} + +@String{pub-SV = "Spring{\-}er-Ver{\-}lag"} + +@String{pub-SV:adr = "Berlin, Germany~/ Heidelberg, Germany~/ + London, UK~/ etc."} + +@String{pub-TCA = "Technology Community Association"} + +@String{pub-TCA:adr = "Cambridge, MA, USA"} + +@String{pub-TCGPB = "Technical Chamber of Greece (``Ekdosh + Teqniko'u Epimelhthr'iou ths Ell'adas''), + Publications Bureau (``Grafeio Ekdoseon'')"} + +@String{pub-TCGPB:adr = "c/o Ms. Filippidou, Karageorgi Servias 4, + GR-102 48 Athens, Greece, Telephones: +30 - + 1 - 32 54 590 (last digit can vary up to + \ldots{}9), +30 - 1 - 32 45 935, Telefax: + +30 - 1 - 32 21 772"} + +@String{pub-TELOS = "TELOS division of Springer-Verlag"} + +@String{pub-TELOS:adr = "Santa Clara, CA, USA and New York, NY, USA"} + +@String{pub-TEUBNER = "B. G. Teubner"} + +@String{pub-TEUBNER:adr = "Stuttgart, Germany"} + +@String{pub-UGP = "University of Gothenburg Press"} + +@String{pub-UGP:adr = "Gothenburg, Sweden"} + +@String{pub-UNAM = "Universidad Autonoma de M{\'e}xico"} + +@String{pub-UNAM:adr = "M{\'e}xico DF, M{\'e}xico"} + +@String{pub-UNK = "publisher unknown"} + +@String{pub-UNK:adr = "address unknown"} + +@String{pub-WILEY = "John Wiley and Sons, Inc."} + +@String{pub-WILEY:adr = "New York, NY, USA"} + +@String{pub-WADSWORTH = "Wadsworth and Brooks/Cole Publishing + Company"} + +@String{pub-WADSWORTH:adr = "Pacific Grove, CA, USA"} + +@String{pub-WESTVIEW = "Westview Press"} + +@String{pub-WESTVIEW:adr = "5500 Central Ave., Boulder, CO 80301-2847, + USA"} + +@String{pub-WIHM = "Wellcome Institute for the History of + Medicine"} + +@String{pub-WIHM:adr = "London, UK"} + +@String{pub-WORLD-SCI = "World Scientific Publishing Co. Pte. Ltd."} + +@String{pub-WORLD-SCI:adr = "P. O. Box 128, Farrer Road, Singapore 9128"} + +@String{pub-ZT = "Zanichelli-Telettra"} + +@String{pub-ZT:adr = "Bologna, Italy"} + +%%====================================================================== +%% Miscellaneous abbreviations + +@String{series-NATO-ASI-C = "NATO ASI series C: Mathematical and + physical sciences"} + +@String{title-Byrnes:Fourier-ASI89 + = "Recent Advances in {Fourier} Analysis and + its Applications: Proceedings of the {NATO + Advanced Study Institute}"} + +@String{title-Byrnes:Prob-Sto-ASI91 + = "Probabilistic and Stochastic Methods in + Analysis, with Applications: Proceedings of + the {NATO Advanced Study Institute}"} +%%====================================================================== +%% Series abbreviations: + +@String{ser-LNAI = "Lecture Notes in Artificial Intelligence"} + +@String{ser-LNCS = "Lecture Notes in Computer Science"} + +%%====================================================================== +%% Books and journals + +@Book{Abelson:SIC85, + author = "Harold Abelson and Gerald J. Sussman with Julie + Sussman", + title = "Structure and Interpretation of Computer Programs", + publisher = pub-MIT # " and " # pub-MH, + address = pub-MIT:adr, + pages = "xx + 542", + year = "1985", + ISBN = "0-262-01077-1 (MIT Press), 0-07-000422-6 + (McGraw-Hill)", + LCCN = "QA76.6 .A255 1984", + bibdate = "Sun Jul 10 01:18:51 1994", + note = "This book was prepared with {\TeX80}.", + acknowledgement = ack-bkph, +} + +@Book{Abelson:TG81, + author = "Harold Abelson and Andrea A. {diSessa}", + title = "Turtle Geometry", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xx + 477", + year = "1981", + ISBN = "0-262-01063-1", + LCCN = "QA462 .A23 1981", + bibdate = "Tue Dec 14 22:57:14 1993", + note = "This book was prepared with \TeX80; this was described + in \tubissue {2}{3} in an article by Michael Sannella", + acknowledgement = ack-bnb, +} + +@Book{Abragam:VVF91, + author = "A. Abragam", + title = "Vremya vspyat', ili fizik, fizik, gde ty byl", + publisher = pub-NAUKA # ", Glavnaya redakciya + fiziko-matematicheskoj literatury", + address = pub-NAUKA:adr, + pages = "391", + year = "1991", + ISBN = "5-02-014712-5", + note = prep-latex # "Translated by the author from the + original French edition, {\em De la physique avant tout + chose}, Editions Odile Jakob.", + acknowledgement = ack-bnb, +} + +@Book{Abrahams:UI91, + author = "Paul W. Abrahams and Bruce R. Larson", + title = "{UNIX} for the Impatient", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xxvii + 559", + year = "1991", + ISBN = "0-201-55703-7", + LCCN = "QA76.76.O63 A27 1992", + bibdate = "Tue Dec 14 22:57:16 1993", + note = prep-tex, + acknowledgement = ack-kb, +} + +@Misc{ABSEES, + editor = "Barbara Dash", + key = "ABSEES", + title = "{The American Bibliography of Slavic and East European + Studies}", + howpublished = "Library of Congress", + year = "1988", + ISSN = "0094-3770", + note = "{\LaTeX} for text; plain {\TeX} for 3-column index.", + acknowledgement = ack-lmp, +} + +@Book{Adams:SCA93, + author = "E. Adams and U. Kulisch", + editor = "William F. Ames", + title = "Scientific Computing with Automatic Result + Verification", + volume = "189", + publisher = pub-AP, + address = pub-AP:adr, + pages = "x + 612", + year = "1993", + ISBN = "0-12-044210-8", + LCCN = "QA76 .S368 1993", + bibdate = "Tue Dec 14 22:57:19 1993", + series = "Mathematics in Science and Engineering", + acknowledgement = ack-nhfb, +} + +@Book{Adams:SVC89, + author = "Robert Adams", + title = "Single Variable Calculus", + publisher = pub-AW, + address = pub-AW-Can:adr, + year = "1989", + ISBN = "0-201-11114-4", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{AFIT:CTN91, + editor = "J. S. Przemieniecki", + title = "Air Force Institute of Technology\emdash Critical + Technologies for National Defense", + publisher = pub-AIAA, + address = pub-AIAA:adr, + pages = "325", + year = "1991", + ISBN = "1-56347-009-8", + LCCN = "UG633 .C74 1991", + bibdate = "Tue Dec 14 22:57:20 1993", + note = prep-latex, +} + +@Book{Ahlberger:1988:VVF, + author = "Christer Ahlberger", + title = "{V}{\"a}{\-}{var{\-}folk{\-}et}: Hemindustrin i Mark + 1790--1850", + number = "1", + publisher = pub-SHK, + address = pub-SHK:adr, + pages = "199", + year = "1988", + ISBN = "91-7900-417-2", + note = "Distribution: Bor{\aa}s Museum, Ramnaparken, S--502 65 + Bor{\aa}s, Sweden.", + series = "Skrifter fr{\aa}n Institutet f{\"or}r lokalhistorisk + forskning", + bibdate = "Tue Nov 5 11:16:04 2002", +} + +@Book{Aho:CPT89, + author = "Alfred Aho and Ravi Sethi and Jeffrey Ullman", + title = "Compilateurs\emdash Principes, techniques et outils + ({English}: {Compilers\emdash Principles, Techniques + and Tools})", + publisher = pub-IE, + address = pub-IE:adr, + pages = "875", + year = "1989", + ISBN = "2-7296-0295-X", + bibdate = "Sat Aug 27 11:05:08 1994", + note = prep-tex # "Translated from the English edition + (Addison-Wesley, 1986, ISBN 0-201-10088-6) by Pierre + Boullier, Philippe Deschamp (sic), Martin Jourdan, + Bernard Lorho and Monique Mazaud.", + acknowledgement = ack-rm, +} + +@Book{Aigner:CS88, + author = "Martin Aigner", + title = "Combinatorial Search", + publisher = pub-JW # " and " # pub-TEUBNER, + address = pub-JW:adr # " and " # pub-TEUBNER:adr, + pages = "368", + year = "1988", + ISBN = "0-471-92142-4 (Wiley), 3-519-02109-9 (Teubner)", + LCCN = "T57.97 .A381 1988", + bibdate = "Tue Dec 14 22:57:22 1993", + note = prep-latex, + acknowledgement = ack-mjp, +} + +@Book{Alferov:JSA92, + author = "Zhores I. Alferov", + title = "Joint Soviet-American Workshop on the Physics of + Semiconductor Lasers", + publisher = pub-AIP, + address = pub-AIP:adr, + pages = "viii + 183", + year = "1992", + ISBN = "0-88318-936-4", + LCCN = "TA1700 .J65 1991", + bibdate = "Tue Dec 14 22:57:25 1993", +} + +@Book{Alston:ORE95, + author = "J. A. Alston and H. F. Carman and J. E. Christian and + J. Dorfman and J.-R. Murua and R. J. Sexton", + title = "Optimal Reserve and Export Policies for the + {California} Almond Industry: Theory, Econometrics and + Simulations", + publisher = "Giannini Foundation of Agricultural Economics, + University of California, Agricultural and Natural + Resource Publications", + address = "6701 San Pablo Avenue, Oakland, CA 94608, USA", + year = "1995", + ISSN = "0575-4208", + LCCN = "HD1407 .G5", + bibdate = "Tue May 16 17:58:29 1995", + price = "US\$14.00", + acknowledgement = ack-jc, +} + +@Misc{AMS, + key = "AMS", + title = "{American Mathematical Society}", + year = "198x", + note = "By the end of the 1980s, almost all AMS journals and + monographics have been set using {\TeX}. This entry + needs to be replaced by an explicit list of them.", + acknowledgement = ack-nhfb, +} + +@Book{An:MBC88, + author = "C. An and C. G. Atkeson and J. M. Hollerbach", + title = "Model-Based Control of a Robot Manipulator", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "233", + year = "1988", + ISBN = "0-262-01102-6", + LCCN = "TJ211 .A551 1988", + bibdate = "Tue Dec 14 22:57:27 1993", + note = prep-tex, + acknowledgement = ack-bkph, +} + +@Book{Anderson:EEC88, + author = "Philip W. Anderson and Kenneth J. Arrow and David + Pines", + title = "The Economy as an Evolving Complex System", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xvii + 317", + year = "1988", + ISBN = "0-201-15681-4 (hardcover), 0-201-15685-7 (paperback)", + LCCN = "HB21 .E2651 1988", + bibdate = "Fri Jul 22 10:25:02 1994", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Anderson:LUG92, + author = "E. Anderson and Z. Bai and C. Bischof and J. Demmel + and J. Dongarra and J. Du Croz and A. Greenbaum and S. + Hammarling and A. McKenney and S. Ostrouchov and D. + Sorenson", + title = "{LAPACK} Users' Guide", + publisher = pub-SIAM, + address = pub-SIAM:adr, + pages = "xv + 235", + year = "1992", + ISBN = "0-89871-294-7", + LCCN = "QA76.73.F25 L36 1992", + bibdate = "Tue Dec 14 22:57:30 1993", + note = prep-latex, + acknowledgement = ack-nhfb, +} + +@Book{Andren:BME90, + author = "Mats Andr{'e}n", + title = "Borgerskapets Marx\emdash{}Eugen von + {B}{\"o}hm-Ba{\-}werk: {\"a}mbetsman och nationalekonom + i sekelskiftets Wien", + publisher = pub-SB, + address = pub-SB:adr, + year = "1990", + ISBN = "91-7868-226-6", + bibdate = "Mon Jul 11 11:27:55 1994", + note = "English title: The Bourgeois Marx\emdash{}Eugen von + B{\"o}hm Bawerk: Official and Economist in the Late + Habsburg Vienna", +} + +@Book{Angel:CG89, + author = "Edward Angel", + title = "Computer Graphics", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xviii + 477", + year = "1989", + ISBN = "0-201-13548-5", + LCCN = "T385.A513 1990", + bibdate = "Tue Dec 14 22:57:32 1993", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Angus:CTT85, + author = "S. Angus and B. Armstrong and K. M. de Reuck", + title = "Chlorine Tentative Tables", + publisher = pub-PERGAMON, + address = pub-PERGAMON:adr, + pages = "xviii + 162", + year = "1985", + ISBN = "0-08-030713-2", + LCCN = "QD181.C5.A54 1985", + bibdate = "Tue Dec 14 22:57:34 1993", + note = "Typeset using {\TeX80}.", + series = "{IUPAC} chemical data series", + acknowledgement = ack-mc, +} + +@Book{Appelt:DAO91, + author = "Wolfgang Appelt", + title = "Document Architecture in Open Systems: The {ODA} + Standard", + publisher = pub-SV, + address = pub-SV:adr, + pages = "x + 350", + year = "1991", + ISBN = "3-540-54539-5 and 0-387-54539-5", + LCCN = "TK5105 .A66 1991", + bibdate = "Tue Dec 14 22:57:35 1993", + note = prep-tex, + acknowledgement = ack-wa, +} + +@Book{Appelt:DOS90, + author = "Wolfgang Appelt", + title = "Dokumentaustausch in Offenen + Systemen\emdash{}Einf{\"u}hrung in die {ISO}-Norm 8613: + Office Document Architecture ({ODA}) and Interchange + Format", + publisher = pub-SV, + address = pub-SV:adr, + year = "1990", + ISBN = "3-540-52707-9 and 0-387-52707-9", + note = prep-tex, + acknowledgement = ack-wa, +} + +@TechReport{Appelt:ISO-IEC-8613, + author = "Wolfgang Appelt", + title = "Information processing\emdash{}Text and office + systems\emdash{}Office Document Architecture ({ODA}) + and Interchange Format", + type = "Part 10: Formal specifications", + number = "Standard 8613", + institution = pub-ISO, + address = pub-ISO:adr, + year = "1991", + note = prep-tex, + acknowledgement = ack-wa, +} + +@Book{Ashley:MLA90, + author = "Kevin Ashley", + title = "Modeling Legal Argument", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "x + 329", + year = "1990", + ISBN = "0-262-01114-X", + LCCN = "KF242.A1 A7 1990", + bibdate = "Tue Dec 14 22:57:37 1993", + acknowledgement = ack-te, +} + +@Book{Astrom:AC89, + author = "Karl Johan {\AA}str{\"o}m and Bj{\"o}rn Wittenmark", + title = "Adaptive Control", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiv + 526", + year = "1989", + ISBN = "0-201-09720-6", + LCCN = "TJ217 .A671 1989", + bibdate = "Tue Dec 14 22:57:38 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Ayache:AVM91, + author = "Nicholas Ayache", + title = "Artificial Vision for Mobile Robots", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "342", + year = "1991", + ISBN = "0-262-01124-7", + LCCN = "TJ211.3 .A9313 1991", + bibdate = "Tue Dec 14 22:57:39 1993", + note = prep-latex, + acknowledgement = ack-te, +} + +@Book{Bacchus:RRP90, + author = "Fahiem Bacchus", + title = "Representing and Reasoning with Probabilistic + Knowledge", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "233", + year = "1990", + ISBN = "0-262-02317-2", + LCCN = "QA273 .B24 1990", + bibdate = "Tue Dec 14 22:57:42 1993", + note = prep-latex, + acknowledgement = ack-te, +} + +@Book{Bakoglu:CIP90, + author = "H. B. Bakoglu", + title = "Circuits, Interconnections, and Packaging for {VLSI}", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiv + 527", + year = "1990", + ISBN = "0-201-06008-6", + LCCN = "TK7874.B345 1990", + bibdate = "Wed Dec 15 08:02:31 1993", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Bancilhon:ADP89, + editor = "Francois Bancilhon and Peter Buneman", + title = "Advances in Database Programming Languages", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xvii + 457", + year = "1989", + ISBN = "0-201-50257-7", + LCCN = "QA76.9.D3 A348 1989", + bibdate = "Tue Dec 14 22:57:43 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Barr:CTC90, + author = "Michael Barr and Charles F. Wells", + title = "Category Theory for Computer Scientists", + publisher = pub-PHI, + address = pub-PHI:adr, + pages = "xv + 432", + year = "1990", + ISBN = "0-13-120486-6", + LCCN = "QA76.9.M35B37 1990", + bibdate = "Wed Dec 15 08:02:45 1993", + note = prep-latex, + acknowledgement = ack-mb, +} + +@Book{Barr:TPB90, + editor = "Alan H. Barr", + title = "Topics in Physically-Based Modeling", + publisher = pub-AW, + address = pub-AW:adr, + year = "1990", + ISBN = "0-201-51013-8", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Barr:TTT85, + author = "Michael Barr and Charles F. Wells", + title = "Toposes, Triples, and Theories", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xiii + 345", + year = "1985", + ISBN = "0-387-96115-1 and 3-540-96115-1", + LCCN = "QA169 .B346 1985", + bibdate = "Tue Dec 14 22:57:46 1993", + note = "Originally prepared in {\TeX}78, but converted by + publisher to {\LaTeX}.", + acknowledgement = ack-mb, +} + +@Book{Bauerle:LA190, + author = "G. G. A. B{\"a}uerle and E. A. de Kerf", + title = "Lie Algebras Part 1\emdash{}Finite and infinite + dimension Lie algebras and applications in physics", + publisher = pub-ESPNH, + address = pub-ESPNH:adr, + pages = "xvi + 394", + year = "1990", + ISBN = "0-444-88776-8", + LCCN = "QC20.7.L54 B38 1990", + bibdate = "Wed Dec 15 08:02:54 1993", + note = "Studies in Mathematical Physics, volume 1.", + acknowledgement = ack-np, +} + +@Book{Bauhr:FRE89, + author = "Gerhard Bauhr", + title = "El Futuro en {\it -R{\'E}} e {\it IR A} + Infinitivo + en Espa{\~n}ol Peninsular Moderno", + number = "39", + publisher = pub-AUG, + address = pub-AUG:adr, + pages = "ix + 405", + year = "1989", + ISBN = "91-7346-218-7", + ISSN = "0080-3863", + LCCN = "PC 4271 B38 1989", + bibdate = "Tue Dec 14 22:58:21 1993", + series = "Romanica Gothoburgensia", +} + +@Book{Beauzamy:IOT88, + author = "Bernard Beauzamy", + title = "Introduction to operator theory and invariant + subspaces", + volume = "42", + publisher = pub-NH, + address = pub-NH:adr, + pages = "xiv + 358", + year = "1988", + ISBN = "0-444-70521-X", + LCCN = "QA329 .B441 1988", + bibdate = "Tue Dec 14 22:58:32 1993", + note = prep-tex, + series = "North-Holland Mathematical Library", + acknowledgement = ack-mjp, +} + +@Book{Beccari:ETR88, + author = "C. Beccari and M. Biey", + title = "Esercitazioni di teoria delle reti elettriche", + publisher = pub-CLUT, + address = pub-CLUT:adr, + year = "1988", + note = prep-latex, + acknowledgement = ack-cb, +} + +@Book{Beccari:SCP88, + author = "C. Beccari", + title = "Sintesi dei circuiti passivi", + publisher = pub-CLUT, + address = pub-CLUT:adr, + year = "1988", + note = "Prepared with {\TeX} by Tecnograf.", + acknowledgement = ack-cb, +} + +@Book{Bedell:HTS90, + author = "K. S. Bedell and D. Coffey and D. E. Heltzer and D. + Pines and J. R. Schrieffer", + title = "High Temperature Superconductivity Proceedings", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiv + 474", + year = "1990", + ISBN = "0-201-51249-1", + LCCN = "QC611.98.H54 H34 1989", + bibdate = "Tue Dec 14 22:58:34 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Bell:CDN90, + author = "George I. Bell and Thomas Marr", + title = "Computers and {DNA}", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xvii + 276", + year = "1990", + ISBN = "0-201-51505-9 (hardcover), 0-201-51561-X (paperback)", + LCCN = "QP624 .I53 1988", + bibdate = "Fri Jul 22 10:25:07 1994", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Bergstrom:EFJ89, + author = "Irja Bergstr{\"o}m", + title = "Ensam f{\aa}gel\emdash{}jag vet vem det {\"a}r: Ester + Henning Konstn{\"a}rinna p{\aa} hospital", + publisher = pub-AUG, + address = pub-AUG:adr, + year = "1989", + ISBN = "91-7900-753-8", + note = "English title: Lonely bird\emdash{}I know who that is. + Doctoral dissertation. 140 illustrations, 20 in + color.", +} + +@Book{Bergstrom:EM90, + author = "Theodore C. Bergstrom and Hal R. Varian", + title = "Esercizi di microeconomia", + publisher = pub-LEC, + address = pub-LEC:adr, + edition = "Second", + year = "1990", + ISBN = "88-85613-28-4", + note = prep-tex, + acknowledgement = ack-hv, +} + +@Book{Bergstrom:WM90, + author = "Theodore C. Bergstrom and Hal R. Varian", + title = "Workouts in Intermediate Microeconomics", + publisher = pub-NORTON, + address = pub-NORTON:adr, + edition = "Second", + pages = "384", + year = "1990", + ISBN = "0-393-95926-0", + LCCN = "HB 172 B48 1990", + bibdate = "Thu Dec 16 08:13:33 1993", + note = prep-tex, + acknowledgement = ack-hv, +} + +@Book{Berman:MI93, + author = "Laurence Berman", + title = "The Musical Image: {A} Theory of Content", + publisher = pub-GREENWOOD, + address = pub-GREENWOOD:adr, + pages = "391", + year = "1993", + ISBN = "0-313-28434-2", + ISSN = "0193-9041", + LCCN = "ML3845 .B377 1993", + bibdate = "Thu Oct 14 09:55:04 1993", + series = "Contributions to the study of music and dance", + acknowledgement = ack-kb, +} + +@Book{Bertsekas:LNO91, + author = "Dimitri Bertsekas", + title = "Linear Network Optimization", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xi + 359", + year = "1991", + ISBN = "0-262-02334-2", + LCCN = "T57.85 .B43 1991", + bibdate = "Tue Dec 14 22:58:39 1993", + note = prep-latex, + acknowledgement = ack-te, +} + +@Book{Berwick:ASK85, + author = "Robert C. Berwick", + title = "The Acquisition of Syntactic Knowledge", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xii + 368", + year = "1985", + ISBN = "0-262-02226-5", + LCCN = "Q335 .B48 1985", + bibdate = "Tue Dec 14 22:58:40 1993", + note = prep-tex, + acknowledgement = ack-bkph, +} + +@Book{Berwick:CCN87, + author = "R. C. Berwick and G. E. Barton and E. S. Ristad", + title = "Computational Complexity and Natural Language", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xii + 335", + year = "1987", + ISBN = "0-262-02266-4", + LCCN = "QA267.B36 1987", + bibdate = "Tue Dec 14 22:58:41 1993", + note = prep-latex, + acknowledgement = ack-bkph, +} + +@Book{Berwick:GBL84, + author = "R. C. Berwick and A. Weinberg", + title = "The Grammatical Basis of Linguistic Performance: + Language Use and Acquisition", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xviii + 325", + year = "1984", + ISBN = "0-262-02192-7", + LCCN = "P158 .B48 1984", + bibdate = "Tue Dec 14 22:58:42 1993", + note = prep-tex, + acknowledgement = ack-bkph, +} + +@Book{Bhaduri:MNF88, + author = "Rajat K. Bhaduri", + title = "Models of the Nucleon: From Quarks to Solitons", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xvii + 360", + year = "1988", + ISBN = "0-201-15673-3", + LCCN = "QC793.2 .B48 1988", + bibdate = "Tue Dec 14 22:58:43 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Article{Bhattacharya:PR203-1-203, + author = "D. Bhattacharya and E. P. J. van den {Heuvel (eds)}", + title = "Formation and evolution of binary and millisecond + radio pulsars", + journal = j-PHYSREP, + volume = "203", + number = "1 \& 2", + publisher = pub-ESPNH, + address = pub-ESPNH:adr, + year = "1991", + acknowledgement = ack-np, +} + +@Book{Bien:KSI91, + author = "Janusz S. Bie{\'n}", + title = "Koncepcja s{\l}ownikowej informacji morfologicznej i + jej komputerowej weryfikacji.", + volume = "383", + publisher = "Wydawnictwa Uniwersytetu Warszawskiego", + address = "Warszawa, Polska", + edition = "1.", + year = "1991", + ISBN = "83-230-0390-4", + ISSN = "0509-7177", + bibdate = "Fri Jun 24 10:02:01 1994", + note = "sk{\l}ada{\l}: autor.", + series = "Rozprawy Uniwersytetu Warszawskiego", + acknowledgement = ack-md, + address-l = lang-pl, + author-l = lang-pl, + note-1 = "In Polish.", + note-l = lang-pl, + publisher-l = lang-pl, + series-l = lang-pl, + series-p1 = "Dissertationes Universitas Varsoviensis", + series-p1-l = lang-lat, + title-l = lang-pl, +} + +@Book{Biey:CRC87, + author = "M. Biey", + title = "Circuiti {RC}-attivi, Teoria e progetto", + publisher = pub-CLUT, + address = pub-CLUT:adr, + year = "1987", + note = "Prepared with {\TeX} by Tecnograf.", + acknowledgement = ack-cb, +} + +@Book{Biggerstaff:SRA89-2, + editor = "Ted J. Biggerstaff and Alan J. Perlis", + title = "Software Reusability: Applications and Experience", + volume = "2", + publisher = pub-AW, + address = pub-AW:adr, + year = "1989", + ISBN = "0-201-50018-3", + LCCN = "QA76.76.R47 B543 1989", + bibdate = "Tue Dec 14 22:58:44 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Biggerstaff:SRC89-1, + editor = "Ted J. Biggerstaff and Alan J. Perlis", + title = "Software Reusability: Concepts and Models", + volume = "1", + publisher = pub-AW, + address = pub-AW:adr, + year = "1989", + ISBN = "0-201-08017-6", + LCCN = "QA76.76.R47 B543 1989", + bibdate = "Tue Dec 14 23:22:29 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Biggs:ICP89, + author = "Norman L. Biggs", + title = "Introduction to Computing with Pascal", + publisher = pub-OUP, + address = pub-OUP:adr, + pages = "x + 219", + year = "1989", + ISBN = "0-19-853755-7 (hardcover), 0-19-853756-5 (paperback)", + LCCN = "QA76.73.P2 B54 1989", + bibdate = "Fri Jul 22 10:25:12 1994", + note = prep-latex, + acknowledgement = ack-mjp, +} + +@Periodical{Birman:DU91, + author = "M. S. Birman", + title = "Differentsial'nye uravnenija. Spectral'naja teorija. + Rasprostranenie voln. (English: Differential Equations. + Spectral Theory. Wave Propagation)", + publisher = pub-LGU, + address = pub-LGU:adr, + pages = "310", + year = "1991", + ISSN = "0555-2818", + bibdate = "Wed Jun 2 15:28:13 1993", + series = "Problemy matematicheskojj fiziki (English: Problems of + Mathematical Physics)", + acknowledgement = ack-jr, + issue = "13", +} + +@Book{Boieri:LMI90, + author = "P. Boieri", + title = "Laboratorio di matematica, Un itinerario attraverso la + geometria analitica e l'analisi con {MICROCALC}", + publisher = pub-LOESCHER, + address = pub-LOESCHER:adr, + year = "1990", + note = prep-latex, + acknowledgement = ack-cb, +} + +@Book{Bolch:LR89, + author = "Gunter Bolch with Helmut Riedel", + title = "Leistungsbewertung von Rechensystemen", + publisher = pub-TEUBNER, + address = pub-TEUBNER:adr, + year = "1989", + ISBN = "3-519-02279-6", + note = prep-latex, +} + +@Book{Bolch:P91, + author = "Gunter Bolch and Martina Vollath", + title = "Proze{\ss}automatisierung", + publisher = pub-TEUBNER, + address = pub-TEUBNER:adr, + year = "1991", + ISBN = "3-519-02499-3", + note = prep-latex, +} + +@Book{Boltz:1991:SHP, + author = "William G. Boltz and Michael C. Shapiro", + title = "Studies in the Historical Phonology of Asian + Languages", + volume = "77", + publisher = pub-JBENJ, + address = pub-JBENJ:adr, + pages = "viii + 249", + year = "1991", + ISBN = "90-272-3574-0 (Europe), 1-55619-132-4 (USA)", + LCCN = "P381.A75 S78 1991", + bibdate = "Tue Dec 14 22:59:21 1993", + series = "Current Issues in Linguistic Theory", + acknowledgement = ack-tr, +} + +@Book{Bond:1996:MAF, + author = "V. R. Bond and M. C. Allman", + title = "Modern Astrodynamics: Fundamentals and Perturbation + Methods", + publisher = pub-PUP, + address = pub-PUP:adr, + year = "1996", + ISBN = "0-691-04459-7", + LCCN = "TL1050.B66 1996", + acknowledgement = ack-bnb, + pages = "xi + 250", + price = "US\$35.00, UK\pounds 27.50", + bibdate = "Mon Aug 12 07:38:09 1996", + note = prep-latex, + URL = "http://aaup.pupress.princeton.edu:70/0h/books/presses/princeton/titles/95031024.html", +} + +@Book{Boykin:PM93, + author = "Joseph Boykin and David Kirschan and Alan Langerman + and Susan LoVerso", + title = "Programming under {Mach}", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xvii + 490", + year = "1993", + ISBN = "0-201-52739-1", + LCCN = "QA76.8.N49 P76 1993", + bibdate = "Wed Aug 10 12:28:59 1994", + acknowledgement = ack-nhfb, +} + +@Book{Bracewell:HT86, + author = "Ronald N. Bracewell", + title = "The {Hartley} Transform", + publisher = pub-OUP, + address = pub-OUP:adr, + pages = "vii + 160", + year = "1986", + ISBN = "0-19-503969-6", + LCCN = "QA403.5 .B731 1986", + bibdate = "Tue Dec 14 22:59:23 1993", + acknowledgement = ack-bnb, +} + +@Book{Brady:RMP82, + editor = "Michael Brady and John M. Hollerbach and Timothy L. + Johnston and Tomas Lozano-Perez and Matthew T. Mason", + title = "Robot Motion: Planning and Control", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xv + 585", + year = "1982", + ISBN = "0-262-02182-X", + LCCN = "TJ211 .R54 1982", + bibdate = "Tue Dec 14 22:59:25 1993", + note = prep-tex, + acknowledgement = ack-bkph, +} + +@Book{Broglia:HIR91, + author = "R. A. Broglia and {\AA}ge Winther", + title = "Heavy Ion Reactions, Parts 1 and 2", + publisher = pub-AW, + address = pub-AW:adr, + year = "1991", + ISBN = "0-201-51392-7", + LCCN = "QC794.8.H4 B76 1991", + bibdate = "Tue Dec 14 22:59:26 1993", + acknowledgement = ack-mz, +} + +@Book{Brooks:PCL85, + author = "Rodney A. Brooks", + title = "Programming in Common Lisp", + publisher = pub-WILEY, + address = pub-WILEY:adr, + pages = "xv + 303", + year = "1985", + ISBN = "0-471-81888-7", + LCCN = "QA76.73.L23 B76 1985", + bibdate = "Tue Dec 14 22:59:37 1993", + acknowledgement = ack-nhfb, +} + +@Book{Bruggeman-Klein:ED89, + author = "Anne Br{\"u}ggeman-Klein", + title = "Ein{\-}f{\"u}hr{\-}ung in die Dokumentenverbeitung", + publisher = pub-TEUBNER, + address = pub-TEUBNER:adr, + pages = "200", + year = "1989", + ISBN = "3-519-02488-8", + note = prep-latex, + acknowledgement = ack-mc, +} + +@Book{Buckley:DG90, + author = "Fred Buckley and Frank Harary", + title = "Distance in Graphs", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiii + 335", + year = "1990", + ISBN = "0-201-09591-2", + LCCN = "QA166 .B83 1990", + bibdate = "Tue Dec 14 22:59:39 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Budd:IOO91, + author = "Timothy Budd", + title = "An Introduction to Object-Oriented Programming", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xv + 399", + year = "1991", + ISBN = "0-201-54709-0", + LCCN = "QA76.64 .B83 1991", + bibdate = "Tue Dec 14 22:59:40 1993", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Calingaert:PTF88, + author = "Peter Calingaert", + title = "Program Translation Fundamentals\emdash Methods and + Issues", + publisher = pub-CSP, + address = pub-CSP:adr, + pages = "xvii + 366", + year = "1988", + ISBN = "0-88175-096-4", + LCCN = "QA76.76.T83 C35 1988", + bibdate = "Tue Dec 14 22:59:42 1993", + acknowledgement = ack-nhfb, +} + +@Book{Carberry:PRN90, + author = "Sandra Carberry", + title = "Plan Recognition in Natural Language Dialogue", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xi + 286", + year = "1990", + ISBN = "0-262-03167-1", + LCCN = "Q335 .C28 1990", + bibdate = "Tue Dec 14 22:59:43 1993", + acknowledgement = ack-te, +} + +@Book{Carriero:HWP90, + author = "Nicholas Carriero and David Gelernter", + title = "How to Write Parallel Programs", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "232", + year = "1990", + ISBN = "0-262-03171-X", + LCCN = "QA76.642 .C37 1990", + bibdate = "Tue Dec 14 22:59:45 1993", + acknowledgement = ack-te, +} + +@Book{Cashdan:RUT90, + editor = "Elizabeth A. Cashdan", + title = "Risk and Uncertainty in Tribal and Peasant Economies", + publisher = pub-WESTVIEW, + address = pub-WESTVIEW:adr, + pages = "x + 342", + year = "1990", + ISBN = "0-8133-7821-4", + LCCN = "GN448.2 .R57 1990", + bibdate = "Tue Dec 14 22:59:46 1993", + acknowledgement = ack-arr, +} + +@Book{Cavalotto:SMM90, + author = "M. Cavalotto and F. Vinardi", + title = "{I} sistemi meccanici, Modelli e analisi funzionale", + publisher = pub-CLUT, + address = pub-CLUT:adr, + year = "1990", + note = prep-latex, + acknowledgement = ack-cb, +} + +@Book{Chambers:SMS93, + editor = "John M. Chambers and Trevor J. Hastie", + title = "Statistical Models in {S}", + publisher = pub-CHAPMAN # " and " # pub-WADSWORTH, + address = pub-CHAPMAN:adr # " and " # pub-WADSWORTH:adr, + pages = "xv + 608", + year = "1993", + ISBN = "0-412-05301-2 (Chapman and Hall), 0-534-16765-9 + (Wadsworth paperback), 0-534-16764-0 (Wadsworth + hardcover)", + LCCN = "QA276.4 .S65 1992", + bibdate = "Wed Aug 10 10:31:05 1994", + price = "US\$40.95", + acknowledgement = ack-nhfb, +} + +@Book{Chandy:PPD88, + author = "K. Mani Chandy and Jayadev Misra", + title = "Parallel Program Design: {A} Foundation", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xxviii + 516", + year = "1988", + ISBN = "0-201-05866-9", + LCCN = "QA76.6 .C42818 1988b", + bibdate = "Tue Dec 14 22:59:47 1993", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Chapman:VIA91, + author = "David Chapman", + title = "Vision, Instruction, and Action", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "ix + 295", + year = "1991", + ISBN = "0-262-03181-7", + LCCN = "Q335 .C4829 1991", + bibdate = "Tue Dec 14 22:59:48 1993", + note = prep-latex, + acknowledgement = ack-te, +} + +@Book{Char:FLT92, + author = "Bruce W. Char and Keith O. Geddes and Gaston H. Gonnet + and Benton Leong and Michael B. Monagan and Stephen M. + Watt", + title = "First Leaves: {A} Tutorial Introduction to Maple {V}", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xvii + 253", + year = "1992", + ISBN = "0-387-97621-3", + LCCN = "QA155.7.E4 F56 1992", + bibdate = "Tue Dec 14 22:59:50 1993", +} + +@Book{Char:MLR91, + author = "Bruce W. Char and Keith O. Geddes and Gaston H. Gonnet + and Benton Leong and Michael B. Monagan and Stephen M. + Watt", + title = "Maple Library {V} Reference Manual", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xxv + 698", + year = "1991", + ISBN = "0-387-97592-6, 3-540-97592-6", + LCCN = "QA155.7.E4 M37 1991", + bibdate = "Fri Jul 22 09:48:41 1994", + price = "US\$39.00", +} + +@Book{Char:MVL91, + author = "Bruce W. Char and Keith O. Geddes and Gaston H. Gonnet + and Benton Leong and Michael B. Monagan and Stephen M. + Watt", + title = "Maple {V} Language Reference Manual", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xv + 267", + year = "1991", + ISBN = "0-387-97622-1, 3-540-97622-1", + LCCN = "QA155.7.E4 M36 1991", + bibdate = "Tue Dec 14 22:59:57 1993", +} + +@Book{Cheswick:2003:FIS, + author = "William R. Cheswick and Steven M. Bellovin and Aviel + D. Rubin", + title = "Firewalls and Internet Security: Repelling the Wily + Hacker", + publisher = pub-AW, + address = pub-AW:adr, + edition = "Second", + pages = "xiv + 433", + year = "2003", + ISBN = "0-201-63466-X", + LCCN = "TK5105.875.I57C44 2003", + bibdate = "Mon Mar 10 05:40:10 2003", + price = "US\$49.99, CAN\$77.99", + note = prep-latex, + acknowledgement = ack-nhfb, +} + +@Book{Chung:ISI83, + author = "K. L. Chung and R. J. Williams", + title = "Introduction to Stochastic Integration", + publisher = pub-BIRKHAUSER, + pages = "xiii + 191", + year = "1983", + ISBN = "0-8176-3117-8, 3-7643-3117-8", + LCCN = "QA274.22 .C48 1983", + bibdate = "Thu Apr 14 16:22:35 1994", + acknowledgement = ack-ho, +} + +@Book{Clark:PPF86, + author = "Malcolm Clark", + title = "pc-Portable Fortran", + publisher = pub-ELLIS-HORWOOD, + address = pub-ELLIS-HORWOOD:adr, + pages = "228", + year = "1986", + ISBN = "0-7458-0005-X", + LCCN = "QA76.73.F25 C55 1986", + bibdate = "Tue Dec 14 23:00:04 1993", + note = "Laser-printed using {\TeX}.", + series = "Computers and their applications", + acknowledgement = ack-mc, +} + +@Misc{CMUC, + key = "CMUC", + title = "{Commentationes Mathematicae {Universitatis} + {Carolinae}}", + volume = "30", + pages = "1--202", + year = "1989", + note = "Publication of the Faculty of Mathematics and Physics, + Charles University, Prague, Czechoslovakia. This was + prepared with \AmSTeX{}.", + acknowledgement = ack-bnb, + issue = "1", +} + +@Misc{Complex-Systems, + editor = "Stephen Wolfram", + key = "CS", + title = "{Complex Systems}", + howpublished = "Complex Systems Publications Inc.", + year = "1987", + ISSN = "0891-2513", + note = "Technical journal published six times per year, using + {\CMR} fonts.", + acknowledgement = ack-lmp, +} + +@Misc{Computational-Linguistics, + author = "James S. Allen", + title = "Computational Linguistics", + year = "1991", + ISSN = "0362-613X", + note = "To be published quarterly by MIT Press; fonts not yet + finalized.", + acknowledgement = ack-lmp, +} + +@Book{Conrad:FPM89, + author = "Lawrence I. Conrad", + title = "The Formation and Perception of the Modern {Arab} World: + Studies by {Marwan R. Buheiry}", + publisher = pub-DARWIN, + address = pub-DARWIN:adr, + pages = "624", + year = "1989", + ISBN = "0-87850-064-2", + LCCN = "DS63.2.U5 B82 1989", + bibdate = "Tue Dec 14 23:00:06 1993", + note = prep-latex # " PC{\TeX} and Computer Modern fonts, with + final output on an HP LaserJet II at 300dpi.", + acknowledgement = ack-dw, +} + +@Book{Cormen:IA89, + author = "Thomas Cormen and Charles Leiserson and Ronald + Rivest", + title = "Introduction to Algorithms", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xvii + 1028", + year = "1989", + ISBN = "0-262-03141-8", + LCCN = "QA76.6 .C662 1989", + bibdate = "Tue Dec 14 23:00:08 1993", + acknowledgement = ack-te, +} + +@Periodical{cornishman, + editor = "Peter Abbott", + key = "Cornishman", + title = "{The Cornishman}", + address = "Gloucestershire Warwickshire Railway Ltd., The Railway + Station, Toddington, Gloucestershire, GL54 5DT, UK", + year = "1989--date{}", + ISSN = "0964-5098", + bibdate = "Sat Aug 27 11:07:04 1994", + note = prep-latex # "; incorporates numerous photographs and + illustrations as EPS files. From issue 42 (Autumn + 1992), photographs will be stored in compressed TIFF + format and converted to PostScript `on the fly'.", + acknowledgement = ack-bnb, + frequency = "quarterly", +} + +@Book{Coyne:KBD90, + author = "R. D. Coyne and M. A. Rosenman and A. D. Radford and + M. Balachandran and J. S. Gero", + title = "Knowledge-Based Design Systems", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xi + 567", + year = "1990", + ISBN = "0-201-10381-8", + LCCN = "TA174.K59 1990", + bibdate = "Tue Dec 14 23:00:15 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Craig:IRM89, + author = "John J. Craig", + title = "Introduction to Robotics: Mechanics and Control", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiii + 450", + year = "1989", + ISBN = "0-201-09528-9", + LCCN = "TJ211.C67 1989", + bibdate = "Tue Dec 14 23:00:18 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Cuoco:C89, + author = "Albert Cuoco", + title = "Investigations in Algebra", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "623", + year = "1989", + ISBN = "0-262-53071-6 (paper), 0-262-03144-2 (hard)", + LCCN = "QA159 .C86 1990", + bibdate = "Tue Dec 14 23:00:19 1993", + acknowledgement = ack-te, +} + +@Book{Curry:DSF89, + author = "Guy L. Curry and Bryan L. Deuermeyer and Richard M. + Feldman", + title = "Discrete Simulation: Fundamentals and Microcomputer + Support", + publisher = pub-HD, + address = pub-HD:adr, + year = "1989", + ISBN = "0-8162-2060-3", + acknowledgement = ack-bc, +} + +@Periodical{CurSci:AIDS, + key = "C01AIDS", + title = "{AIDS}", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "Current Science publishes more than 80 medical + periodicals using an in-house markup language for which + {\TeX} is the back-end typesetting system. All + submitted articles (whether on paper or on magnetic + media) are rekeyed by clerical staff into the markup + system.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:AIDS-90, + key = "C02AIDS90", + title = "{AIDS} '90", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:AIDS-A-Guid-Clin-Coun, + key = "C04AIDSAGCC", + title = "{AIDS}: {A} Guide to Clinical Counselling", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:AIDS-Afri, + key = "C03AIDSA", + title = "{AIDS} in Africa", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Ambu-Moni-Bloo-Pres-Vari, + key = "C05AMBPV", + title = "Ambulatory Monitoring and Blood Pressure Variability", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Anae-Frie, + key = "C06AF", + title = "Anaesthetist's Friend", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Annu-Card-Surg-1990, + key = "C07ACS1990", + title = "Annual of Cardiac Surgery 1990", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1990", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Annu-Gast-Endo-1990, + key = "C08AGE1990", + title = "Annual of Gastrointestinal Endoscopy 1990", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1990", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Anti-Horm-Pate-Fast, + key = "C10AHPF-A", + title = "Anticancer and Hormone Patent Fast-Alert", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Anti-Pate-Fast, + key = "C09APF-A", + title = "Antimicrobial Patent Fast-Alert", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Anti-Pate-Fast-2, + key = "C11A-PF-A", + title = "Anti-inflammatory Patent Fast-Alert", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Athe-Athe-Isch-Hear-Dise, + key = "C12AAIHD", + title = "Atheroma: Atherosclerosis in Ischaemic Heart Disease", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Atla-Coro-Hear-Dise, + key = "C13ACHD", + title = "Atlas of Coronary Heart Disease", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Atla-Hear-Dise, + key = "C14AHDA", + title = "Atlas of Heart Disease in the Aged", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Biot-Pate-Fast, + key = "C15BPF-A", + title = "Biotechnology Patent Fast-Alert", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Card-Pate-Fast, + key = "C16CPF-A", + title = "Cardiovascular Patent Fast-Alert", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Clas-Pape-Asth, + key = "C17CPA", + title = "Classic Papers in Asthma", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Clas-Pape-Hype, + key = "C18CPH", + title = "Classic Papers in Hyperlipidaemia", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Clas-Pape-Hype-2, + key = "C19CPH", + title = "Classic Papers in Hypertension", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Clas-Pape-Rheu, + key = "C20CPR", + title = "Classic Papers in Rheumatology", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Clin-Illu-Dict-Card, + key = "C21CIDC", + title = "Clinician's Illustrated Dictionary of Cardiology", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Clin-Illu-Dict-Gast, + key = "C22CIDG", + title = "Clinician's Illustrated Dictionary of + Gastroenterology", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Clin-Illu-Dict-Hype, + key = "C23CIDH", + title = "Clinician's Illustrated Dictionary of Hypertension", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Clin-Illu-Dict-Rheu, + key = "C24CIDR", + title = "Clinician's Illustrated Dictionary of Rheumatology", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Clin-Manu-Angi-Myoc, + key = "C25CMAMI", + title = "Clinician's Manual on Angina and Myocardial + Infarction", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Clin-Manu-Asth, + key = "C26CMA", + title = "Clinician's Manual on Asthma", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Clin-Manu-Hear-Fail, + key = "C27CMHF", + title = "Clinician's Manual on Heart Failure", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Clin-Manu-Hype, + key = "C28CMH", + title = "Clinician's Manual on Hyperlipidaemia", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Clin-Manu-Hype-2, + key = "C29CMH", + title = "Clinician's Manual on Hypertension", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Clin-Manu-Migr, + key = "C30CMM", + title = "Clinician's Manual on Migraine", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Clin-Manu-Oste, + key = "C31CMO", + title = "Clinician's Manual on Osteoarthritis", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Clin-Manu-Pept-Ulce, + key = "C32CMPU", + title = "Clinician's Manual on Peptic Ulcer", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Clin-Manu-Rheu-Arth, + key = "C33CMRA", + title = "Clinician's Manual on Rheumatoid Arthritis", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:CNS-Pate-Fast, + key = "C34CNSPF-A", + title = "{CNS} Patent Fast-Alert", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Coro-Arte-Dise, + key = "C35CAD", + title = "Coronary Artery Disease", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Coro-Risk-Asse-Prac, + key = "C36CRAP", + title = "Coronary Risk Assessment in Practice", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Biol, + key = "C37CB", + title = "Current Biology", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Card-Drug, + key = "C38CCD", + title = "Current Cardiovascular Drugs", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Drug, + key = "C39CD", + title = "Current Drugs (series)", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Opin-Anae, + key = "C40COA", + title = "Current Opinion in Anaesthesiology", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Opin-Biot, + key = "C41COB", + title = "Current Opinion in Biotechnology", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Opin-Card, + key = "C42COC", + title = "Current Opinion in Cardiology", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Opin-Cell-Biol, + key = "C43COCB", + title = "Current Opinion in Cell Biology", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Opin-Dent, + key = "C44COD", + title = "Current Opinion in Dentistry", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Opin-Gast, + key = "C45COG", + title = "Current Opinion in Gastroenterology", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Opin-Gene-Deve, + key = "C46COGD", + title = "Current Opinion in Genetics and Development", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Opin-Immu, + key = "C47COI", + title = "Current Opinion in Immunology", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Opin-Infe-Dise, + key = "C48COID", + title = "Current Opinion in Infectious Diseases", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Opin-Lipi, + key = "C49COL", + title = "Current Opinion in Lipidology", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Opin-Neur, + key = "C50CON", + title = "Current Opinion in Neurobiology", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Opin-Neur-Neur, + key = "C51CONN", + title = "Current Opinion in Neurology and Neurosurgery", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Opin-Obst-Gyne, + key = "C52COOG", + title = "Current Opinion in Obstetrics and Gynecology", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Opin-Onco, + key = "C53COO", + title = "Current Opinion in Oncology", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Opin-Opht, + key = "C54COO", + title = "Current Opinion in Ophthalmology", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Opin-Orth, + key = "C55COO", + title = "Current Opinion in Orthopaedics", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Opin-Pedi, + key = "C56COP", + title = "Current Opinion in Pediatrics", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Opin-Psyc, + key = "C57COP", + title = "Current Opinion in Psychiatry", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Opin-Radi, + key = "C58COR", + title = "Current Opinion in Radiology", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Opin-Rheu, + key = "C59COR", + title = "Current Opinion in Rheumatology", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Opin-Stru-Biol, + key = "C60COSB", + title = "Current Opinion in Structural Biology", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Pate-Fast-Onli-Acce, + key = "C61CPF-AOA", + title = "Current Patents Fast-Alert\emdash{}Online Access", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Prac-Medi, + key = "C62CPM", + title = "Current Practice of Medicine", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Curr-Ther-Pate, + key = "C63CTP", + title = "Current Therapeutic Patents", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Dete-Mana-Bloo-Lipi, + key = "C64DMBLD", + title = "Detection and Management of Blood Lipid Disorders", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Euro-Jour-Gast-Hepa, + key = "C65EJGH", + title = "European Journal of Gastroenterology and Hepatology", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Gast-Elde, + key = "C66GE", + title = "Gastroenterology in the Elderly", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Hand-Hear-Fail, + key = "C67HHF", + title = "Handbook of Heart Failure", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Hand-High-Bloo-Pres, + key = "C68HHBP", + title = "Handbook of High Blood Pressure", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Hand-Hype, + key = "C69HH", + title = "Handbook of Hyperlipidaemia", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Herb-Fung-Plan-Grow-Regu, + key = "C70HFPGRPF-A", + title = "Herbicide, Fungicide and Plant Growth Regulator Patent + Fast-Alert", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Hype-Annu-1989--90, + key = "C73HA1989--90", + title = "Hypertension Annual 1989--90", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1989", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Hype-Annu-1990--91, + key = "C74HA1990--91", + title = "Hypertension Annual 1990--91", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1990", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Hype-Diab, + key = "C71HD", + title = "Hypertension and Diabetes", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Hype-Elde, + key = "C72HE", + title = "Hypertension and the Elderly", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Immu, + key = "C75I", + title = "Immunobiology", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Jour-Hype, + key = "C76JH", + title = "Journal of Hypertension", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Lect-Hype, + key = "C77LH", + title = "Lectures in Hypertension", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Macr-Stru-1990, + key = "C78MS1990", + title = "Macromolecular Structures 1990", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1990", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Pest-Inse-Fert-Pate-Fast, + key = "C79PIFPF-A", + title = "Pesticide, Insecticide and Fertilizer Patent + Fast-Alert", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Pock-Guid-Acne, + key = "C80PGA", + title = "Pocket Guide to Acne", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1987--date{}", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Slid-Atla-Curr-Opht-1990, + key = "C83SACO1990", + title = "Slide Atlas of Current Ophthalmology 1990", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1990", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Slid-Atla-Curr-Opht-1991, + key = "C84SACO1991", + title = "Slide Atlas of Current Ophthalmology 1991", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1991", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Slid-Atla-Curr-Radi-1990, + key = "C85SACR1990", + title = "Slide Atlas of Current Radiology 1990", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1990", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Slid-Atla-Curr-Radi-1991, + key = "C86SACR1991", + title = "Slide Atlas of Current Radiology 1991", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1991", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Slid-Atla-Gast-Endo-1990, + key = "C81SAGE1990", + title = "Slide Atlas of Gastrointestinal Endoscopy 1990", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1990", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Periodical{CurSci:Slid-Atla-Gast-Endo-1991, + key = "C82SAGE1991", + title = "Slide Atlas of Gastrointestinal Endoscopy 1991", + publisher = pub-CURSCI, + address = pub-CURSCI:adr, + year = "1991", + note = "See \cite{CurSci:AIDS}.", + acknowledgement = ack-ga-gt, +} + +@Book{Dai:SCT92, + author = "Catherine Dai", + title = "Bound Feet: Stories of Contemporary Taiwan", + publisher = pub-BOOKMAN, + address = pub-BOOKMAN:adr, + year = "1992", + ISBN = "957-586-241-4", + bibdate = "Fri Feb 19 17:22:46 1993", + acknowledgement = ack-tr, +} + +@Book{Dai:UPT90, + author = "Catherine Dai", + title = "Under the Phoenix Tree", + publisher = pub-BOOKMAN, + address = pub-BOOKMAN:adr, + pages = "330", + year = "1990", + ISBN = "957-586-063-2", + LCCN = "PL2855.A3 U54 1990", + bibdate = "Tue Dec 14 23:00:21 1993", +} + +@Book{Daigle:QTC91, + author = "John W. Daigle", + title = "Queuing Theory for Computer Communications", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xvi + 414", + year = "1991", + ISBN = "0-201-06755-2", + LCCN = "TK5105.5.D325 1991", + bibdate = "Wed Dec 15 08:03:13 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Dally:VLS87, + author = "W. J. Dally", + title = "A {VLSI} Architecture for Concurrent Data Structures", + publisher = pub-KLUWER, + address = pub-KLUWER:adr, + pages = "xvi + 243", + year = "1987", + ISBN = "0-89838-235-1", + LCCN = "TK7888.4 .D341 1987", + bibdate = "Sun Jul 10 01:18:32 1994", + note = prep-unknowntex, + acknowledgement = ack-bkph, +} + +@Misc{DamEngineering, + key = "DE", + title = "Dam Engineering", + publisher = pub-REED, + address = pub-REED:adr, + month = jan, + year = "1990", + ISSN = "0958-9341", + note = "Laser-printed using {\LaTeX}.", + acknowledgement = ack-mc, + affiliation = "International Water Power \& Dam Construction", +} + +@Book{Davis:KBS82, + author = "R. Davis and D. B. Lenat", + title = "Knowledge-Based Systems in Artificial Intelligence", + publisher = pub-MH, + address = pub-MH:adr, + pages = "xxi + 490", + year = "1982", + ISBN = "0-07-015557-7", + LCCN = "Q335 .D38", + bibdate = "Sun Jul 10 11:39:03 1994", + note = prep-tex, + acknowledgement = ack-bkph, +} + +@Book{deBroglie:HUP90, + author = "Louis de Broglie", + title = "Heisenberg's Uncertainty Principle and the + Probabilistic Interpretation of Wave Mechanics", + number = "40", + publisher = pub-KLUWER, + address = pub-KLUWER:adr, + pages = "xliv + 302", + year = "1990", + ISBN = "0-7923-0929-4", + LCCN = "QC174.2 .B653513 1990", + note = "English translation by Alwyn van der Merwe. " # + prep-tex, + acknowledgement = ack-psg, + bibdate = "Tue Dec 14 23:00:27 1993", + series = "Fundamental Theories of Physics", +} + +@Book{Demana:CAG89, + author = "Franklin Demana and Bert K. Waits", + title = "College Algebra: {A} Graphing Approach", + publisher = pub-AW, + address = pub-AW:adr, + year = "1989", + ISBN = "0-201-52811-8", + LCCN = "QA155.5 .D45 1989", + bibdate = "Thu Dec 16 09:22:21 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Demana:CAT89, + author = "Franklin Demana and Bert K. Waits", + title = "College Algebra and Trigonometry: {A} Graphing + Approach", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xvi + 637 + 67 + 7", + year = "1989", + ISBN = "0-201-52810-X", + LCCN = "QA331.3 .D46 1991", + bibdate = "Thu Dec 16 09:24:33 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Demana:PFG90, + author = "Franklin Demana and Bert K. Waits", + title = "Precalculus: Functions and Graphs", + publisher = pub-AW, + address = pub-AW:adr, + pages = "718 + 95 + 16", + year = "1990", + ISBN = "0-201-52781-2", + LCCN = "QA154.2 .D43 1990", + bibdate = "Thu Dec 16 09:25:43 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Demana:PM90, + author = "Franklin Demana and Bert K. Waits", + title = "Precalculus Mathematics: {A} graphing approach", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xvi + 933", + year = "1990", + ISBN = "0-201-52813-4", + LCCN = "QA109 .D45 1990", + bibdate = "Thu Dec 16 09:27:22 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Demana:TGA89, + author = "Franklin Demana and Bert K. Waits", + title = "Trigonometry: {A} Graphing Approach", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xii + 482", + year = "1989", + ISBN = "0-201-52812-6", + LCCN = "QA538 .D45 1990", + bibdate = "Thu Dec 16 09:28:34 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Devaney:ICD87, + author = "Robert L. Devaney", + title = "An Introduction to Chaotic Dynamical Systems", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xii + 320", + year = "1987", + ISBN = "0-8053-1601-9", + LCCN = "QA614.8 .D48 1986", + bibdate = "Tue Dec 14 23:00:29 1993", + note = prep-tex, + acknowledgement = ack-nhfb, +} + +@Book{Devaney:ICD89, + author = "Robert L. Devaney", + title = "An Introduction to Chaotic Dynamical Systems", + publisher = pub-AW, + address = pub-AW:adr, + edition = "Second", + pages = "xvi + 336", + year = "1989", + ISBN = "0-201-13046-7", + LCCN = "QA614.8 .D48 1989", + bibdate = "Tue Dec 14 23:00:30 1993", + note = prep-tex, + acknowledgement = ack-mjp, +} + +@Book{Devito:FAL90, + author = "Carl L. Devito", + title = "Functional Analysis and Linear Operator Theory", + publisher = pub-AW, + address = pub-AW:adr, + pages = "x + 358", + year = "1990", + ISBN = "0-201-11941-2", + LCCN = "QA329.2 .D48 1990", + bibdate = "Tue Dec 14 23:00:31 1993", + note = prep-latex, + acknowledgement = ack-lmp # " and " # ack-mz, +} + +@Book{Devroye:1986:LNB, + author = "Luc Devroye", + title = "Lecture Notes on Bucket Algorithms", + publisher = pub-BIRKHAUSER, + address = pub-BIRKHAUSER:adr, + pages = "148", + year = "1986", + ISBN = "0-8176-3328-6", + LCCN = "QA76.9.D35 D48 1986", + bibdate = "Wed Jul 13 18:29:54 1994", + annote = "Hashing algorithms scramble data and create + pseudo-uniform data distributions. Bucket algorithms + operate on raw untransformed data which are partitioned + into groups according to membership in equi-sized + d-dimensional hyperrectangles, called cells or buckets. + The bucket data structure is sensitive to the + distribution of the data. these lecture notes discuss + the connection between the expected time of various + bucket algorithms and the distribution of data. the + results are illustrated on standard searching, sorting + and selection problems, as well as on a variety of + problems in computational geometry and operations + research.", + descriptor = "Algorithmus, Bucket, Geometrie, Hashverfahren, + Sortieren, Suchen, Unternehmensforschung, + Auswahlfunktion", +} + +@Book{Dibble:OIA92, + author = "Peter C. Dibble", + title = "{OS-9} Insights\emdash An Advanced Programmers Guide + to {OS-9}", + publisher = pub-MICROWARE, + address = pub-MICROWARE:adr, + edition = "Second", + year = "1992", + ISBN = "0-918035-03-1", + note = prep-latex # " Used a private modification of the + {\LaTeX} book format with Adobe Garamond PostScript + type faces. {\tt dvips} produced 300dpi PostScript + output that was printed on a Hewlett-Packarad LaserJet + II with Adobe's PostScript cartridge. Final copy was + produced from PostScript disks sent to Courier + Connection who returned pallets of books in something + like four weeks. The titlepages are hand-coded + Postscript, and figures use the figure environment.", + acknowledgement = ack-pcd, +} + +@Book{Dijkstra:FDP89, + editor = "Edsger W. Dijkstra", + title = "Formal Development of Programs and Proofs", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiv + 242", + year = "1989", + ISBN = "0-201-17237-2", + LCCN = "QA76.6 .F657 1990", + bibdate = "Tue Dec 14 23:00:32 1993", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Dongarra:SLS91, + author = "Jack J. Dongarra and Iain S. Duff and Danny C. + Sorensen and Henk A. van der Vorst", + title = "Solving Linear Systems on Vector and Shared Memory + Computers", + publisher = pub-SIAM, + address = pub-SIAM:adr, + pages = "x + 256", + year = "1991", + ISBN = "0-89871-270-X", + LCCN = "QA184 .S65 1991", + bibdate = "Tue Dec 14 23:00:33 1993", +} + +@Book{Doolen:LGM90, + editor = "Gary D. Doolen and M. Frisch and B. Hasslacher and S. + Oszag and S. Wolfram", + title = "Lattice Gas Methods for Partial Differential + Equations", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xix + 554", + year = "1990", + ISBN = "0-201-16579-1 (hardcover), 0-201-13232-X (paperback)", + LCCN = "QA374 .L34 1989", + bibdate = "Fri Jul 22 10:25:17 1994", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Doughty:LII90, + author = "N. A. Doughty", + title = "Lagrangian interaction: an introduction to + relativistic symmetry in electrodynamics and + gravitation", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xix + 569", + year = "1990", + ISBN = "0-201-41625-5", + LCCN = "QC631.D68 1989", + bibdate = "Fri Jul 22 11:02:41 1994", + note = prep-latex, + acknowledgement = ack-bnb # " and " # ack-nad, +} + +@Book{Dybvig:SPL87, + author = "R. Kent Dybvig", + title = "The {SCHEME} Programming Language", + publisher = pub-PH, + address = pub-PH:adr, + pages = "xi + 242", + year = "1987", + ISBN = "0-13-791864-X (paperback)", + LCCN = "QA76.73.S34 D93 1987", + bibdate = "Tue Dec 14 23:00:34 1993", + acknowledgement = ack-nhfb, +} + +@Book{Ellis:TTP90-1, + editor = "Paul J. Ellis and Y. C. Tang", + title = "Trends in Theoretical Physics", + volume = "1", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xv + 412", + year = "1990", + ISBN = "0-201-50393-X", + LCCN = "QC20 .T69 1990 Sci-Eng", + bibdate = "Wed Dec 15 08:03:38 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Ellis:TTP91-2, + editor = "Paul J. Ellis and Y. C. Tang", + title = "Trends in Theoretical Physics", + volume = "2", + publisher = pub-AW, + address = pub-AW:adr, + year = "1991", + ISBN = "0-201-52251-9", + LCCN = "QC20 .T69 1990", + bibdate = "Tue Dec 14 23:00:35 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Epstein:RTC90, + author = "Lawrence Epstein and Richard F. Sherburne", + title = "Reflections on Tibetan Culture: Essays in Memory of + Turrell {V}. Wylie", + volume = "12", + publisher = pub-MELLEN, + address = pub-MELLEN:adr, + pages = "xiii + 350", + year = "1990", + ISBN = "0-88946-064-7", + LCCN = "DS786 .R43 1990", + bibdate = "Tue Mar 15 08:02:04 1994", + series = "Studies in Asian Thought and Religion", + acknowledgement = ack-tr, +} + +@Book{Estrade:SJR90, + author = "J. Estrada", + title = "Los Sonidos en Juan Rulfo", + publisher = pub-UNAM, + address = pub-UNAM:adr, + year = "1990", + acknowledgement = ack-nhfb, +} + +@Book{Falck:TM89, + author = "Willie Falck and Johan Hammond Rosbach", + title = "Tra la mondo (All around the world)", + publisher = pub-EF, + address = pub-EF:adr, + year = "1989", + ISBN = "82-90006-07-1", + note = prep-latex # " This is a guidebook for teaching + Esperanto.", + acknowledgement = ack-dfl, +} + +@Book{Feferman:KG86, + author = "Solomon Feferman and John W. Dawson and Stephen C. + Kleene and Gregory H. Moore and Robert M. Solovay and + Jean van Heijenoort", + title = "Kurt {\"G}odel: Collected Works. Vol. 1: Publications + 1929-1936", + publisher = pub-OUP, + address = pub-OUP:adr, + pages = "459", + year = "1986", + ISBN = "0-19-503964-5", + LCCN = "QA9 .G53131 1986", + bibdate = "Thu Jul 21 22:17:04 1994", + note = "From {\em Computing Reviews\/}: ``The book is very + well written and put together as if by a magic + amalgamation of C. P. Snow and A. Church. Following the + publication style on Wittgenstein's works, there are + accurate, facing-page English translations of the + original German texts. All type has been reset by + computer in a more readable form. Indeed, the sheer joy + of {\TeX} blooms forth on every page. Every school + library should contain this definitive series of + volumes.''", + price = "US\$35", +} + +@Book{Feijen:BOB90, + editor = "W. H. J. Feijen and A. J. M. van Gasteren and D. Gries + and J. Misra", + title = "Beauty is our business: a birthday salute to {Edsger + W. Dijkstra}", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xix + 453", + year = "1990", + ISBN = "0-387-97299-4", + LCCN = "QA76 .B326 1990", + bibdate = "Thu Mar 24 09:27:40 1994", + note = prep-latex, + acknowledgement = ack-nhfb, +} + +@Book{Field:APQ89, + author = "Richard D. Field", + title = "Applications of Perturbative {QCD}", + publisher = pub-AW, + address = pub-AW:adr, + year = "1989", + ISBN = "0-201-16643-7", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Flynn:1995:WH, + author = "Peter Flynn", + title = "The {WorldWideWeb} Handbook", + publisher = pub-ITCP, + address = pub-ITCP:adr, + pages = "xix + 351", + year = "1995", + ISBN = "1-85032-205-8", + LCCN = "TK5105.888 .F56 1995", + bibdate = "Wed Nov 15 08:24:30 1995", + note = "Includes HTML quick reference guide. The book was + written with the O'Reilly/Davenport DocBook SGML DTD, + then translated with SGML2{\TeX} to plain {\TeX}, and + typeset with Karl Berry's Eplain macros.", + acknowledgement = ack-nhfb, +} + +@Book{Fortier:HLT89, + author = "Paul J. Fortier", + title = "Handbook of {LAN} Technology", + publisher = pub-MH, + address = pub-MH:adr, + pages = "xxiv + 551", + year = "1989", + ISBN = "0-07-021623-1", + LCCN = "TK5105.7.F67 1989", + bibdate = "Tue Dec 14 23:00:38 1993", + note = prep-tex, + acknowledgement = ack-fl, +} + +@Book{Fox:PCW94, + author = "Geoffrey C. Fox and Roy D. Williams and Paul C. + Messina", + title = "Parallel Computing Works!", + publisher = pub-MORGAN-KAUFMANN, + address = pub-MORGAN-KAUFMANN:adr, + pages = "xviii + 977", + year = "1994", + ISBN = "1-55860-253-4", + LCCN = "QA76.58.F68 1994", + bibdate = "Wed Aug 31 23:12:58 1994", + note = prep-latex, + price = "US\$64.95", + acknowledgement = ack-nhfb, +} + +@Book{Fradkin:HTS91, + author = "Eduardo Fradkin", + title = "High Temperature Superconductivity and Strongly + Correlated Electron Systems", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xvi + 350", + year = "1991", + ISBN = "0-201-52253-5", + LCCN = "QC611.98.H54 F73 1991", + bibdate = "Wed Dec 15 08:04:07 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Franklin:DCD90, + author = "Gene F. Franklin and David J. Powell and Michael L. + Workman", + title = "Digital Control of Dynamic Systems", + publisher = pub-AW, + address = pub-AW:adr, + edition = "Second", + pages = "xxi + 837", + year = "1990", + ISBN = "0-201-11938-2", + LCCN = "TJ223.M53 F73 1990", + bibdate = "Tue Dec 14 23:00:39 1993", + note = prep-amstex, + acknowledgement = ack-mz, +} + +@Book{Franklin:FCD91, + author = "Gene F. Franklin and J. David Powell and Abbas + Emami-Naeini", + title = "Feedback Control of Dynamic Systems", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xvi + 672", + year = "1991", + ISBN = "0-201-50862-1", + LCCN = "TJ216 .F723 1991 Reserve", + bibdate = "Tue Dec 14 23:00:40 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Fraser:RCC95, + author = "Chris W. Fraser and David R. Hanson", + title = "A Retargetable {C} Compiler: Design and + Implementation", + publisher = pub-BENCUM, + address = pub-BENCUM:adr, + pages = "xv + 564", + year = "1995", + ISBN = "0-8053-1670-1", + LCCN = "QA76.73.C15F75 1995", + bibdate = "Wed Feb 08 10:55:34 1995", + note = "From the authors' announcement: ``\ldots this book is + an example of a `literate program.' Like {\em {\TeX}: + The Program\/} by D. E. Knuth (Addison-Wesley, 1986), + this book is lcc's source code and the prose that + describes it. The code is presented in the order that + best suits understanding, not in the order dictated by + the C programming language. The source code that + appears on the diskette is extracted automatically from + the book's text files. \ldots{} The distribution is + available via `anonymous' ftp from + \path=ftp.cs.princeton.edu= \path=(128.112.152.13)= in + the directory \path=pub/lcc=. \ldots{} Additional + information about lcc and about our book is available + on the WWW at URL + \path=http://www.cs.princeton.edu/software/lcc=.''", + price = "US\$55.95", + acknowledgement = ack-nhfb, +} + +@Book{Freeman:NN91, + author = "James A. Freeman and David M. Skapura", + title = "Neural Networks", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiii + 401", + year = "1991", + ISBN = "0-201-51376-5", + LCCN = "QA76.87.F74 1991", + bibdate = "Wed Dec 15 08:04:16 1993", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Friedman:LL87, + author = "Daniel Friedman and Matthias Felleisen", + title = "The Little {LISP}er", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xiv + 186", + year = "1987", + ISBN = "0-262-56038-0", + LCCN = "QA76.73.L23 F74 1987", + bibdate = "Tue Dec 14 23:00:41 1993", + acknowledgement = ack-te, +} + +@Book{Gaarding:ACS88, + author = "L. G{\aa}rding and T. Tambour", + title = "Algebra for Computer Science", + publisher = pub-SV, + address = pub-SV:adr, + pages = "ix + 198", + year = "1988", + ISBN = "0-387-96780-X", + LCCN = "QA76.9.M35 G37 1988", + bibdate = "Tue Dec 14 23:00:42 1993", + acknowledgement = ack-bnb, +} + +@Book{Gander:SPS93, + author = "Walter Gander and Ji{\v{r}}i + H{\v{r}}eb{\'{\i}}{\v{c}}ek", + title = "Solving Problems in Scientific Computing Using {MAPLE} + and {MATLAB}", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xiii + 268", + year = "1993", + ISBN = "0-387-57329-1, 3-540-57329-1", + LCCN = "Q183.9 .G36 1993", + bibdate = "Mon Nov 28 12:01:23 1994", + note = prep-latex, + acknowledgement = ack-nhfb, + keywords = "MAPLE (computer file); MATLAB; science -- data + processing", +} + +@Book{Gavrilov:EAI92, + author = "A. K. Gavrilov and I. V. Kuklina and I. A. Levinskaja + and A. A. Nejjkhardt and I. A. Shishova", + title = "Ehtudy po antichnojj istorii i kulqture Severnogo + Prichernomorqja (English: Studies on History and + Culture of the North Coast of the Black Sea in Antique + Time)", + publisher = pub-GLAGOL, + address = pub-GLAGOL:adr, + pages = "271", + year = "1992", + ISBN = "5-85381-002-2", + bibdate = "Wed Jun 2 09:25:46 1993", + acknowledgement = ack-jr, +} + +@Book{Gazdar:NLP87, + author = "Gerald Gazdar and Alex Franz and Karen Osborne and + Roger Evans", + title = "Natural Language Processing in the 1980s, {A} + Bibliography", + volume = "12", + publisher = pub-SUCSLI, + address = pub-SUCSLI:adr, + pages = "viii + 240", + year = "1987", + ISBN = "0-937073-26-1 (hardcover), 0-937073-28-8 (paperback)", + LCCN = "P98.A12 N271 1987", + bibdate = "Sun Dec 12 13:21:17 1993", + note = "This book was prepared automatically from a database + and set with \TeX{}. The intent is to keep it updated", + price = "US\$24.95 (hardcover), US\$9.95 (paperback)", + series = "Center for the Study of Language and Information + Notes", + acknowledgement = ack-bnb, +} + +@Book{Gibson:PNA90, + author = "Rosalind S. Gibson", + title = "Principles of Nutritional Assessment", + publisher = pub-OUP, + address = pub-OUP:adr, + pages = "xvi + 691", + year = "1990", + ISBN = "0-19-505838-0", + LCCN = "RC621 .G52 1990", + bibdate = "Wed Aug 24 21:47:23 1994", + note = "Set by \LaTeX{}, with graphics from Harvard Graphics + and Adobe Illustrator, and designed by Ian L. Gibson + and Philip Taylor with the assistance of the publisher. + The book is typeset in Adobe Times Roman 10.5/12 and + 8.5/10.5, with figure annotation in Adobe Helvetica. + The reasons for the unusual font size are described in + Philip Taylor's {\TeX}91 conference paper, to appear in + TUGboat {\bf 12}, no. 1, 1991.", + acknowledgement = ack-pt, +} + +@Book{Gill:NLA91-1, + author = "P. Gill and E. Murray and M. Wright", + title = "Numerical Linear Algebra and Optimization", + volume = "1", + publisher = pub-AW, + address = pub-AW:adr, + year = "1991", + ISBN = "0-201-12649-4", + LCCN = "QA 184 G55 1991", + bibdate = "Wed Dec 15 08:04:18 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Gill:PO81, + author = "Philip E. Gill and Walter Murray and Margaret H. + Wright", + title = "Practical Optimization", + publisher = pub-AP, + address = pub-AP:adr, + pages = "xvi + 401", + year = "1981", + ISBN = "0-12-283950-1 (hardcover), 0-12-283952-8 (paperback)", + LCCN = "QA402.5 .G5 1981", + bibdate = "Tue Dec 14 23:00:43 1993", + acknowledgement = ack-nhfb, +} + +@Book{Girard:RDC90, + author = "Andr{\'e} Girard", + title = "Routing and Dimensioning in Circuit-Switched + Networks", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiv + 556", + year = "1990", + ISBN = "0-201-12792-X", + LCCN = "TK5103.8.G57 1990", + bibdate = "Tue Dec 14 23:00:45 1993", + note = prep-inrstex, + acknowledgement = ack-mz, +} + +@Book{Golub:MC89, + author = "Gene H. Golub and Charles F. van Loan", + title = "Matrix Computations", + publisher = pub-JHUP, + address = pub-JHUP:adr, + edition = "Second", + pages = "xvi + 476", + year = "1989", + ISBN = "0-8018-3010-9 (hardcover), 0-8018-3011-7 (paperback)", + LCCN = "QA188 .G65 1983", + bibdate = "Tue Dec 14 23:00:46 1993", + series = "Johns Hopkins Series in the Mathematical Sciences", + acknowledgement = ack-nhfb, +} + +@Book{Golub:SCD92, + author = "Gene H. Golub and James M. Ortega", + title = "Scientific Computing and Differential Equations", + publisher = pub-AP, + address = pub-AP:adr, + pages = "xi + 337", + year = "1992", + ISBN = "0-12-289255-0", + LCCN = "QA371 .G62 1992", + bibdate = "Tue Dec 14 23:00:48 1993", + note = prep-latex, + acknowledgement = ack-gg, +} + +@Book{Goodheart:MGE94, + author = "Berny Goodheart and James Cox", + title = "The Magic Garden Explained: The Internals of {UNIX} + System {V} Release 4, an Open Systems Design", + publisher = pub-PH, + pages = "xxviii + 664", + year = "1994", + ISBN = "0-13-098138-9", + LCCN = "QA76.76.O63 G6633 1994", + bibdate = "Wed Aug 10 13:33:14 1994", + note = "Probably a good companion to Bach's book, {\em The + Design of the {UNIX} Operating System}, \ldots{}. + Covering the internals, system calls, kernal of {System + V Release 4} \ldots{}.", + price = "US\$38.00", + acknowledgement = ack-sk, +} + +@Book{Gould:ICS88, + author = "Harvey Gould and Jan Tobochnik", + title = "Introduction to Computer Simulation Methods: + Applications to Physical Systems, Part 1 and 2", + publisher = pub-AW, + address = pub-AW:adr, + year = "1988", + ISBN = "0-201-16503-1 (hardcover), 0-201-16504-X (paperback)", + LCCN = "QC21.2 .G67 1988", + bibdate = "Fri Jul 22 10:25:22 1994", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Graham:CM94, + author = "Ronald L. Graham and Donald E. Knuth and Oren + Patashnik", + title = "Concrete Mathematics", + publisher = pub-AW, + address = pub-AW:adr, + edition = "Second", + pages = "xiii + 657", + year = "1994", + ISBN = "0-201-55802-5", + LCCN = "QA39.2 .G733 1994", + bibdate = "Wed Jul 6 14:39:36 1994", + acknowledgement = ack-nhfb, +} + +@Book{Graham:CMF89, + author = "Ronald L. Graham and Donald E. Knuth and Oren + Patashnik", + title = "Concrete Mathematics: {A} Foundation for Computer + Science", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiii + 625", + year = "1989", + ISBN = "0-201-14236-8", + LCCN = "QA39.2 .G7331 1989", + bibdate = "Wed Dec 15 08:04:45 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Grandine:NMP90, + author = "Thomas A. Grandine", + title = "The Numerical Methods Programming Projects Book", + publisher = pub-OUP, + address = pub-OUP:adr, + pages = "viii + 146", + year = "1990", + ISBN = "0-19-853387-X", + LCCN = "QA76.6 .G718 1990", + bibdate = "Tue Dec 14 23:01:17 1993", +} + +@Book{Granshaw:HAO88, + author = "Lindsay Granshaw", + title = "Health for All': The origins of the National Health + Service, 1848--1948. {A} Fortieth Anniversary + Retrospect", + publisher = pub-WIHM, + address = pub-WIHM:adr, + year = "1988", + ISBN = "0-85484-059-1", + note = prep-latex # " PC{\TeX} and Times Roman fonts, with + James Clark's dvitops for final output on bromide at + 1270dpi on the ULCC Linotronic 300.", + acknowledgement = ack-dw, +} + +@Book{Gray:T90, + author = "Alfred Gray", + title = "Tubes", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xii + 283", + year = "1990", + ISBN = "0-201-15676-8", + LCCN = "QC174.27.W28 G73 1990", + bibdate = "Tue Dec 14 23:01:27 1993", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Greene:HGA91, + author = "Andrew M. {Greene, Ed.}", + title = "How to Get Around {MIT}", + publisher = pub-TCA, + address = pub-TCA:adr, + edition = "Twenty-third", + year = "1991", + note = "Press run of 3000 copies; sold in local bookstore, and + distributed gratis to 2000 students. Typeset with Plain + {\TeX}, using Computer Modern fonts, with markup macros + written in-house. {\tt perl} was used to provide a + front end, consistent pagination, and the index. Final + pages were prepared on 300dpi Apple LaserWriter Plus + printer.", +} + +@Book{Greene:MAA81, + author = "Daniel H. Greene and Donald E. Knuth", + title = "Mathematics For the Analysis of Algorithms", + publisher = pub-BIRKHAUSER, + address = pub-BIRKHAUSER:adr, + pages = "107", + year = "1981", + ISBN = "3-7643-3046-5", + LCCN = "QA76.6 .G7423 1981", + bibdate = "Mon Jul 18 19:48:49 1994", + price = "US\$10.00", + acknowledgement = ack-nhfb, + keywords = "algorithms; theory", + review = "ACM CR 39194", + subject = "F.2 Theory of Computation, ANALYSIS OF ALGORITHMS AND + PROBLEM COMPLEXITY, Nonnumerical Algorithms and + Problems", +} + +@Book{Greene:MAA82, + author = "Daniel H. Greene and Donald E. Knuth", + title = "Mathematics for the Analysis of Algorithms", + publisher = pub-BIRKHAUSER, + address = pub-BIRKHAUSER:adr, + edition = "Second", + pages = "123", + year = "1982", + ISBN = "3-7643-3102-X", + LCCN = "QA76.6 .G7423 1982", + bibdate = "Tue Dec 14 23:01:29 1993", + acknowledgement = ack-nhfb, +} + +@Book{Gries:EMR89, + editor = "David Gries", + title = "Encapsulation, Modularization, and Reusability", + publisher = pub-AW, + address = pub-AW:adr, + year = "1989", + ISBN = "0-201-17233-X", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Grimson:AIB87, + editor = "W. E. L. Grimson and R. S. Patil", + title = "A. {I}. in the 1980s and Beyond: An {MIT} Survey", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "374", + year = "1987", + ISBN = "0-262-07106-1", + LCCN = "Q335 .A42 1987", + bibdate = "Tue Dec 14 23:01:31 1993", + note = prep-ytex, + acknowledgement = ack-bkph, +} + +@Book{Grimson:FIS81, + author = "W. Eric L. Grimson", + title = "From Images to Surfaces: {A} Computational Study of + the Human Early Visual System", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "274", + year = "1981", + ISBN = "0-262-07083-9", + LCCN = "QP487 .G74", + bibdate = "Tue Dec 14 23:01:33 1993", + note = prep-tex, + acknowledgement = ack-bkph, +} + +@Book{Grimson:ORC91, + author = "W. Eric L. Grimson", + title = "Object Recognition by Computer: The Role of Geometric + Constraints", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xv + 512", + year = "1991", + ISBN = "0-262-07130-4", + LCCN = "TA1632 .G735 1990", + bibdate = "Tue Dec 14 23:01:44 1993", + note = prep-ytex, + acknowledgement = ack-bkph, +} + +@Book{Gudder:MJ94, + author = "Stanley P. Gudder", + title = "A Mathematical Journey", + publisher = pub-MH, + address = pub-MH:adr, + edition = "Second", + year = "1994", + ISBN = "0-07-025130-4", + LCCN = "QA39.2 .G83 1994", + bibdate = "Thu Oct 14 10:10:47 1993", + note = prep-tex, + price = "US\$42.50", + acknowledgement = ack-psg, +} + +@Book{Gudder:QP88, + author = "Stanley P. Gudder", + title = "Quantum probability", + publisher = pub-AP, + address = pub-AP:adr, + pages = "xii + 316", + year = "1988", + ISBN = "0-12-305340-4", + LCCN = "QC20.7.P7 G83 1988", + bibdate = "Thu Oct 14 10:12:23 1993", + note = prep-tex, + series = "Probability and mathematical statistics", + acknowledgement = ack-psg, +} + +@Book{Gunion:HHG90, + author = "John F. Gunion and Howard E. Haber and Gordon L. Kane + and Sally Dawson", + title = "The Higgs Hunter's Guide", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xvi + 425", + year = "1990", + ISBN = "0-201-50935-0", + LCCN = "QC793.5.B62 H54 1990", + bibdate = "Wed Dec 15 08:04:51 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Hairer:SOD91, + author = "Ernst Hairer and Gerhard Wanner", + title = "Solving ordinary differential equations {II}: Stiff + and differential-algebraic problems", + volume = "14", + publisher = pub-SV, + address = pub-SV:adr, + year = "1991", + ISBN = "0-387-53775-9", + LCCN = "QA372 .H16 1987", + bibdate = "Tue Dec 14 23:01:48 1993", + note = prep-tex, + series = "Springer series in computational mathematics", + acknowledgement = ack-sh, +} + +@Book{Halley:THT88, + editor = "J. Woods Halley", + title = "Theories of High Temperature Superconductivity", + publisher = pub-AW, + address = pub-AW:adr, + pages = "vi + 264", + year = "1988", + ISBN = "0-201-12008-9", + LCCN = "QC612.S8 T437 1988", + bibdate = "Tue Dec 14 23:02:15 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Hamming:APS91, + author = "Richard W. Hamming", + title = "The Art of Probability\emdash For Scientists and + Engineers", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xvii + 344", + year = "1991", + ISBN = "0-201-51058-8", + LCCN = "QA273 .H3544 1991", + bibdate = "Tue Dec 14 23:02:16 1993", + acknowledgement = ack-mz, +} + +@Book{Hammouche:AVA90, + author = "Rabah Hammouche", + title = "Atlas Vent de l'Alg{\'e}rie", + publisher = "Office National de la M{\'e}t{\'e}orologie", + address = "Alger, Alg{\'e}rie", + pages = "150", + year = "1990", + note = "Typeset with Bitstream fonts on a Canon Series III + 300-dpi laser printer, with extensive graphics and data + tables; the data files are available on IBM PC + diskettes.", + acknowledgement = ack-ngm, +} + +@Book{Haralick:CRV91-1, + author = "Robert M. Haralick and Linda D. Shapiro", + title = "Computer and Robot Vision", + volume = "1", + publisher = pub-AW, + address = pub-AW:adr, + year = "1991", + ISBN = "0-201-10877-1", + LCCN = "TA1632 .H37 1992", + bibdate = "Tue Dec 14 23:02:18 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Harper:GCA91, + author = "David Harper and Chris Wooff and David Hodgkinson", + title = "A Guide to Computer Algebra Systems", + publisher = pub-JW, + address = pub-JW:adr, + pages = "xii + 148", + year = "1991", + ISBN = "0-471-92910-7", + LCCN = "QA155.7.E4 H37 1991", + bibdate = "Tue Dec 14 23:02:28 1993", + note = prep-latex, + acknowledgement = ack-nhfb, +} + +@Book{Harvey:CSL85, + author = "Brian Harvey", + title = "Computer Science Logo Style", + volume = "1", + publisher = pub-MIT, + address = pub-MIT:adr, + year = "1985", + ISBN = "0-262-58072-1", + LCCN = "QA76.6.H385 1985", + bibdate = "Tue Dec 14 23:02:30 1993", + acknowledgement = ack-te, +} + +@Book{Harvey:CSL86, + author = "Brian Harvey", + title = "Computer Science Logo Style", + volume = "2", + publisher = pub-MIT, + address = pub-MIT:adr, + year = "1986", + ISBN = "0-262-58080-2", + LCCN = "QA76.6.H385 1985", + bibdate = "Tue Dec 14 23:02:39 1993", + acknowledgement = ack-te, +} + +@Book{Harvey:CSL87, + author = "Brian Harvey", + title = "Computer Science Logo Style", + volume = "3", + publisher = pub-MIT, + address = pub-MIT:adr, + year = "1987", + ISBN = "0-262-58086-1", + acknowledgement = ack-te, +} + +@Book{Hassan:WAM91, + author = "Hassan Ait-Kaci", + title = "Warren's Abstract Machine", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xvi + 114", + year = "1991", + ISBN = "0-262-01123-9 (hardcover), 0-262-69146-9 (paperback)", + LCCN = "QA76.73.P76 A38 1991", + bibdate = "Fri Jul 22 10:25:27 1994", + note = prep-latex, + acknowledgement = ack-te, +} + +@Book{Hatfield:QFT91, + author = "Brian F. Hatfield", + title = "Quantum Field Theory of Point Particles and Strings", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xvii + 734", + year = "1991", + ISBN = "0-201-11982-X", + LCCN = "QC 174.45 H29 1992", + bibdate = "Wed Dec 15 08:05:03 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Hecht-Nielsen:N90, + author = "Robert Hecht-Nielsen", + title = "Neurocomputing", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiii + 433", + year = "1990", + ISBN = "0-201-09355-3", + LCCN = "QA76.5.H4442 1990", + bibdate = "Tue Dec 14 23:02:54 1993", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Heck:IM93, + author = "Andr{\'e} Heck", + title = "Introduction to Maple", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xiii + 497", + year = "1993", + ISBN = "0-387-97662-0, 3-540-97662-0", + LCCN = "QA155.7.E4H43 1993", + bibdate = "Tue Dec 14 23:02:56 1993", + acknowledgement = ack-nhfb, +} + +@Book{Helfer:IMD90, + author = "Adam Helfer", + title = "Introduction to Modern Differential Geometry", + publisher = pub-AW, + address = pub-AW:adr, + year = "1990", + ISBN = "0-201-50061-2", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Henzler:OF91, + author = "Martin Henzler and Wolfgang G{\"o}pel with Christiane + Ziegler", + title = "Ober{\-}fl{\"a}chen{\-}physik des + Fest{\-}k{\"o}rpers", + publisher = pub-TEUBNER, + address = pub-TEUBNER:adr, + year = "1991", + ISBN = "3-519-03047-0", + note = prep-latex, +} + +@Book{Herrmann:SMF90, + author = "Hans J. Herrmann and St{\'e}phan Roux", + title = "Statistical Models for the Fracture of Disordered + Media", + publisher = pub-ESPNH, + address = pub-ESPNH:adr, + pages = "xiii + 353", + year = "1990", + ISBN = "0-444-88551-X (hardcover), 0-444-88550-1 (paperback)", + LCCN = "TA409 .S73 1990", + bibdate = "Tue Dec 14 23:02:57 1993", + acknowledgement = ack-np, +} + +@Book{Hertz:NC91-1, + author = "J. Hertz and R. Palmer and A. Krogh", + title = "Neural Computation", + volume = "1", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xxii + 327", + year = "1991", + ISBN = "0-201-50395-6 (hardcover), 0-201-51560-1 (paperback)", + LCCN = "QA76.5 .H475 1991", + bibdate = "Fri Jul 22 10:25:39 1994", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Higham:1996:ASN, + author = "Nicholas J. Higham", + title = "Accuracy and Stability of Numerical Algorithms", + publisher = pub-SIAM, + address = pub-SIAM:adr, + pages = "xxviii + 688", + year = "1996", + ISBN = "0-89871-355-2 (paperback)", + LCCN = "QA297.H53 1996", + bibdate = "Tue Jan 30 11:01:35 1996", + note = "Typeset with \LaTeX2e", + price = "US\$39.00", + acknowledgement = ack-nhfb, +} + +@Book{Hildreth:MVM84, + author = "E. C. Hildreth", + title = "The Measurement of Visual Motion", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "241", + year = "1984", + ISBN = "0-262-08143-1", + LCCN = "BF241 .H53 1984", + bibdate = "Tue Dec 14 23:03:00 1993", + note = prep-ytex, + series = "ACM Distinguished Dissertation Series", + acknowledgement = ack-bkph, +} + +@Book{Hill:GPL94, + author = "Patricia Hill", + title = "The {G{\"o}del} Programming Language", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xx + 348", + year = "1994", + ISBN = "0-262-08229-2", + LCCN = "QA76.73.G17H55 1994", + bibdate = "Thu Sep 15 07:47:50 1994", + acknowledgement = ack-nhfb, +} + +@Book{Hillis:CM85, + author = "W. Daniel Hillis", + title = "The Connection Machine", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xiii + 190", + year = "1985", + ISBN = "0-262-08157-1", + LCCN = "QA267 .H4871 1985", + bibdate = "Tue Dec 14 23:03:01 1993", + note = "The book was set using {\LaTeX} by Thinking Machines + Corporation and printed and bound by Halliday + Lithograph in the USA. The terms in the index were + selected automatically using The TMC Indexer.", + acknowledgement = ack-nhfb, +} + +@Book{Hiscocks:1996:DLA, + author = "Richard D. Hiscocks", + title = "Design of Light Aircraft", + publisher = "Richard D. Hiscocks", + address = "Apt 704, Beach Park Apartments, 2095 Beach Avenue, + Vancouver, British Columbia V6G 1Z3, Canada; Tel: (604) + 682-6214", + year = "1996", + ISBN = "0-9699809-0-6", + LCCN = "TL671.2.H57 1995", + acknowledgement = ack-bnb, + pages = "281", + price = "US\$29.89, CDN\$39.68", + bibdate = "Mon Aug 12 07:34:13 1996", +} + +@Book{Hoare:DCC91, + author = "C. A. R. Hoare", + title = "Developments in Concurrency and Communication", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiv + 336", + year = "1991", + ISBN = "0-201-17232-1", + LCCN = "QA76.58 .D48 1991", + bibdate = "Tue Dec 14 23:03:02 1993", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Hoenig:AFM90, + author = "Alan Hoenig", + title = "Applied Finite Mathematics", + publisher = pub-MH, + address = pub-MH:adr, + pages = "xiv + 619", + year = "1990", + ISBN = "0-07-557093-9", + LCCN = "QA39.2 .H6227 1989", + bibdate = "Tue Dec 14 23:03:04 1993", + price = "US\$25.00", + acknowledgement = ack-bnb, +} + +@Book{Holmang:IUS88, + author = "Per Olof Holm{\"a}ng", + title = "Idrott och Utrikespolitk: Den svenska + idrottsr{\"o}relsens internationella f{\"o}rbindelser + 1919--1945", + number = "37", + publisher = pub-UGP, + address = pub-UGP:adr, + pages = "329", + year = "1988", + ISBN = "91-7900-635-3", + ISSN = "0346-914X", + LCCN = "GV706.35 .H65 1988", + bibdate = "Tue Dec 14 23:03:05 1993", + note = "Title in English: The international relations of the + Swedish sports movement 1919--1945 (Publications of the + Department of History, University of Gothenburg), no. + 37", + series = "Meddelande fr{\aa}n Historiska Institutionen i + G{\"o}teborg", +} + +@Book{Horn:RV86, + author = "Berthold K. P. Horn", + title = "Robot Vision", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "x + 509", + year = "1986", + ISBN = "0-262-08159-8", + LCCN = "TJ211.3 .H671 1986", + bibdate = "Tue Dec 14 23:03:06 1993", + note = prep-ytex, + acknowledgement = ack-bkph, +} + +@Book{Horn:SS89, + author = "Berthold K. P. Horn and Michael J. Brooks", + title = "Shape from Shading", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "577", + year = "1989", + ISBN = "0-262-08183-0", + LCCN = "TA1632 .S53 1989", + bibdate = "Tue Dec 14 23:03:07 1993", + note = prep-ytex, + acknowledgement = ack-bkph, +} + +@Book{Huet:LFF89, + editor = "G{\'e}rard Huet", + title = "Logical Foundations of Functional Programming", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xvi + 491", + year = "1989", + ISBN = "0-201-17234-8", + LCCN = "QA76.62 .L64 1990", + bibdate = "Tue Dec 14 23:03:09 1993", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Huttner:RAE93, + author = "Sidney F. Huttner and Elizabeth Stege Huttner", + title = "A register of artists, engravers, booksellers, + bookbinders, printers and publishers in New York City, + 1821--42", + publisher = pub-BSA, + address = pub-BSA:adr, + pages = "299", + year = "1993", + ISBN = "0-914930-15-X", + LCCN = "Z478.6.N5 H87 1993", + bibdate = "Sun Mar 27 10:21:36 1994", + note = prep-tex, + price = "US\$50.00", + acknowledgement = ack-jl, +} + +@Misc{IEEE:el-ins, + key = "IEEETEI", + title = j-IEEE-TEI, + year = "1989", + ISSN = "0018-9367", + acknowledgement = ack-nhfb, +} + +@Book{Jaeschke:DSC91, + author = "Rex Jaeschke", + title = "The Dictionary of Standard {C}", + publisher = pub-PPB, + address = pub-PPB:adr, + pages = "x + 164", + year = "1991", + ISBN = "1-878956-07-8", + LCCN = "QA76.73.C15 J335 1991", + bibdate = "Thu Dec 16 09:37:19 1993", + note = "Prepared with {\LaTeX}, with output to Personal + {\TeX}'s 2000dpi phototypesetter using Computer Modern + fonts.", + acknowledgement = ack-rj, +} + +@Book{Jaeschke:MSC89, + author = "Rex Jaeschke", + title = "Mastering Standard {C}", + publisher = pub-PPB, + address = pub-PPB:adr, + year = "1989", + ISBN = "0-9614729-8-7", + LCCN = "QA76.73.C15 J337 1989", + bibdate = "Thu Dec 16 09:37:15 1993", + note = prep-latex # " Phototypeset using Computer Modern fonts + at the American Mathematical Society by arrangement + with the publisher.", + price = "US\$39.95", + acknowledgement = ack-rj, +} + +@Book{Jain:OSI90, + author = "Bijendra N. Jain and Ashok K. Agrawala", + title = "Open Systems Interconnection\emdash{}Its Architecture + and Protocols", + publisher = pub-ESP, + address = pub-ESP:adr, + pages = "xxii + 599", + year = "1990", + ISBN = "0-444-88490-4", + LCCN = "TK5105.5 .J35 1990", + bibdate = "Tue Dec 14 23:03:12 1993", + acknowledgement = ack-np, +} + +@Misc{JCLT, + editor = "Rex Jaeschke", + key = "JCLT", + title = "{The Journal of C Language Translation}", + howpublished = "1810 Michael Faraday Drive, Suite 101, Reston, VA + 22090, USA, Tel: (703) 860-0091. E-mail + \path|rex@aussie.com|.", + year = "1989", + acknowledgement = ack-nhfb, +} + +@Book{Jen:LCS90-2, + author = "Erica Jen", + title = "1989 Lectures in Complex Systems", + volume = "2", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xxiv + 611", + year = "1990", + ISBN = "0-201-50936-9", + LCCN = "QA267.7 .C66 1989", + bibdate = "Tue Dec 14 23:03:13 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Johnson:1998:LAD, + author = "Michael K. Johnson and Erik W. Troan", + title = "{Linux} Application Development", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xxiii + 538", + year = "1998", + ISBN = "0-201-30821-5", + LCCN = "QA76.76.O63J635 1998", + bibdate = "Wed Oct 07 08:05:44 1998", + note = prep-latex, + price = "US\$45.95", + acknowledgement = ack-nhfb, +} + +@Book{Jones:FTV88, + author = "R. K. Jones and T. Crabtree", + title = "Fortran Tools for {VAX\slash VMS} and {MS-DOS}", + publisher = pub-WILEY, + address = pub-WILEY:adr, + pages = "xii + 447", + year = "1988", + ISBN = "0-471-61976-0", + LCCN = "QA76.73.F25 J66 1988", + bibdate = "Tue Dec 14 23:03:14 1993", + note = prep-latex, + acknowledgement = ack-nhfb, +} + +@Book{Jones:SSD90, + author = "Cliff B. Jones", + title = "Systematic Software Development Using {VDM}", + publisher = pub-PH, + address = pub-PH:adr, + edition = "Second", + pages = "xiv + 333", + year = "1990", + ISBN = "0-13-880733-7", + LCCN = "QA76.76.D47 J66 1990", + bibdate = "Tue Dec 14 23:03:16 1993", + note = prep-latex, + acknowledgement = ack-mjp, +} + +@Book{Kahlbrandt:SEO98, + author = "Bernd Kahlbrandt", + title = "{Software-Engineering. Objektorientierte + Software-Entwicklung mit der Unified Modeling + Language}", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xvi + 504", + year = "1998", + ISBN = "3-540-63309-X", + bibdate = "Sat Feb 28 10:30:19 1998", + note = prep-latex, + price = "DM 88", + URL = "http://www.springer.de/catalog/html-files/deutsch/eng/354063309X.html", + acknowledgement = ack-bk, +} + +@Book{Kamin:PLI90, + author = "Samuel N. Kamin", + title = "Programming Languages: An Interpreter-Based Approach", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xi + 640", + year = "1990", + ISBN = "0-201-06824-9", + LCCN = "QA76.7.K35 1990", + bibdate = "Tue Dec 14 23:03:17 1993", + note = prep-latex, + acknowledgement = ack-lmp # " and " # ack-mz, +} + +@Book{Kane:MEP88, + author = "Gordon Kane", + title = "Modern Elementary Particle Physics", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xx + 344", + year = "1988", + ISBN = "0-201-11749-5", + LCCN = "QC793.2 .K361 1987", + bibdate = "Tue Dec 14 23:03:18 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Kassakian:PPE91, + author = "John G. Kassakian and Martin F. Shlecht and George C. + Verghese", + title = "Principles of Power Electronics", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xxi + 738", + year = "1991", + ISBN = "0-201-09689-7", + LCCN = "TK7881.15.K37 1991", + bibdate = "Tue Dec 14 23:03:20 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Kay:PPP85, + author = "David G. Kay", + title = "Programming for People/Pascal", + publisher = pub-MAYFIELD, + address = pub-MAYFIELD:adr, + pages = "xiii + 620", + year = "1985", + ISBN = "0-87484-717-6", + LCCN = "QA76.73.P3 K3", + bibdate = "Tue Dec 14 23:03:21 1993", + note = "Prepared with {\TeX} using Baskerville fonts, with + output to Stanford Autologic APS-5 phototypesetter.", + acknowledgement = ack-dgk, +} + +@Book{Keener:PAM88, + author = "James P. Keener", + title = "Principles of Applied Mathematics", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xv + 560", + year = "1988", + ISBN = "0-201-15674-1", + LCCN = "QA601 .K41 1988", + bibdate = "Tue Dec 14 23:03:22 1993", + note = prep-latex, + acknowledgement = ack-lmp # " and " # ack-mz, +} + +@Book{Kehoe:ZAI93, + author = "Brendan P. Kehoe", + title = "Zen and the Art of the Internet: {A} Beginner's + Guide", + publisher = pub-PH, + address = pub-PH:adr, + edition = "Second", + pages = "xv + 112", + year = "1993", + ISBN = "0-13-010778-6", + LCCN = "TK5105.8.I57 K44 1993", + bibdate = "Tue Dec 14 23:03:23 1993", + note = "Prepared with {\TeX}info.", +} + +@Book{Keller:FCC82, + author = "Arthur M. Keller", + title = "A First Course in Computer Programming Using + {PASCAL}", + publisher = pub-MH, + address = pub-MH:adr, + pages = "xiii + 306", + year = "1982", + ISBN = "0-07-033508-7", + LCCN = "QA76.73.P2 K44 1982", + bibdate = "Tue Dec 14 23:03:24 1993", + acknowledgement = ack-bnb, +} + +@Book{Kirkerud:OOP89, + author = "Bj{\o}rn Kirkerud", + title = "Object-Oriented Programming with Simula", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiii + 515", + year = "1989", + ISBN = "0-201-17574-6", + LCCN = "QA 76.73 S55 K57 1989", + bibdate = "Tue Dec 14 23:03:25 1993", + note = prep-latex, + acknowledgement = ack-mc, +} + +@Book{Knuth:bible-texts, + author = "Donald E. Knuth", + title = "3:16 Bible Texts Illuminated", + publisher = pub-ARE, + address = pub-ARE:adr, + pages = "268", + year = "1991", + ISBN = "0-89579-252-4", + LCCN = "BS511.2.K58 1991", + bibdate = "Tue Dec 14 23:03:27 1993", + note = "See also review \cite{Shein:1992:BRB}.", +} + +@Book{Knuth:AH92, + author = "Donald E. Knuth", + title = "Axioms and Hulls", + number = "606", + publisher = pub-SV, + address = pub-SV:adr, + pages = "ix + 109", + year = "1992", + ISBN = "0-387-55611-7 (New York), 3-540-55611-7 (Berlin)", + LCCN = "QA640.3 .K68 1992", + bibdate = "Tue Sep 20 23:23:55 1994", + series = j-LNCS, + abstract = "A CC system is defined to be a relation on ordered + triples of points that satisfy five simple axioms + obeyed by the `counterclockwise' relation on points in + the plane. A CCC system is a relation on ordered + quadruples, satisfying five simple axioms obeyed by the + `incircle' relation. In this monograph, the properties + of these axioms are developed and related to other + abstract notions such as oriented matroids, chirotopes, + primitive sorting networks, and arrangements of + pseudolines. Decision procedures based on the CC axioms + turn out to be NP-complete, although nice + characterizations of CC structures are available. + Efficient algorithms are presented for finding convex + hulls in any CC system and Delaunay triangulations in + any CCC system. Practical methods for satisfying the + axioms with arbitrarily degenerate data lead to what + may well be the best method now known for Delaunay + triangulations and Voronoi diagrams in the Euclidean + plane. The underlying theme of this work is a + philosophy of algorithm design based on simple + primitive operations that satisfy clear and concise + axioms. (72 Refs.)", + acknowledgement = ack-nhfb, + annote = "From the Preface: ``This book may, incidentally, be + interesting to typography buffs as well as to computer + scientists, because of the rapid turnaround time + provided by Springer-Verlag. It is the first + publication to use the final revision of the Computer + Modern typefaces, released two weeks ago. I made the + arrowheads longer and stronger, so that they will not + disappear so easily on xerox copies; and I redesigned a + few of the letterforms, such as ${\cal I}$, ${\cal T}$, + and $\delta$. There is also an improved method for + digitization at low resolution. The new characters do + not affect any of the line breaks or page breaks made + by {\TeX}, because they fit exactly into the same size + boxes as the old ones did. Everyone now using the + Computer Modern fonts of 1986 should soon be able to + install the 1992 fonts in their place, at little or no + cost. I promise not the change them again. --- Donald + E. Knuth, Stanford, California, April 1992.''", + classification = "C4260 (Computational geometry); C4240 (Programming + and algorithm theory)", + keywords = "Counterclockwise relation; Incircle relation; + NP-complete decision procedures; CC system; Ordered + triples of points; CCC system; Ordered quadruples; + Axioms; Oriented matroids; Chirotopes; Primitive + sorting networks; Pseudolines; Convex hulls; Delaunay + triangulations; Arbitrarily degenerate data; Voronoi + diagrams; Euclidean plane; Primitive operations", + thesaurus = "Computational complexity; Computational geometry", +} + +@Book{Knuth:1997:FA, + author = "Donald E. Knuth", + title = "Fundamental Algorithms", + volume = "1", + publisher = pub-AW, + address = pub-AW:adr, + edition = "Third", + pages = "xix + 650", + year = "1997", + ISBN = "0-201-89683-4", + LCCN = "QA76.6 .K64 1997", + bibdate = "Fri Jul 11 15:41:22 1997", + price = "US\$49.50", + series = "The Art of Computer Programming", + acknowledgement = ack-nhfb, +} + +@Book{Knuth:1997:SA, + author = "Donald E. Knuth", + title = "Seminumerical Algorithms", + volume = "2", + publisher = pub-AW, + address = pub-AW:adr, + edition = "Third", + pages = "704", + year = "1997", + ISBN = "0-201-89684-2", + LCCN = "", + bibdate = "Fri Jan 31 07:40:01 1997", + price = "US\$49.44", + series = "The Art of Computer Programming", + acknowledgement = ack-nhfb, +} + +@Book{Knuth:1998:SS, + author = "Donald E. Knuth", + title = "Sorting and Searching", + volume = "3", + publisher = pub-AW, + address = pub-AW:adr, + edition = "Second", + pages = "704", + year = "1998", + ISBN = "0-201-89685-0", + LCCN = "QA76.6.K64 1997", + bibdate = "Sat Feb 27 11:11:53 1999", + price = "US\$49.95", + series = "The Art of Computer Programming", + acknowledgement = ack-nhfb, +} + +@Book{Knuth:2000:SPA, + author = "Donald E. Knuth", + title = "Selected Papers on Analysis of Algorithms", + publisher = pub-CSLI, + address = pub-CSLI:adr, + pages = "xvi + 621", + year = "2000", + ISBN = "1-57586-212-3 (paperback), 1-57586-211-5 (cloth)", + LCCN = "QA9.58 .K65 2000", + bibdate = "Mon Sep 11 09:56:39 2000", + acknowledgement = ack-nhfb, +} + +@Book{Koenderink:SS89, + author = "Jan Koenderink", + title = "Solid Shape", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xiv + 699", + year = "1989", + ISBN = "0-262-11139-X", + LCCN = "QA641 .K74 1990", + bibdate = "Tue Dec 14 23:03:28 1993", + acknowledgement = ack-te, +} + +@Book{Kolb:EU90, + author = "Edward Kolb and Michael Turner", + title = "The Early Universe", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xxii + 547", + year = "1990", + ISBN = "0-201-11603-0", + LCCN = "QB981 .E68 1990", + bibdate = "Tue Dec 14 23:03:29 1993", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Koonin:CP90, + author = "Steven E. Koonin and Dawn C. Meredith", + title = "Computational Physics", + publisher = pub-AW, + address = "Redwood City, CA, USA", + pages = "xvi + 635", + year = "1990", + ISBN = "0-201-12779-2", + LCCN = "QC20.7.E4 K66 1990", + bibdate = "Tue Dec 14 23:03:30 1993", + acknowledgement = ack-bnb, +} + +@Book{Kosekela:PCS91, + editor = "R. Kosekela and M. Simmons", + title = "Parallel Computer Systems: Performance Instrumentation + and Visualization", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xxii + 289", + year = "1991", + ISBN = "0-201-50937-7", + LCCN = "T385 .P46 1990", + bibdate = "Tue Dec 14 23:03:32 1993", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Kreps:CMT90, + author = "David M. Kreps", + title = "A Course in Microeconomic Theory", + publisher = pub-PUP, + address = pub-PUP:adr, + pages = "xviii + 850", + year = "1990", + ISBN = "0-691-04264-0", + LCCN = "HB172 .K74 1990", + bibdate = "Tue Dec 14 23:03:33 1993", + note = "Typeset using {\PS} and {\CMR} fonts.", + acknowledgement = ack-lmp, +} + +@Book{Kreyszig:MCM94, + author = "E. Kreyszig and E. J. Normington", + title = "Maple Computer Manual for Seventh Edition Advanced + Engineering Mathematics\emdash Erwin Kreyszig", + publisher = pub-JW, + address = pub-JW:adr, + pages = "xii + 506", + year = "1994", + ISBN = "0-471-31126-X", + bibdate = "Tue May 24 08:38:06 1994", + note = prep-tex # " There is a companion {\it Instructor's + Maple Manual}, but I have not yet found an exact + citation for it.", + acknowledgement = ack-nhfb, +} + +@Book{Kruer:PLP88, + author = "William Kruer", + title = "The Physics of Laser Plasma Interactions", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xviii + 182", + year = "1988", + ISBN = "0-201-15672-5", + LCCN = "QC718.5.P5 K781 1988", + bibdate = "Tue Dec 14 23:03:34 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Kruse:1999:DSP, + author = "Robert L. Kruse and Alexander J. Ryba", + title = "Data structures and program design in {C++}", + publisher = pub-PH, + address = pub-PH:adr, + pages = "xvii + 717", + year = "1999", + ISBN = "0-13-768995-0", + LCCN = "QA76.73.C153 K79 1999", + bibdate = "Tue Aug 31 10:38:43 1999", + note = prep-tex # " Typeset in two colors with Palatino text and scaled Lucida math fonts.", + acknowledgement = ack-nhfb, +} + +@Book{Kupershmidt:ESS87, + author = "Boris A. Kupershmidt", + title = "Elements of {s}uperintegrable {s}ystems: {b}asic + {t}echniques and {r}esults", + publisher = pub-KLUWER, + address = pub-KLUWER:adr, + pages = "xvi + 187", + year = "1987", + ISBN = "90-277-2434-2", + LCCN = "QA377 .K851 1987", + bibdate = "Mon Jul 11 11:28:25 1994", + note = prep-tex, + acknowledgement = ack-bnb, +} + +@Book{Langton:AL89, + editor = "Christopher G. Langton", + title = "Artificial Life", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xxix + 655", + year = "1989", + ISBN = "0-201-09346-4 (hardcover), 0-201-09356-1 (paperback)", + LCCN = "QH324.8 .A77 1987", + bibdate = "Fri Jul 22 10:25:45 1994", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Laub:MA391, + author = "Josef Laub and Eugen Hruby and Hans-Christian Reichel + and Dieter Litschauer and Herbert Gro{\ss} and Robert + M{\"u}ller and Erich Neuwirth", + title = "Mathematik Arbeitsbuch 3", + publisher = pub-HPT, + address = pub-HPT:adr, + year = "1991", + ISBN = "3-209-01165-6", + note = "Textbook for high-school mathematics, grade 7. One + full chapter about spreadsheet programs has been + typeset by {\TeX}.", + acknowledgement = ack-nw, +} + +@Book{Laub:MA491, + author = "Josef Laub and Eugen Hruby and Hans-Christian Reichel + and Dieter Litschauer and Herbert Gro{\ss} and Robert + M{\"u}ller and Erich Neuwirth", + title = "Mathematik Arbeitsbuch 4", + publisher = pub-HPT, + address = pub-HPT:adr, + year = "1991", + ISBN = "3-209-01061-7", + note = "Textbook for high-school mathematics, grade 7. One + full chapter about spreadsheet programs has been + typeset by {\TeX}.", + acknowledgement = ack-nw, +} + +@Book{Lawrence:NLM87, + author = "Christopher Lawrence and Ghislaine Lawrence", + title = "No Laughing Matter: Historical Aspects of + Anaesthesia", + publisher = pub-WIHM, + address = pub-WIHM:adr, + pages = "84", + year = "1987", + ISBN = "0-85484-056-7", + LCCN = "RD79 .N6 1987", + bibdate = "Tue Dec 14 23:03:38 1993", + note = prep-latex # " PC{\TeX} and Computer Modern fonts, with + final output on a Canon LBP8 A1 at 300dpi. The printer + was managed by software from Personal {\TeX} driving a + Flagstaff Engineering JLaser card plugged into the PC + bus, and sending bitmaps directly to the laser printer, + bypassing the controller.", + acknowledgement = ack-dw, +} + +@Book{Leary:ITF85, + author = "Rolfe A. Leary", + title = "Interaction Theory in Forest Ecology and Management", + publisher = pub-NIJHOFF, + address = pub-NIJHOFF:adr, + pages = "x + 219", + year = "1985", + ISBN = "90-247-3220-4", + LCCN = "SD387.M8 L431 1985", + bibdate = "Tue Dec 14 23:03:45 1993", + acknowledgement = ack-bc, +} + +@Book{Leslie:RRH91, + editor = "Julia Leslie", + title = "Roles and Rituals for Hindu Women", + publisher = pub-PINTER, + address = pub-PINTER:adr, + pages = "xviii + 267", + year = "1991", + ISBN = "0-86187-796-9", + LCCN = "BL1237.46.R64 1991", + bibdate = "Tue Dec 14 23:03:47 1993", + note = prep-latex # " Used sb{\TeX} 3.1 and Computer Modern + fonts, proffed using em{\TeX}'s DVIHPLJ and an HP + LaserJet III. Final output produced on bromide at + 1270dpi on a Linotronic 300, via DVIPS 5.47 for some + parts, and Arbortext's DVILASER/PS (is that the name?) + for others. The L300 is owned and run by the University + of London, and they have loaded the CM fonts onto their + RIP's font disk, as well as having the Arbortext + software running invisibly, so TeX users can actually + submit DVI files over the JANET network (or by direct + login and Kermit), and get bromides back through the + post 24hrs later.", + acknowledgement = ack-dw, +} + +@Book{Levine:MR91, + author = "R. D. Levine and R. B. Bernstein", + title = "Molekulare Reaktionsdynamik", + publisher = pub-TEUBNER, + address = pub-TEUBNER:adr, + year = "1991", + ISBN = "3-519-03507-3", + note = "Original title: {\em Molecular Reaction Dynamics and + Chemical Reactivity}, translated by Christian Schlier. + The German edition was written in T3, then translated + to {\LaTeX}.", +} + +@Book{Lewis:ETC92, + author = "H. R. Lewis and Qr'hstos Q. Papadhmhtr'iou (H. H. + Papadimitriou)", + title = "Stoiqe'ia Jewr'ias Ypologismo'u (Elements of the + Theory of Computation)", + publisher = pub-TCGPB, + address = pub-TCGPB:adr, + pages = "494, with subject index, author index, and glossary", + year = "1992", + note = "One of the first books to be typeset in Greek by + {\TeX}.", +} + +@Book{Loeckx:FPL88, + author = "Jacques Loeckx and Kurt Mehlhorn and Reinhard + Wilhelm", + title = "Foundations of Programming Languages", + publisher = pub-JW, + address = pub-JW:adr, + pages = "426", + year = "1988", + ISBN = "0-471-92139-4", + LCCN = "QA76.7 .L64 1988", + bibdate = "Tue Dec 14 23:03:50 1993", +} + +@Book{LoPresti:LS91, + author = "L. {Lo Presti} and F. Neri", + title = "Lanalisi dei segnali", + publisher = pub-CLUT, + address = pub-CLUT:adr, + year = "1991", + note = prep-latex, + acknowledgement = ack-cb, +} + +@Book{Lotman:STK92, + author = "Yu. Lotman and others", + title = "Stat'i po tipologii kul'tury. Prilozhenie k `Trudam po + znakovym sistemam' (Articles about types of culture. + Application to procedures on signed systems.)", + publisher = "Tartu Semiotic Group", + address = "Tartu, Estonia", + pages = "250", + year = "1992", + acknowledgement = ack-bnb, + bibdate = "Wed Nov 1 08:25:30 2000", +} + +@Book{Lusardi:DEG88, + author = "Frank Lusardi", + title = "The Database Experts' Guide to {SQL}", + publisher = pub-MH, + address = pub-MH:adr, + pages = "xiv + 224", + year = "1988", + ISBN = "0-07-039006-1 (hardcover), 0-07-039002-9 (paperback)", + LCCN = "QA76.73.S67 L87 1988", + bibdate = "Fri Jul 22 10:25:53 1994", + note = prep-tex, + acknowledgement = ack-fl, +} + +@Book{Lyche:MMC89, + author = "Tom Lyche and Larry L. Schumaker", + title = "Mathematical Methods in Computer Aided Geometric + Design", + publisher = pub-AP, + address = pub-AP:adr, + pages = "xv + 611", + year = "1989", + ISBN = "0-12-460515-X", + LCCN = "QA448.D38 M381 1989", + bibdate = "Tue Dec 14 23:03:54 1993", + acknowledgement = ack-bnb, +} + +@Book{Lynch:1996:DA, + author = "Nancy A. Lynch", + title = "Distributed Algorithms", + publisher = pub-MORGAN-KAUFMANN, + address = pub-MORGAN-KAUFMANN:adr, + pages = "xvii + 872 (or xxiii + 872??)", + year = "1996", + ISBN = "1-55860-348-4", + LCCN = "QA76.9.D5 L96 1996", + bibdate = "Tue Jan 28 14:31:40 1997", + note = prep-latex, + series = "Morgan Kaufmann series in data management systems", + acknowledgement = ack-nhfb, +} + +@Book{Maeder:PM90, + author = "Roman Maeder", + title = "Programming in Mathematica", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiv + 267", + year = "1990", + ISBN = "0-201-51002-2", + LCCN = "QA76.95 .M34 1989", + bibdate = "Tue Dec 14 23:03:56 1993", + note = prep-tex, + acknowledgement = ack-bnb # " and " # ack-mz, +} + +@Book{Mangel:DMB88, + author = "Marc Mangel and Colin W. Clark", + title = "Dynamic Modeling in Behavioral Ecology", + publisher = pub-PUP, + address = pub-PUP:adr, + pages = "xii + 308", + year = "1988", + ISBN = "0-691-08505-6 (hardcover), 0-691-08506-4 (paperback)", + LCCN = "QL751.65.M3 M291 1988", + bibdate = "Tue Dec 14 23:03:57 1993", + acknowledgement = ack-bnb, +} + +@Book{Manna:LBC90-1, + author = "Zohar Manna and Richard Waldinger", + title = "The Logical Basis for Computer Programming", + volume = "1", + publisher = pub-AW, + address = pub-AW:adr, + year = "1990", + ISBN = "0-201-18260-2", + LCCN = "QA76.6 .M35595 1985", + bibdate = "Tue Dec 14 23:03:59 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Manna:LBC90-2, + author = "Zohar Manna and Richard Waldinger", + title = "The Logical Basis for Computer Programming", + volume = "2", + publisher = pub-AW, + address = pub-AW:adr, + year = "1990", + ISBN = "0-201-18261-0", + LCCN = "QA76.6 .M35595 1985", + bibdate = "Tue Dec 14 23:04:11 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Maslen:PAW91, + editor = "Keith Maslen and John Lancaster", + title = "The {Bowyer} Ledgers: The printing accounts of + {William Bowyer} father and son reproduced on + microfiche with a checklist of {Bowyer} printing + 1699-1777, a commentary, indexes, and appendixes", + publisher = pub-BS # " and " # pub-BSA, + address = pub-BS:adr # " and " # pub-BSA:adr, + pages = "70 microfiches", + year = "1991", + ISBN = "0-914930-13-3", + LCCN = "Z232.B68.B6 1991", + bibdate = "Wed Dec 15 08:05:08 1993", + note = "The editor (JL) remarks: ``The printed volume contains + lxxv, 616 pp., being the apparatus and indexes to 70 + microfiche which reproduce the original documents. It + may be of interest to note that the estimate for + commercial typesetting (from existing well-marked ASCII + files, but involving many complications such as tables) + was in excess of \$20,000; the total cost for {\TeX} + was below \$2,000 (plus of course one editor's unpaid + time -- but for this sort of work, with a very small + market, the key is getting it published at all). In + addition, there was the great advantage that + fine-tuning could take place right up to the last + minute, with instant proofs at low cost. I am (as a + former commercial printer as well as a printing + historian and hobbyist letterpress printer) thoroughly + sold on {\TeX}, and am using it for three additional + books now in progress -- for technical bibliography, + which can often be as complicated as mathematics, the + range of possibilities and flexibility makes it well + worth the complexity.''", + acknowledgement = ack-jl, +} + +@Book{Mason:RHM85, + author = "M. T. Mason and J. K. {Salisbury, Jr.}", + title = "Robot Hands and the Mechanics of Manipulation", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xxvi + 298", + year = "1985", + ISBN = "0-262-13205-2", + LCCN = "TJ211 .M366 1985", + bibdate = "Tue Dec 14 23:05:22 1993", + note = prep-unknowntex, + acknowledgement = ack-bkph, +} + +@Misc{Mathematica, + author = "Stephen Wolfram", + title = "Mathematica Journal", + howpublished = pub-AW, + year = "1990", + ISSN = "1047-5974", + acknowledgement = ack-lmp, +} + +@Book{MathSoft:1985:PUG, + author = "{MathSoft, Inc.}", + title = "{S-PLUS} User's Guide: Version 3.3 for {Windows}", + publisher = pub-STATSCI, + address = pub-STATSCI:adr, + pages = "various", + month = sep, + year = "1985", + ISBN = "", + LCCN = "", + bibdate = "Tue Jan 28 14:18:45 1997", + note = prep-latex, + acknowledgement = ack-nhfb, +} + +@Book{Maurer:DAM91, + author = "Stephen B. Maurer and Anthony Ralston", + title = "Discrete Algorithmic Mathematics", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xix + 834", + year = "1991", + ISBN = "0-201-15585-0", + LCCN = "QA39.2 .M394 1991", + bibdate = "Tue Dec 14 23:05:24 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{McAllester:O89, + author = "David McAllester", + title = "Ontic", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xiv + 158", + year = "1989", + ISBN = "0-262-13235-4", + LCCN = "QA76.9.A96 M37 1989", + bibdate = "Tue Dec 14 23:05:34 1993", + acknowledgement = ack-te, +} + +@Book{McCarthy:ITK90, + author = "J. M. McCarthy", + title = "Introduction to Theoretical Kinematics", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "130", + year = "1990", + ISBN = "0-262-13252-4", + LCCN = "QA841 .M33 1990", + bibdate = "Tue Dec 14 23:05:36 1993", + acknowledgement = ack-te, +} + +@Book{Mead:AVL89, + author = "Carver Mead", + title = "Analog {VLSI} and Neural Systems", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xxii + 371", + year = "1989", + ISBN = "0-201-05992-4", + LCCN = "QA76.5 .M48 1989", + bibdate = "Tue Dec 14 23:05:37 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Mesterton-Gibbons:CAM89, + author = "Michael Mesterton-Gibbons", + title = "A Concrete Approach to Mathematical Modeling", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xx + 597", + year = "1989", + ISBN = "0-201-12910-8", + LCCN = "QA401 .M51381 1989", + bibdate = "Tue Dec 14 23:05:38 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Milanese:1996:CIL, + author = "Guido Milanese", + title = "Concordantia et instrumenta lexicographica ad Graduale + Romanum pertinentia", + publisher = "Editrice Liguria s.n.c. di Norberto Sabatelli \& C.", + address = "Via De Mari 4R - I-17100 Savona, Italy; or Postal Box + 181 - 17100 Savona, Italy", + year = "1996", + ISBN = "88-8055-151-5", + acknowledgement = ack-nhfb, + note = "Preface by Mirella Ferrari. The book is a concordance + and a collection of indexes done on the Graduale + Romanum, the most important source of the Latin + liturgy. The typesetting of the book is completely done + with \LaTeX{}. There are several kinds of indexes, and + --- due to the variety of such indexes --- several + kinds of \LaTeX{} packages were used, including {\tt + multicols}, various kinds of lists and a huge use of + the {\tt myverb} package (hundreds of pages!), because + I wanted to produce the concordance (not the indexes) + at fixed space. Copies for review on journals available + on request: Contact the author at + \path=mc1194@mclink.it=.", + pages = "550", + price = "US\$55.00 (80,000 Italian Lire)", + bibdate = "Thu Oct 10 10:00:16 1996", +} + +@Book{Misner:SP91, + author = "Charles W. Misner and Patrick J. Cooney", + title = "Spreadsheet Physics", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xvii + 228", + year = "1991", + ISBN = "0-201-16410-8", + LCCN = "QC52 .M57 1991", + bibdate = "Tue Dec 14 23:05:48 1993", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Morner:CSE88, + editor = "Magnus M{\"o}ner and Thommy Svensson", + title = "Classes Strata Elites: Essays on Social Stratification + in History", + number = "34", + publisher = pub-AUG, + address = pub-AUG:adr, + pages = "269", + year = "1988", + ISBN = "91-7970-241-4", + ISSN = "0346-914X", + LCCN = "HN13 .C53 1988", + bibdate = "Tue Dec 14 23:05:49 1993", + series = "Report from the Department of History, Gothenburg + University", +} + +@Book{Moye:1995:FTD, + author = "Stephen Moye", + title = "Fontographer: {Type} by Design", + publisher = pub-MIS, + address = pub-MIS:adr, + pages = "xi + 275", + year = "1995", + ISBN = "1-55828-447-8", + LCCN = "Z250.8.F65 M69 1995", + bibdate = "Tue Jul 1 18:20:58 2003", + note = prep-tex, + price = "US\$30.00 (est.)", + acknowledgement = ack-bnb # " and " # ack-nhfb, + keywords = "Fontographer; Font editors", +} + +@Book{Munkres:AM91, + author = "James Munkres", + title = "Analysis of Manifolds", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xi + 366", + year = "1991", + ISBN = "0-201-51035-9", + LCCN = "QA300 .M75 1991", + bibdate = "Tue Dec 14 23:05:51 1993", + acknowledgement = ack-mz, +} + +@Book{Murray:EMI90, + author = "David Murray and Bernard Buxton", + title = "Experiments in the Machine Interpretation of Visual + Motion", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "236", + year = "1990", + ISBN = "0-262-13263-X", + LCCN = "TA1635 .M87 1990", + bibdate = "Tue Dec 14 23:05:52 1993", + acknowledgement = ack-te, +} + +@Book{Nakamura:TRR91, + author = "Yoshihiko Nakamura", + title = "Theoretical Robotics: Redundancy and Optimization", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xi + 337", + year = "1991", + ISBN = "0-201-15198-7", + LCCN = "TJ211 .N34 1991", + bibdate = "Tue Dec 14 23:05:54 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Nash:HSC90, + editor = "Stephen G. Nash", + title = "A History of Scientific Computing", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xix + 359", + year = "1990", + ISBN = "0-201-50814-1", + LCCN = "QA76.17 .H59 1990", + bibdate = "Tue Dec 14 23:05:55 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Negele:QMP88, + author = "John W. Negele and Henri Orland", + title = "Quantum Many-Particle Systems", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xviii + 459", + year = "1988", + ISBN = "0-201-12593-5", + LCCN = "QC174.17.P7 N441 1988", + bibdate = "Tue Dec 14 23:05:56 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Misc{Neural-Computation, + editor = "Terrence Sejnowski", + key = "NC", + title = "{Neural Computation}", + howpublished = pub-MIT, + year = "1989", + ISSN = "0899-7667", + note = "Technical journal published four times per year, using + {\PS} and {\CMR} fonts", + acknowledgement = ack-lmp, +} + +@Book{Newell:NLO91, + author = "Alan C. Newell and Jerome V. Molony", + title = "Non-Linear Optics", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xi + 436", + year = "1991", + ISBN = "0-201-51014-6", + LCCN = "QC446.2.N48 1992", + bibdate = "Tue Dec 14 23:06:14 1993", + acknowledgement = ack-mz, +} + +@Book{Newton:TTS88, + author = "H. Joseph Newton", + title = "Timeslab: {A} Time Series Analysis Laboratory", + publisher = pub-WADSWORTH, + address = pub-WADSWORTH:adr, + pages = "xv + 623", + year = "1988", + ISBN = "0-534-09198-9", + LCCN = "QA280 .N487 1988", + bibdate = "Tue Dec 14 23:06:16 1993", + note = prep-tex, + acknowledgement = ack-pj, +} + +@Book{Nickson:HDP93, + author = "R. Andrew Nickson", + title = "Historical dictionary of Paraguay", + publisher = pub-SCARECROW, + address = pub-SCARECROW:adr, + edition = "Second", + pages = "xxi + 685", + year = "1993", + ISBN = "0-8108-2643-7", + LCCN = "F2664 .K64 1993", + bibdate = "Wed Oct 13 18:32:20 1993", + note = "Typeset with plain {\TeX} using {\tt emtex} on an IBM + PC.", + acknowledgement = ack-gswan, +} + +@Book{Nossal:ICB90, + author = "Ralph Nossal and Harold Lecar", + title = "Introduction to Cell Biophysics", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xii + 387", + year = "1990", + ISBN = "0-201-19560-7", + LCCN = "QH581.5 .N67 1989", + bibdate = "Tue Dec 14 23:06:22 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{OKeefe:CP90, + author = "Richard O'Keefe", + title = "The Craft of Prolog", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xix + 387", + year = "1990", + ISBN = "0-262-15039-5", + LCCN = "QA76.73.P76 O38 1990", + bibdate = "Tue Dec 14 23:06:23 1993", + acknowledgement = ack-te, +} + +@Book{Omondi:CAS94, + author = "Amos R. Omondi", + title = "Computer Arithmetic Systems\emdash Algorithms, + Architecture, Implementation", + publisher = pub-PH, + address = pub-PH:adr, + pages = "xvi + 520", + year = "1994", + ISBN = "0-13-334301-4", + LCCN = "QA76.9.C62 O46 1994", + bibdate = "Tue Oct 18 14:56:40 1994", + note = "Prepared with {\LaTeX}, using a style file provided by + the publisher. PostScript page proofs were prepared by + the author, and delivered to the publisher for the + final printing.", + price = "US\$40.00", +} + +@Book{Orlando:FAS91, + author = "Terry P. Orlando and Kevin A. Delin", + title = "Foundations of Applied Superconductivity", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xx + 584", + year = "1991", + ISBN = "0-201-18323-4", + LCCN = "QC611.92 .O75 1991", + bibdate = "Tue Dec 14 23:06:24 1993", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Orlando:LDA88, + author = "M. Orlando and G. Podda", + title = "Lineamenti di disegno automatico", + publisher = pub-CLUT, + address = pub-CLUT:adr, + year = "1988", + note = "Prepared with {\TeX} by Tecnograf.", + acknowledgement = ack-cb, +} + +@Book{OShaughnessy:SC87, + author = "Douglas O'Shaughnessy", + title = "Speech Communications", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xviii + 568", + year = "1987", + ISBN = "0-201-16520-1", + LCCN = "P95.O74 1987", + bibdate = "Tue Dec 14 23:06:25 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Othmer:1997:CSM, + editor = "H. G. Othmer and F. R. Adler and M. A. Lewis and J. C. + Dallon", + booktitle = "Case Studies in Mathematical Modeling---Ecology, + Physiology, and Cell Biology", + title = "Case Studies in Mathematical Modeling---Ecology, + Physiology, and Cell Biology", + publisher = pub-PH, + address = pub-PH:adr, + pages = "viii + 411", + year = "1997", + ISBN = "0-13-574039-8", + LCCN = "QH541.15.M3C37 1997", + bibdate = "Tue Apr 13 07:12:35 1999", + note = prep-latex, + acknowledgement = ack-nhfb, + price = "US\$41.00", + URL = "http://www.math.utah.edu/books/csmmepcb/index.html; + http://www.math.utah.edu/pub/tex/bib/csmmepcb.html; + http://www.phptr.com/", +} + +@Book{Palmer:SCW89, + author = "Richard Palmer", + title = "A Supplementary Catalogue of Western Manuscripts in + the Library of the Wellcome Institute for the History + of Medicine: First Cumulative Supplement", + publisher = pub-WIHM, + address = pub-WIHM:adr, + year = "1989", + note = prep-latex # " PC{\TeX} and Computer Modern fonts, with + final output on an HP LaserJet II at 300dpi.", + acknowledgement = ack-dw, +} + +@Book{Pao:APR89, + author = "Yoh-Han Pao", + title = "Adaptive Pattern Recognition and Neural Networks", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xviii + 309", + year = "1989", + ISBN = "0-201-12584-6", + LCCN = "TK7882.P3 P36 1989", + bibdate = "Tue Dec 14 23:06:26 1993", + note = prep-tex, + acknowledgement = ack-lmp # " and " # ack-mz, +} + +@Book{Pardalos:CNO93, + editor = "Panos M. Pardalos", + title = "Complexity in Numerical Optimization", + publisher = pub-WORLD-SCI, + address = pub-WORLD-SCI:adr, + pages = "xiii + 511", + year = "1993", + ISBN = "981-02-1415-4", + LCCN = "QA 267.7 P37 1993", + bibdate = "Wed Sep 21 16:40:45 1994", + note = prep-tex, + acknowledgement = ack-nhfb, + email = "pardalos@deming.ise.ufl.edu", +} + +@Book{Parker:PNA89, + author = "T. S. Parker and L. O. Chua", + title = "Practical Numerical Algorithms for Chaotic Systems", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xiv + 348", + year = "1989", + ISBN = "0-387-96689-7 (USA) and 3-540-96689-7 (Germany)", + LCCN = "Q172.5.C45 P37 1989", + bibdate = "Tue Dec 14 23:06:27 1993", + note = prep-latex, + acknowledgement = ack-cb, +} + +@Book{Parks:ESP91, + author = "George Parks", + title = "Electrodynamics of Space Plasmas", + publisher = pub-AW, + address = pub-AW:adr, + pages = "ix + 538", + year = "1991", + ISBN = "0-201-50821-4", + LCCN = "QC809.P5 P37 1991", + bibdate = "Tue Dec 14 23:06:29 1993", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Paul:RMM81, + author = "Richard P. Paul", + title = "Robot Manipulators: Mathematics, Programming and + Control", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "279", + year = "1981", + ISBN = "0-262-16082-X", + LCCN = "TS191.8 .P38", + bibdate = "Tue Dec 14 23:06:30 1993", + note = "Another early book set in plain {\TeX}.", + acknowledgement = ack-bkph, +} + +@Book{Pavone:IIF92, + author = "Marco Pavone", + title = "Integrali impropri e funzioni integrali (Improper + integrals and integral functions): Esercizi e + complementi di Analisi Matematica {I} (English: + Exercises and complements to Mathematical Analysis + {I})", + publisher = pub-ARACNE, + address = pub-ARACNE:adr, + year = "1992", + ISBN = "88-7999-000-4", + bibdate = "Sat Jan 2 10:19:32 1993", + note = prep-latex # " The final formatting was done by + \TeX{\sc mat}, Via Luigi Chiozza, 31a/b, 00133 Roma, + Italy.", + acknowledgement = ack-cb, +} + +@Book{Pavone:TES93, + author = "Marco Pavone", + title = "Temi di esame svolti di analisi amtematica {I} + ({English}: Solved examination problems in mathematical + analysis {I})", + publisher = pub-ARACNE, + address = pub-ARACNE:adr, + year = "1993", + ISBN = "88-7999-002-0", + bibdate = "Sat Aug 27 11:05:50 1994", + note = prep-latex # " The final formatting was done by + \TeX{\sc mat}, Via Luigi Chiozza, 31a/b, 00133 Roma, + Italy.", +} + +@Booklet{PDG:PPDB90, + editor = "{Particle Data Group}", + key = "PDG:PPDB90", + title = "Particle Properties Data Booklet", + publisher = pub-ESPNH, + address = pub-ESPNH:adr, + month = apr, + year = "1990", + note = "Reprinted from Physics Letters B239.", + acknowledgement = ack-np, +} + +@Book{Peitgen:CF92, + author = "Heinz-Otto Peitgen and Hartmut J{\"u}rgens and Dietmar + Saupe", + title = "Chaos and Fractals: New Frontiers of Science", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xvi + 984, with 686 illustrations, 40 in color", + year = "1992", + ISBN = "0-387-97903-4, 3-540-97903-4", + LCCN = "QA614.86 .P43 1992", + bibdate = "Wed Dec 15 08:05:28 1993", + note = prep-latex, + price = "US\$49", + acknowledgement = ack-nhfb, +} + +@Book{Peitgen:CF93, + author = "Heinz-Otto Peitgen and Hartmut J{\"u}rgens and Dietmar + Saupe", + title = "Chaos and Fractals: New Frontiers of Science + (corrected second printing)", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xvi + 984, with 686 illustrations, 40 in color", + year = "1993", + ISBN = "0-387-97903-4, 3-540-97903-4", + LCCN = "QA614.86 .P43 1993", + bibdate = "Wed Dec 15 08:05:28 1993", + note = prep-latex, + price = "US\$49", + acknowledgement = ack-nhfb, +} + +@Book{Perelson:MER91-9, + author = "Alan S. Perelson and Stuart A. Kauffman", + title = "Molecular Evolution on Rugged Landscapes: Proteins, + {RNA} and the Immune System", + volume = "9", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xviii + 309", + year = "1991", + ISBN = "0-201-52149-0 (hardcover), 0-201-52150-4 (paperback)", + LCCN = "QH325 .W67 1989", + bibdate = "Fri Jul 22 10:25:55 1994", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Perelson:TI88-1, + author = "Alan S. Perelson", + title = "Theoretical Immunology", + volume = "1", + publisher = pub-AW, + address = pub-AW:adr, + year = "1988", + ISBN = "0-201-15688-1", + LCCN = "QR182.2.M36 T485 1987", + bibdate = "Tue Dec 14 23:06:46 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Perelson:TI88-2, + author = "Alan S. Perelson", + title = "Theoretical Immunology", + volume = "2", + publisher = pub-AW, + address = pub-AW:adr, + year = "1988", + ISBN = "0-201-15683-0", + LCCN = "QR182.2.M36 T485 1987", + bibdate = "Tue Dec 14 23:07:08 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Pertritskijj:VK92, + author = "Velemir Petritskijj", + title = "Veka krepostnojj (English: Serf of the Century)", + publisher = pub-UNK, + address = pub-UNK:adr, + pages = "54", + year = "1992", + bibdate = "Wed Jun 2 15:28:49 1993", + acknowledgement = ack-jr, +} + +@Book{Petrov:RA92, + author = "Viktor Petrov", + title = "Russkie v Amerike: 20 Vek. (Russians in America: 20th + Century)", + publisher = pub-RAHS, + address = pub-RAHS:adr, + pages = "149", + year = "1992", + ISBN = "0-911971-67-X", + LCCN = "E184.R9 P475 1992", + bibdate = "Tue Dec 14 23:07:18 1993", +} + +@Book{Piatetski:KDD91, + editor = "Gregory Piatetski-Shapiro and William Frawley", + title = "Knowledge Discovery in Databases", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xii + 525", + year = "1991", + ISBN = "0-262-66070-9 (paper)", + LCCN = "Q325.5 .K68 1991", + bibdate = "Tue Dec 14 23:07:20 1993", + note = prep-latex, + acknowledgement = ack-te, +} + +@Book{Piccolo:TBT92, + author = "E. Piccolo", + title = "Tecniche di base e tecniche avanzate per l'uso del + personal computer (Base and advanced techniques for + using personal computers)", + publisher = pub-CLUT, + address = pub-CLUT:adr, + year = "1992", + note = "Set in LaTeX with a customized style named {\tt + clutful} as mentioned in the back of the titlepage. + Uses the {\tt 12pt} option with standard Computer + Modern type faces. The illustrations are mainly hard + copies of computer screens reduced and pasted in place. + {\verb|\tt|} type face is used a lot for reproducing + computer programs.", + acknowledgement = ack-cb, +} + +@Book{Pieprzyk:DHA93, + author = "Josef Pieprzyk and Babak Sadeghiyan", + title = "Design of Hashing Algorithms", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xiii + 194", + year = "1993", + ISBN = "0-387-57500-6", + LCCN = "QA76.9.H36 P53 1993", + bibdate = "Wed Aug 10 13:40:35 1994", + note = prep-latex, + series = "LNCS 756", + acknowledgement = ack-nhfb, +} + +@Book{Pierce:BCT91, + author = "Benjamin Pierce", + title = "Basic Category Theory for Computer Scientists", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xiii + 100", + year = "1991", + ISBN = "0-262-66071-7", + LCCN = "QA76.9.M35 P54 1991", + bibdate = "Tue Dec 14 23:07:22 1993", + note = prep-latex, + acknowledgement = ack-te, +} + +@Book{Piff:DM91, + author = "Mike Piff", + title = "Discrete Mathematics\emdash An introduction for + software engineers", + publisher = pub-CUP, + address = pub-CUP:adr, + pages = "xi + 317", + year = "1991", + ISBN = "0-521-38475-3 (hardcover), 0-521-38622-5 (paperback)", + LCCN = "QA76.9.M35 P544 1991", + bibdate = "Fri Jul 22 10:25:58 1994", + note = "Prepared with {\LaTeX}, with some help from plain + {\TeX}.", + acknowledgement = ack-mjp, +} + +@Book{Pozar:ME90, + author = "David M. Pozar", + title = "Microwave Engineering", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xvii + 726", + year = "1990", + ISBN = "0-201-50418-9", + LCCN = "TK7876 .P69 1990", + bibdate = "Tue Dec 14 23:07:25 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Press:NRA86, + author = "William H. Press and Brian P. Flannery and Saul A. + Teukolsky and William T. Vetterling", + title = "Numerical Recipes\emdash The Art of Scientific + Computing", + publisher = pub-CUP, + address = pub-CUP:adr, + pages = "xx + 818", + year = "1986", + ISBN = "0-521-30811-9", + LCCN = "QA297 .N866 1986", + bibdate = "Tue Dec 14 23:07:26 1993", + note = "Originally for FORTRAN and then rewritten for a C + version, {\em Numerical Recipes in C\/}; also example + books in Fortran, Pascal and C, making a total of five + books with ``Typeset in \TeX'' on the back of the title + page", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Book{Raibert:LR86, + author = "Mark X. Raibert", + title = "Legged Robots That Balance", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xiii + 233", + year = "1986", + ISBN = "0-262-18117-7", + LCCN = "TJ211 .R351 1986", + bibdate = "Tue Dec 14 23:07:28 1993", + note = prep-tex, + acknowledgement = ack-bkph, +} + +@Book{Raman:1998:AST, + author = "T. V. Raman", + title = "Audio system for technical readings", + volume = "1410", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xvi + 121", + year = "1998", + ISBN = "3-540-65515-8", + LCCN = "QA267.A1 L43 no.1410", + bibdate = "Mon May 3 11:00:13 MDT 1999", + note = "Originally presented as the author's thesis (Ph. + D.--Cornell University, 1994).", + series = ser-LNCS, + acknowledgement = ack-nhfb, + keywords = "user interfaces (computer systems); human-computer + interaction; computer sound processing", +} + +@Book{Ramond:FTM90, + author = "Pierre Ramond", + title = "Field Theory: {A} Modern Primer", + publisher = pub-AW, + address = pub-AW:adr, + edition = "Second", + pages = "xix + 329", + year = "1990", + ISBN = "0-201-54611-6", + LCCN = "QC174.45 .R35 1990", + bibdate = "Tue Dec 14 23:07:29 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Rashid:CMU91, + editor = "Richard Rashid", + title = "{CMU} Computer Science; {A} 25th Anniversary + Commemorative", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xxxii + 519", + year = "1991", + ISBN = "0-201-52899-1", + LCCN = "QA75.5 .C548 1990", + bibdate = "Tue Dec 14 23:07:35 1993", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Raudsepp:GK92, + author = "Jaanus Raudsepp", + title = "Gogol' v {KGB}: a documentary novel", + publisher = pub-EFFECT, + address = pub-EFFECT:adr, + pages = "141", + year = "1992", + ISBN = "0-911971-72-6", + LCCN = "PG3485.5.A93 G64 1992", + bibdate = "Tue Dec 14 23:07:38 1993", +} + +@Book{Raymond:NHD91, + editor = "Eric Raymond and {with assistance and illustrations by + Guy L. Steele Jr.}", + title = "The New Hacker's Dictionary", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xx + 433", + year = "1991", + ISBN = "0-262-18145-2 (hardcover), 0-262-68069-6 (paperback)", + LCCN = "PN6231.E4 H3 1991", + bibdate = "Fri Jul 22 10:26:03 1994", + note = "This book was typeset by E.S.R. using {\TeX} 3.0 and a + customized version of the {\TeX}info package; + eleventh-hour assistance was provided by Mark Hoover at + Digital Graphics, Inc. DVI-to-PS conversion was done + using Y\&Y's DVIPSONE. The camera-ready copy was + generated off a L300 phototypesetter by Chiron, Inc. + The running text was set in Adobe's version of + Palatino. This book corresponds to version 2.9.6 of the + on-line Jargon File.", + acknowledgement = ack-te # " and " # ack-gs, +} + +@Book{Reilly:AIA92, + author = "Paul Reilly and Sebastian Rahtz", + title = "Archaeology and the Information Age", + publisher = pub-ROUTLEDGE, + address = pub-ROUTLEDGE:adr, + pages = "xxiv + 395", + year = "1992", + ISBN = "0-415-07858-X", + LCCN = "CC80.4 .A73 1992", + bibdate = "Tue Dec 14 23:07:44 1993", + note = prep-latex, + acknowledgement = ack-sr, +} + +@Book{Ricco:ICI91, + author = "B. Ricc{\'o} and F. Fantini and P. Brambilla", + title = "Introduzione ai circuiti integrati digitali", + publisher = pub-ZT, + address = pub-ZT:adr, + pages = "viii + 445", + year = "1991", + ISBN = "88-08-07838-8", + note = "The book has been composed in {\LaTeX} with minor + changes to the standard style `book.sty', specifically + with new headers and new `empty' pagestyle for + typesetting the initial page of each chapter. The book + has been set with the 12pt option, laser-printed with a + resolution of 300 dpi, and reproduced with no + reduction. The characters are the standard ones of the + Computern Modern series. The whole work was done by the + authors, and the publisher limited himself to + reproducing the laser-printed sheets received from the + authors, and to preparing the titlepage and the + cover.", + acknowledgement = ack-cb, +} + +@Book{Rich:PA90, + author = "Charles Rich and Richard C. Waters", + title = "The Programmer's Apprentice", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xi + 238", + year = "1990", + ISBN = "0-201-52425-2", + LCCN = "QA76.76.D47 R53 1990", + bibdate = "Tue Dec 14 23:07:45 1993", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Richards:CFL89, + author = "Tom Richards", + title = "Clausal Form Logic", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiii + 359", + year = "1989", + ISBN = "0-201-12920-5", + LCCN = "QA76.76.E95 R531 1989", + bibdate = "Tue Dec 14 23:07:46 1993", + note = prep-tex, + acknowledgement = ack-mc, +} + +@Book{Richardson:TCM88, + author = "Robert C. Richardson and Eric N. Smith", + title = "Techniques in Condensed Matter: Physics at Low + Temperatures", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiii + 338", + year = "1988", + ISBN = "0-201-15002-6", + LCCN = "QC173.4.C65 E97 1988", + bibdate = "Tue Dec 14 23:07:47 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Robbins:CXM89, + author = "Kay A. Robbins and Steven Robbins", + title = "The {Cray X-MP\slash Model} 24", + publisher = pub-SV, + address = pub-SV:adr, + pages = "vi + 165", + year = "1989", + ISBN = "0-387-97089-4, 3-540-97089-4", + LCCN = "QA76.8 C72 R63 1989", + bibdate = "Fri Mar 01 09:41:45 1996", + note = prep-latex, + acknowledgement = ack-nhfb, +} + +@Book{Robertson:EL91, + author = "David Robertson and Alan Bundy and Robert Muetzelfeldt + and Mandy Haggith and Michael Uschold", + title = "Eco-Logic", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "243", + year = "1991", + ISBN = "0-262-18143-6", + LCCN = "QH541.15.S5 E26 1991", + bibdate = "Tue Dec 14 23:07:48 1993", + note = prep-latex, + acknowledgement = ack-te, +} + +@Book{Robertson:1995:EMM, + author = "John S. Robertson", + title = "Engineering mathematics with {Mathematica}", + publisher = pub-MCGRAW-HILL, + address = pub-MCGRAW-HILL:adr, + pages = "xiv + 288", + year = "1995", + ISBN = "0-07-053171-4", + LCCN = "TA345.R55 1995", + bibdate = "Sat Apr 06 17:33:15 1996", + series = "International series in pure and applied mathematics", + acknowledgement = ack-nhfb, + keywords = "COMPUTER PROGRAMS; DATA PROCESSING; ENGINEERING; + Engineering --- Mathematics; Engineering mathematics + --- Data processing; Mathematica (Computer file); + MATHEMATICS; Mathematics --- Data processing", + note = prep-latex, +} + +@Book{Rogers:PEC85, + author = "David F. Rogers", + title = "Procedural Elements for Computer Graphics", + publisher = pub-MH, + address = pub-MH:adr, + pages = "xiii + 433", + year = "1985", + ISBN = "0-07-053534-5", + LCCN = "T385 .R631 1985", + bibdate = "Tue Dec 14 23:07:49 1993", + price = "US\$19.95", + acknowledgement = ack-nhfb, +} + +@Book{Rosbach:U90, + author = "Johan Hammond Rosbach", + title = "Unumane (Single-handedly)", + publisher = pub-EF, + address = pub-EF:adr, + year = "1990", + ISBN = "82-90006-09-8", + note = prep-latex # " This is a novel in Esperanto.", + acknowledgement = ack-dfl, +} + +@Book{Rose:SB91, + author = "Marshall T. Rose", + title = "The Simple Book", + publisher = pub-PH, + address = pub-PH:adr, + pages = "xxix + 347", + year = "1991", + ISBN = "0-13-812611-9", + LCCN = "TK5105.5.R68 1991", + bibdate = "Tue Dec 14 23:07:50 1993", +} + +@Book{Sabot:PM88, + author = "Gary Sabot", + title = "The Paralation Model", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "x + 238", + year = "1988", + ISBN = "0-262-19277-2", + LCCN = "QA76.6 .S2161 1988", + bibdate = "Tue Dec 14 23:07:51 1993", + acknowledgement = ack-te, +} + +@Book{Sadiku:NTE92, + author = "Matthew N. O. Sadiku", + title = "Numerical Techniques in Electromagnetics", + publisher = pub-CRC, + address = pub-CRC:adr, + pages = "xviii + 690", + year = "1992", + ISBN = "0-8493-4232-5", + LCCN = "QC760 .S24 1992", + bibdate = "Sun Jul 10 01:19:44 1994", + note = prep-amstex, + acknowledgement = ack-fl, +} + +@Book{Salomon:1998:DCC, + author = "David Salomon", + title = "Data Compression: The Complete Reference", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xx + 427", + year = "1998", + ISBN = "0-387-98280-9", + LCCN = "QA76.9.D33S25 1997", + bibdate = "Fri Sep 10 09:21:56 1999", + price = "US\$39.95", + URL = "http://www.ecs.csun.edu/~dxs/DCadvertis/DcompAd.html; + http://www.booksbydavidsalomon.com/", + acknowledgement = ack-nhfb, +} + +@Book{Salomon:2000:DCC, + author = "David Salomon", + title = "Data Compression: The Complete Reference", + publisher = pub-SV, + address = pub-SV:adr, + edition = "Second", + pages = "xvi + 823", + year = "2000", + ISBN = "0-387-95045-1", + LCCN = "QA76.9.D33 S25 2000", + bibdate = "Mon Oct 16 05:47:11 2000", + price = "US\$39.95", + URL = "http://www.ecs.csun.edu/~dxs/DCadvertis/Dcomp2Ad.html; + http://www.booksbydavidsalomon.com/", + acknowledgement = ack-nhfb, +} + +@Book{Salomon:1999:CGG, + author = "David Salomon", + title = "Computer Graphics and Geometric Modeling", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xviii + 851", + year = "1999", + ISBN = "0-387-98682-0", + LCCN = "T385 S243 1999", + bibdate = "Fri Sep 10 08:53:12 1999", + URL = "http://www.ecs.csun.edu/~dxs/CGGMadvertis/CGad.html; + http://www.booksbydavidsalomon.com/", + acknowledgement = ack-nhfb, +} + +@Book{Salomon:2001:GDC, + author = "David Salomon", + title = "A guide to data compression methods", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xii + 295", + year = "2001", + ISBN = "0-387-95260-8", + LCCN = "QA76.9.D33 S28 2001", + bibdate = "Tue Mar 12 16:09:14 2002", + URL = "http://www.booksbydavidsalomon.com/", + acknowledgement = ack-nhfb, +} + +@Book{Salomon:2003:DPS, + author = "David Salomon", + title = "Data Privacy and Security", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xiv + 465", + year = "2003", + ISBN = "0-387-00311-8", + LCCN = "QA76.9.A25 S265 2003", + bibdate = "Mon Jun 16 18:35:35 2003", + price = "US\$59.95", + URL = "http://www.booksbydavidsalomon.com/", + acknowledgement = ack-nhfb, +} + +@Book{Sanchez-Mondragon:LMO86, + editor = "J. S{\'a}nchez-Mondrag{\'o}n and K. B. Wolf", + title = "Lie Methods in Optics", + volume = "250", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xiv + 247", + year = "1986", + ISBN = "0-387-16471-5", + LCCN = "QC355.2 .L54 1985", + bibdate = "Tue Dec 14 23:07:53 1993", + price = "DM49.00", + series = "Lecture Notes in Physics", + acknowledgement = ack-nhfb, +} + +@Book{Savi:CET91, + author = "P. Savi and G. Vecchi", + title = "Campi elettromagnetici, Temi d'esame svolti", + publisher = pub-CLUT, + address = pub-CLUT:adr, + year = "1991", + note = prep-latex, + acknowledgement = ack-cb, +} + +@Book{Scharf:FCE90, + author = "Louis L. Scharf and Richard T. Behrens", + title = "A First Course in Electrical and Computer Engineering + with {MATLAB}", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xv + 269", + year = "1990", + ISBN = "0-201-53472-X", + LCCN = "TK168 .S34 1990", + bibdate = "Thu Dec 16 09:40:02 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Scharf:SSP91, + author = "Louis L. Scharf", + title = "Statistical Signal Processing: Detection, Estimation, + and Time Series Analysis", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xviii + 524", + year = "1991", + ISBN = "0-201-19038-9", + LCCN = "TK5102.5 .S3528 1991", + bibdate = "Tue Dec 14 23:07:54 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Scheck:MM91, + author = "Florian Scheck and Rainer Sch{\"o}pf", + title = "Mechanik-Manual", + publisher = pub-SV, + address = pub-SV:adr, + year = "1989", + ISBN = "3-540-51211-X", + note = prep-latex # " Final copy prepared on a 300dpi printer, + then photoreduced.", +} + +@Book{Schmueser:FGE91, + author = "Peter Schm{\"u}ser", + title = "Feynman-Graphen und Eichtheorien f{\"u}r + Experimentalphysiker", + publisher = pub-SV, + address = pub-SV:adr, + pages = "vi + 217", + year = "1988", + ISBN = "3-540-18797-9", + LCCN = "QC794.6.F4 S35 1988", + bibdate = "Tue Dec 14 23:07:55 1993", + acknowledgement = ack-rs, +} + +@Book{Sedgewick:A83, + author = "Robert Sedgewick", + title = "Algorithms", + publisher = pub-AW, + address = pub-AW:adr, + pages = "viii + 551", + year = "1983", + ISBN = "0-201-06672-6", + LCCN = "QA76.6 .S435 1983", + bibdate = "Tue Dec 14 23:07:55 1993", + acknowledgement = ack-nhfb, +} + +@Book{Sedgewick:A88, + author = "Robert Sedgewick", + title = "Algorithms", + publisher = pub-AW, + address = pub-AW:adr, + edition = "Second", + pages = "xii + 657", + year = "1988", + ISBN = "0-201-06673-4", + LCCN = "QA76.6 .S435 1988", + bibdate = "Tue Dec 14 23:07:56 1993", + note = prep-tex, + acknowledgement = ack-nhfb # " and " # ack-mz, +} + +@Book{Sedgewick:AC90, + author = "Robert Sedgewick", + title = "Algorithms in {C}", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xii + 657", + year = "1990", + ISBN = "0-201-51425-7", + LCCN = "QA76.73.C15 S43 1990", + bibdate = "Tue Dec 14 23:07:57 1993", + note = prep-tex, + acknowledgement = ack-nhfb # " and " # ack-mz, +} + +@Book{Sehlinger:1992:UGV, + author = "Bob Sehlinger", + title = "The unofficial guide to {Las Vegas}", + publisher = pub-PH-TRAVEL, + address = pub-PH-TRAVEL:adr, + year = "1992", + ISBN = "0-13-950833-3", + LCCN = "F849.L35 S44 1992", + acknowledgement = ack-bkph, + note = prep-tex # " Typesetting by Tseng Information Systems, + 621 William Vickers Avenue, Durham, NC 27701, USA.", + pages = "xii + 495", + price = "US\$12.00", + bibdate = "Tue Sep 16 11:44:53 1997", +} + +@Book{Sexl:P91, + author = "Roman Sexl and Helmut Kuehnelt and Alfred Pflug and + Helga Stadler", + title = "Physik 3", + publisher = pub-HPT, + address = pub-HPT:adr, + year = "1991", + ISBN = "3-209-01191-5", + note = "Textbook for high-school physics, grade 7. The whole + book has been typeset by {\TeX}.", + acknowledgement = ack-nw, +} + +@Book{Sharp:SCA90, + author = "R. Y. Sharp", + title = "Steps in Commutative Algebra", + publisher = pub-CUP, + address = pub-CUP:adr, + pages = "xi + 321", + year = "1990", + ISBN = "0-521-39338-8 (hardcover), 0-521-39732-4 (paperback)", + LCCN = "QA251.3 .S53 1990", + bibdate = "Fri Jul 22 10:26:05 1994", + note = prep-latex, + series = "London Mathematical Society Student Texts 19", + acknowledgement = ack-mjp, +} + +@Book{Sharples:CT89, + author = "Mike Sharples and David Hogg and Chris Hutchison and + Steve Torrance and David Young.", + title = "Computers and Thought", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xxix + 401", + year = "1989", + ISBN = "0-262-19285-3", + LCCN = "Q335 .C57 1989", + bibdate = "Tue Dec 14 23:07:59 1993", + acknowledgement = ack-te, +} + +@Article{Shein:1992:BRB, + author = "Barry Shein", + title = "Book Review: {3:16 Bible Texts Illuminated}", + journal = j-LOGIN, + volume = "17", + number = "1", + pages = "31--??", + month = jan # "\slash " # feb, + year = "1992", + ISSN = "1044-6397", + bibdate = "Tue Feb 20 15:42:13 MST 1996", + bibsource = "ftp://ftp.uu.net/library/bibliography", + affiliation = "Software Tool \& Die", + OPTcoden = "????", +} + +@Book{Siebert:CSS85, + author = "William McC. Siebert", + title = "Circuits, Signals, and Systems", + publisher = pub-MIT # " and " # pub-MH, + address = pub-MIT:adr, + pages = "xvi + 651", + year = "1986", + ISBN = "0-262-19229-2 (MIT Press) and 0-07-057290-9 + (McGraw-Hill)", + LCCN = "TK454 .S57 1986", + bibdate = "Tue Dec 14 23:08:02 1993", + note = prep-tex, + acknowledgement = ack-bkph, +} + +@Book{Siemens:ENM87, + author = "Phillip J. Siemens and Aksel S. Jensen", + title = "Elements of the Nuclei: Many-Body Physics with the + Strong Interaction", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiii + 369", + year = "1987", + ISBN = "0-201-15572-9", + LCCN = "QC793.3.S8 S541 1987", + bibdate = "Tue Dec 14 23:08:04 1993", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Sigler:2002:FLA, + author = "L. E. (Laurence E.) Sigler", + title = "{Fibonacci}'s Liber Abaci: {A} Translation into Modern + {English} of {Leonardo Pisano}'s {Book of + Calculation}", + publisher = pub-SV, + address = pub-SV:adr, + pages = "viii + 636", + year = "2002", + ISBN = "0-387-95419-8", + LCCN = "QA32 .F4713 2002", + bibdate = "Tue Jun 10 11:44:26 2003", + note = prep-tex, + price = "US\$99.00", + series = "Sources and studies in the history of mathematics and + physical sciences", + acknowledgement = ack-nhfb, + annote = "First English of the original Latin, 800 years later. + This book introduced to Europe the Hindu numerals 0 + through 9, the word zero, the notion of an algorithm + (named after the Persian scholar Abu 'Abd Allah + Muhammad ibn Musa al-Khwarizmi (ca. 780--850)), and the + subject of algebra, which comes from the title of + al-Khwarizmi's book, {\em Hisab Al-Jabr wal Mugabalah} + ({\em Book of Calculations, Restoration and + Reduction\/}).", +} + +@Book{Simmons:IFP89, + author = "Margaret Simmons and Ingrid Buch{\-}er and Rebecca + Koskela", + title = "Instrumentation for Future Parallel Computer Systems", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xx + 260", + year = "1989", + ISBN = "0-201-50390-5", + LCCN = "QA76.5 .I48751 1989", + bibdate = "Tue Dec 14 23:08:05 1993", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Smith:IAP90, + author = "Stanley H. Smith", + title = "Investigations of the Attack on Pearl Harbor: Index to + Government Hearings", + volume = "3", + publisher = pub-GREENWOOD, + address = pub-GREENWOOD:adr, + pages = "ix + 250", + year = "1990", + ISBN = "0-313-26884-3", + LCCN = "D767.92 .I58 1990", + bibdate = "Tue Dec 14 23:08:07 1993", + series = "Bibliographies and Indexes In Military Studies", + acknowledgement = ack-tr, +} + +@Book{Sokolsky:IUE89, + author = "Pierre V. Sokolsky", + title = "Introduction to Ultrahigh Energy Cosmic Ray Physics", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xvi + 208", + year = "1989", + ISBN = "0-201-17634-3", + LCCN = "QC485 .S53 1988", + bibdate = "Tue Dec 14 23:08:08 1993", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Sosinksij:KNM91, + author = "A. Sosinksij", + title = "Kak napisat' matematicheskuyu stat'yu po-anglijski + (How to prepare En{\-}glish-language mathematical + papers)", + publisher = "Sophus Lie Mathematical Center", + address = "Minsk, Byelorussia", + year = "1992", + acknowledgement = ack-bnb, +} + +@Book{Spector:ISS94, + author = "Phil Spector", + title = "An Introduction to {S} and {S-Plus}", + publisher = pub-DUXBURY, + address = pub-DUXBURY:adr, + pages = "xiii + 286", + year = "1994", + ISBN = "0-534-19866-X", + LCCN = "QA76.73.S15 S63 1994", + bibdate = "Wed Aug 10 13:40:49 1994", + price = "US\$28.95", + acknowledgement = ack-nhfb, +} + +@Book{Springer:SAP89, + author = "George Springer and Daniel Friedman", + title = "Scheme and the Art of Programming", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xxiv + 595", + year = "1989", + ISBN = "0-262-19288-8", + LCCN = "QA76.6 .S6861 1989", + bibdate = "Tue Dec 14 23:08:09 1993", + acknowledgement = ack-te, +} + +@Book{Steele:common-lisp-2, + author = "Guy L. {Steele Jr.}", + title = "Common Lisp\emdash The Language", + publisher = pub-DP # " and " # pub-PH, + address = pub-DP:adr # " and " # pub-PH:adr, + edition = "Second", + pages = "xxiii + 1029", + year = "1990", + ISBN = "1-55558-041-6 (paperback) and 1-55558-042-4 + (hardcover) (Digital Press), 0-13-152414-3 + (Prentice-Hall)", + LCCN = "QA76.73.L23 S73 1990", + bibdate = "Fri Jul 22 10:26:10 1994", + note = "Camera-ready copy for this book was created by the + author (using {\TeX}, {\LaTeX}, and {\TeX} macros + written by the author), proofed on an Apple LaserWriter + II, and printed on a Linotron 300 at Advanced Computer + Graphics. The text of the first edition was converted + from Scribe format to {\TeX} format by a throwaway + program written in Common Lisp. The diagrams in chapter + 12 were generated automatically as PostScript code (by + a program written in Common Lisp) and integrated into + the text by Textures, an implementation of {\TeX} by + Blue Sky Research for the Apple Macintosh computer. No + manual paste-up of any kind was required. The body type + is 10-point Times Roman. Chapter titles are in ITC Eras + Demi; running heads are in ITC Eras Book. The monospace + typeface used for program code in both displays and + running text is 8.5-point Letter Gothic Bold, somewhat + modified by the author through {\TeX} macros for + improved legibility. The accent grave, accent acute, + circumflex, and tilde characters are in 10-point Letter + Gothic Bold and adjusted vertically to match the height + of the 8.5-point characters. The hyphen was replaced by + an en dash. The equals sign is constructed of two em + dashes, one raised and one lowered, the better to match + the other relational characters. The sharp sign is + overstruck with two hyphens, one raised and one + lowered, to eliminate the vertical gap. Special + mathematical characters such as square-root signs are + in Computer Modern Math. The typefaces used in this + book were digitized by Adobe Systems Incorporated, + except for Computer Modern Math, which was designed by + Donald E. Knuth.", + price = "US\$38.95 (paperback), US\$44.95 (hardcover)", + acknowledgement = ack-gs, +} + +@Book{Stephen:NND90, + author = "J. Stephen Judd", + title = "Neural Network Design and Complexity of Learning", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "150", + year = "1990", + ISBN = "0-262-10045-2", + LCCN = "QA76.5 .J83 1990", + bibdate = "Fri Jul 22 10:27:28 1994", + acknowledgement = ack-te, +} + +@Book{Sterling:AP90, + author = "Leon Sterling and Ehud Shapiro", + title = "The Art of Prolog", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xxviii + 437", + year = "1986", + ISBN = "0-262-19250-0 (hardcover), 0-262-69105-1 (paperback)", + LCCN = "QA76.73.P76 S74 1986", + bibdate = "Fri Jul 22 10:27:48 1994", + acknowledgement = ack-te, +} + +@Book{Sterling:PP90, + editor = "Leon Sterling", + title = "The Practice of Prolog", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "312", + year = "1990", + ISBN = "0-262-19301-9", + LCCN = "QA76.73.P76 P73 1990", + bibdate = "Fri Jul 22 10:29:12 1994", + acknowledgement = ack-te, +} + +@Book{Stevick:FOE92, + author = "Robert D. Stevick", + title = "A Firstbook of Old English", + publisher = pub-KENKYUSHA, + address = pub-KENKYUSHA:adr, + year = "1992", + ISBN = "4-327-40104-8", + bibdate = "Fri Feb 19 17:13:14 1993", + acknowledgement = ack-tr, +} + +@Book{Strack:GM89, + author = "Otto D. L. Strack", + title = "Groundwater Mechanics", + publisher = pub-PH, + address = pub-PH:adr, + pages = "xix + 732", + year = "1989", + ISBN = "0-13-365412-5", + LCCN = "TC176 .S77 1989", + bibdate = "Fri Jul 22 10:29:40 1994", + note = prep-tex, + acknowledgement = ack-pj, +} + +@Book{Strogat:BLT92, + author = "Lew Strogat", + title = "Both Laughter and Tears: a Collection of Stories", + publisher = pub-EFFECT, + address = pub-EFFECT:adr, + year = "1992", + ISBN = "0-911971-69-6", +} + +@Book{Stutz:2001:LCT, + author = "Michael Stutz", + title = "The {Linux} Cookbook: Tips and Techniques for Everyday + Use", + publisher = pub-LINUX-JOURNAL-PRESS, + address = pub-LINUX-JOURNAL-PRESS:adr, + pages = "396", + year = "2001", + ISBN = "1-886411-48-4", + LCCN = "QA76.76.O63 S788 2000", + bibdate = "Sat Mar 23 13:17:29 2002", + note = "Prepared with \TeX{}info.", + price = "US\$29.95", + URL = "http://dsl.org/cookbook/", + acknowledgement = ack-nhfb, + annote = "Although library catalogs show the publication year as + 2000, the book actually appeared in August 2001 + (personal note from the author to NHFB).", +} + +@Book{Sullivan:AII91, + editor = "Joseph W. Sullivan and Sherman W. Tyler", + title = "Architecture for Intelligent Interfaces", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xv + 472", + year = "1991", + ISBN = "0-201-50305-0", + LCCN = "QA76.9.H85 I583 1991", + bibdate = "Fri Jul 22 10:30:27 1994", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Syzmanski:PFP91, + author = "Boleslaw K. Syzmanski", + title = "Parallel Functioning Programming Languages and + Implementation Techniques", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiv + 414", + year = "1991", + ISBN = "0-201-52243-8", + LCCN = "QA76.642 .P37 1991", + bibdate = "Fri Jul 22 10:30:51 1994", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Tajima:CPP89, + author = "Toshiki Tajima", + title = "Computational Plasma Physics with Applications to + Fusion and Astrophysics", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xxii + 503", + year = "1989", + ISBN = "0-201-16411-6", + LCCN = "QC718 .T12 1989", + bibdate = "Fri Jul 22 10:31:26 1994", + note = prep-tex, + price = "US\$40.95", + acknowledgement = ack-mz, +} + +@Book{Taylor:CAD91, + author = "Dean Taylor", + title = "Computer-Aided Design", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xviii + 492", + year = "1991", + ISBN = "0-201-16891-X", + LCCN = "TA174.T39 1992", + bibdate = "Fri Jul 22 10:31:52 1994", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Tesanovic:FTC90, + editor = "Zlatko Tesanovic", + title = "Field Theories in Condensed Matter Physics: {A} + Workshop", + publisher = pub-AW, + address = pub-AW:adr, + pages = "viii + 208", + year = "1990", + ISBN = "0-201-50391-3", + LCCN = "QC173.4.C65 F54 1990", + bibdate = "Fri Jul 22 10:32:29 1994", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Thisted:ESC88, + author = "Ronald A. Thisted", + title = "Elements of Statistical Computing: Numerical + Computation", + publisher = pub-CHAPMAN, + address = pub-CHAPMAN:adr, + pages = "427", + year = "1988", + ISBN = "0-412-01371-1", + LCCN = "QA276.4.T47 1988", + bibdate = "Thu Jul 21 22:28:52 1994", + note = prep-tex, + price = "US\$45.00", +} + +@Book{Thomas:PAG88, + author = "Carol G. Thomas", + title = "Paths From Ancient Greece", + publisher = pub-BRILL, + address = pub-BRILL:adr, + pages = "206", + year = "1988", + ISBN = "90-04-08846-6", + LCCN = "CB245 .P336 1988", + bibdate = "Fri Jul 22 10:32:54 1994", + acknowledgement = ack-tr, +} + +@Book{Thompson:TTF91, + author = "Simon Thompson", + title = "Type Theory and Functional Programming", + publisher = pub-AW, + address = pub-AW:adr, + pages = "v + 372", + year = "1991", + ISBN = "0-201-41667-0", + LCCN = "QA76.62 .T46 1991", + bibdate = "Fri Jul 22 10:33:23 1994", + note = "Prepared with {\LaTeX}, {\BibTeX}, and {\tt makeindex} + on Apple Macintosh SE/30 using {\TeX}tures, and on a + Sun 4. Source files provided to the publisher who + modified them to conform to their house style. Page + proofs made on laser printer by publisher.", + acknowledgement = ack-sjt, +} + +@Book{Tick:PLP91, + author = "Evan Tick", + title = "Parallel Logic Programming", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "486", + year = "1991", + ISBN = "0-262-20087-2", + LCCN = "QA76.642 .T53 1991", + bibdate = "Fri Jul 22 10:33:56 1994", + note = prep-latex, + acknowledgement = ack-te, +} + +@Periodical{tj-elek-vestnik, + key = "EV", + title = "Elektrotehni{\v{s}}ki Vestnik", + note = "Typeset with LaTeX on a Apple Macintosh II, with final + pages produced on a 300dpi Apple LaserWriter printer, + soon to be replaced by a PostScript phototypesetter. + Illustrations done by paste-up, but will soon be + handled electronically. Articles are published in + Slovenian, Serbo-Croatian, and English in Electrical + Engineering and Computer Science. Authors are + encouraged to submit manuscripts using the standard + {\LaTeX} article.sty file.", + acknowledgement = ack-fs, +} + +@Periodical{tj-jcs, + key = "JCompSecurity", + title = "Journal of Computer Security", + publisher = pub-IOS, + address = pub-IOS:adr, + year = "1992", + note = "{\TeX} style files are available from the journal + editors.", + acknowledgement = ack-bnb, +} + +@Periodical{tj-solstice, + key = "Solstice", + title = "Solstice: An Electronic Journal of Geography and + Mathematics", + publisher = "Institute of Mathematical Geography", + address = "2790 Briarcliff, Ann Arbor, MI 48105-1429, USA", + year = "1992", + ISBN = "1-877751-44-8; 1-877751-52-9; 1-877751-53-7", + ISSN = "1059-5325", + bibdate = "Tue Aug 16 12:15:03 1994", + acknowledgement = ack-bnb, + note-1 = "[These remarks are supplied by the Editor-in-Chief, + Sandra L. Arlinghaus]: + + Printer: Digicopy, Corp., 858 Phoenix Dr., Ann Arbor, + MI 48108. + + Frequency: Twice yearly, issued on astronomical + solstices (late June and late December). An effort is + made to have the transmission carry the time and date + stamp of the exact minute of the astronomical solstice + (sort like a first day cover marking for a stamp + collector). + + The ISSN number was assigned by the Library of Congress + beginning with the winter issue, 1991.", + note-2 = "The rationale behind the ISBN assignment is as + follows. {\em Solstice\/} is also available in hard + copy (\$15.95) a year for those wishing it. The book + containing the full year's issues is given an ISBN. The + first number in the list is the number for the 1990 + volume. The third number is the number for the 1991 + volume. In addition, in the summer, single issues are + available. The second ISBN is the number for the single + summer 1991 issue. + + Copyright: copyright is taken out on the hard copy. + Electronic files can be compared to the hard copy in a + library should a reader question whether or not a + document has been altered. + + Here is some additional information.", + note-3 = "1. Reason for the name. Because geography and + mathematics have a history of mutual research + stimulation (Konigsberg bridge problem, four color + problem, \ldots), material from one discipline can shed + light on the other. Astronomical solstices are extreme + positions at which time northern and southern + hemispheres receive maximum and minimum daylight or + night. Between the solstices there is varying dominance + of day and night; so too, there is varying dominance of + mathematical and geographical interaction in articles + in Solstice. Of course, the extreme of a purely + geographical or a purely mathematical article is also + suitable for submission. + + 2. Articles are refereed; the journal is + peer-reviewed.", + note-4 = "3. Members of the Editorial Board are listed below + (along with a brief notation of their affiliation): + Sandra L. Arlinghaus--Editor-in-Chief, Director, IMaGe. + William C. Arlinghaus, Professor and Chair, Dep't. of + Math. and C.S., Lawrence Technological University, + Southfield, MI Neal Brand, Professor, Dep't. of Math. + Univ. of North Texas. Kenneth H. Rosen, Mathematician, + Bell Labs. Michael Goodchild, Professor of Geography, + Univ. of California, Santa Barbara Daniel A. Griffith, + Professor of Geography, Syracuse University. Jonathan + D. Mayer, Professor of Geography, University of + Washington. John D. Nystuen, Professor of Geography and + Planning, Univ. of Michigan. + + 4. List of content: [omitted]", + note-5 = "5. The journal is typeset using TeX. To gain + experience in publishing matters using TeX, it was very + helpful to me to be hired by the University of Chicago + Press to typeset, using TeX, a volume in their + ``Lecture Notes in Physics''--(Walter Welford's {\em + Useful Optics\/}--quite suitable, I think!). Generally, + {\em The TeXbook\/} is all that I need; once I + encountered a difficulty with some sort of `bold' + notation invented by an author. For that, a combination + of advice from a colleague in mathematics and from the + University of Michigan's Computing Center, helped me to + figure out a way to solve the problem.", + note-6 = "6. A number of the volumes in the IMaGe monograph + series are typeset using TeX. Monographs 9, 11, 12, 13 + (Solstice hard copy for 1990), 14, and 15 (Solstice + hard copy for 1991) are TeX-ed. I typeset documents + using Plain TeX; the hard copy is obtained by uploading + the ASCII file into the University of Michigan's + mainframe and printing it out on their Xerox 9700 + (series) machine. They have a number of them at various + sites across campus. The print quality is only 200 dpi, + so in that regard TeX-ed documents don't look as good + as they should--hence, difficulty in convincing + non-TeXers of its value. Every effort is made to get + hard copy right after a periodic maintenance of the + machines. Then photos are inserted (pasted + electronically) onto this hardcopy using a Xerox + DocuTech with its high resolution scanner.", + note-7 = "Copies are made from the master document stored, + temporarily at least, on one of the three 280 meg hard + drives in the DocuTech. We await the day when the files + can be downloaded from DocuTech hard drive onto a + floppy! What would be great of course is if Xerox would + make it so that a TeX file on a floppy could be + directly fed into the DocuTech--by-passing the + intermediate (conventional mainframe -- the DocuTech + functions as a mainframe) step.", + note-8 = "7. Copies of {\em Solstice\/} have been sent to {\em + Math. Reviews}. A letter was sent to the AMS, following + their statement in the September 1991 {\em Notices\/} + that there was no peer-reviewed online journal of + mathematics, informing them of {\em Solstice\/}'s + existence. There appears to be a great deal of + difficulty in archiving this sort of publication. The + earliest one I have found is Richard Zander's {\em + Flora Online\/}--he is Curator of Botany and the + Buffalo Museum of Science--this journal dates from + 1987. It is not a TeX-ed journal; it is peer-reviewed. + No doubt, though, you are aware of Michael + Strangelove's directory of electronic journals--think + he lists a subset that are TeX-ed. He's at the + University of Ottawa in the Department of Religious + Studies, I believe.", + note-9 = "8. Environmental issue--we see this as a sound manner + of document production; when hard copy is produced (to + suit demand--``just-in-time'' publishing) it is printed + on 100\% recycled paper with a large percentage of + fiber from post-consumer (20\% to 40\%, depending on + the lot) products. Obviously, the electronic + distribution of {\em Solstice}, free, across Bitnet and + Internet, is cheap and environmentally sensitive. + + 9. Other media exposure of {\em Solstice\/}: {\sl + Science}, AAAS, 29 November, 1991, p. 1291; {\sl + Science News}, Jan. 25, 1992, p. 61. Contributed talk, + AMS, Baltimore, 1992--Abstract \#871-99-73, p. 145 {\sl + Abstracts of Papers Presented to The American + Mathematical Society\/} January 1992, Issue 79, Volume + 13, Number 1. {\sl Newsletter\/} of the Association of + American Geographers, June, 1992.", +} + +@Book{Tondo:MM92, + author = "Clovis L. Tondo and Andrew Nathanson and Eden Yount", + title = "Mastering {MAKE}\emdash {A} Guide to Building Programs + on {DOS} and {UNIX} Systems", + publisher = pub-PH, + address = pub-PH:adr, + pages = "x + 143", + year = "1992", + ISBN = "0-13-554619-2", + LCCN = "QA76.76.U84 T66 1992", + bibdate = "Fri Jul 22 10:34:17 1994", + note = prep-latex, + acknowledgement = ack-nhfb, +} + +@Book{Tondo:MM94, + author = "Clovis L. Tondo and Andrew Nathanson and Eden Yount", + title = "Mastering {Make}\emdash {A} Guide to Building Programs + on {DOS}, {OS/2}, and {UNIX} Systems", + publisher = pub-PHPTR, + address = pub-PHPTR:adr, + edition = "Second", + pages = "xvi + 310", + year = "1994", + ISBN = "0-13-121906-5", + LCCN = "QA76.76.U84T65 1994", + bibdate = "Fri Jun 06 07:59:55 1997", + note = prep-latex, + price = "US\$22.00", + acknowledgement = ack-nhfb, +} + +@Book{Torchinsky:RV88, + author = "Alberto Torchinsky", + title = "Real Variables", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xii + 403", + year = "1988", + ISBN = "0-201-15675-X", + LCCN = "QA331.5.T588 1988", + bibdate = "Fri Jul 22 10:34:54 1994", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Traub:IBC88, + author = "J. F. Traub and G. Wasilkowski and H. + Wo{\'z}{\-}ni{\-}a{\-}kow{\-}ski", + title = "In{\-}for{\-}ma{\-}tion-Based Complexity", + publisher = pub-AP, + address = pub-AP:adr, + pages = "xiii + 523", + year = "1988", + ISBN = "0-12-697545-0", + LCCN = "QA267 .T731 1988", + note = "This book was prepared with \AmSTeX{}.", + acknowledgement = ack-bnb, +} + +@Book{Troen:AEE90, + author = "Ib Troen and Erik Lundtang Petersen", + title = "El Atlas {E\'olico} Europeo", + publisher = pub-RISO, + address = pub-RISO:adr, + pages = "260", + year = "1990", + ISBN = "87-550-1638-3", + note = "Typeset with Bitstream fonts on a Canon Series III + 300-dpi laser printer, with extensive graphics and data + tables; the data files are available on IBM PC + diskettes.", + acknowledgement = ack-ngm, +} + +@Book{Troen:AEE91, + author = "Ib Troen and Erik Lundtang Petersen", + title = "Atlas {\'E}olien Europ{\'e}en", + publisher = pub-RISO, + address = pub-RISO:adr, + pages = "278", + year = "1991", + ISBN = "87-550-1637-5", + note = "Typeset with Bitstream fonts on a Canon Series III + 300-dpi laser printer, with extensive graphics and data + tables; the data files are available on IBM PC + diskettes.", + acknowledgement = ack-ngm, +} + +@Book{Troen:AEV90, + author = "Ib Troen and Erik Lundtang Petersen", + title = "Atlante Europeo del Vento", + publisher = pub-RISO, + address = pub-RISO:adr, + pages = "264", + year = "1990", + ISBN = "87-550-1639-1", + note = "Typeset with Bitstream fonts on a Canon Series III + 300-dpi laser printer, with extensive graphics and data + tables; the data files are available on IBM PC + diskettes.", + acknowledgement = ack-ngm, +} + +@Book{Troen:EW90, + author = "Ib Troen and Erik Lundtang Petersen", + title = "Europ{\"a}ischer Windatlas", + publisher = pub-RISO, + address = pub-RISO:adr, + pages = "240", + year = "1990", + ISBN = "87-550-1636-7", + note = "Typeset with Bitstream fonts on a Canon Series III + 300-dpi laser printer, with extensive graphics and data + tables; the data files are available on IBM PC + diskettes.", + acknowledgement = ack-ngm, +} + +@Book{Turner:RTF90, + editor = "David A. Turner", + title = "Research Topics in Functional Programming", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xv + 374", + year = "1990", + ISBN = "0-201-17236-4", + LCCN = "QA76.62 .R47 1990", + bibdate = "Fri Jul 22 10:36:18 1994", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Periodical{TVguide, + key = "TVG", + title = "{TV Guide} magazine", + year = "1987", + note = "Portions of this magazine (20 million issues weekly) + are set with {\TeX}.", + acknowledgement = ack-nhfb, +} + +@Book{Ulichney:DH87, + author = "Robert Ulichney", + title = "Digital Halftoning", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xiv + 362", + year = "1987", + ISBN = "0-262-21009-6", + LCCN = "T385 .U451 1987", + bibdate = "Fri Jul 22 10:36:40 1994", + acknowledgement = ack-nhfb, +} + +@Periodical{UMAP, + editor = "Paul J. Campbell {(Beloit College, 700 College St., + Beloit, WI 53511-5595, USA)}", + key = "UMAP", + title = j-UMAP, + address = j-UMAP:adr, + ISSN = "0197-3622", + note = prep-latex # " (TeXtures on Apple Macintosh II). + Publication with {\LaTeX} began with volume 11 (1990). + The Journal is a quarterly (with annual supplement + volume) devoted to undergraduate mathematics and its + applications, particularly mathematical modeling. It + features both articles and instructional modules. A + {\LaTeX} style file is available from the editor.", +} + +@Book{VanDam:FPP89, + editor = "James W. {Van Dam}", + title = "From Particles to Plasmas: Lectures Honoring Marshall + {N}. Rosenbluth", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xi + 368", + year = "1989", + ISBN = "0-201-15680-6", + LCCN = "QC717.6 .F76 1987", + bibdate = "Fri Jul 22 10:37:07 1994", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{vanHerwijnen:PS90, + author = "Eric van Herwijnen", + title = "Practical {SGML}", + publisher = pub-KLUWER, + address = pub-KLUWER:adr, + pages = "xviii + 307", + year = "1990", + ISBN = "0-7923-0635-X", + LCCN = "QA76.73.S44 V36 1990", + bibdate = "Fri Jul 22 10:37:37 1994", + note = "I have not yet seen the final version; it might not be + in {\TeX/\LaTeX}.", + acknowledgement = ack-mc, +} + +@Book{vanHerwijnen:PS94, + author = "Eric van Herwijnen", + title = "Practical {SGML}", + publisher = pub-KLUWER, + address = pub-KLUWER:adr, + edition = "Second", + pages = "xx + 288", + year = "1994", + ISBN = "0-7923-9434-8", + LCCN = "QA76.73.S44 V36 1994", + bibdate = "Wed Aug 10 21:01:53 1994", + acknowledgement = ack-nhfb, +} + +@Book{vanLint:CC92, + author = "J. H. van Lint and R. M. Watson", + title = "A Course in Combinatorics", + publisher = pub-CUP, + address = pub-CUP:adr, + pages = "ix + 530", + year = "1992", + ISBN = "0-521-41057-6 (hardcover), 0-521-42260-4 (paperback)", + LCCN = "QA164 .L56 1992", + bibdate = "Thu Mar 24 09:21:03 1994", + note = prep-amstex, + acknowledgement = ack-nhfb, +} + +@Book{VanLoan:CFF92, + author = "Charles F. Van Loan", + title = "Computational Frameworks for the Fast Fourier + Transform", + publisher = pub-SIAM, + address = pub-SIAM:adr, + pages = "xiii + 273", + year = "1992", + ISBN = "0-89871-285-8", + LCCN = "QA403.5 .V35 1992", + bibdate = "Fri Jul 22 10:38:10 1994", + note = prep-latex # " Used {\TeX}tures on an Apple Macintosh + with private style files.", + acknowledgement = ack-nhfb, +} + +@Book{Varian:EFMM93, + editor = "Hal R. Varian", + title = "Economic and Financial Modeling with {Mathematica}", + publisher = pub-TELOS, + address = pub-TELOS:adr, + edition = "First", + pages = "xxii + 458", + year = "1993", + ISBN = "0-387-97882-8 (New York), 3-540-97882-8 (berlin)", + LCCN = "HB143 .E36 1993", + bibdate = "Fri Jul 22 10:39:26 1994", + note = "Primarily {\sl Mathematica\/} Notebooks run through + {\tt nb2tex} conversion software.", + acknowledgement = ack-hv, +} + +@Book{Varian:IM87, + author = "Hal R. Varian", + title = "Intermediate Microeconomics", + publisher = pub-NORTON, + address = pub-NORTON:adr, + pages = "xviii + 587", + year = "1987", + ISBN = "0-393-95554-0", + LCCN = "HB172 .V34 1987", + bibdate = "Fri Jul 22 10:39:43 1994", + note = prep-tex, + acknowledgement = ack-hv, +} + +@Book{Varian:IM90, + author = "Hal R. Varian", + title = "Intermediate Microeconomics", + publisher = pub-NORTON, + address = pub-NORTON:adr, + edition = "Second", + pages = "xviii + 599", + year = "1990", + ISBN = "0-393-95924-4", + LCCN = "HB172 .V34 1990", + bibdate = "Fri Jul 22 10:40:08 1994", + note = prep-tex, + acknowledgement = ack-hv, +} + +@Book{Varian:IM92, + author = "Hal R. Varian", + title = "Intermediate Microeconomics\emdash {A} Modern + Approach", + publisher = pub-NORTON, + address = pub-NORTON:adr, + edition = "Third", + pages = "xxiv + 623", + year = "1992", + ISBN = "0-393-96320-9", + LCCN = "HB172 .V34 1993", + bibdate = "Fri Jul 22 10:40:25 1994", + note = prep-tex, + acknowledgement = ack-hv, +} + +@Book{Varian:M90, + author = "Hal R. Varian", + title = "Microeconomia", + publisher = pub-LEC, + address = pub-LEC:adr, + edition = "Second", + year = "1990", + ISBN = "88-85613-20-9", + note = prep-tex, + acknowledgement = ack-hv, +} + +@Book{Varian:MA91, + author = "Hal R. Varian", + title = "Microeconomic Analysis", + publisher = pub-NORTON, + address = pub-NORTON:adr, + edition = "Third", + pages = "xv + 506", + year = "1991", + ISBN = "0-393-95735-7", + LCCN = "HB172 .V35 1992", + bibdate = "Fri Jul 22 10:41:03 1994", + note = prep-tex, + acknowledgement = ack-hv, +} + +@Misc{VAX, + key = "VMS", + title = "{VAX VMS} version 4.x and 5.x manuals", + howpublished = "Digital Equipment Corporation", + year = "1988", + note = "The complete VMS manuals sets are produced with + \TeX{}, but authors actually prepare input in a form + suitable for an earlier in-house system, which is then + automatically translated to \TeX{} form.", + acknowledgement = ack-nhfb, +} + +@Book{Vitter:DAC87, + author = "Jeffrey Scott Vitter", + title = "Design and Analysis of Coalesced Hashing", + publisher = pub-OUP, + address = pub-OUP:adr, + pages = "xii + 160", + year = "1987", + ISBN = "0-19-504182-8", + LCCN = "QA76.9.H36 V57 1987", + bibdate = "Wed Aug 10 13:40:59 1994", + note = prep-tex, + price = "US\$29.95", + acknowledgement = ack-nhfb, +} + +@Book{Volid:WKV92, + author = "Mikhail Volid", + title = "Chem byl bolen {V}. {I}. Lenin? : meditsinskii i + politicheskii analiz (English: What ailed {V}. {I}. + Lenin? Medical and political analysis)", + publisher = pub-EFFECT, + address = pub-EFFECT:adr, + pages = "76", + year = "1992", + ISBN = "0-911971-76-9", + LCCN = "DK254.L46 V635 1992", + bibdate = "Fri Jul 22 10:42:43 1994", +} + +@Book{Wakerly:MAP89, + author = "John F. Wakerly", + title = "Microcomputer architecture and programming: the 68000 + family", + publisher = pub-WILEY, + address = pub-WILEY:adr, + pages = "xxii + 762", + year = "1989", + ISBN = "0-471-85319-4", + LCCN = "QA76.8.M6895 W35 1989", + bibdate = "Fri May 19 14:56:30 MDT 1995", + note = prep-latex # " Includes bibliographies and index.", + acknowledgement = ack-nhfb, + keywords = "Motorola 68000 series microprocessors -- programming; + computer architecture", +} + +@Book{Ward:CS90, + author = "Stephen A. Ward and Robert H. {Halstead Jr.}", + title = "Computation Structures", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xx + 789", + year = "1990", + ISBN = "0-262-23139-5 (MIT), 0-07-068147-3 (McGraw-Hill)", + LCCN = "TK7888.4 .W37 1990", + note = "Co-published by McGraw-Hill, New York.", + series = "The {MIT Electrical Engineering and Computer Science} + series", + acknowledgement = ack-bnb, +} + +@Book{Waser:IAD82, + author = "Shlomo Waser and Michael J. Flynn", + title = "Introduction to Arithmetic for Digital Systems + Designers", + publisher = pub-HRW, + address = pub-HRW:adr, + pages = "xvii + 308", + year = "1982", + ISBN = "0-03-060571-7", + LCCN = "TK7895 A65 W37 1982", + bibdate = "Sat Feb 5 17:51:39 1994", + note = prep-tex # " Master copy output on Alphatype CRS + high-resolution phototypesetter. This book went to + press while the IEEE 754 Floating-Point Standard was + still in development; consequently, some of the + material on that system was invalidated by the final + Standard (1985).", + acknowledgement = ack-nhfb, +} + +@Book{Watt:ALM87, + author = "David A. Watt and Brian A. Wichmann and William + Findlay", + title = "{Ada} Language and Methodology", + publisher = pub-PHI, + address = pub-PHI:adr, + pages = "xvii + 518", + year = "1987", + ISBN = "0-13-004078-9 (paperback), 0-13-004086-X (paperback + with disk)", + LCCN = "QA76.73.A35 W38 1987", + bibdate = "Thu Jul 21 23:35:51 1994", + note = prep-unknowntex, + price = "US\$28.67", + series = "Prentice-Hall international series in computer + science", + acknowledgement = ack-nhfb, + keywords = "languages; design; performance", + review = "ACM CR 8903-0105", + subject = "D.3.2 Software, PROGRAMMING LANGUAGES, Language + Classifications, Ada \\ D.2.10 Software, SOFTWARE + ENGINEERING, Design, Methodologies", +} + +@Book{Wattenberg:PMC90, + author = "Frank Wattenberg", + title = "Personal Mathematics and Computing", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xiv + 556", + year = "1990", + ISBN = "0-262-23157-3", + LCCN = "QA39.2.W378 1990", + bibdate = "Fri Jul 22 10:43:42 1994", + acknowledgement = ack-te, +} + +@Book{Wei:TSA90, + author = "William Wei", + title = "Time Series Analysis: Univariate and Multivariate + Methods", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xv + 478", + year = "1990", + ISBN = "0-201-15911-2", + LCCN = "QA280 .W45 1990", + bibdate = "Fri Jul 22 10:44:14 1994", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Weir:GDA90, + author = "Bruce S. Weir", + title = "Genetic Data Analysis", + publisher = pub-SINAUER, + address = pub-SINAUER:adr, + pages = "xii + 377", + year = "1990", + ISBN = "0-87893-871-0 (hardcover), 0-87893-872-9 (paperback)", + LCCN = "QH438.4.S73 W45 1990", + bibdate = "Fri Jul 22 10:44:52 1994", + price = "US\$48.00 (hardcover), US\$27.00 (paperback)", + acknowledgement = ack-arr, +} + +@Book{Weiss:IS91, + author = "Neil Weiss", + title = "Introduction to Statistics", + publisher = pub-AW, + address = pub-AW:adr, + edition = "Third", + pages = "xviii + 834", + year = "1991", + ISBN = "0-201-17833-8", + LCCN = "QA276.12 .W45 1991", + bibdate = "Fri Jul 22 10:45:30 1994", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Weiss:PWR93, + author = "Zbigniew Weiss and Tadeusz Gru{\'z}lewski", + title = "Programowanie wsp{\'o}{\l}bie{\.z}ne i rozproszone w + przyk{\l}adach i zadaniach", + publisher = "Wydawnictwa Naukowo-Techniczne", + address = "Warszawa, Polska", + edition = "1.", + year = "1993", + ISBN = "83-204-1637-X", + bibdate = "Wed Aug 24 21:46:57 1994", + note = "sk{\l}ada{\l}: Zbigniew Weiss, druk: Drukarnia + Wydawnictw Naukowych s.a. {\L}{\'o}d{\'z}, ul. + {\.Z}wirki 2.", + acknowledgement = ack-md, + address-l = lang-pl, + author-l = lang-pl, + note-1 = "In Polish.", + note-l = lang-pl, + publisher-l = lang-pl, + title-l = lang-pl, +} + +@Book{Weisstein:1999:CCE, + author = "Eric W. Weisstein", + title = "The {CRC} Concise Encyclopedia of Mathematics", + publisher = pub-CRC, + address = pub-CRC:adr, + pages = "1969", + year = "1999", + ISBN = "0-8493-9640-9", + LCCN = "QA5.W45 1999", + bibdate = "Tue Apr 13 06:58:01 1999", + price = "US\$79.95", + acknowledgement = ack-mg, + annote = "From Michel Goossens: ``This is a marvelous book for + all (of us) who like mathematics. It might be + interesting to note the quote from the start of the + Acknowledgements, where the author spends a whole + paragraph thanking Knuth for inventing \TeX{} (he + started his book some ten years ago in Word + \ldots{}), without which he could never have + published his book. He also thanks Trevorrow (for + Oz\TeX) and Drakos and Ross (for \LaTeX2HTML). His + whole book is on the Web (with {\tt l2h}) + \path=http://www.astro.virginia.edu/~eww6n/math/= + (Eric's Treasure Troves of Science), although often + the site is unavailable due to the many downlaod + requests.''", +} + +@Book{Weld:TCA90, + author = "Daniel Weld", + title = "Theories of Comparative Analysis", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xii + 184", + year = "1990", + ISBN = "0-262-23152-2", + LCCN = "Q335 .W42 1990", + bibdate = "Fri Jul 22 10:45:54 1994", + acknowledgement = ack-te, +} + +@Book{Wellcome:MMI87, + author = "{Wellcome Institute for the History of Medicine}", + title = "A Mirror for Medicine: Some resources of the Wellcome + Institute. An Exhibition Monday 19 October\emdash + Friday 18 December 1987", + publisher = pub-WIHM, + address = pub-WIHM:adr, + year = "1989", + bibdate = "Sat Oct 28 08:41:04 2000", + note = prep-latex # " PC{\TeX} and Computer Modern fonts, with + proofed on HP LaserJet II at 300dpi, then converted to + PostScript using James Clark's dvitops, with final + output on bromide at 1270dpi on the ULCC Linotronic + 300.", + acknowledgement = ack-dw, +} + +@Book{Wellcome:MMII89, + author = "{Wellcome Institute for the History of Medicine}", + title = "A Mirror for Medicine: {II}. Some resources of the + Wellcome Institute. An Exhibition Monday 12 June\emdash + Friday 29 September 1989", + publisher = pub-WIHM, + address = pub-WIHM:adr, + pages = "42", + year = "1989", + LCCN = "WZ 23 W4475w 1989", + bibdate = "Sat Oct 28 08:41:09 2000", + note = prep-latex # " PC{\TeX} and Computer Modern fonts, + author. It was based on the style file that he wrote + for Traub {\it et al.}, {\em Information-Based + Complexity}, with various vital parameters being lifted + from Oxford's in-house {\LaTeX} style file.", + acknowledgement = ack-dw, +} + +@Book{Werschulz:CCD91, + author = "Arthur G. Werschulz", + title = "The Computational Complexity of Differential and + Integral Equations: An Information-Based Approach", + publisher = pub-OUP, + address = pub-OUP:adr, + pages = "ix + 331", + month = oct, + year = "1991", + ISBN = "0-19-853589-9", + LCCN = "QA372 .W47 1991", + bibdate = "Fri Jul 22 10:47:46 1994", + note = prep-amstex # " The style file was written by the final + output on an HP LaserJet II at 300dpi.", + price = "US\$52.50", + acknowledgement = ack-bnb, +} + +@Book{Wiederhold:FOD87, + author = "Gio Wiederhold", + title = "File Organization for Database Design", + publisher = pub-MH, + address = pub-MH:adr, + edition = "Second", + pages = "619", + year = "1987", + ISBN = "0-07-070133-4", + LCCN = "QA76.9.F5 W53 1987", + bibdate = "Wed Dec 15 18:42:48 1993", + price = "US\$38.95", + series = "McGraw-Hill Computer Science Series, Editor: Richard + W. Hamming and Edward A. Feigenbaum", + acknowledgement = ack-nhfb, +} + +@Book{Wiggins:IAN90, + author = "Stephen Wiggins", + title = "Introduction to Applied Nonlinear Dynamical Systems", + publisher = pub-RRD, + address = pub-RRD:adr, + pages = "xiv + 672", + year = "1990", + ISBN = "3-540-97003-7", + LCCN = "QA614.8 .W54 1990", + bibdate = "Fri Jul 22 10:48:12 1994", + note = prep-latex, + acknowledgement = ack-gg, +} + +@Book{Wilf:AC86, + author = "Herbert S. Wilf", + title = "Algorithms and Complexity", + publisher = pub-PH, + address = pub-PH:adr, + pages = "vi + 231", + year = "1986", + ISBN = "0-13-021973-8 (hardcover), 0-13-022054-X (paperback)", + LCCN = "QA63 .W55 1986", + bibdate = "Sat Aug 27 11:06:01 1994", + acknowledgement = ack-nhfb, +} + +@Book{Winder:CTM89, + author = "Marianne Winder", + title = "Catalogue of Tibetan Manuscripts and Xylographs, and + Catalogue of Thankas, Banners and other Paintings and + Drawings in the Library of the Wellcome Institute for + the History of Medicine", + publisher = pub-WIHM, + address = pub-WIHM:adr, + year = "1989", + ISBN = "0-85484-085-0", + note = prep-latex # " PC{\TeX} and Computer Modern fonts, with + final output on an HP LaserJet II at 300dpi.", + acknowledgement = ack-dw, +} + +@Book{Winston:AI79, + editor = "Patrick Henry Winston and R. H. Brown", + title = "Artificial Intelligence: An {MIT} Perspective (2 + volumes)", + publisher = pub-MIT, + address = pub-MIT:adr, + year = "1979", + ISBN = "0-262-23096-8", + LCCN = "Q335 .A7865 1979", + bibdate = "Fri Jul 22 10:49:22 1994", + note = prep-tex, + acknowledgement = ack-bkph, +} + +@Book{Winston:AI89, + author = "Patrick Henry Winston", + title = "Artificial Intelligence", + publisher = pub-AW, + address = pub-AW:adr, + edition = "Second", + year = "1989", + ISBN = "0-201-09696-X", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Winston:AIB84, + editor = "Patrick H. Winston and Karen Prendergast", + title = "The {A}. {I}. Business: The Commercial Uses of + Artificial Intelligence", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "324", + year = "1984", + ISBN = "0-262-23117-4", + LCCN = "Q334 .A45 1984", + bibdate = "Fri Jul 22 10:50:08 1994", + note = prep-tex, + acknowledgement = ack-bkph, +} + +@Book{Winston:AIM90-1, + editor = "Patrick Winston and Sarah Alexandra Shellard", + title = "Artificial Intelligence at {MIT}", + volume = "1", + publisher = pub-MIT, + address = pub-MIT:adr, + year = "1990", + ISBN = "0-262-23150-6 (volume two), 0-262-23154-9 (two-volume + set)", + LCCN = "Q335.A78713 1990", + bibdate = "Fri Jul 22 10:50:41 1994", + acknowledgement = ack-te, +} + +@Book{Winston:AIM90-2, + editor = "Patrick Winston and Sarah Alexandra Shellard", + title = "Artificial Intelligence at {MIT}", + volume = "2", + publisher = pub-MIT, + address = pub-MIT:adr, + year = "1990", + ISBN = "0-262-23151-4 (volume two), 0-262-23154-9 (two-volume + set)", + LCCN = "Q335.A78713 1990", + bibdate = "Fri Jul 22 10:50:39 1994", + acknowledgement = ack-te, +} + +@Book{Winston:L81, + author = "Patrick Henry Winston and Berthold Klaus Paul Horn", + title = "Lisp", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xxi + 611", + year = "1981, 1984, 1989", + ISBN = "0-201-08319-1", + LCCN = "QA76.73.L23 W56 1989", + bibdate = "Fri Jul 22 10:51:04 1994", + note = "First edition may be one of the first books published + using {\TeX}. Macros used there, developed by Daniel + Brotsky, later formed the basis of what is now + {Y\TeX}.", +} + +@Book{Winston:L88, + author = "Patrick Henry Winston and Berthold Klaus Paul Horn", + title = "Lisp", + publisher = pub-AW, + address = pub-AW:adr, + edition = "Third", + pages = "xxi + 611", + year = "1988", + ISBN = "0-201-08319-1", + LCCN = "QA76.73.L23 W56 1989", + bibdate = "Fri Jul 22 10:51:57 1994", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Wolf:LMO89, + editor = "Kurt Bernardo Wolf", + title = "Lie Methods in Optics, vol. {II}", + volume = "352", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xii + 197", + year = "1989", + ISBN = "3-540-52123-2, 0-387-52123-2", + LCCN = "QC355.2 .L54 1988", + bibdate = "Fri Jul 22 10:52:27 1994", + price = "US\$29.70", + series = "Lecture Notes in Physics", + acknowledgement = ack-nhfb, +} + +@Book{Wolf:MLT86, + author = "Kurt Bernardo Wolf and others", + title = "Manual de Lenguaje y Tipograf{\'\i}a Cient{\`\i}fica + en Castellano", + publisher = pub-ET, + address = pub-ET:adr, + year = "1986", + acknowledgement = ack-nhfb, + bibdate = "Wed Nov 1 08:25:59 2000", +} + +@Book{Wolf:NP83, + editor = "Kurt Bernardo Wolf", + title = "Nonlinear Phenomena", + volume = "189", + publisher = pub-SV, + address = pub-SV:adr, + pages = "x + 451", + year = "1983", + ISBN = "0-387-12730-5, 3-540-12730-5", + LCCN = "QC20.7.N6 S36 1982", + note = "First book in {\TeX} published by Springer-Verlag.", + price = "DM58.00", + series = "Lecture Notes in Physics", + acknowledgement = ack-nhfb, +} + +@Book{Wolfram:MSD88, + author = "Stephen Wolfram", + title = "Mathematica: {A} System for Doing Mathematics by + Computer", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xviii + 749", + year = "1988", + ISBN = "0-201-19334-5 (hardcover), 0-201-19330-2 (paperback)", + LCCN = "QA76.95 .W65 1988", + bibdate = "Fri Jul 22 10:26:16 1994", + note = "This book was prepared with \TeX{}, \LaTeX{}, and + \PS{}", + price = "US\$29.95", + acknowledgement = ack-bnb, +} + +@Book{Wolfram:MSD90, + author = "Stephen Wolfram", + title = "Mathematica: {A} System for Doing Mathematics by + Computer", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xviii + 749", + year = "1990", + ISBN = "0-201-19334-5", + LCCN = "QA76.95 .W65 1988", + bibdate = "Fri Jul 22 10:54:18 1994", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Woodcock:SEM89, + author = "Jim Woodcock and Martin Loomes", + title = "Software Engineering Mathematics", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xii + 271", + year = "1989", + ISBN = "0-201-50424-3", + LCCN = "QA76.758 .W66 1989", + note = prep-latex, + acknowledgement = ack-mz, +} + +@Book{Wujastyk:MLD86, + author = "Dominik Wujastyk with Judith Barker and Katy Hooper", + title = "A Manual of Library Desk Practice as Practised at the + Wellcome Institute for the History of Medicine + $\ldots$", + publisher = pub-WIHM, + address = pub-WIHM:adr, + year = "1986", + note = prep-latex # " PC{\TeX} and Computer Modern fonts, with + final output on a Canon LBP8 A1 at 300dpi. The printer + was managed by software from Personal {\TeX} driving a + Flagstaff Engineering JLaser card plugged into the PC + bus, and sending bitmaps directly to the laser printer, + bypassing the controller.", + acknowledgement = ack-dw, +} + +@Book{Zurek:CEP90, + editor = "Wojciech Zurek", + title = "Complexity, Entropy and the Physics of Information", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiii + 530", + year = "1990", + ISBN = "0-201-51509-1 (hardcover), 0-201-51506-7 (paperback)", + LCCN = "QC39.S48 1991", + bibdate = "Fri Jul 22 10:55:45 1994", + note = prep-tex, + acknowledgement = ack-mz, +} + +@Book{Zwillinger:HDE89, + author = "Daniel Zwillinger", + title = "Handbook of Differential Equations", + publisher = pub-AP, + address = "Boston, MA, USA", + pages = "xx + 673", + year = "1989", + ISBN = "0-12-784390-6", + LCCN = "QA371 .Z88 1989", + bibdate = "Fri Jul 22 10:56:12 1994", + acknowledgement = ack-bnb, +} + +@Book{Zwillinger:HI92, + author = "Daniel Zwillinger", + title = "Handbook of Integration", + publisher = pub-JBP, + address = pub-JBP:adr, + pages = "xv + 367", + year = "1992", + ISBN = "0-86720-293-9", + LCCN = "QA299.3 .Z85 1992", + bibdate = "Tue Mar 30 16:11:44 1993", + note = prep-tex, + acknowledgement = ack-ys, +} + +@Proceedings{Brachman:KR91, + editor = "Ronald J. Brachman and Hector J. Levesque and Raymond + Reiter", + title = "Special volume: Knowledge Representation", + publisher = pub-ESP, + address = pub-ESP:adr, + pages = "408", + year = "1991", + ISBN = "0-262-52168-7, 0-262-02344-X", + LCCN = "Q387.K56 1992", + note = "Artificial Intelligence 49 (1991) 1-3.", + acknowledgement = ack-np, +} + +@Proceedings{Byrnes:Fourier-ASI89, + editor = "J. S. Byrnes and Jennifer L. Byrnes", + booktitle = title-Byrnes:Fourier-ASI89, + title = title-Byrnes:Fourier-ASI89, + volume = "315", + publisher = pub-kluwer # ", " # pub-kluwer:adr, + address = "Il Ciocco Resort, Tuscany, Italy", + pages = "x + 686", + year = "1990", + ISBN = "0-7923-0875-1", + LCCN = "QA403.5 .N37 1989", + bibdate = "Fri Jul 22 09:45:12 1994", + series = series-NATO-ASI-C, + acknowledgement = ack-kb, +} + +@Proceedings{Byrnes:Prob-Sto-ASI91, + editor = "J. S. Byrnes and Jennifer L. Byrnes and Karl Berry and + Kathryn A. Hargreaves", + booktitle = title-Byrnes:Prob-Sto-ASI91, + title = title-Byrnes:Prob-Sto-ASI91, + volume = "372", + publisher = pub-kluwer # ", " # pub-kluwer:adr, + address = "Il Ciocco Resort, Tuscany, Italy", + pages = "xi + 699", + year = "1992", + ISBN = "0-7923-1804-8", + LCCN = "QA274.2 .P77 1992", + series = series-NATO-ASI-C, + acknowledgement = ack-kb, +} + +@Proceedings{Clark:CRU84, + editor = "Malcolm Clark", + title = "Coastal research: {UK} perspectives", + publisher = pub-GEO, + address = pub-GEO:adr, + pages = "131", + year = "1984", + ISBN = "0-86094-166-3", + LCCN = "GB457.21 .C61 1984", + note = "Typeset using {\TeX{}80}.", + acknowledgement = ack-mc, +} + +@Proceedings{Desaubies:OGT90, + editor = "Yves Desaubies and Albert Tarantola and Jean + Zinn-Justin", + title = "Oceanographic and Geophysical Tomography", + publisher = pub-ESPNH, + address = pub-ESPNH:adr, + year = "1990", + note = "Les Houches Session L (1989).", + acknowledgement = ack-np, +} + +@Proceedings{Gutowitz:CAT90, + editor = "Howard Gutowitz", + title = "Cellular Automata: Theory and Experiment", + publisher = pub-ESPNH, + address = pub-ESPNH:adr, + pages = "xvii + 483", + year = "1990", + ISBN = "0-262-57086-6", + LCCN = "QA267.5.C45 C46 1991", + bibdate = "Fri Jul 22 10:15:30 1994", + note = "Published as Physica D45 (1990) Nos. 1-3.", + acknowledgement = ack-np, +} + +@Proceedings{Hansen:LFG91, + editor = "J. P. Hansen and D. Levesque and J. Zinn-Justin", + title = "Liquids, Freezing and Glass Transition (parts {I}, + {II})", + publisher = pub-ESPNH, + address = pub-ESPNH:adr, + year = "1991", + note = "Les Houches Session LI (1990).", + acknowledgement = ack-np, +} + +@Book{Husek:RPG92, + editor = "Miroslav Hu{\v{s}}ek and Jan van Mill", + booktitle = "Recent Progress in General Topology", + title = "Recent Progress in General Topology", + publisher = pub-NH, + address = pub-NH:adr, + pages = "xi + 796", + year = "1992", + ISBN = "0-444-89674-0", + LCCN = "QA611.A1 R43 1992", + bibdate = "Tue Dec 14 23:03:10 1993", + note = prep-latex # " K. P. Hart developed a {\LaTeX} style + for this book modelled on North-Holland conventions.", + acknowledgement = ack-kph, + annote = "A collection of articles surveying the state of + affairs in General and Set-Theoretic Topology at the + time of the 7th~Prague Topological Symposium (August, + 1991).", +} + +@Proceedings{MacCallum:ACR91, + editor = "Malcolm A. H. MacCallum and Francis J. Wright", + title = "Algebraic Computing with {REDUCE}\emdash{}Lecture + Notes from the {First Brazilian School on Computer + Algebra}", + publisher = pub-CP, + address = pub-CP:adr, + year = "1991", + ISBN = "0-19-853443-4 (paperback), 0-19-853444-2 (hardcover)", + LCCN = "QA155.7.E4 B73 1989", + bibdate = "Fri Jul 22 10:20:17 1994", + note = prep-latex, + price = "US\$29.95 (paperback), US\$45.00 (hardcover)", +} + +@Proceedings{Rahtz:info-technology, + editor = "Sebastian P. Q. Rahtz", + title = "Information Technology in the Humanities", + publisher = pub-ELLIS-HORWOOD, + address = pub-ELLIS-HORWOOD:adr, + pages = "184", + year = "1987", + ISBN = "0-7458-0148-X", + LCCN = "AZ105 .I541 1987", + bibdate = "Fri Jul 22 10:22:40 1994", + note = "Laser-printed using {\LaTeX}.", + price = "UK\pounds 25.00", + series = "Computers and their applications", + acknowledgement = ack-mc, +} + +@Book{vanMill:OPT90, + editor = "Jan van Mill and George M. Reed", + booktitle = "Open Problems in Topology", + title = "Open Problems in Topology", + publisher = pub-NH, + address = pub-NH:adr, + pages = "xiv + 692", + year = "1990", + ISBN = "0-444-88768-7", + LCCN = "QA611 .O56 1990", + bibdate = "Fri Jul 22 10:38:38 1994", + note = prep-latex # " K. P. Hart developed a {\LaTeX} style + for this book modelled on North-Holland conventions, + and developed a font for the pictures in the paper on + knot theory.", + acknowledgement = ack-kph, + annote = "A collection of articles listing/discussing 1100 open + problems in General/Algebraic/Set-Theoretic Topology. + Regular updates of solutions are published in the + journal Topology and its Applications.", +} + +%%% This is for GNU Emacs file-specific customization: +%%% Local Variables: +%%% bibtex-extra-fields: ("acknowledgement") +%%% End: diff --git a/Master/texmf-dist/bibtex/bib/beebe/texbook3.bib b/Master/texmf-dist/bibtex/bib/beebe/texbook3.bib new file mode 100644 index 00000000000..30d46806e71 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/beebe/texbook3.bib @@ -0,0 +1,13664 @@ +%%% -*-BibTeX-*- +%%% /u/sy/beebe/tex/bib/texbook3.bib, Thu Dec 29 11:04:44 1994 +%%% Edit by Nelson H. F. Beebe +%%% +%%% ==================================================================== +%%% BibTeX-file{ +%%% author = "Nelson H. F. Beebe", +%%% version = "3.04", +%%% date = "21 October 2005", +%%% time = "07:58:48 MDT", +%%% filename = "texbook3.bib", +%%% address = "University of Utah +%%% Department of Mathematics, 110 LCB +%%% 155 S 1400 E RM 233 +%%% Salt Lake City, UT 84112-0090 +%%% USA", +%%% telephone = "+1 801 581 5254", +%%% FAX = "+1 801 581 4148", +%%% URL = "http://www.math.utah.edu/~beebe", +%%% checksum = "27834 13664 56329 518436", +%%% email = "beebe at math.utah.edu, beebe at acm.org, +%%% beebe at computer.org (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "bibliography, TeX", +%%% supported = "yes", +%%% docstring = "This BibTeX file records books, articles, +%%% and electronic forums on TeX, METAFONT, +%%% Web, fonts, typography, indexing, and +%%% software related to these topics. Articles +%%% from TUGboat and TeXniques are excluded, +%%% because they are maintained in separate +%%% bibliographies (tugboat.bib and +%%% texnique.bib). Also largely excluded is +%%% material on SGML and other aspects of +%%% electronic publishing, because they are +%%% covered in separate bibliographies +%%% (ep.bib, epodd.bib, and sgml.bib). +%%% +%%% At version 3.04, the year coverage looks +%%% like this: +%%% +%%% 1928 ( 1) 1954 ( 0) 1980 ( 6) +%%% 1929 ( 0) 1955 ( 0) 1981 ( 12) +%%% 1930 ( 0) 1956 ( 0) 1982 ( 21) +%%% 1931 ( 0) 1957 ( 0) 1983 ( 24) +%%% 1932 ( 0) 1958 ( 0) 1984 ( 15) +%%% 1933 ( 0) 1959 ( 0) 1985 ( 35) +%%% 1934 ( 0) 1960 ( 0) 1986 ( 42) +%%% 1935 ( 0) 1961 ( 0) 1987 ( 45) +%%% 1936 ( 0) 1962 ( 0) 1988 ( 49) +%%% 1937 ( 0) 1963 ( 0) 1989 ( 54) +%%% 1938 ( 0) 1964 ( 0) 1990 ( 50) +%%% 1939 ( 0) 1965 ( 0) 1991 ( 41) +%%% 1940 ( 0) 1966 ( 0) 1992 ( 83) +%%% 1941 ( 0) 1967 ( 1) 1993 ( 46) +%%% 1942 ( 0) 1968 ( 0) 1994 ( 36) +%%% 1943 ( 0) 1969 ( 1) 1995 ( 27) +%%% 1944 ( 0) 1970 ( 2) 1996 ( 11) +%%% 1945 ( 0) 1971 ( 1) 1997 ( 20) +%%% 1946 ( 0) 1972 ( 2) 1998 ( 7) +%%% 1947 ( 0) 1973 ( 1) 1999 ( 10) +%%% 1948 ( 0) 1974 ( 1) 2000 ( 4) +%%% 1949 ( 0) 1975 ( 1) 2001 ( 6) +%%% 1950 ( 0) 1976 ( 3) 2002 ( 2) +%%% 1951 ( 0) 1977 ( 2) 2003 ( 6) +%%% 1952 ( 0) 1978 ( 7) 2004 ( 32) +%%% 1953 ( 0) 1979 ( 5) 2005 ( 2) +%%% 19xx ( 2) +%%% +%%% Article: 168 +%%% Book: 286 +%%% Booklet: 12 +%%% InCollection: 7 +%%% InProceedings: 113 +%%% Manual: 15 +%%% MastersThesis: 2 +%%% Misc: 14 +%%% Periodical: 1 +%%% PhdThesis: 7 +%%% Proceedings: 37 +%%% TechReport: 52 +%%% Unpublished: 2 +%%% +%%% Total entries: 716 +%%% +%%% The ISBN and ISSN fields will be printed if +%%% the is-alpha.bst or is-plain.bst style +%%% files are used. +%%% +%%% This bibliography is a continuation of that +%%% in texbook1.bib, which was frozen at +%%% version 1.153, in order to introduce an +%%% improved citation tag scheme. +%%% +%%% CONVENTIONS +%%% +%%% Books are tagged by the first author's last +%%% name, a colon, a four-digit publication +%%% year, a colon, and up to 3 upper-case letters +%%% taken from the first three upper-case words +%%% in the title (ignoring words like A, And, +%%% The). When this is insufficient to +%%% disambiguate entries, additional lower-case +%%% letters are suffixed to the tags. +%%% +%%% For Dutch authors, a van part is included +%%% in the author tag. For names with accented +%%% letters, accents are dropped in the author +%%% tag. +%%% +%%% Entries are stored ordered by the BibTeX +%%% tag name, independent of the entry type +%%% (the GNU Emacs function sort-bibtex-entries +%%% can be used to ensure correct ordering). +%%% However, entries that are cross-referenced +%%% by others are stored at the end of the +%%% file, since that order is required by +%%% BibTeX. +%%% +%%% With few exceptions, value fields for +%%% acknowledgement, address, journal, and +%%% publisher keywords should use macros +%%% defined in the string preamble below. This +%%% helps to ensure consistency, and reduces +%%% the entry sizes. Address entries must +%%% always include the country. +%%% +%%% The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility." +%%% } +%%% ==================================================================== +%%% +%%% Computing Systems is the Journal of the USENIX Association +%%% published with the collaboration of the EUUG. The ISSN is +%%% 0895-6340. It is published by the University of California +%%% Press, 2120 Berkeley Way, Berkeley, CA 94720. +%%% +%%% Rates are US $40/yr for non-members, plus $4 postage if +%%% outside the US. Single copies are US $10. +%%% +%%% Editorial correspondence should be addressed to +%%% +%%% Computing Systems +%%% Suite 215 +%%% 2560 Ninth Street +%%% Berkeley, CA 94710 +%%% +%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%% A delimited macro \toenglish ... \endtoenglish is NECESSARY here. +%%% The more conventional undelimited form \toenglish{...} has braces +%%% that prevent BibTeX's downcasing operation, and the alternate form +%%% {\toenglish{...}} is considered a `special character' by BibTeX, +%%% and all of {...} gets downcased. We avoid the name \english to +%%% prevent conflicts with language options in packages like Babel. +%%% +%%% To suppress output of English translations of non-English titles, +%%% use +%%% "\def \toenglish #1\endtoenglish{\unskip}" +%%% instead. + +@Preamble{"\input bibnames.sty " +# "\input path.sty " +# "\ifx \k \undefined \let \k = \c + \immediate\write16{Ogonek accent unavailable: replaced by cedilla}\fi " +# "\ifx \undefined \FEATPOST \def \FEATPOST {{\manfnt FEAT}\-{\manfnt POST}\spacefactor1000 }\fi" +# "\ifx \undefined \MP \def \MP {{\manfnt META}\-{\manfnt POST}\spacefactor1000 } \fi" +# "\ifx \undefined \Xy \def \Xy {{\sc Xy}} \fi" +# "\ifx \undefined \manfnt \font\manfnt=logo10 \fi" +# "\ifx \undefined \pdfTeX \def \pdfTeX {pdf\TeX}\fi" +# "\def \toenglish #1\endtoenglish{[{\em English:} #1\unskip]} " +# "\hyphenation{ + An-wen-der-ver-ei-ni-gung + Bie-mes-der-fer + Co-lo-phon + Deutsch-spra-chi-ge + Ge-leit-wort + Hol-dys + Katz-en-beiss-er + Ko-lo-dziej-ska + la-da-mi + Lar-ra-bee + Manu-scripts + mark-up + Rijks-uni-ver-si-teit + South-all + Stutt-gart +}" +} + +%%% ==================================================================== +%%% Acknowledgements + +@String{ack-aa = "Abass Alamnehe, + EthiO Systems Co., + P.O. Box 36921, + Houston, TX 77236, + USA, + Phone: +1 713 995-4360, + FAX: +1 713 995-1346, + e-mail: \path|abassa@sugar.NeoSoft.COM|"} + +@String{ack-ab = "Arvind Borde, + Department of Mathematics, + Long Island University, + Southampton, NY 11968, USA, + Tel: (516) 283-4000, + e-mail: BITnet: \path|borde@bnlcl1|"} + +@String{ack-bnb = "Barbara N. Beeton + e-mail: \path|bnb@math.ams.org|"} + +@String{ack-cb = "Claudio Beccari, + Dipartimento di Elettronica, + Politecnico di Torino, + Corso Duca degli Abruzzi, 24, + I10129 Torino, Italy, + e-mail: \path|beccari@itopoli.bitnet|, + \path|beccari@polito.it|"} + +@String{ack-cr = "Chris Rowley, + e-mail: \path|C.A.Rowley@open.ac.uk|"} + +@String{ack-df = "Dimitrios Filippou, + e-mail: \path|dfilipp@hotmail.com|"} + +@String{ack-dh = "Don Hosek, + 440F Grinnell, + Claremont, CA 91711, + Tel: (714) 625-0147, + e-mail: BITnet: \path|dhosek@ymir|"} + +@String{ack-fm = "Frank Mittelbach, + e-mail: \path|mittelbach@mzdmza.zdv.uni-mainz.de|"} + +@String{ack-hk = "Hanna K{\"o}lodziejska, + {\"O}srodek Obliczeniowy, + Instytutu Informatyki UW, + P{\"a}lac Kultury i Nauki pok. 838, + 00-901 Warszawa, + Poland"} + +@String{ack-jb = "Janusz S. Bie{\'n}, + e-mail: \path|jsbien@plearn.edu.pl|"} + +@String{ack-jpl = "Jeff Lankford, + e-mail: \path|jpl@nrtc.northrop.com|"} + +@String{ack-js = "Joachim Schrod, + Institute for Theoretical Informatics, + Computer Science Department, + Technical University of Darmstadt, + Germany, + e-mail: \path|schrod@iti.informatik.th-darmstadt.de|"} + +@String{ack-kb = "Karl Berry, + e-mail: \path|karl@cs.umb.edu|"} + +@String{ack-mb = "Mimi Burbank, + e-mail: \path|MIMI@scri.fsu.edu|"} + +@String{ack-mc = "Malcolm Clark"} + +@String{ack-md = "Monika D{\k{a}}bkowska, + Uniwersytet Warszawski, + Wydzia{\l} Matematyki, Informatyki i Mechaniki Stosowanej, + Warszawa, Poland"} + +@String{ack-nhfb = "Nelson H. F. Beebe, + University of Utah, + Department of Mathematics, 110 LCB, + 155 S 1400 E RM 233, + Salt Lake City, UT 84112-0090, USA, + Tel: +1 801 581 5254, + FAX: +1 801 581 4148, + e-mail: \path|beebe@math.utah.edu|, + \path|beebe@acm.org|, + \path|beebe@computer.org| (Internet), + URL: \path|http://www.math.utah.edu/~beebe/|"} + +@String{ack-njh = "Nick Higham, + e-mail: \path|higham@vtx.ma.man.ac.uk|"} + +@String{ack-ps = "Peter Schmitt, + Institute of Mathematics, + University of Vienna, + Strudlhofgasse 4, + A-1090 Wien, + Austria, + e-mail: \path|a8131dal@awiuni11.edvz.univie.ac.at|, + \path|schmitt@awirap.bitnet|"} + +@String{ack-rw = "Reinhard Wonneberger, + Electronic Data Systems, + Eisenstr.56, + D-65428 Ruesselsheim, + Federal Republic of Germany, + e-mail: \path|lo1be.rwonne01@eds.com|"} + +@String{ack-rz = "Reinhard Zierke, + Universitaet Hamburg, FB Informatik, + Vogt-Koelln-Strasse 30 + D-22527 Hamburg, + Germany, + Tel: (040) 54715-295, + Fax: (040) 54715-303, + e-mail: \path|zierke@informatik.uni-hamburg.de|"} + +%%% ==================================================================== +%%% Institution abbreviations: + +@String{inst-ANL = "Argonne National Laboratory"} + +@String{inst-ANL:adr = "9700 South Cass Avenue, Argonne, IL + 60439-4801, USA"} + +@String{inst-APPL-FORTH-RES = "Institute for Applied FORTH Research"} + +@String{inst-APPL-FORTH-RES:adr = "Rochester, NY, USA"} + +@String{inst-ATT-BELL = "AT\&T Bell Laboratories"} + +@String{inst-ATT-BELL:adr = "Murray Hill, NJ, USA"} + +@String{inst-CIRCE = "CIRCE"} + +@String{inst-CIRCE:adr = "Orsay, France"} + +@String{inst-CWI = "Centrum voor Wiskunde en Informatica"} + +@String{inst-CWI:adr = "P. O. Box 4079, 1009 AB Amsterdam, The + Netherlands"} + +@String{inst-METAFOUNDRY = "The Metafoundry"} + +@String{inst-METAFOUNDRY:adr = "OCLC Online Computer Library Center, Inc., + Dublin, OH, USA"} + +@String{inst-STAN-CS = "Stanford University, Department of Computer + Science"} + +@String{inst-STAN-CS:adr = "Stanford, CA, USA"} + +@String{inst-STANFORD = "Stanford University"} + +@String{inst-STANFORD:adr = "Stanford, CA, USA"} + +@String{inst-USNPS = "U. S. Naval Postgraduate School"} + +@String{inst-USNPS:adr = "Monterey, CA 93940, USA"} + +@String{inst-USNWL = "U. S. Naval Weapons Laboratory"} + +@String{inst-USNWL:adr = "Dahlgren, VA 22448, USA"} + +%%% ==================================================================== +%%% Journal abbreviations: + +@String{j-ABACUS = "Abacus"} + +@String{j-ACTA-INFO = "Acta Informatica"} + +@String{j-ALLC-BULL = "ALLC Bull"} + +@String{j-AMSCI = "American Scientist"} + +@String{j-APL-QUOTE-QUAD = "APL Quote Quad"} + +@String{j-ATT-TECH-J = "AT\&T Technical Journal"} + +@String{j-BAMSN = "Bulletin of the American Mathematical + Society (new series)"} + +@String{j-BSTJ = "The Bell System Technical Journal"} + +@String{j-BYTE = "Byte Magazine"} + +@String{j-CACM = "Communications of the Association for + Computing Machinery"} + +@String{j-CGF = "Computer Graphics Forum"} + +@String{j-CGIP = "Computer Graphics and Image Processing"} + +@String{j-CJ = "The Computer Journal"} + +@String{j-COLL-MICRO = "Collegiate Microcomputer"} + +@String{j-COMP-CHEM = "Computers and Chemistry"} + +@String{j-COMP-PHYS-COMM = "Computer Physics Communications"} + +@String{j-COMP-REV = "Computing Reviews"} + +@String{j-COMP-SURVEYS = "ACM Computing Surveys"} + +@String{j-COMP-SYS = "Computing Systems"} + +@String{j-COMPCHEM = "Computers in Chemistry"} + +@String{j-COMPUTER = "Computer"} + +@String{j-COMPUTERS-AND-GRAPHICS = "Computers and Graphics"} + +@String{j-COMPUTERSHOPPER = "Computer Shopper"} + +@String{j-CPC = "Computer Physics Communications"} + +@String{j-CT = "c't"} + +@String{j-DDJ = "Dr. Dobb's Journal of Software Tools"} + +@String{j-ELECTRONIC-LIBRARY = "Electronic Library"} + +@String{j-EPODD = "Electronic + Publishing\emdash{}Orig{\-}i{\-}na{\-}tion, + Dissemination, and Design"} + +@String{j-GUTENBERG = "Cahiers GUTenberg"} + +@String{j-IBM-SYS-J = "IBM Systems Journal"} + +@String{j-IEEE-CGA = "IEEE Computer Graphics and Applications"} + +@String{j-IEEE-COMPUTER = "IEEE Computer"} + +@String{j-IEEE-SOFTWARE = "IEEE Software"} + +@String{j-INFO-TECH-LIB = "Information Technology and Libraries"} + +@String{j-J-ACM = "Journal of the ACM"} + +@String{j-J-CHEM-INFO-COMP-SCI = "J. Chem. Inf. Comput. Sci"} + +@String{j-J-INFO-PROC = "Journal of Information Processing"} + +@String{j-J-INST-ELEC-TELECOMM-ENG = "J. Inst. Electron. Telecommun. Eng"} + +@String{j-J-KOREA-INFO-SCI-SOCIETY = "Journal of the Korea Information Science + Society = Chongbo Kwahakhoe nonmunji"} + +@String{j-J-SYST-SOFTW = "The Journal of Systems and Software"} + +@String{j-J-VIS-LANG-COMPUTING = "Journal of Visual Languages and Computing"} + +@String{j-LAB-MICROCOMP = "Laboratory microcomputer"} + +@String{j-LIB-HI-TECH = "Library Hi Tech"} + +@String{j-LINUX-J = "Linux Journal"} + +@String{j-MATHINTEL = "The Mathematical Intelligencer"} + +@String{j-MDMV = "Mitteilungen der Deutschen + Mathematiker-Vereinigung"} + +@String{j-MIKROCOMP-Z = "Mikrocomputer Zeitschrift"} + +@String{j-MIKROLAN = "Mikrolan"} + +@String{j-NAMS = "Notices of the American Mathematical + Society"} + +@String{j-NTG = "Nederlandstalige {\TeX} Gebruikersgroep + (Dutch-speaking {\TeX} Users Group)"} + +@String{j-ONLINE = "Online"} + +@String{j-PCkurier = "PCkurier"} + +@String{j-PCkurier:adr = "PCkurier, ul. St{\k{e}}pi{\'n}ska 22//23, + 00-739 Warszawa, Poland, mailbox 41 03 74 + (16.00-10.00)"} + +@String{j-POSTSCRIPT-LANG-J = "The PostScript Language Journal"} + +@String{j-PROGRAM = "Program"} + +@String{j-RIV-INFO-MILANO = "Rivista di Informatica (Milano)"} + +@String{j-SA = "Scientific American"} + +@String{j-SCHOLAR = "Scholarly Publishing"} + +@String{j-SEYBOLD = "The Seybold Report on Desktop Publishing"} + +@String{j-SIGACT = "ACM SIGACT News"} + +@String{j-SIGADA-LETTERS = "ACM SIGADA Ada Letters"} + +@String{j-SIGAPL = "ACM SIGAPL APL Quote Quad"} + +@String{j-SIGDOC = "ACM SIGDOC Asterisk*"} + +@String{j-SIGPLAN = "ACM SIGPLAN Notices"} + +@String{j-SIGSAM = "SIGSAM Bulletin"} + +@String{j-SPE = "Soft{\-}ware\emdash Prac{\-}tice and + Experience"} + +@String{j-STRUCTURED-PROGRAMMING = "Structured programming"} + +@String{j-SUNEXPERT = "SunExpert Magazine"} + +@String{j-SYS-CTL-INFO = "Systems, Control and Information"} + +@String{j-SW-EXPERT = "Server\slash Workstation Expert"} + +@String{j-TCS = "Theoretical Computer Science"} + +@String{j-TEXHAX = "{\TeX{}hax}"} + +@String{j-TEXLINE = "{\TeX{}}line"} + +@String{j-TOG = "ACM Transactions on Graphics"} + +@String{j-TOMS = "ACM Transactions on Mathematical Software"} + +@String{j-TOPLAS = "ACM Transactions on Programming Languages + and Systems"} + +@String{j-TSI = "Technology and Science of Informatics"} + +@String{j-TUGboat = "{\TUB{}}"} + +@String{j-TWIO = "TWIOscoop"} + +@String{j-UMAP = "The UMAP Journal"} + +@String{j-UMAP:adr = "COMAP, Inc., Suite 210, 57 Bedford St., + Lexington, MA 02173, USA"} + +@String{j-UNIV-COMP = "University Computing"} + +@String{j-VL = "Visible Language"} + +@String{j-WM = "Wiadomo\'sci Matematyczne"} + +%%% ==================================================================== +%%% Language abbreviations: + +@String{lang-eng = "English"} + +@String{lang-pl = "Polish"} + +%%% ==================================================================== +%%% Organization abbreviations: + +@String{org-NTG = "Nederlandstalige {\TeX} Gebruikersgroep + (Dutch-speaking {\TeX} Users Group)"} + +@String{org-NTG:adr = "P.O. Box 394, 1740 AJ Schagen, The + Netherlands"} + +%%% ==================================================================== +%%% Preparation details: + +%%% ==================================================================== +%%% Proceedings: + +@String{proc-NIPT91 = "IS\&T's Seventh International Congress on + Advances in Non-impact Printing + Technologies, October 6--11, Portland, OR, + USA."} + +@String{proc-TEX85 = "Proceedings of the First European + Conference on {\TeX} for Scientific + Documentation, 16--17 May 1985, Como, Italy"} + +%%% ==================================================================== +%%% Publisher abbreviations: + +@String{pub-ACM = "ACM Press"} +@String{pub-ACM:adr = "New York, NY, USA"} + +@String{pub-ADOBE = "Adobe Systems Incorporated"} +@String{pub-ADOBE:adr = "1585 Charleston Road, P.~O. Box 7900, + Mountain View, CA 94039-7900, USA, Tel: (415) 961-4400"} + +@String{pub-ADTP = "Architecture Design and Technology Press, + Ltd."} +@String{pub-ADTP:adr = "140 Kensington Church St., London W84 BN, + UK"} + +@String{pub-AFIPS = "AFIPS Press"} +@String{pub-AFIPS:adr = "Montvale, NJ, USA"} + +@String{pub-AHV = "Dr. Alfred H{\"u}thing Verlag"} +@String{pub-AHV:adr = "Heidelberg, Germany"} + +@String{pub-AMS = "American Mathematical Society"} +@String{pub-AMS:adr = "Providence, RI, USA"} + +@String{pub-AP = "Academic Press"} +@String{pub-AP:adr = "New York, NY, USA"} + +@String{pub-APA = "American Psychological Association"} +@String{pub-APA:adr = "Washington, DC, USA"} + +@String{pub-ARIEL = "Ariel Sp. z o.o"} +@String{pub-ARIEL:adr = "Krak{\'o}w, Poland"} + +@String{pub-ASCII = "ASCII Corporation"} +@String{pub-ASCII:adr = "Tokyo, Japan"} + +@String{pub-AW = "Ad{\-d}i{\-s}on-Wes{\-l}ey"} +@String{pub-AW:adr = "Reading, MA, USA"} + +@String{pub-AW-FRANCE = "Ad{\-d}i{\-s}on-Wes{\-l}ey France"} +@String{pub-AW-FRANCE:adr = "Paris, France"} + +@String{pub-AW-LONGMAN = "Ad{\-d}i{\-s}on-Wes{\-l}ey Longman"} +@String{pub-AW-LONGMAN:adr = "Reading, MA, USA"} + +@String{pub-AWE = "Ad{\-}di{\-}son-Wes{\-}ley Europe"} +@String{pub-AWE:adr = "Amsterdam, The Netherlands"} + +@String{pub-AWV = "Ad{\-}di{\-}son-Wes{\-}ley Verlag"} +@String{pub-AWV:adr = "Bonn, Germany"} + +@String{pub-BIRKHAUSER = "Birkh{\"{a}}user"} +@String{pub-BIRKHAUSER:adr = "Cambridge, MA, USA; Berlin, Germany; Basel, + Switzerland"} + +@String{pub-BIEL = "Biel"} +@String{pub-BIEL:adr = "Savannah, Ga"} + +@String{pub-BL = "The British Library"} +@String{pub-BL:adr = "London, UK"} + +@String{pub-BLUEPRINT = "Blueprint"} +@String{pub-BLUEPRINT:adr = "London, UK"} + +@String{pub-BOWK = "R. R. Bowker Company"} +@String{pub-BOWK:adr = "1180 Avenue of the Americas, New York, NY + 10036, USA"} + +@String{pub-BP = "Boole Press"} +@String{pub-BP:adr = "Dublin, Ireland"} + +@String{pub-BRINKMANN-BOSE = "Brinkmann \& Bose"} +@String{pub-BRINKMANN-BOSE:adr = "Berlin, Germany"} + +@String{pub-BROOKS-COLE = "Brooks\slash Cole Publishing Co."} +@String{pub-BROOKS-COLE:adr = "Pacific Grove, CA, USA"} + +@String{pub-CHARTWELL = "Chartwell Books, Inc."} +@String{pub-CHARTWELL:adr = "110 Enterprise Avenue, Secaucus, New Jersey + 07094, USA"} + +@String{pub-CIAOCO = "Editions Ciaoco"} +@String{pub-CIAOCO:adr = "Artel, Bruxelles, Belgium"} + +@String{pub-CRC = "CRC Press"} +@String{pub-CRC:adr = "2000 N.W. Corporate Blvd., Boca Raton, + FL 33431-9868, USA"} + +@String{pub-CSLI = "CSLI Publications"} +@String{pub-CSLI:adr = "Stanford, CA, USA"} + +@String{pub-CSP = "Computer Science Press"} +@String{pub-CSP:adr = "11 Taft Court, Rockville, MD 20850, USA"} + +@String{pub-CSTUG = "Czechoslovak{\TeX} Users Group"} +@String{pub-CSTUG:adr = "CSTUG M{\'U} UK, Sokolovsk{\'a} 83, 186 00 + Praha 8, The Czech Republic"} + +@String{pub-CUP = "Cambridge University Press"} +@String{pub-CUP:adr = "New York"} + +@String{pub-DP = "Digital Press"} +@String{pub-DP:adr = "12 Crosby Drive, Bedford, MA 01730, USA"} + +@String{pub-DPUNKT-VERLAG = "dpunkt Verlag"} +@String{pub-DPUNKT-VERLAG:adr = "Ringstra{\ss}e 19, 69115 Heidelberg, + Germany"} + +@String{pub-DPUNKT-PRO = "dpunkt/PRO"} +@String{pub-DPUNKT-PRO:adr = "????"} + +@String{pub-EEI = "Editorial Experts, Inc."} +@String{pub-EEI:adr = "Alexandria, VA, USA"} + +@String{pub-ELLIS-HORWOOD = "Ellis Horwood"} +@String{pub-ELLIS-HORWOOD:adr = "New York, NY, USA"} + +@String{pub-ELS = "Elsevier Science Publishers B.V."} +@String{pub-ELS:adr = "Amsterdam, The Netherlands"} + +@String{pub-ENH = "Elsevier North-Holland, Inc."} +@String{pub-ENH:adr = "New York, NY, USA"} + +@String{pub-ETHIO = "EthiO Systems Co."} +@String{pub-ETHIO:adr = "P.O. Box 36921, Houston, TX 77236, USA"} + +@String{pub-EUH = "Editore Ulrico Hoepli"} +@String{pub-EUH:adr = "Ulrico Hoepli Editore S.p.A., via Hoepli 5, + 20121 Milano, Italy"} + +@String{pub-EUUG = "European UNIX Users Group"} +@String{pub-EUUG:adr = "Buntingford, Herts, UK"} + +@String{pub-EYROLLES = "Editions Eyrolles"} +@String{pub-EYROLLES:adr = "Paris, France"} + +@String{pub-FCGCC = "F{\'e}d{\'e}ration C. G. C. de la + Communication"} +@String{pub-FCGCC:adr = ""} + +@String{pub-FSF = "{Free Software Foundation, Inc.}"} +@String{pub-FSF:adr = "51 Franklin Street, Fifth Floor, Boston, + MA 02110-1301, USA, Tel: (617) 876-3296"} + +@String{pub-GNU-PRESS = "GNU Press"} +@String{pub-GNU-PRESS:adr = "Boston, MA, USA"} + +@String{pub-GODINE = "David R. Godine, Publisher"} +@String{pub-GODINE:adr = "Boston, MA, USA"} + +@String{pub-GOLEM = "Golem Press"} +@String{pub-GOLEM:adr = "Boulder, CO, USA"} + +@String{pub-GP = "Graphics Press"} +@String{pub-GP:adr = "Box 430, Cheshire, CT 06410, USA"} + +@String{pub-HALSTED = "Halsted Press"} +@String{pub-HALSTED:adr = "New York, USA"} + +@String{pub-HAMISH = "Hamish Hamilton"} +@String{pub-HAMISH:adr = "London"} + +@String{pub-HANSER = "Carl Hanser"} +@String{pub-HANSER:adr = "M{\"u}nchen, Germany"} + +@String{pub-HARTLEY-MARKS = "Hartley \& Marks Publishers"} +@String{pub-HARTLEY-MARKS:adr = "Point Roberts, WA, USA and Vancouver, BC, + Canada"} + +@String{pub-HARVARD-INFO-TECH = "Harvard Univ. Of. for Info. and Tech."} +@String{pub-HARVARD-INFO-TECH:adr = "Cambridge, MA, USA"} + +@String{pub-HHP = "Hastings House, Publishers"} +@String{pub-HHP:adr = "New York, NY, USA"} + +@String{pub-HLRA = "Harvard Law Review Association"} +@String{pub-HLRA:adr = "Cambridge, MA, USA"} + +@String{pub-HRP = "Harper \& Row, Publishers"} +@String{pub-HRP:adr = "New York, NY, USA"} + +@String{pub-HSCHV = "Universit{\"a}tsdruckerei und Verlag Hermann + Schmidt"} +@String{pub-HSCHV:adr = "Mainz, Germany"} + +@String{pub-IBM = "IBM Corporation"} +@String{pub-IBM:adr = "San Jose, CA, USA"} + +@String{pub-IE = "InterEditions"} +@String{pub-IE:adr = "Paris, France"} + +@String{pub-IEEE = "IEEE Computer Society Press"} +@String{pub-IEEE:adr = "1109 Spring Street, Suite 300, Silver + Spring, MD 20910, USA"} + +@String{pub-INRIA = "INRIA/IRISA"} +@String{pub-INRIA:adr = "Rennes, France"} + +@String{pub-IREE = "IREE"} +@String{pub-IREE:adr = "Edgecliff, NSW, Australia"} + +@String{pub-IRISA = "IRISA"} +@String{pub-IRISA:adr = "Rennes, France"} + +@String{pub-IST = "Imaging Science \& Technology"} +@String{pub-IST:adr = "????"} + +@String{pub-ITP = "International Thomson Publishing"} +@String{pub-ITP:adr = "London, New York, Boston, Madrid, + \\ldots{}"} + +@String{pub-ITPG = "International Thomson Publishing GmbH"} +@String{pub-ITPG:adr = "K{\"o}nigswintere Str. 418, 53227 Bonn, + Germany"} + +@String{pub-KLUWER = "Kluwer Academic Publishers Group"} +@String{pub-KLUWER:adr = "Norwell, MA, USA"} + +@String{pub-KOMPUT = "a/S ``KompuT'' kirjastus"} +@String{pub-KOMPUT:adr = "Tartumaa, Estonia"} + +@String{pub-KOSMOINFORM = "Kosmosinform"} +@String{pub-KOSMOINFORM:adr = "Moscow, Russia"} + +@String{pub-LEARNED-INF = "Learned Information"} +@String{pub-LEARNED-INF:adr = "Medford, NJ, USA"} + +@String{pub-LEHMANNS = "Lehmanns"} +@String{pub-LEHMANNS:adr = "Berlin, Germany"} + +@String{pub-LUND-HUMPHRIES = "Lund Humphries"} +@String{pub-LUND-HUMPHRIES:adr = "London, UK"} + +@String{pub-MARSZALEK = "Adam Marsza{\l}ek"} +@String{pub-MARSZALEK:adr = "Toru{\'n}, Poland"} + +@String{pub-MASARYKOVA = "Masarykova Universita"} +@String{pub-MASARYKOVA:adr = "Brno, Czechoslovakia"} + +@String{pub-MASSON = "Masson Editeur"} + +@String{pub-MASSON-SA = "Masson, S.A."} +@String{pub-MASSON-SA:adr = "Barcelona, Spain"} +@String{pub-MASSON:adr = "Paris, France"} + +@String{pub-MATH-ASSOC-AMER = "Mathematical Association of America"} +@String{pub-MATH-ASSOC-AMER:adr = "Washington, DC, USA"} + +@String{pub-MH = "McGraw-Hill"} +@String{pub-MH:adr = "New York, NY, USA"} + +@String{pub-MIR = "Mir Publishers"} +@String{pub-MIR:adr = "Moscow, Russia"} + +@String{pub-MIT = "MIT Press"} +@String{pub-MIT:adr = "Cambridge, MA, USA"} + +@String{pub-MLAA = "Modern Language Association of America"} +@String{pub-MLAA:adr = "New York, NY, USA"} + +@String{pub-NAB = "New Amsterdam Books"} +@String{pub-NAB:adr = "New York, NY, USA"} + +@String{pub-NBS = "U.S. National Bureau of Standards"} +@String{pub-NBS:adr = "Gaithersburg, MD, USA"} + +@String{pub-NH = "North-Holland Publishing Company"} +@String{pub-NH:adr = "Amsterdam, The Netherlands"} + +@String{pub-NIGGLI = "Niggli/Hatje"} +@String{pub-NIGGLI:adr = "Heiden, Stuttgart, Germany"} + +@String{pub-NORTON = "W. W. Norton \& Co."} +@String{pub-NORTON:adr = "New York, NY, USA"} + +@String{pub-OHIO = "Ohio University Press"} +@String{pub-OHIO:adr = "Athens, OH, USA"} + +@String{pub-OLDENBOURG = "R. Oldenbourg Verlag"} +@String{pub-OLDENBOURG:adr = "Munich, Germany and Vienna, Austria"} + +@String{pub-ORA = "O'Reilly \&{Associates, Inc.}"} +@String{pub-ORA:adr = "981 Chestnut Street, Newton, MA 02164, USA"} + +@String{pub-ORA-FRANCE = "O'Reilly"} +@String{pub-ORA-FRANCE:adr = "Paris, France"} + +@String{pub-OUP = "Oxford University Press"} +@String{pub-OUP:adr = "Walton Street, Oxford OX2 6DP, UK"} + +@String{pub-PEACHPIT = "Peachpit Press, Inc."} +@String{pub-PEACHPIT:adr = "1085 Keith Avenue, Berkeley, CA 94708, USA"} + +@String{pub-PFLAUM = "Pflaum"} +@String{pub-PFLAUM:adr = "M{\"u}nchen, Germany"} + +@String{pub-PH = "Pren{\-}tice-Hall"} +@String{pub-PH:adr = "Upper Saddle River, NJ 07458, USA"} + +@String{pub-PHISMATHLIT = "Phismathlit"} +@String{pub-PHISMATHLIT:adr = "Moscow, Russia"} + +@String{pub-PHPTR = "Pren{\-}tice-Hall PTR"} +@String{pub-PHPTR:adr = "Upper Saddle River, NJ 07458, USA"} + +@String{pub-PITAGORA = "Pitagora Editrice"} +@String{pub-PITAGORA:adr = "Via del legatore, 3, Bologna, Italy"} + +@String{pub-POLYGRAPH = "Polygraph Verlag"} +@String{pub-POLYGRAPH:adr = "Frankfurt am Main, Germany"} + +@String{pub-PRIME-TIME-FREEWARE = "Prime Time Freeware"} +@String{pub-PRIME-TIME-FREEWARE:adr = "370 Altair Way, Suite 150, Sunnyvale, + CA, USA"} + +@String{pub-PROTVINO = "Protvino"} +@String{pub-PROTVINO:adr = "Moscow, Russia"} + +@String{pub-PTI = "Personal{\TeX} Inc."} +@String{pub-PTI:adr = "12 Madrona Street, Mill Valley, CA 94941, + USA"} + +@String{pub-PUP = "Princeton University Press"} +@String{pub-PUP:adr = "Princeton, NJ, USA"} + +@String{pub-RISO = "Ris{\o} National Laboratory"} +@String{pub-RISO:adr = "Roskilde, Denmark"} + +@String{pub-RRB = "R. R. Bowker Company"} +@String{pub-RRB:adr = "New York, NY, USA"} + +@String{pub-SERIF = "Serif Publishing"} +@String{pub-SERIF:adr = "A subsidiary of Xerox Corporation, 701 + South Aviation Boulevard, El Segundo, CA + 90245, USA"} + +@String{pub-SF = "Scott, Foresman and Company"} +@String{pub-SF:adr = "Glenview, IL, USA"} + +@String{pub-SIAM = "Society for Industrial and Applied + Mathematics"} +@String{pub-SIAM:adr = "Philadelphia, PA, USA"} + +@String{pub-SILICON = "Silicon Press"} +@String{pub-SILICON:adr = "25 Beverly Road, Summit, NJ 07901, USA"} + +@String{pub-SOC-SCHOL-PUB = "Society for Scholarly Publishing"} +@String{pub-SOC-SCHOL-PUB:adr = "Washington, DC, USA"} + +@String{pub-SP = "Shapolsky Publishers"} +@String{pub-SP:adr = "New York, NY, USA"} + +@String{pub-STA = "Society of Typographic Arts"} +@String{pub-STA:adr = "Chicago, IL, USA"} + +@String{pub-STEINER = "Steiner"} +@String{pub-STEINER:adr = "Stuttgart, Germany"} + +@String{pub-SUCSLI = "Stanford University Center for the Study of + Language and Information"} +@String{pub-SUCSLI:adr = "Stanford, CA, USA"} + +@String{pub-SV = "Spring{\-}er-Ver{\-}lag"} +@String{pub-SV:adr = "Berlin, Germany~/ Heidelberg, Germany~/ + London, UK~/ etc."} + +@String{pub-SYBEX = "Sybex"} +@String{pub-SYBEX:adr = "2021 Challenger Driver, Suite 100, Alameda, + CA 94501, USA"} + +@String{pub-TEXPLORATORS = "The {\TeX}plorators Corporation"} +@String{pub-TEXPLORATORS:adr = "3701 W. Alabama, Suite 450-273, Houston, TX + 77027, USA"} + +@String{pub-TH = "Thames and Hudson"} +@String{pub-TH:adr = "London, UK"} + +@String{pub-TUB = "Technische Universit{\"a}t Berlin, Institut + f{\"u}r Humanwissenschaft in Arbeit und + Ausbildung"} +@String{pub-TUB:adr = "10623 Berlin, Germany"} + +@String{pub-U-CAL-PRESS = "University of California Press"} +@String{pub-U-CAL-PRESS:adr = "Berkeley, CA, USA"} + +@String{pub-U-CHICAGO-PRESS = "University of Chicago Press"} +@String{pub-U-CHICAGO-PRESS:adr = "Chicago, IL, USA"} + +@String{pub-UNIC = "UNI{$\bullet$}C"} +@String{pub-UNIC:adr = "Danmarks EDB-Center for Forskning og + Uddannelse, Copenhagen, Denmark"} + +@String{pub-URW = "URW (Unternehmensberatung Rubow Weber) + Verlag"} +@String{pub-URW:adr = "Hamburg, Germany"} + +@String{pub-UTP = "University of Toronto Press"} +@String{pub-UTP:adr = "Toronto, Ontario, Canada"} + +@String{pub-VIEWEG = "Friedrich Vieweg und Sohn"} +@String{pub-VIEWEG:adr = "Braunschweig, Germany"} + +@String{pub-VNR = "Van Nostrand Reinhold"} +@String{pub-VNR:adr = "New York, NY, USA"} + +@String{pub-VOGEL = "Vogel Verlag"} +@String{pub-VOGEL:adr = "Postfach 67 40, D-8700 W{\"u}rzburg, + Germany"} + +@String{pub-W = "Wiley"} +@String{pub-W:adr = "Chichester, UK"} + +@String{pub-WCB = "William C. Brown Company Publishers"} +@String{pub-WCB:adr = "Dubuque, IA, USA"} + +@String{pub-WGP = "Wat{\-}son-Gup{\-}till Publications"} +@String{pub-WGP:adr = "1515 Broadway, New York, NY 10036, USA"} + +@String{pub-WILEY = "John Wiley and Sons, Inc."} +@String{pub-WILEY:adr = "New York, NY, USA"} + +@String{pub-WORLD-SCI = "World Scientific"} +@String{pub-WORLD-SCI:adr = "Singapore"} + +@String{pub-WPC = "Wadsworth Publishing Company"} +@String{pub-WPC:adr = "Belmont, CA, USA"} + +@String{pub-WWS = "The Wynkyn de Worde Society and Bund + Deutscher Buchk{\"u}nstler"} +@String{pub-WWS:adr = "London, UK and Offenbach, Germany"} + +@String{pub-YUP = "Yale University Press"} +@String{pub-YUP:adr = "New Haven, CT, USA"} + +%%% ==================================================================== +%%% Series abbreviations: + +@String{ser-LNCS = "Lecture Notes in Computer Science"} + +%%% ==================================================================== +%%% Bibliography entries: + +@Book{Abdelhamid:1992:VLB, + author = "Rames Abdelhamid", + title = "{Das Vieweg {\LaTeX}-Buch: Eine praxisorientierte + Einf{\"u}hrung}", + publisher = pub-VIEWEG, + address = pub-VIEWEG:adr, + pages = "xiii + 169", + year = "1992", + ISBN = "3-528-05145-0", + ISBN-13 = "978-3-528-05145-7", + bibdate = "Sat Mar 07 08:50:13 1998", + acknowledgement = ack-nhfb, +} + +@Book{Abdelhamid:1993:VLB, + author = "Rames Abdelhamid", + title = "{Das Vieweg {\LaTeX}-Buch: Eine praxisorientierte + Einf{\"u}hrung}", + publisher = pub-VIEWEG, + address = pub-VIEWEG:adr, + edition = "Second", + pages = "xvi + 169", + year = "1993", + ISBN = "3-528-15145-5", + ISBN-13 = "978-3-528-15145-4", + bibdate = "Wed Mar 2 08:33:46 1994", + acknowledgement = ack-rz, +} + +@Book{Abdelhamid:1996:VLB, + author = "Rames Abdelhamid", + title = "{Das Vieweg {\LaTeX}-Buch: Eine praxisorientierte + Einf{\"u}hrung}", + publisher = pub-VIEWEG, + address = pub-VIEWEG:adr, + edition = "Third", + pages = "xviii + 226", + year = "1996", + ISBN = "3-528-15145-5", + ISBN-13 = "978-3-528-15145-4", + bibdate = "Sat Mar 07 08:51:07 1998", + note = "The ISBN did not change between second and third + editions.", + price = "44,00 DM", + acknowledgement = ack-nhfb, +} + +@Article{Abikoff:1986:T, + author = "William Abikoff", + title = "{\TeX}", + journal = j-MATHINTEL, + volume = "8", + number = "3", + pages = "64--76", + year = "1986", + bibdate = "Fri Mar 12 09:43:47 1993", + acknowledgement = ack-ps, +} + +@Article{Abikoff:1988:TEA, + author = "William Abikoff", + title = "{\TeX}: The Ease and Art of Text Processing", + journal = j-ABACUS, + volume = "5", + number = "4", + pages = "10--29", + month = "summer", + year = "1988", + CODEN = "ABACE", + ISSN = "0724-6722", + bibdate = "Thu Sep 01 00:29:22 1994", + abstract = "Discusses the various facets of text-processing + systems. The common thread is a discussion of the TEX + system of text-processing and typesetting developed by + Donald Knuth. The paper also discusses its accompanying + program, METAFONT which creates characters to be + printed. (0 Refs.)", + acknowledgement = ack-nhfb, + classification = "C6130D (Document processing techniques)", + keywords = "Character creation; METAFONT; TeX; TEX system; + Text-processing systems; Typesetting", + thesaurus = "Word processing", +} + +@Book{Abrahams:1990:TI, + author = "Paul W. Abrahams and Karl Berry and Kathryn A. + Hargreaves", + title = "{\TeX} for the Impatient", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xvii + 357", + year = "1990", + ISBN = "0-201-51375-7", + ISBN-13 = "978-0-201-51375-2", + LCCN = "Z253.4.T47 A27 1990", + bibdate = "Tue Jul 26 08:43:39 1994", +} + +@Book{Abrahams:1991:TI, + author = "Paul W. Abrahams and Karl Berry and Kathryn A. + Hargreaves", + title = "{\TeX} per l'impaziente", + publisher = pub-AW, + address = pub-AW:adr, + pages = "396", + year = "1991", + ISBN = "88-7192-022-8", + ISBN-13 = "978-88-7192-022-1", + bibdate = "Tue Jul 26 08:43:41 1994", + note = "This is an translation to Italian of + \cite{Abrahams:1990:TI}, with additional material on + Italian hyphenation.", + acknowledgement = ack-cb, + bookreview = "TUGboat 14, number 4, December 1993, 421--422", + translator = "Gaia Franchi and Guido Franchi", +} + +@InProceedings{Adams:1991:EFQ, + author = "Debra A. Adams", + title = "Evaluating font quality: {A} method of predicting + character image defects", + crossref = "Pietrowski:1991:ISI", + pages = "353--364", + year = "1991", + bibdate = "Tue Mar 1 11:52:23 1994", + acknowledgement = ack-kb, +} + +@Book{Adobe:1985:PLR, + author = "{Adobe Systems Incorporated}", + title = "{\POSTSCRIPT} Language Reference Manual", + publisher = pub-AW, + address = pub-AW:adr, + pages = "ix + 321", + year = "{\noopsort{1985a}}1985", + ISBN = "0-201-10174-2", + ISBN-13 = "978-0-201-10174-4", + LCCN = "QA76.73.P67 A33 1985", + bibdate = "Tue Dec 14 23:18:17 1993", +} + +@Book{Adobe:1985:PLT, + author = "{Adobe Systems Incorporated}", + title = "{\POSTSCRIPT} Language Tutorial and Cookbook", + publisher = pub-AW, + address = pub-AW:adr, + pages = "x + 243", + year = "{\noopsort{1985b}}1985", + ISBN = "0-201-10179-3", + ISBN-13 = "978-0-201-10179-9", + LCCN = "QA76.73.P67 A34 1985", + bibdate = "Tue Dec 14 23:18:32 1993", +} + +@Manual{Adobe:1988:DPS, + title = "The Display {\POSTSCRIPT} System Reference", + organization = pub-ADOBE, + address = pub-ADOBE:adr, + month = oct # " 10", + year = "1988", + bibdate = "Sat Feb 10 14:47:06 1996", +} + +@Manual{Adobe:1990:ATF, + title = "Adobe Type 1 Font Format", + organization = pub-ADOBE, + address = pub-ADOBE:adr, + month = mar, + year = "1990", + bibdate = "Sat Feb 10 14:47:04 1996", + partnumber = "LPS0064", +} + +@Misc{Adobe:19xx:CAS, + author = "{Adobe Systems Incorporated}", + title = "{Colophon}\emdash {Adobe Systems News} {Publication}", + year = "19xx", +} + +@InProceedings{Agostini:1985:IUF, + author = "M. Agostini and V. Matano and M. Schaerf and M. + Vascotto", + title = "An {Interactive User-Friendly \TeX} in {VM\slash CMS + Environment}", + crossref = "Lucarella:1985:PFE", + pages = "117--132", + year = "1985", + bibdate = "Sat Feb 10 08:47:13 1996", + acknowledgement = ack-hk, +} + +@Article{Aiello:1983:SPD, + author = "L. Aiello and S. Pavan", + title = "A system for the production of documents based on + {\TeX} (in Italian)", + journal = j-RIV-INFO-MILANO, + volume = "13", + number = "3", + pages = "261--270", + month = jul, + year = "1983", + bibdate = "Thu Jul 21 19:48:28 1994", +} + +@Book{Alamnehe:1993:EDP, + author = "Abass Alamnehe", + title = "{e\LaTeX}: Document Preparation Guide", + publisher = pub-ETHIO, + address = pub-ETHIO:adr, + pages = "xvi + 230", + year = "1993", + bibdate = "Fri Apr 1 09:00:27 1994", + note = "This book is typeset in {e\LaTeX}, an Ethiopic-based + version of {\LaTeX}, and is entirely in the Amharic + language, including many of the control sequences.", + acknowledgement = ack-aa, +} + +@Article{Alexander:1992:TTP, + author = "George Alexander", + title = "{\TeX} and {\TeX}tures: Page Composition in a + Completely Different Vein", + journal = j-SEYBOLD, + volume = "7", + number = "1", + pages = "3--7", + month = sep # " 4", + year = "1992", + CODEN = "SRDFE", + ISSN = "0889-9762", + bibdate = "Thu Sep 01 01:17:35 1994", + abstract = "{\TeX} is a typesetting system that is used for + publishing scholarly material, especially works + containing heavy mathematics. It is popular at + universities and research facilities around the world, + but it is hardly known outside academic circles. Since + {\TeX} is available on desktop platforms (as well as on + mainframes and minicomputers), it is competitive to + some extent with desktop publishing software. There are + still many applications where {\TeX} produces results + that are better than those of standard desktop + packages. There are a few things {\TeX} can do that + couldn't be practically done with desktop software. + There is a new {\TeX} implementation, {\TeX}tures, + which moves {\TeX} a little closer to the desktop + mainstream. It holds out the hope that {\TeX} may yet + have the potential to become as easy to use as other + desktop packages. The author discusses the innovations + built in to {\TeX}, its strengths and weaknesses, and + its uses. (0 Refs.)", + acknowledgement = ack-nhfb, + classification = "D2105 (Media-TV, radio, press)", + keywords = "Desktop publishing software; Page composition; TeX; + Textures; Typesetting system", + thesaurus = "Computer controlled typesetting; Electronic + publishing", +} + +@Article{Allen:1982:CCD, + author = "F. H. Allen and O. Kennard and D. G. Watson and K. M. + Crennell", + title = "{Cambridge Crystallographic Data Centre}. 6. + {Preparation} and computer typesetting of ``molecular + structures and dimensions'' bibliographic volumes", + journal = j-J-CHEM-INFO-COMP-SCI, + volume = "22", + number = "3", + pages = "129--138", + month = aug, + year = "1982", + bibdate = "Mon Jul 25 08:37:04 MDT 1994", + acknowledgement = ack-nhfb, + keywords = "documentation", + subject = "H.3.1 Information Systems, INFORMATION STORAGE AND + RETRIEVAL, Content Analysis and Indexing, Dictionaries + \\ H.3.4 Information Systems, INFORMATION STORAGE AND + RETRIEVAL, Systems and Software, Information networks + \\ J.2 Computer Applications, PHYSICAL SCIENCES AND + ENGINEERING, Chemistry", +} + +@Article{Allport:1992:OND, + author = "G. Allport and P. Jarratt", + title = "The old and the new in document processing", + journal = j-ELECTRONIC-LIBRARY, + volume = "10", + number = "1", + pages = "41--45", + month = feb, + year = "1992", + CODEN = "ELLID", + ISSN = "0264-0473", + bibdate = "Thu Sep 01 01:19:02 1994", + abstract = "{\TeX} is a well-known system for the production of + quality documents, offering the user a high degree of + sophistication in the specification of the final + format. It has companion packages (most notably + {\LaTeX}) which allow other document processing + activities, including the production of new fonts, + pictures and extended production systems. The project + discussed was aimed at rescuing the full power of + {\TeX} packages in the newly emerging X-Windows + technological context. The authors describe software + which was produced to take full advantage of the + facilities of both systems by translating {\TeX} output + into bit-mapped images which can then be displayed on + an X-terminal and mixed with such facilities as the + extra fonts available and bit-maps produced in the + X-environment. An interactive environment is defined + that gives the user flexibility in the creation of a + document of high quality with a friendly human-computer + interface, which allows the windowing environment to + give a new look to an old and well-tried system. (4 + Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Sch. of Comput. Sci., Birmingham Univ., UK", + classification = "C6130D (Document processing techniques); C6180G + (Graphical user interfaces); C7106 (Word processing)", + keywords = "Bit-mapped images; Document processing; Fonts; + Human-computer interface; Interactive environment; + LaTeX; TeX; X-terminal; X-Windows", + thesaurus = "Character sets; Graphical user interfaces; Interactive + systems; Word processing", +} + +@Article{Alt:1973:CPT, + author = "F. L. Alt and J. Kirk", + title = "Computer Photocomposition of Technical Text", + journal = j-CACM, + volume = "16", + number = "6", + pages = "??--??", + month = jun, + year = "1973", + CODEN = "CACMA2", + ISSN = "0001-0782", + bibdate = "Tue May 28 11:53:03 1996", + abstract = "In computer assisted typesetting by means of + photocomposition, special problems arise in highly + technical material such as mathematical formulas. New + solutions to several of these problems have been + devised in the information system of the American + Institute of Physics. They include: the representation + of special characters (foreign alphabets, mathematical + symbols, etc.) not available on input keyboards or on + the photocomposer; the generation of such symbols, e.g. + by overprinting; the precise positioning of accent + marks (floating diacritics); line breaks, i.e. words or + formulas placed partly at the end of one line and + partly at the beginning of the next; and certain + aspects of error correction.", + keywords = "photocomposition, typesetting, printing, graphics, + text processing", +} + +@Book{Ament:2001:INB, + author = "Kurt Ament", + title = "Indexing: a nuts-and-bolts guide for technical + writers", + publisher = "William Andrew Publishing", + address = "Norwich, NY, USA", + pages = "x + 97", + year = "2001", + ISBN = "0-8155-1481-6", + ISBN-13 = "978-0-8155-1481-7", + LCCN = "T10.8 .A44 2001", + bibdate = "Fri Jun 17 06:26:43 MDT 2005", + bibsource = "z3950.loc.gov:7090/Voyager", + URL = "ftp://uiarchive.cso.uiuc.edu/pub/etext/gutenberg/; + http://www.loc.gov/catdir/description/wap041/2001033646.html; + http://www.loc.gov/catdir/toc/wap041/2001033646.html; + http://www.williamandrew.com/books.asp?id=1481", + acknowledgement = ack-nhfb, + remark = "", + subject = "Technology; Abstracting and indexing; Science; + Abstracting and indexing", +} + +@Article{Andre:1983:ABT, + author = "Jacques Andr\'e", + title = "Analytical bibliography on text manipulation", + journal = j-TSI, + volume = "1", + number = "5", + year = "1983", + acknowledgement = ack-hk, +} + +@InProceedings{Andre:1985:ETM, + author = "Jacques Andr\'e and Richard Southall", + title = "Experiments in teaching {\METAFONT}", + crossref = "Lucarella:1985:PFE", + pages = "141--153", + year = "1985", + bibdate = "Tue Jul 26 09:29:08 1994", + acknowledgement = ack-hk, +} + +@InProceedings{Andre:1985:TIM, + author = "Jacques Andr\'e and Yann Grundt and Vincent Quint", + title = "Towards an Interactive Math Mode in {\TeX}", + crossref = "Lucarella:1985:PFE", + pages = "79--92", + year = "1985", + bibdate = "Tue Jul 26 09:29:02 1994", +} + +@Book{Andre:1992:ETN, + author = "Jacques Andr\'e", + title = "Enseigner la typographie num\'erique ({\em English\/}: + Teaching digital typography)", + volume = "1618", + publisher = "Institut National de Recherche en Informatique et en + Automatique", + address = "Le Chesnay, France", + pages = "23", + year = "1992", + bibdate = "Sat Feb 10 14:47:51 1996", + bibsource = "OCLC FirstSearch", + series = "Rapports de recherche", + abstract = "Didot is a project of tuition of digital typography. + In this paper, the domain of digital typography is made + explicit, a curriculum for computer scientists, based + on previous curriculum for computer scientists, based + on previous experiences, is proposed, and a basic + bibliography is given.", + acknowledgement = ack-nhfb, + xxISBN = "(none??)", +} + +@Book{Anonymous:1982:CMS, + author = "Anonymous", + key = "Chicago", + title = "The Chicago Manual of Style", + publisher = pub-U-CHICAGO-PRESS, + address = pub-U-CHICAGO-PRESS:adr, + edition = "13th", + pages = "ix + 737", + year = "1982", + ISBN = "0-226-10390-0", + ISBN-13 = "978-0-226-10390-7", + LCCN = "Z253 .U69 1982", + bibdate = "Fri Jul 22 08:53:35 1994", + price = "UK\pounds30", + abstract = "For over seventy-five years the University of Chicago + Press `Manual of Style' has been the standard reference + tool for authors, editors, copywriters, and + proofreaders. Updated many times since 1906, it now + goes into its thirteenth edition---the first to + introduce a change in title. Bowing to what has become + nearly universal usage, we now call the `Manual' what + everybody else calls it, `The Chicago Manual of + Style'---or, for short, `The Chicago Manual'.\par Two + pervasive features characterize the present edition: it + reflects the impact of the new technology on the entire + editing and publishing process, and it spells out, in + greater detail and with many more examples, the + procedures with which it deals. It is, in short, much + more a ``how-to'' book for authors and editors than was + its predecessor. In chapter 2, on manuscript + preparation and copyediting, for example, new sections + have been added on how to mark a manuscript and how to + mark type specifications on a script. Chapter 12 + (``Tables''), completely rewritten, begins with advice + on how to make a table from raw data. Chapters 15 + through 17, on documentation, have been reorganized and + greatly expanded, offering many more alternative + methods of citation and a wealth of examples. In + chapter 18 (``Indexes''), clear step-by-step procedures + for the mechanics of index making are set forth. The + terminology and methodology of technological advances + (in word processing, computerized electronic + typesetting, and the like) are reflected most + prominently in chapter 20, ``Composition, Printing, and + Binding'' (new to this edition), and in the Glossary. + Other notable features of the present edition are + chapter 4 (``Rights and Permissions''), rewritten in + light of the new copyright law, and chapter 9 + (``Foreign Languages''), which includes a new table of + dicritics, a pinyin (Chinese) conversion chart and data + on several more languages.\par Throughout, `The Chicago + Manual' aims to give clear and straightforward + guidelines for preparing and editing copy---with the + emphasis on the sensible, the practical, and the + economical. As did its predecessors, the thirteenth + edition of the `Manual' states the style preferences of + the University of Chicago Press and reflects the + current practices and requirements of the great + majority of American publishers.", + acknowledgement = ack-fm # " and " # ack-jpl, + annote = "The standard American work on typesetting style etc. + (CHe)", + bibliography = "yes", + glossary = "yes", + history = "First edition, 1906, 12th edition 1969", + index = "yes", + inprint = "yes", + keywords = "printing, practical style manuals, authorship + handbooks, authorship manuals", + printermarks = "yes", + subtitle = "Rules for Authors, Printers and Publishers", +} + +@Book{Anonymous:1984:PMA, + author = "Anonymous", + key = "APA", + title = "Publication Manual of the American Psychological + Association", + publisher = pub-APA, + address = pub-APA:adr, + edition = "third", + pages = "208", + year = "1984", + ISBN = "0-912704-57-8", + ISBN-13 = "978-0-912704-57-9", + LCCN = "BF76.7 .P83 1983", + bibdate = "Tue Mar 1 11:52:52 1994", + acknowledgement = ack-fm, + annote = "The book contains style guidelines known as the APA + style. This ranges from spelling conventions to table + formatting. The guidelines assume that papers are + produced using a typewriter. The book itself shows a + very unpleasant design making reading are hard task.", + bibliography = "yes", + index = "yes", + keywords = "document preparation guidelines, style guidelines, + communications in psychology, psychology authorship, + American Psychological Association, publication manual, + writing", +} + +@Book{Anonymous:1987:CGP, + author = "Anonymous", + title = "{Chicago Guide to Preparing Electronic Manuscripts} + (For Authors and Publishers)", + publisher = pub-U-CHICAGO-PRESS, + address = pub-U-CHICAGO-PRESS:adr, + pages = "xi + 143", + year = "1987", + ISBN = "0-226-10392-7 (hardcover), 0-226-10393-5 (paperback)", + ISBN-13 = "978-0-226-10392-1 (hardcover), 978-0-226-10393-8 + (paperback)", + LCCN = "Z286.E43 U54 1987", + bibdate = "Fri Jul 22 11:10:32 1994", + note = "Short bibliography, examples, appendices, index", + acknowledgement = ack-jpl, + annote = "Describes techniques for electronic submission of + manuscripts, rather than camera-ready copy. Discusses + publication process from acquisition through + typesetting, from perspective of author and + publisher.", +} + +@TechReport{Anonymous:1988:CDG, + author = "Anonymous", + key = "IBM", + title = "Composing Documents with the Generalized Markup + Language", + number = "S544-3421", + institution = pub-IBM, + address = pub-IBM:adr, + edition = "Second", + month = mar, + year = "1988", + bibdate = "Mon Jul 25 11:12:22 1994", + acknowledgement = ack-fm, + keywords = "GML, document preparation systems, DTD, SCRIPT + (Computer Program), DCF (Computer Program)", +} + +@Manual{Anonymous:1989:CT, + title = "Code Typographique\emdash Choix de r{\`e}gles {\`a} + l'usage des auteurs et professionels du livre", + organization = pub-FCGCC, + address = pub-FCGCC:adr, + edition = "Seizi{\`e}me", + year = "1989", + bibdate = "Tue Mar 1 11:59:23 1994", + note = "This book is a compendium of rules for French + typography, and for the typesetting of several foreign + languages in French texts. It includes tables of + diacritics for most European languages, and hyphenation + rules for English, German, Greek, Italian, Latin, + Portuguese, and Spanish.", +} + +@Book{Anonymous:1990:JTB, + author = "Anonymous", + key = "JAPANESETEXNICOLOR", + title = "The Japanese {\TeX}{\-}ni{\-}color Book", + publisher = pub-ASCII, + address = pub-ASCII:adr, + year = "1990", + ISBN = "4-7561-0405-3", + ISBN-13 = "978-4-7561-0405-2", + note = "Japanese; contents include chapters on the history of + {\TeX} and of the Japanese {\TeX} extension, file + formats (fonts and {{\tt.dvi}}), and device drivers.", +} + +@Article{Anonymous:1990:NTF, + author = "Anonymous", + key = "NEWTEXFEATURES", + title = "New {\TeX} Features from {AMS}", + journal = j-NAMS, + volume = "37", + number = "2", + pages = "143--144", + month = feb, + year = "1990", + ISSN = "0002-9920", +} + +@Book{Anonymous:1991:B, + author = "Anonymous", + key = "Harvard Law Review Association", + title = "The Bluebook", + publisher = pub-HLRA, + address = pub-HLRA:adr, + edition = "15th", + pages = "xvii + 343", + year = "1991", + LCCN = "KF245 .U5 1991", + bibdate = "Fri Jul 22 12:36:10 1994", + acknowledgement = ack-fm, + history = "Compiled by the editors of the Columbia Law Review, + the Harward Law Review, the University of Pennsylvania + Law Review, and the Yale Law Journal", + index = "yes", + inprint = "yes", + keywords = "bibliographies, citation schemes, law", + subtitle = "A Uniform System of Citation", +} + +@Book{Anonymous:1993:CMS, + author = "Anonymous", + key = "Chicago", + title = "The {Chicago} Manual of Style", + publisher = pub-U-CHICAGO-PRESS, + address = pub-U-CHICAGO-PRESS:adr, + edition = "14th", + pages = "ix + 921", + year = "1993", + ISBN = "0-226-10389-7", + ISBN-13 = "978-0-226-10389-1", + LCCN = "Z253 .U69 1993", + bibdate = "Mon Sep 23 08:57:34 1996", + price = "US\$40.00", + acknowledgement = ack-nhfb, + annote = "The standard American work on typesetting style etc. + (CHe)", + bibliography = "yes", + glossary = "yes", + history = "First edition 1906, 12th edition 1969, 13th edition + 1982, 14th edition 1993", + index = "yes", + inprint = "yes", + keywords = "authorship handbooks; authorship manuals; practical + style manuals; printing", + printermarks = "yes", + subtitle = "The Essential Guide for Writers, Editors and + Publishers", +} + +@Book{Anonymous:1997:SW, + author = "Anonymous", + title = "{Scientific WorkPlace 2.5}", + publisher = pub-ITPG, + address = pub-ITPG:adr, + pages = "????", + year = "1997", + ISBN = "3-87439-375-5", + ISBN-13 = "978-3-87439-375-1", + LCCN = "????", + bibdate = "Mon Mar 02 09:06:24 1998", + note = "Includes CD-ROM.", + price = "DM 199,00", + URL = "http://www.itp.de/student/index.html", + acknowledgement = ack-nhfb, +} + +@Book{Anonymous:2003:CMS, + author = "Anonymous", + title = "The {Chicago} Manual of Style", + publisher = pub-U-CHICAGO-PRESS, + address = pub-U-CHICAGO-PRESS:adr, + edition = "15th", + pages = "xvii + 956", + year = "2003", + ISBN = "0-226-10403-6", + ISBN-13 = "978-0-226-10403-4", + LCCN = "Z253 .U69 2003", + bibdate = "Wed Sep 10 17:32:05 2003", + price = "US\$55.00", + acknowledgement = ack-nhfb, + annote = "The standard American work on typesetting style etc. + (CHe)", + bibliography = "yes", + glossary = "yes", + history = "First edition 1906, 12th edition 1969, 13th edition + 1982, 14th edition 1993, 15th edition 2003", + index = "yes", + inprint = "yes", + keywords = "authorship handbooks; authorship manuals; practical + style manuals; printing", + printermarks = "yes", + subtitle = "The Essential Guide for Writers, Editors and + Publishers", +} + +@Article{Antweiler:1989:TRI, + author = "Werner Antweiler and Andreas Strotmann and Volker + Winkelmann", + title = "A {\TeX}-{REDUCE} Interface", + journal = j-SIGSAM, + volume = "23", + number = "2", + pages = "26--33", + month = apr, + year = "1989", + CODEN = "SIGSBZ", + ISSN = "0163-5824", + bibdate = "Thu Mar 20 16:02:15 MST 1997", + acknowledgement = ack-nhfb, + classcodes = "C7310 (Mathematics); C6130 (Data handling techniques); + C7230 (Publishing and reproduction); C6140D (High level + languages); C6110 (Systems analysis and programming)", + corpsource = "Cologne Univ., Comput. Center, West Germany", + keywords = "algebra; algebraic; algorithms; capabilities; computer + controlled typesetting; design; E/X-REDUCE-interface; + high level; high quality output; indentation; + languages; line breaking; manipulation; mathematics + computing; performance; programming; readability; + REDUCE formulas; REDUCE-Lisp; symbol; T/sub; T/sub E/X; + T/sub E/X output; typesetting language; verification; + well known computer algebra system", + subject = "I.3.1 Computing Methodologies, COMPUTER GRAPHICS, + Hardware architecture, Raster display devices \\ I.7.1 + Computing Methodologies, TEXT PROCESSING, Text Editing, + TeX", + treatment = "P Practical", +} + +@InProceedings{Appelt:1985:HNE, + author = "Wolfgang Appelt", + title = "The Hyphenation of Non-{English} Words with {\TeX}", + crossref = "Lucarella:1985:PFE", + pages = "61--65", + year = "1985", + bibdate = "Tue Jul 26 09:28:56 1994", + acknowledgement = ack-hk, +} + +@Book{Appelt:1988:TF, + author = "Wolfgang Appelt", + title = "{\TeX} f{\"u}r Fortgeschrittene", + publisher = pub-AW, + address = pub-AW:adr, + pages = "x + 179", + year = "1988", + ISBN = "3-89319-115-1", + ISBN-13 = "978-3-89319-115-4", + bibdate = "Wed Dec 15 08:47:26 1993", +} + +@TechReport{Appelt:1990:TIG, + author = "Wolfgang Appelt", + title = "{Die {\TeX}-Installation in der GMD}", + type = "Arbeitspapiere der GMD", + institution = "Ges. f. Mathematik u. Datenverarbeitung", + address = "St. Augustin, Germany", + year = "1990", + bibdate = "Sat Mar 07 08:58:17 1998", + acknowledgement = ack-nhfb, +} + +@Book{Appelt:1994:TF, + author = "Wolfgang Appelt", + title = "{\TeX} f{\"u}r Fortgeschrittene", + publisher = pub-AW, + address = pub-AW:adr, + edition = "Second", + pages = "xii + 183", + year = "1994", + ISBN = "3-89319-695-1", + ISBN-13 = "978-3-89319-695-1", + bibdate = "Tue Mar 1 14:25:32 MET 1994", + acknowledgement = ack-rz, +} + +@Book{Arnold:1972:IPH, + author = "Edmund C. Arnold", + title = "Ink on Paper 2: a Handbook of the Graphic Arts", + publisher = pub-HRP, + address = pub-HRP:adr, + pages = "374", + year = "1972", + ISBN = "0-06-010131-8", + ISBN-13 = "978-0-06-010131-2", + LCCN = "Z244 .A83 1972", + bibdate = "Tue Mar 1 12:44:08 1994", + note = "Chapter bibliographies, sidebars, glossary, index, pp. + 375.", + acknowledgement = ack-jpl, + annote = "Summarizes evolution of printing technoology, with + focus on current status.", +} + +@Article{Arrabito:1988:CBT, + author = "R. Arrabito and H. J{\"{u}}rgensen", + title = "Computerized {Braille} Typesetting: Another View of + Mark-up Standards", + journal = j-EPODD, + volume = "1", + number = "2", + pages = "117--131", + month = sep, + year = "1988", + CODEN = "EPODE", + ISSN = "0894-3982", + bibdate = "Mon Jul 25 08:37:04 MDT 1994", + acknowledgement = ack-nhfb, + keywords = "human factors; standardization", + subject = "I.7.0 Computing Methodologies, TEXT PROCESSING, + General \\ B.4.2 Hardware, INPUT/OUTPUT AND DATA + COMMUNICATIONS, Input/Output Devices, Data terminals + and printers", +} + +@InProceedings{Athale:2004:ULT, + author = "Manasi Athale and Rahul Athale", + title = "Using {\LaTeX} to Typeset a + {Mar\={a}\d{t}h\={\i}-English} Dictionary", + crossref = "Syropoulos:2004:TXD", + pages = "55--58", + year = "2004", + CODEN = "LNCSD9", + ISSN = "0302-9743", + bibdate = "Tue Nov 16 17:43:44 2004", + acknowledgement = ack-nhfb, +} + +@Book{Baecker:1989:HFT, + author = "Ronald M. Baecker and Aaron Marcus", + title = "Human Factors and Typography for More Readable + Programs", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xx + 348", + year = "1989", + ISBN = "0-201-10745-7", + ISBN-13 = "978-0-201-10745-6", + LCCN = "QA76.75 .B34 1990", + bibdate = "Tue Dec 14 22:56:18 1993", + acknowledgement = ack-fm, + bibliography = "yes", + index = "yes", + keywords = "visual programming, computer graphics, human-computer + interaction", +} + +@Book{Bailey:1970:ASB, + author = "Herbert S. {Bailey, Jr.}", + title = "The Art and Science of Book Publishing", + publisher = pub-HRP, + address = pub-HRP:adr, + pages = "xii + 216", + year = "1970", + LCCN = "Z278 .B15", + note = "Bibliography, tables, figures, appendix, index, pp. + 217.", + acknowledgement = ack-jpl, + annote = "Semi-narrative style analyzing the management of + (book) publishing by a former director of Princeton + University Press.", +} + +@Book{Bailey:1990:ASB, + author = "Herbert S. {Bailey, Jr.}", + title = "The Art and Science of Book Publishing", + publisher = pub-OHIO, + address = pub-OHIO:adr, + edition = "Third", + pages = "xviii + 216", + year = "1990", + ISBN = "0-8214-0970-0", + ISBN-13 = "978-0-8214-0970-1", + LCCN = "Z278 .B15 1990", + bibdate = "Sat Feb 19 12:16:32 1994", + acknowledgement = ack-nhfb, +} + +@Book{Balda:1997:UNS, + author = "Miroslav Balda", + title = "Uzivatelske nadstavby sazeciho systemu {\LaTeX} 2.09", + publisher = "Zapadoceska univerzita", + address = "Plzen, Czech Republic", + pages = "119", + year = "1997", + ISBN = "80-7082-307-0", + ISBN-13 = "978-80-7082-307-1", + LCCN = "????", + bibdate = "Sat Mar 7 18:25:51 MST 1998", + acknowledgement = ack-nhfb, + keywords = "{\LaTeX} 2.09 -- makra", +} + +@Book{Barlow:1992:TC, + author = "Geoff Barlow and Simon Eccles", + title = "Typesetting and Composition", + publisher = pub-BLUEPRINT, + address = pub-BLUEPRINT:adr, + edition = "second", + pages = "274", + year = "1992", + ISBN = "0-948905-72-7", + ISBN-13 = "978-0-948905-72-8", + acknowledgement = ack-mc, +} + +@Book{Barron:1987:TPT, + author = "David Barron and Mike Rees", + title = "Text processing and typesetting with {UNIX}", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiv + 447", + year = "1987", + ISBN = "0-201-14219-8", + ISBN-13 = "978-0-201-14219-8", + LCCN = "Z286.D47 B37 1987", + bibdate = "Mon Jul 25 11:50:00 1994", + price = "US\$24.95", + series = "International computer science series", + acknowledgement = ack-nhfb, + keywords = "documentation", + review = "ACM CR 8811-0841", + subject = "I.7.2 Computing Methodologies, TEXT PROCESSING, + Document Preparation, nroff \\ I.7.2 Computing + Methodologies, TEXT PROCESSING, Document Preparation, + troff", +} + +@Article{Barron:1989:WUS, + author = "D. Barron", + title = "Why Use {SGML}?", + journal = j-EPODD, + volume = "2", + number = "1", + pages = "3--24", + month = apr, + year = "1989", + CODEN = "EPODE", + ISSN = "0894-3982", + bibdate = "Tue Mar 1 12:44:34 1994", +} + +@Article{Barwise:1989:TLA, + author = "Jon Barwise", + title = "{\TeX}, {\LaTeX}, and {\AmSTeX}", + journal = j-NAMS, + volume = "36", + number = "3", + pages = "241--243", + month = mar, + year = "1989", + ISSN = "0002-9920", + bibdate = "Tue Dec 14 11:08:55 1993", + acknowledgement = ack-ps, +} + +@Book{Barzun:1986:WEP, + author = "Jacques Barzun", + title = "On Writing, Editing, and Publishing: Essays, + Explicative and Hortatory", + publisher = pub-U-CHICAGO-PRESS, + address = pub-U-CHICAGO-PRESS:adr, + pages = "xi + 148", + year = "1986", + ISBN = "0-226-03857-2 (hardcover), 0-226-03858-0 (paperback)", + ISBN-13 = "978-0-226-03857-5 (hardcover), 978-0-226-03858-2 + (paperback)", + LCCN = "PN149 .B295 1986", + bibdate = "Tue Dec 14 22:56:20 1993", + acknowledgement = ack-jpl, +} + +@Book{Bausum:2002:TRM, + author = "David Bausum", + title = "{{\TeX}} reference manual", + publisher = pub-KLUWER, + address = pub-KLUWER:adr, + pages = "xii + 384", + year = "2002", + ISBN = "0-7923-7673-0", + ISBN-13 = "978-0-7923-7673-6", + LCCN = "Z253.4.T47 B38 2002", + bibdate = "Sat Jul 05 17:43:03 2003", + price = "US\$99.00", + acknowledgement = ack-nhfb, + subject = "TeX (Computer file); Computerized typesetting", +} + +@Article{BCS:1986:TWI, + author = "Report of the {Boston Computer Society}", + title = "Technical {Wordprocessors} for the {IBM PC} and + {Compatibles}", + journal = j-NAMS, + volume = "33", + number = "1", + pages = "8--37", + month = jan, + year = "1986", + ISSN = "0002-9920", + bibdate = "Mon Mar 2 19:43:58 1998", + acknowledgement = ack-hk, +} + +@Book{Beccari:1991:LGS, + author = "Claudio Beccari", + title = "{\LaTeX}\emdash{}Guida a un sistema di editoria + elettronica", + publisher = pub-EUH, + address = pub-EUH:adr, + pages = "ix + 399", + year = "1991", + ISBN = "88-203-1931-4", + ISBN-13 = "978-88-203-1931-1", + bibdate = "Wed Aug 24 21:53:29 1994", + note = "[From the author]: The book is the first and only one + in Italian at this moment [18-Nov-1991]. Although it + contains an introductory chapter for the beginner, its + main purpose is to give the reader advanced information + on {\LaTeX} (and partially on {\TeX}) in order to + prepare sophisticated macros, style files, and to make + a clever use of fonts. Here is a reduced table of + contents (translated to English): Chapter 1 - + Introduction \\ + \hphantom{Chapter }2 - Introductory \LaTeX{} \\ + \hphantom{Chapter }3 - General commands for text mode + \\ + \hphantom{Chapter }4 - Mathematical commands \\ + \hphantom{Chapter }5 - Environments \\ + \hphantom{Chapter }6 - Figures and tables \\ + \hphantom{Chapter }7 - Macros \\ + \hphantom{Chapter }8 - Typical documents and style + files \\ + \hphantom{Chapter }9 - Fonts \\ + Appendix A - \TeX{} Users Group \\ + \hphantom{Appendix }B - Keyboards \\ + \hphantom{Appendix }C - Font tables \\ + \hphantom{Appendix }D - Hyphenation patterns for + Italian \\ + Bibliography \\ + Index \\ + The publisher received camera-ready pages that were + prepared by the author with a 300-dpi laser printer. + The page style dimensions were suitably enlarged while + the photo plates were reduced so as to minimize the + granulosity of the signs. In practice the book was + prepared with 12pt option and reduced by the + photografic ratio of 0.8 so that the final real font + size is 9.6pt. The whole book was prepared with the + standard Computer Roman fonts on purpose in order to + show the potential user what he can get with a standard + \TeX{}/\LaTeX{} kit. The simple pictures were prepared + with the ``picture'' environment. The cover and the + title page were designed by a graphic expert of the + publishing company.", + acknowledgement = ack-cb, +} + +@Book{Beccari:1991:TLS, + author = "Claudio Beccari", + title = "La tesi di laurea scientifica\emdash Con note per la + composizione in {\LaTeX}\emdash disco {MS-DOS} da + 5.25in contenente macroistruzioni di stile", + publisher = pub-EUH, + address = pub-EUH:adr, + pages = "vii + 116", + year = "1991", + ISBN = "88-203-1932-2", + ISBN-13 = "978-88-203-1932-8", + bibdate = "Sat Feb 10 08:48:04 1996", + note = "The book was typeset by the author and printed with a + laser printer having a resolution of 300 dpi. The pages + were then photographically reduced by a factor of 0.8 + to the final size.. The fonts used are those of the + standard {\TeX\slash \LaTeX} set, that is Computer + Modern, with a default normal size of 12pt that the + photographic reduction made equivalent to approximately + 10pt. The book is a set of instructions for the + preparation of the thesis (Master and PhD levels) + according to the Italian State Universities + regulations; it deals mostly with literary style but it + also includes extensive tables of scientific symbols + and nomenclature and many references to Standards + regulations. The final chapter deal with the + typesetting of the thesis with a {\LaTeX} style, + TOPTESI, whose source is recorded in a floppy disk that + comes with the book.", +} + +@Article{Becker:1987:AWP, + author = "Joseph D. Becker", + title = "{Arabic} word processing", + journal = j-CACM, + volume = "30", + number = "7", + pages = "600--610", + month = jul, + year = "1987", + CODEN = "CACMA2", + ISSN = "0001-0782", + bibdate = "Wed Jan 04 08:20:20 1995", + acknowledgement = ack-nhfb, + keywords = "algorithms; design; human factors", + review = "ACM CR 8902-0084", + subject = "H.4.1 Information Systems, INFORMATION SYSTEMS + APPLICATIONS, Office Automation, Word processing \\ J.5 + Computer Applications, ARTS AND HUMANITIES, Linguistics + \\ I.7.1 Computing Methodologies, TEXT PROCESSING, Text + Editing, Languages", +} + +@Article{Becker:1989:TAD, + author = "Zeev Becker and Daniel Berry", + title = "{{\tt triroff}}, an adaptation of the + device-independent {{\tt troff}} for formatting + tri-directional text", + journal = j-EPODD, + volume = "2", + number = "3", + pages = "119--142", + month = oct, + year = "1989", + CODEN = "EPODE", + ISSN = "0894-3982", + bibdate = "Tue Mar 1 12:45:15 1994", +} + +@Book{Beckmann:1977:HP, + author = "{Petr} Beckmann", + title = "A History of $\pi$", + publisher = pub-GOLEM, + address = pub-GOLEM:adr, + edition = "Fourth", + pages = "202", + year = "1977", + ISBN = "0-911762-18-3", + ISBN-13 = "978-0-911762-18-1", + LCCN = "QA484 .B4 1977", + bibdate = "Thu Sep 08 11:17:17 1994", + note = "This book chronicles the story of the ultimate version + number of {\TeX}.", + acknowledgement = ack-nhfb, +} + +@Manual{Beebe:1987:TDD, + author = "Nelson H. F. Beebe", + title = "A {\TeX DVI Driver Family} --- ({Revision}~2.07)", + address = "University of Utah, Salt Lake City, UT 84112, USA", + month = apr, + year = "1987", + acknowledgement = ack-nhfb, +} + +@InProceedings{Beesley:2004:TDA, + author = "Kenneth R. Beesley", + title = "Typesetting the {Deseret} Alphabet with {\LaTeX} and + {\MF}", + crossref = "Syropoulos:2004:TXD", + pages = "68--111", + year = "2004", + CODEN = "LNCSD9", + ISSN = "0302-9743", + bibdate = "Tue Nov 16 17:43:44 2004", + acknowledgement = ack-nhfb, +} + +@Book{Bennett:1991:BP, + editor = "Paul A. Bennett", + title = "Books and Printing", + publisher = pub-BIEL, + address = pub-BIEL:adr, + pages = "417", + year = "1991", + ISBN = "0-913720-72-0", + ISBN-13 = "978-0-913720-72-1", + LCCN = "Z116.A3 B58 1991", + bibdate = "Sat Sep 10 12:52:39 1994", + note = "first published in 1951", + acknowledgement = ack-mc, + subtitle = "A Treasury for Typophiles", +} + +@Article{Bentley:1986:GLT, + author = "Jon L. Bentley and Brian W. Kernighan", + title = "{GRAP} --- a language for typesetting graphs", + journal = j-CACM, + volume = "29", + number = "8", + pages = "782--792", + month = aug, + year = "1986", + CODEN = "CACMA2", + ISSN = "0001-0782", + bibdate = "Wed Jan 04 08:20:03 1995", + acknowledgement = ack-nhfb, + keywords = "languages", + subject = "I.3.4 Computing Methodologies, COMPUTER GRAPHICS, + Graphics Utilities, Picture description languages \\ + I.7.2 Computing Methodologies, TEXT PROCESSING, + Document Preparation, Languages", +} + +@Article{Bentley:1986:LP, + author = "Jon Bentley", + title = "Literate Programming", + journal = j-CACM, + volume = "29", + number = "5", + pages = "364--369", + year = "1986", + CODEN = "CACMA2", + ISSN = "0001-0782", +} + +@Article{Bentley:1986:PPD, + author = "J. L. Bentley", + title = "Programming Pearls: Document Design", + journal = j-CACM, + volume = "29", + number = "9", + pages = "832--839", + month = sep, + year = "1986", + CODEN = "CACMA2", + ISSN = "0001-0782", + bibdate = "Sat Aug 27 17:15:11 1994", + acknowledgement = ack-nhfb, +} + +@Article{Bentley:1987:CPP, + author = "J. L. Bentley and L. W. Jelinski and B. W. Kernighan", + title = "{CHEM} --- {A} Program for Phototypesetting Chemical + Structure Diagrams", + journal = j-COMP-CHEM, + volume = "11", + number = "4", + pages = "281--297", + year = "1987", + ISSN = "0097-8485", + bibdate = "Sat Aug 27 16:57:14 1994", + acknowledgement = ack-nhfb, +} + +@TechReport{Bentley:1988:DLT, + author = "J. L. Bentley", + title = "dformat -- {A} Language for Typesetting Data Formats", + type = "Comp. Sci. Tech. Rep. No.", + number = "142", + institution = inst-ATT-BELL, + address = inst-ATT-BELL:adr, + month = apr, + year = "1988", + bibdate = "Sat Aug 27 17:13:19 1994", + note = "142", + acknowledgement = ack-nhfb, + keywords = "CSTR OBS", +} + +@Article{Bentley:1988:TPI, + author = "J. L. Bentley and B. W. Kernighan", + title = "Tools for Printing Indexes", + journal = j-EPODD, + volume = "1", + number = "1", + pages = "3--18", + month = apr, + year = "1988", + CODEN = "EPODE", + ISSN = "0894-3982", +} + +@Article{Bentley:1990:GLT, + author = "J. L. Bentley and B. W. Kernighan", + title = "{GRAP} --- {A} Language for Typesetting Graphs. + Tutorial and User Manual", + journal = "Unix Research System Papers", + volume = "II", + pages = "109--146", + year = "1990", + bibdate = "Sat Feb 10 16:06:28 1996", +} + +@Article{Bentley:1991:SAA, + author = "Jon L. Bentley and Brian W. Kernighan", + title = "A System for Algorithm Animation", + journal = j-COMP-SYS, + volume = "4", + number = "1", + pages = "5--30", + month = "Winter", + year = "1991", + CODEN = "CMSYE2", + ISSN = "0895-6340", + bibdate = "Thu Sep 01 01:07:13 1994", + abstract = "An algorithm or a program can be animated by a movie + that graphically represents its dynamic execution. Such + animations are useful for developing new programs, for + debugging, and for explaining how programs work. This + paper describes ANIM, a basic system for algorithm + animation. The output is crude, but ANIM is easy to + use; a novice user can animate a program in an hour or + two. ANIM currently produces movies with the X window + system, among others; it also renders movies into + stills that can be included in TROFF or {\TeX} + documents.", + acknowledgement = ack-nhfb, + affiliation = "AT and T Bell Labs., Princeton, NH, USA", + classification = "C6130B (Graphics techniques)", + keywords = "Algorithm animation; ANIM; Dynamic execution; Movie; + Program animation; Stills; TeX documents; TROFF + documents; X window system", + thesaurus = "Computer animation", +} + +@Book{Bianco:1992:TGU, + author = "Fiorella Bianco", + title = "{\TeX}\emdash Guida all'uso su personal computer + (Guide for the use on personal computers)", + publisher = pub-PITAGORA, + address = pub-PITAGORA:adr, + pages = "ix + 157", + year = "1992", + ISBN = "88-371-0583-5", + ISBN-13 = "978-88-371-0583-9", + bibdate = "Tue Mar 1 11:55:51 1994", + note = "Prepared with Plain {\TeX} and book macros written by + the author. Final copy produced on a 300-dpi laser + printer at magnification 1.2, then reduced for + printing.", +} + +@InProceedings{Bien:1985:TRC, + author = "Janusz S. Bie{\'n} and Hanna + Ko{\-}{\l}o{\-}dziej{\-}ska", + title = "{\TeX} for {Riad Computers}", + crossref = "Lucarella:1985:PFE", + pages = "133--140", + year = "1985", + bibdate = "Tue Jul 26 09:28:48 1994", + acknowledgement = ack-hk, + author-l = lang-pl, +} + +@Article{Bien:1988:PLT, + author = "Janusz S. Bie{\'n}", + title = "{Polish} Language and {\TeX}", + journal = j-TEXLINE, + volume = "8", + pages = "2", + year = "1988", + acknowledgement = ack-hk, + author-l = lang-pl, +} + +@Article{Bien:1990:CTJ, + author = "Janusz S. Bie{\'n}", + title = "Co to jest {\TeX}? (What is {\TeX}?)", + journal = j-WM, + volume = "29", + number = "1", + pages = "132--156", + year = "1990", + bibdate = "Thu Jun 23 18:23:05 1994", + note = "In Polish.", + author-l = lang-pl, + title-l = lang-pl, +} + +@Article{Bigelow:1983:DT, + author = "Charles Bigelow and Donald Day", + title = "Digital Typography", + journal = j-SA, + volume = "249", + number = "2", + pages = "106--119", + month = aug, + year = "1983", +} + +@InProceedings{Bigelow:1986:DLI, + author = "Charles Bigelow and Kris Holmes", + title = "The Design of {Lucida}: an Integrated Family of Types + for Electronic Literacy", + crossref = "vanVliet:1986:TPD", + pages = "1--17", + year = "1986", + bibdate = "Tue Mar 1 12:45:43 1994", + acknowledgement = ack-kb, +} + +@TechReport{Billawala:1989:MPS, + author = "Neenie Billawala", + title = "Metamarks: Preliminary studies for a {Pandora}'s Box + of Shapes", + number = "{STAN-CS-89-1256}", + institution = inst-STAN-CS, + address = inst-STAN-CS:adr, + month = may, + year = "1989", + bibdate = "Tue Mar 1 12:45:52 1994", +} + +@Article{Binding:1993:ETS, + author = "Angelika Binding", + title = "{Einsatz von {\TeX} beim Springer-Verlag}", + journal = j-MDMV, + volume = "19", + pages = "19--22", + year = "1993", + bibdate = "Tue Dec 14 10:40:35 1993", + acknowledgement = ack-ps, +} + +@Book{Black:1990:TDP, + author = "Alison Black", + title = "Typefaces for desktop publishing; a user guide", + publisher = pub-ADTP, + address = pub-ADTP:adr, + pages = "106", + year = "1990", + ISBN = "1-85454-841-7", + ISBN-13 = "978-1-85454-841-2", + LCCN = "Z253.3.B53 1990", + bibdate = "Tue Jul 26 09:19:20 1994", + acknowledgement = ack-fm # " and " # ack-mc, + review = j-TEXLINE # " 13, pp. 10--12", +} + +@Book{Borceux:1990:LPT, + author = "Francis Borceux", + title = "{\LaTeX}\emdash{}la perfection dans le traitement du + texte", + publisher = pub-CIAOCO, + address = pub-CIAOCO:adr, + year = "1990", + ISBN = "2-87085-194-4", + ISBN-13 = "978-2-87085-194-4", + bibdate = "Wed Dec 15 08:46:29 1993", +} + +@Book{Borde:1992:TE, + author = "Arvind Borde", + title = "{\TeX} by Example", + publisher = pub-AP, + address = pub-AP:adr, + pages = "xiv + 169", + year = "1992", + ISBN = "0-12-117650-9", + ISBN-13 = "978-0-12-117650-1", + LCCN = "Z253.4.T47 B67 1992", + bibdate = "Tue Mar 1 11:56:22 1994", + note = "This book was designed by the author, with some + assistance from the production department of Academic + Press, Boston. The covers were done by the publisher. + It was typeset by the author using Plain {\TeX} plus + specially written macros. The code for all macros used + for the book are reproduced in it so that the book + itself contains all the information---page layout + specifications, fonts used, and so on---about its own + typesetting. Over half the book consists of {\TeX} + input and output shown side-by-side, providing an + explicit example of how a part of the book was typeset. + The Academic Press logo on page iii, the + cataloging-in-publication data on page iv, and the + diagrams on page 33 were pasted in place by the + production department of Academic Press. The diagrams + were drawn using {\LaTeX}. Sample printouts of pages + were made on various laser printers. When everything + seemed satisfactory, the dvi files were copied onto IBM + diskettes and were mailed to Academic Press, and from + them to the American Mathematical Society. The final + copy was produced by the A.M.S. using an APS micro-5 + phototypesetter. All fonts used in the book are from + the Computer Modern family. Parts of the covers of the + book, inside and outside, were done in {\TeX} by the + author (the code for this is not included in the book). + The outside cover was designed by Camille Pecoul of + Academic Press and produced at Allison Associates in + Boston. The font used for the title (on the covers) is + Meridien. The background pattern was obtained by + shooting a handmade marble paper as a black-and-white + halftone and then overprinting with the Pantone + Matching System (PMS). The placement of material on the + cover was done by hand by Ms. Pecoul using a mechanical + board. The drop shadow effect was done at Allison + Associates.", + acknowledgement = ack-ab, +} + +@Book{Borde:1993:MTE, + author = "Arvind Borde", + title = "Mathematical {\TeX} by Example", + publisher = pub-AP, + address = pub-AP:adr, + pages = "xii + 352", + year = "1993", + ISBN = "0-12-117645-2", + ISBN-13 = "978-0-12-117645-7", + LCCN = "Z253.4.T47 B67 1993", + bibdate = "Wed Dec 15 08:46:21 1993", + acknowledgement = ack-nhfb, +} + +@Book{Borde:1993:UGL, + author = "Arvind Borde and Tomas Rokicki", + title = "A User's Guide for {\TeX}Help; The On-Line {\TeX} + Handbook", + publisher = pub-AP, + address = pub-AP:adr, + pages = "v + 28", + year = "1993", + ISBN = "0-12-117640-1", + ISBN-13 = "978-0-12-117640-2", + bibdate = "Sat Sep 25 13:57:28 1993", + note = "This small booklet documents the {\TeX}Help program + for IBM PC and compatible microcomputers.", + acknowledgement = ack-nhfb, +} + +@Book{Borkowski:1992:LPP, + author = "Kazimierz M. Borkowski", + title = "{{\LaTeX}}. Profesjonalny sk{\l}ad publikacji", + publisher = pub-MARSZALEK, + address = pub-MARSZALEK:adr, + pages = "88", + year = "1992", + bibdate = "Wed Jun 22 18:21:04 2005", + bibsource = "alpha.bn.org.pl:210/INNOPAC", + acknowledgement = ack-md, + address-l = lang-pl, + author-dates = "(1948-- )", + author-l = lang-pl, + language = "Polish", + publisher-l = lang-pl, + title-l = lang-pl, +} + +@Book{Borkowski:1997:LPS, + author = "Kazimierz Maria Borkowski", + title = "{{\LaTeX}} --- profesjonalny sk{\l}ad publikacji", + publisher = pub-MARSZALEK, + address = pub-MARSZALEK:adr, + pages = "88", + year = "1997", + ISBN = "83-7174-023-9, 83-85263-64-0", + ISBN-13 = "978-83-7174-023-7, 978-83-85263-64-7", + bibdate = "Wed Jun 22 18:29:48 MDT 2005", + bibsource = "alpha.bn.org.pl:210/INNOPAC", + acknowledgement = ack-nhfb, + author-dates = "(1948-- )", + language = "Polish", + subject = "LATEX; podr{\k{e}}cznik", +} + +@Book{Borkowski:2001:LPS, + author = "Kazimierz Maria Borkowski", + title = "{{\LaTeX}}: profesjonalny sk{\l}ad publikacji", + publisher = pub-MARSZALEK, + address = pub-MARSZALEK:adr, + pages = "88", + year = "2001", + ISBN = "83-7322-004-6", + ISBN-13 = "978-83-7322-004-1", + bibdate = "Wed Jun 22 18:19:42 MDT 2005", + bibsource = "alpha.bn.org.pl:210/INNOPAC", + acknowledgement = ack-nhfb, + author-dates = "(1948-- )", + language = "Polish", + subject = "LATEX; podr{\k{e}}cznik", +} + +@Book{Boston:1986:STT, + author = "Bruce O. Boston", + title = "{STET!} Tricks of the Trade for Writers and Editors", + publisher = pub-EEI, + address = pub-EEI:adr, + pages = "310", + year = "1986", + ISBN = "0-935012-07-9", + ISBN-13 = "978-0-935012-07-1", + LCCN = "PN162 .S741 1986", + bibdate = "Fri Jul 22 08:47:44 1994", + price = "US\$15.95", + acknowledgement = ack-jpl, + annote = "A collection of articles from {\em The Editorial Eye}, + the newsletter on publications standards and practices. + Covers editing, writing, proof-reading, and + publications management (mostly writing, editing, and + proofing).", +} + +@Booklet{Botway:1985:LCS, + author = "Lloyd Botway and Chris Biemesderfer", + title = "{\LaTeX} Command Summary ({\TeX} 1.3, {\LaTeX} 2.08)", + howpublished = "Prepared for the Space Telescope Institute, Baltimore, + MD; reprinted with permission and distributed by TUG", + year = "1985", + bibdate = "Tue Mar 1 11:57:04 1994", + acknowledgement = ack-hk, +} + +@InProceedings{Bouma:1988:DP, + author = "Louis G. Bouma and Jeroen Bruijning and Johannes C. + {van Vliet}", + title = "Document processing", + crossref = "Veer:1988:HCI", + pages = "144--169", + year = "1988", + bibdate = "Thu Jul 21 23:40:26 1994", + acknowledgement = ack-nhfb, +} + +@Book{Brandt:1989:CAC, + editor = "Josef Brandt and Ivar K. Ugi", + title = "Computer Applications in Chemical Research and + Education: {A} Collection of Papers Based on Lectures + that were Presented at the {VII}th International + Conference on Computers in Chemical Research and + Education at Garmisch-Partenkirchen, {DE}", + publisher = pub-AHV, + address = pub-AHV:adr, + edition = "1", + pages = "xiii + 449", + year = "1989", + ISBN = "3-7785-1804-6", + ISBN-13 = "978-3-7785-1804-5", + LCCN = "QD39.3.E46 I56 1985", + bibdate = "Fri Jul 22 08:49:47 1994", + price = "DM128.00", + series = "Computeranwendung in der Chemie", + acknowledgement = ack-rw, +} + +@Book{Braswell:1989:IP, + author = "Frank Merritt Braswell", + title = "Inside {\POSTSCRIPT}", + publisher = pub-PEACHPIT, + address = pub-PEACHPIT:adr, + year = "1989", + ISBN = "0-938151-10-X", + ISBN-13 = "978-0-938151-10-4", + LCCN = "QA76.73.P67 B73 1989", + bibdate = "Tue Dec 14 23:35:41 1993", + price = "US\$37.50", +} + +@Book{Bringhurst:1992:ETS, + author = "Robert Bringhurst", + title = "The elements of typographic style", + publisher = pub-HARTLEY-MARKS, + address = pub-HARTLEY-MARKS:adr, + pages = "254", + year = "1992", + ISBN = "0-88179-110-5 (hardback), 0-88179-033-8 (paperback)", + ISBN-13 = "978-0-88179-110-5 (hardback), 978-0-88179-033-7 + (paperback)", + LCCN = "Z246 .B74 1992", + bibdate = "Tue Aug 31 08:00:51 1999", + acknowledgement = ack-nhfb, +} + +@Book{Bringhurst:1996:ETS, + author = "Robert Bringhurst", + title = "The elements of typographic style", + publisher = pub-HARTLEY-MARKS, + address = pub-HARTLEY-MARKS:adr, + edition = "Second", + pages = "350", + year = "1996", + ISBN = "0-88179-133-4 (hardback), 0-88179-132-6 (paperback)", + ISBN-13 = "978-0-88179-133-4 (hardback), 978-0-88179-132-7 + (paperback)", + LCCN = "Z246 .B74 1996", + bibdate = "Tue Aug 31 08:00:51 1999", + acknowledgement = ack-nhfb, +} + +@Article{Brooks:1991:LTV, + author = "Kenneth P. Brooks", + title = "Lilac: {A} Two-View Document Editor", + journal = j-COMPUTER, + volume = "24", + number = "6", + pages = "7--19", + month = jun, + year = "1991", + CODEN = "CPTRB", + ISSN = "0018-9162", + bibdate = "Tue Mar 1 11:57:20 1994", +} + +@Book{Brown:1989:IPT, + author = "Alex Brown", + title = "In Print: Text and Type", + publisher = pub-WGP, + address = pub-WGP:adr, + pages = "191", + year = "1989", + ISBN = "0-8230-2544-6", + ISBN-13 = "978-0-8230-2544-2", + LCCN = "Z250.B868 1989", + bibdate = "Wed Aug 10 10:10:49 1994", + acknowledgement = ack-nhfb, +} + +@Book{Brown:1994:PTT, + editor = "Vicki Brown", + title = "Prime Time {\TeX}cetera", + publisher = pub-PRIME-TIME-FREEWARE, + address = pub-PRIME-TIME-FREEWARE:adr, + pages = "96", + year = "1994", + ISBN = "1-881957-10-1", + ISBN-13 = "978-1-881957-10-2", + bibdate = "Wed Aug 10 10:52:33 1994", + note = "Includes CD-ROM.", + price = "US\$60.00", + acknowledgement = ack-nhfb, +} + +@Article{Brueggeman-Klein:1989:DTN, + author = "A. Br{\"{u}}ggeman-Klein and D. Wood", + title = "Drawing Trees Nicely with {\TeX}", + journal = j-EPODD, + volume = "2", + number = "2", + pages = "101--115", + month = jul, + year = "1989", + CODEN = "EPODE", + ISSN = "0894-3982", +} + +@Article{Bruggemann-Klein:1995:PR, + author = "Anne Br{\"u}ggemann-Klein and Rolf Klein and Stefan + Wohlfeil", + title = "Pagination Reconsidered", + journal = j-EPODD, + volume = "8", + number = "2/3", + pages = "139--152", + month = jun # "\slash " # sep, + year = "1995", + CODEN = "EPODEU", + ISSN = "0894-3982", + bibdate = "Fri Jul 11 07:26:02 1997", +} + +@TechReport{Bruggemann-Klein:1996:PR, + author = "Anne Br{\"u}ggemann-Klein and Rolf Klein and Stefan + Wohlfeil", + title = "Pagination Reconsidered", + type = "Technical Report", + number = "205", + institution = "Fernuniversit{\"a}t Hagen", + address = "Germany", + year = "1996", + bibdate = "Tue Feb 09 08:28:57 1999", + acknowledgement = ack-nhfb, +} + +@TechReport{Bruggemann-Klein:1998:PCD, + author = "Anne Br{\"u}ggemann-Klein and Rolf Klein and Stefan + Wohlfeil", + title = "On the Pagination of Complex Documents", + type = "Technical Report", + number = "234", + institution = "Fernuniversit{\"a}t Hagen", + address = "Germany", + day = "27", + month = jul, + year = "1998", + bibdate = "Tue Feb 09 08:28:57 1999", + acknowledgement = ack-nhfb, +} + +@Book{Bryan:1988:SAG, + author = "Martin Bryan", + title = "{SGML}\emdash{}An Author's Guide to the Standard + Generalized Markup Language", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xvii + 364", + year = "1988", + ISBN = "0-201-17535-5", + ISBN-13 = "978-0-201-17535-6", + LCCN = "QA76.73.S44 B79 1988", + bibdate = "Tue Dec 14 23:35:58 1993", + acknowledgement = ack-nhfb # " and " # ack-fm, + annote = "Complete description of SGML including example DTDs.", + keywords = "SGML, DTD, document representation", +} + +@Book{Bryan:1997:DTS, + author = "Marvin Bryan", + title = "Digital typography sourcebook", + publisher = pub-WILEY, + address = pub-WILEY:adr, + pages = "xxiv + 384", + year = "1996", + ISBN = "0-471-14811-3", + ISBN-13 = "978-0-471-14811-1", + LCCN = "Z250.7 .B79 1996", + bibdate = "Sun Jun 29 15:37:57 2003", + note = "Includes CD-ROM.", + acknowledgement = ack-nhfb, + annote = "Some catalogs list year as 1997.", + tableofcontents = "Why Type Matters. \\ + The Kinds of Typefaces. \\ + The Anatomy of Characters. \\ + Old Style Typefaces. \\ + Transitional Typefaces. \\ + Modern Typefaces. \\ + Slab Serif Typefaces. \\ + Other Serif Typefaces. \\ + Sans-Serif Typefaces. \\ + Script Typefaces. \\ + Blackletter and Uncial Typefaces. \\ + Display and Novelty Typefaces. \\ + Typeface Utilities and Special Effects. \\ + Creating Your Own Characters and Typefaces. \\ + Using Type in Layouts. \\ + Building a Library. \\ + The Type Specimens. \\ + Appendix. \\ + Index.", +} + +@Book{Buerger:1990:LES, + author = "David J. Buerger", + title = "{\LaTeX} for Engineers and Scientists", + publisher = pub-MH, + address = pub-MH:adr, + pages = "xvi + 198", + year = "1990", + ISBN = "0-07-008845-4", + ISBN-13 = "978-0-07-008845-0", + LCCN = "Z253.4.L38 B84 1990", + bibdate = "Tue Dec 14 22:43:21 1993", +} + +@Book{Butcher:1981:CEC, + author = "Judith Butcher", + title = "Copy editing: the Cambridge handbook", + publisher = pub-CUP, + address = pub-CUP:adr, + edition = "Second", + year = "1981", + ISBN = "0-521-23868-4, 0-521-25638-0", + ISBN-13 = "978-0-521-23868-7, 978-0-521-25638-4", + LCCN = "PN162 .B86 1981", + bibdate = "Fri Jul 22 08:50:18 1994", + price = "UK\pounds22", + acknowledgement = ack-fm, + annote = "The standard English work on copy editing (CHe)", + inprint = "yes", +} + +@Book{Buxton:1988:MLL, + author = "H. W. Buxton", + title = "Memoir of the life and labours of the late {Charles + Babbage Esq. F.R.S.}", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xix + 401", + year = "1988", + ISBN = "0-262-02269-9", + ISBN-13 = "978-0-262-02269-9", + LCCN = "QA29.B2 B891 1988", + bibdate = "Fri Dec 18 11:11:12 1998", + note = "From {\em Computing Reviews\/}: ``Charles Babbage was + a nineteenth-century polymath who initially studied + mathematics at Cambridge and subsequently pursued + interests in fields as diverse as philosophy, political + economy, and mechanical computing. While attempting to + realize a machine for calculating and printing + error-free mathematical tables, he visited factories to + learn metalworking techniques, invented a system of + mechanical notation to represent the states of the + machine, and devised a method for correct typesetting. + As the editor of this series notes, the scope of + Babbage's work makes him a difficult subject to + understand in our modern age of specialized + scholarship.''", + price = "US\$50", + series = "Reprint series for the history of computing, vol. 13", + acknowledgement = ack-nhfb, + review = "ACM CR 8903-0095", + subject = "A.0 General Literature, GENERAL, Charles Babbage \\ + K.2 Computing Milieux, HISTORY OF COMPUTING, Charles + Babbage", +} + +@Booklet{Bzyl:1993:TT, + author = "W{\l}odek Bzyl", + title = "{\TeX}. {\TeX}??", + howpublished = "broszura z konferencji cz{\l}onk{\'o}w GUSTu", + address = "Bachotek", + year = "1993", + bibdate = "Thu Jun 23 18:23:18 1994", + note = "In Polish.", + acknowledgement = ack-md, + address-l = lang-pl, + author-l = lang-pl, + howpublished-l = lang-pl, + title-l = lang-pl, +} + +@InProceedings{Bzyl:2004:MXC, + author = "W{\l}odzimierz Bzyl and Tomasz Przechlewski", + title = "Migrating to {XML}: The Case of the {GUST Bulletin} + Archive", + crossref = "Syropoulos:2004:TXD", + pages = "169--178", + year = "2004", + CODEN = "LNCSD9", + ISSN = "0302-9743", + bibdate = "Tue Nov 16 17:43:44 2004", + acknowledgement = ack-nhfb, +} + +@InProceedings{Canzii:1985:SSD, + author = "G. Canzii and G. {Degli Antoni} and S. Mussi and G. + Rossi", + title = "{SDDS: Scientific Document Delivery System}", + crossref = "Lucarella:1985:PFE", + pages = "15--25", + year = "1985", + bibdate = "Tue Jul 26 09:26:07 1994", + acknowledgement = ack-hk, +} + +@Article{Casti:1991:VTP, + author = "John L. Casti", + title = "{V\TeX} Typesetting Package", + journal = j-NAMS, + volume = "38", + number = "2", + pages = "105--109", + month = feb, + year = "1991", + ISSN = "0002-9920", +} + +@Article{Casti:1993:BFT, + author = "John L. Casti", + title = "Bitmap-free {\TeX}", + journal = j-NAMS, + volume = "40", + number = "5", + pages = "464--469", + month = may # "/" # jun, + year = "1993", + ISSN = "0002-9920", + bibdate = "Mon May 10 12:29:15 1993", + note = "A review of {Y\&Y}'s {DVIWindo} and {DVIPSONE}, and + comments on outline fonts for {\TeX}.", +} + +@InProceedings{Cerofolini:1985:LCL, + author = "Luigi Cerofolini", + title = "A Low Cost Laser Beam Printer Controller", + crossref = "Lucarella:1985:PFE", + pages = "191--195", + year = "1985", + bibdate = "Tue Jul 26 09:28:37 1994", + acknowledgement = ack-hk, +} + +@InProceedings{Chan:1988:JAC, + author = "Kai Ming Chan and Kam Pui Chow and Wai Man Lo", + title = "{JACM}---just another {Chinese Metafont}", + crossref = "ICCPCOL:1988:ICC", + pages = "311--315", + year = "1988", + bibdate = "Mon Oct 24 12:44:52 MDT 1994", + abstract = "An interactive Chinese font design system, JACM (just + another Chinese metafont), is reported. JACM consists + of two components: the font generator (FG) and the user + interface (UI). The FG is a metafont system together + with a set of predefined strokes, radicals and + subcharacter. The UI provides an easy to use front end + for the designer to communicate with the FG. The design + of the UI is based on the hierarchical structure of + Chinese characters. (10 Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Dept. of Comput. Sci., Hong Kong Univ., Hong Kong", + classification = "C1250B (Character recognition); C6130D (Document + processing techniques); C6180 (User interfaces)", + confdate = "29 Aug.--1 Sept. 1988", + conflocation = "Toronto, Ontario, Canada", + confsponsor = "Chinese Language Comput. Soc.; Chinese Canadian Inf. + Processing Professionals; Philips Electron", + keywords = "Chinese characters; FG; Font generator; Front end; + Hierarchical structure; Interactive Chinese font design + system; JACM; Just another Chinese metafont; Metafont + system; Predefined strokes; Radicals; Subcharacter; + User interface", + language = "English", + pubcountry = "Canada", + thesaurus = "Character recognition; Character sets; Interactive + systems; User interfaces; Word processing", +} + +@Book{Chassell:1999:TGD, + author = "Robert J. Chassell and Richard M. Stallman", + title = "TeXinfo: The {GNU} Documentation Format (for Texinfo + version 4.0, 28 September 1999)", + publisher = pub-FSF, + address = pub-FSF:adr, + pages = "x + 244", + year = "1999", + ISBN = "1-882114-67-1", + ISBN-13 = "978-1-882114-67-2", + LCCN = "", + bibdate = "Wed Sep 20 10:17:03 2000", + price = "US\$25.00", + acknowledgement = ack-nhfb, +} + +@TechReport{Chen:1987:AIP, + author = "Pehong Chen and Michael A. Harrison", + title = "Automating Index Preparation", + type = "Technical Report", + number = "87/347", + institution = "Computer Science Division, University of California", + address = "Berkeley, CA, USA", + month = mar, + year = "1987", + note = "This is an expanded version of \cite{Chen:1988:IPP}.", +} + +@Article{Chen:1988:IPP, + author = "Pehong Chen and Michael A. Harrison", + title = "Index Preparation and Processing", + journal = j-SPE, + volume = "19", + number = "9", + pages = "897--915", + month = sep, + year = "1988", + CODEN = "SPEXBL", + ISSN = "0038-0644", + note = "The {\LaTeX} text of this paper is included in the + {\tt makeindex} software distribution.", +} + +@TechReport{Cheswick:1990:PI, + author = "Bill Cheswick", + title = "A Permuted Index for {\TeX} and {\LaTeX}", + type = "Computing Science Technical Report", + number = "145", + institution = inst-ATT-BELL, + address = inst-ATT-BELL:adr, + month = feb, + year = "1990", + bibdate = "Tue Mar 1 12:47:28 1994", + note = "Also published by TUG as {\TeX}niques No.~14.", +} + +@InProceedings{Cho:2004:TCL, + author = "Jin-Hwan Cho and Haruhiko Okumura", + title = "Typesetting {CJK} Languages with {$\Omega$}", + crossref = "Syropoulos:2004:TXD", + pages = "139--148", + year = "2004", + CODEN = "LNCSD9", + ISSN = "0302-9743", + bibdate = "Tue Nov 16 17:43:44 2004", + acknowledgement = ack-nhfb, +} + +@Book{Christian:1987:UTP, + author = "Kaare Christian", + title = "The {UNIX} text processing system", + publisher = pub-WILEY, + address = pub-WILEY:adr, + pages = "xii + 250", + year = "1987", + ISBN = "0-471-85581-2", + ISBN-13 = "978-0-471-85581-1", + LCCN = "QA76.76.O63 C47 1987", + bibdate = "Mon Jul 25 11:51:08 1994", + price = "US\$24.95", + acknowledgement = ack-nhfb, + keywords = "documentation; languages", + review = "ACM CR 8806-0406", + subject = "I.7.2 Computing Methodologies, TEXT PROCESSING, + Document Preparation \\ I.7.1 Computing Methodologies, + TEXT PROCESSING, Text Editing \\ D.4.0 Software, + OPERATING SYSTEMS, General, UNIX \\ D.4.9 Software, + OPERATING SYSTEMS, Systems Programs and Utilities", +} + +@Article{Church:1992:UWT, + author = "P. T. Church", + title = "Using Workshops to Teach {\TeX}", + journal = j-NAMS, + volume = "39", + number = "8", + pages = "842", + month = oct, + year = "1992", + ISSN = "0002-9920", + note = "{\AmSTeX} input for two workshop handouts may be + obtained by anonymous ftp from {\tt syr.edu} in the + directory {\tt /math/papers}.", + acknowledgement = ack-bnb, +} + +@Periodical{Clark:1987:T, + editor = "Malcolm Clark", + key = "TEXLINE", + title = j-TEXLINE, + address = "Warwick, UK", + year = "1987" # "\unskip--", + ISSN = "0961-3978", + bibdate = "Sat Feb 10 14:55:29 1996", + note = "This is an informal newsletter of the {\TeX} + community.", +} + +@Book{Clark:1992:PTP, + author = "Malcolm Clark", + title = "A Plain {\TeX} Primer", + publisher = pub-OUP, + address = pub-OUP:adr, + pages = "481", + year = "1992", + ISBN = "0-19-853784-0 (hardback), 0-19-853724-7 (softback)", + ISBN-13 = "978-0-19-853784-7 (hardback), 978-0-19-853724-3 + (softback)", + LCCN = "Z253.4.T47 C46 1992", + bibdate = "Tue Dec 14 23:36:18 1993", + acknowledgement = ack-mc, +} + +@Book{Collier:1991:CRD, + author = "David Collier", + title = "Collier's Rules for Desktop Design and Typography", + publisher = pub-AW, + address = pub-AW:adr, + pages = "v + 135", + year = "1991", + ISBN = "0-201-54416-4", + ISBN-13 = "978-0-201-54416-9", + LCCN = "Z286.D47 C65 1991", + bibdate = "Wed Aug 10 11:29:00 1994", + price = "US\$14.95", + acknowledgement = ack-nhfb, +} + +@Misc{comp.text.tex:1989:CTT, + key = "comp.text.tex", + title = "comp.text.tex", + year = "1989" # "\unskip--", + note = "This is an unmoderated Usenet discussion list about + {\TeX}.", +} + +@Article{Copeland:2001:CB, + author = "Jeffrey Copeland and Jeffrey Haemer", + title = "Commonplace Book", + journal = j-SW-EXPERT, + volume = "12", + number = "5", + pages = "34--39", + month = may, + year = "2001", + bibdate = "Fri May 11 07:10:36 2001", + note = "Discusses book indexing with \TeX{} and {\tt perl}.", + acknowledgement = ack-nhfb, +} + +@Article{Cornell:1986:CHS, + author = "Gary Cornell", + title = "Chiwriter: Horstman Software Group", + journal = j-MATHINTEL, + volume = "8", + number = "2", + pages = "64--65", + year = "1986", + bibdate = "Fri Mar 12 09:41:19 1993", + acknowledgement = ack-ps, +} + +@Article{Cosar:1991:TIG, + author = "A. Cosar and B. Ozguc", + title = "A text, image, and graphics editor", + journal = j-COMPUTERS-AND-GRAPHICS, + volume = "15", + number = "1", + pages = "57--66", + month = "", + year = "1991", + CODEN = "COGRD", + ISSN = "0097-8493", + bibdate = "Thu Sep 01 01:08:27 1994", + abstract = "A system for the manipulation of text, image, and + graphics items is presented. There are many products + that manipulate text, image, or graphics data + independently, but most of these systems are unable to + manipulate them in a unified document. With the + introduction of Smalltalk. Star, Lisa, Macintosh, and + {\TeX} it has become possible to mix text and graphics + data in a single document. The ODA/ODIF standard has + also been developed for the preparation, processing and + interchange of text as used in office documents. The + presented system is based on similar ideas but it + allows the documents to be created using relational + geometry as well. Any change in a given data item + causes the relational expressions existing in a + document to be reevaluated and this makes the system an + interactive WYSIWYG document editor. Currently the + system is used for documenting various instances of + animations generated by an animation package developed + at Bilkent University. (28 Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Dept. of Comput. Eng. and Inf. Sci., Bilkent Univ., + Ankara, Turkey", + classification = "C6130B (Graphics techniques)", + keywords = "Animation package; Bilkent University; Graphics + editor; Image editor; Interactive WYSIWYG document + editor; ODA/ODIF standard; Relational expressions; + Relational geometry; Text editor; Unified document", + thesaurus = "Computer graphics; Text editing", +} + +@Book{Craig:1971:DT, + author = "James Craig", + title = "Designing with Type", + publisher = pub-WGP, + address = pub-WGP:adr, + pages = "175", + year = "1971", + ISBN = "0-8230-1320-0", + ISBN-13 = "978-0-8230-1320-3", + LCCN = "70-159564", + bibdate = "Wed Jul 6 13:57:38 1994", + acknowledgement = ack-nhfb, + comments = "Spiralbound. Seventh printing, 1978.", + libnote = "Not yet in my library.", +} + +@Article{Crawford:1987:CSW, + author = "Walt Crawford", + title = "Common sense Wordworking {III}: desktop publishing and + desktop typesetting", + journal = j-LIB-HI-TECH, + volume = "5", + number = "1", + pages = "43--52", + month = "Spring", + year = "1987", + ISSN = "0737-8831", + bibdate = "Mon Jul 25 08:37:04 MDT 1994", + acknowledgement = ack-nhfb, + keywords = "design; documentation; human factors", + subject = "J.7 Computer Applications, COMPUTERS IN OTHER SYSTEMS, + Publishing", +} + +@Article{Crawford:1987:DTL, + author = "Walt Crawford", + title = "Desktop typesetting and the {LITA} newsletter", + journal = j-INFO-TECH-LIB, + volume = "6", + number = "2", + pages = "89--96", + month = jun, + year = "1987", + ISSN = "0730-9295", + bibdate = "Mon Jul 25 08:37:04 MDT 1994", + acknowledgement = ack-nhfb, + keywords = "human factors; management", + subject = "J.7 Computer Applications, COMPUTERS IN OTHER SYSTEMS, + Publishing \\ H.3.6 Information Systems, INFORMATION + STORAGE AND RETRIEVAL, Library Automation \\ K.7.2 + Computing Milieux, THE COMPUTING PROFESSION, + Organizations", +} + +@Book{Dair:1967:DT, + author = "Carl Dair", + title = "Design with Type", + publisher = pub-UTP, + address = pub-UTP:adr, + pages = "vi + 162", + year = "1967", + ISBN = "0-8020-1426-7 (hardcover), 0-8020-6519-8 (paperback)", + ISBN-13 = "978-0-8020-1426-9 (hardcover), 978-0-8020-6519-3 + (paperback)", + LCCN = "Z246 D35 1967", + bibdate = "Fri Jul 22 08:54:08 1994", + acknowledgement = ack-fm, + annote = "A good survey of traditional typography with many + useful rules of thumb. (RRu)", + history = "Paperback reprint 1985", +} + +@Misc{DANTE:1989:TK, + key = "DANTE", + title = "Die {\TeX}nische {Kom{\"o}die}", + year = "1989" # "\unskip--", + bibdate = "Tue Mar 1 11:59:14 1994", + note = "Journal of DANTE (Deutschsprachige Anwendervereinigung + {\TeX} e.V.); Group of German-speaking {\TeX{} + Users}.", +} + +@Article{Darling:1993:F, + author = "R. W. R. Darling", + title = "{FrameMaker} 3.0", + journal = j-NAMS, + volume = "40", + number = "2", + pages = "150--152", + month = feb, + year = "1993", + ISSN = "0002-9920", + bibdate = "Sat Sep 10 12:57:01 1994", + acknowledgement = ack-ps, +} + +@Article{Day:1983:TMM, + author = "R. A. Day", + title = "Typesetting mathematics on multi-access systems", + journal = j-SPE, + volume = "13", + number = "2", + pages = "131--138", + month = feb, + year = "1983", + CODEN = "SPEXBL", + ISSN = "0038-0644", + bibdate = "Mon Jul 25 12:25:44 1994", + acknowledgement = ack-nhfb, + keywords = "design; documentation", + review = "ACM CR 8402-0128", + subject = "I.7.2.B Computing Methodologies, TEXT PROCESSING, + Document Preparation, Format and notation \\ I.7.2 C.2 + Computer Systems Organization, COMPUTER-COMMUNICATION + NETWORKS, Network Architecture and Design \\ I.7 + Computing Methodologies, TEXT PROCESSING, Document + Preparation", +} + +@Article{Deach:1992:OFH, + author = "Stephen Deach", + title = "Outline font hints and rasterization: {A} technology + primer", + journal = j-SEYBOLD, + volume = "6", + number = "7", + pages = "21--31", + month = mar # " 9", + year = "1992", + CODEN = "SRDFE", + ISSN = "0889-9762", + bibdate = "Tue Mar 1 11:59:50 1994", + note = "This paper is followed by a dissent from Adobe (Terry + O'Donnell), and a response from the author (p. 32). A + sidebar (historical note, p. 25) contains a short + description of {\MF} and cites {\MF} as a forerunner of + the hinting mechanism used in TrueType.", + acknowledgement = ack-bnb, +} + +@TechReport{deBruin:1988:PML, + author = "R. de Bruin and C. G. {van der Laan} and J. R. Luyten + and H. F. Vogt", + title = "Publiceren met {\LaTeX}", + type = "CWI Syllabus", + number = "19", + institution = inst-CWI, + address = inst-CWI:adr, + year = "1988", + ISBN = "90-6196-357-5", + ISBN-13 = "978-90-6196-357-8", + bibdate = "Tue Mar 1 12:47:03 1994", + note = "In Dutch; copious examples.", +} + +@InProceedings{DeLaBeaujardiere:1988:WDI, + author = "Jean-M. {De La Beaujardiere}", + title = "Well-established document interchange formats", + crossref = "vanVliet:1988:DMT", + pages = "83--94", + year = "1988", + bibdate = "Fri Dec 18 11:11:43 1998", + series = "Cambridge series on electronic publishing", + acknowledgement = ack-nhfb, + keywords = "design; documentation; performance; standardization", + review = "ACM CR 8909-0687", + subject = "I.7.2 Computing Methodologies, TEXT PROCESSING, + Document Preparation, Format and notation \\ C.2.0 + Computer Systems Organization, COMPUTER-COMMUNICATION + NETWORKS, General, Data communications \\ C.2.2 + Computer Systems Organization, COMPUTER-COMMUNICATION + NETWORKS, Network Protocols, ODA \\ I.7.2 Computing + Methodologies, TEXT PROCESSING, Document Preparation, + SGML \\ C.2.2 Computer Systems Organization, + COMPUTER-COMMUNICATION NETWORKS, Network Protocols \\ + C.2.2 Computer Systems Organization, + COMPUTER-COMMUNICATION NETWORKS, Network Protocols", +} + +@Book{Delpech:1997:TDL, + author = "Jean-Pierre Delpech and Marc-Andre Figueres and Nicole + Mari", + title = "Techniques du {\LaTeX}", + publisher = pub-EYROLLES, + address = pub-EYROLLES:adr, + pages = "128", + year = "1997", + ISBN = "2-212-02609-9", + ISBN-13 = "978-2-212-02609-2", + LCCN = "????", + bibdate = "Sat Mar 7 18:25:51 MST 1998", + acknowledgement = ack-nhfb, +} + +@TechReport{DeMillo:1991:USA, + author = "Richard A. DeMillo and Aditya P. Mathur", + title = "On the Use of Software Artifacts to Evaluate the + Effectiveness of Mutation Analysis for Detecting Errors + in Production Software", + type = "Technical Report", + number = "SERC-TR-92-P", + institution = "Software Engineering Research Center", + address = "Purdue University, W. Lafayette, IN 47907, USA", + year = "1991", + bibdate = "Tue Mar 1 12:48:47 1994", +} + +@Article{Demmig:1989:PBP, + author = "S. Demmig", + title = "Printing books on the {PC} or the fantastic + possibilities of {\TeX}", + journal = j-MIKROCOMP-Z, + volume = "7", + pages = "60--66", + month = jul, + year = "1989", + CODEN = "MDMZD", + ISSN = "0720-4442", + bibdate = "Wed Aug 31 00:54:39 MDT 1994", + abstract = "TeX is a printing composition system of the highest + quality, particularly well suited for mathematical and + generally technical manuscripts. Its flexibility and + portability are unequalled. It was developed at the + Stanford University and has ever since been used + whenever great accuracy and efficiency were required. + The operational principle is explained and an example + of its product is shown. (5 Refs.)", + acknowledgement = ack-nhfb, + classification = "C5550 (Printers, plotters and other hard-copy output + devices)", + keywords = "Mathematical manuscripts; Operational principle; + Portability; Printing composition system; Technical + manuscripts; TeX", + language = "German", + thesaurus = "Printers", +} + +@Book{Denton:1992:GVC, + author = "Craig Denton", + title = "Graphics for visual communication", + publisher = pub-WCB, + address = pub-WCB:adr, + pages = "xv + 383", + year = "1992", + ISBN = "0-697-08540-6", + ISBN-13 = "978-0-697-08540-5", + LCCN = "P93.5.D46 1992", + bibdate = "Thu Mar 19 09:23:02 1998", + acknowledgement = ack-nhfb, +} + +@Article{Department:1990:MPP, + author = "{AMS Composition Services Department}", + title = "From Manuscript to Published Paper: How Does it + Happen? Part 2", + journal = j-NAMS, + volume = "37", + number = "8", + pages = "1027--1028", + month = oct, + year = "1990", + ISSN = "0002-9920", +} + +@Book{DeRose:1994:MHW, + author = "Steven J. DeRose and David G. Durand", + title = "Making Hypermedia Work", + publisher = pub-KLUWER, + address = pub-KLUWER:adr, + pages = "xxii + 384", + year = "1994", + ISBN = "0-7923-9432-1", + ISBN-13 = "978-0-7923-9432-7", + LCCN = "QA76.76.I59 D47 1994", + bibdate = "Sat Sep 10 12:43:32 1994", + price = "UK\pounds 51.00, US\$68.00", + acknowledgement = ack-hg, + annote = "Harry Gaylord comments: ``Much nonsense and hype has + been written about hypertext. Much software has been + written to produce hypertext documents which are high + on pzaz and whistles and bangs, but requires + painstaking work on the part of the writer. Revising + the documents often means that they have to be + time-consumingly debugged in obscure ways before they + can be used again. Documents cannot be used in any + other system except the one they were written in. More + importantly often the documents have to be broken up + first into structures which are not inherent to the + document. A library card catalogue contains cards, a + newspaper or a novel doesn't. To force a novel into + cards violates the very structure of the document. + Other so-called hypertext systems are organised very + simply and do what they claim to do very well, but + documents produced in them will have to be + substantially revised when more facilities are + required. To create order out of this, ISO + JTC1/SC18/WG8 created a group to draw up a standard for + hypertext. The result of this work is ISO 10744:1992 + HyTime. About the same time, the Text Encoding + Initiative appointed a hypertext committee of four + members. Its chair was DeRose and the members include + Durand, Ed Fox, and Eve Wilson. The committee has + proposed important revisions and extensions to HyTime, + and the TEI Guidelines include all the query facilities + of HyTime plus other extensions. If these extensions + are found useful in the wider community, they will be + incorporated in the next revision of HyTime. This is + the first book to appear on HyTime. Eliot Kimber is + preparing one which is scheduled to appear in August, + and Charles Goldfarb is working on another which is + being modeled on the SGML Handbook in that it will + include the commented standard itself. This book is + divided into three parts. Part 1 is called Introducing + HyTime. This is the most general and provides an + excellent starting point for anyone who needs to know + what HyTime is, what its relation to SGML is, what its + modules are, and why anyone who is producing or using + electronic documents needs SGML and/or HyTime products. + For many this will be enough to convince them that they + should hand the book on to their software purchasers + and implementors to get to work. Part 2 is entitled + Basic HyTime. The chapters include Basic Measurement, + Hyperlinks, Locating Data Objects, The HyTime Query + Language, and Modifying a DTD for HyTime. Many hours of + my time would have been saved if I had received this + section when I received the draft of the standard + itself. When one reads this part carefully, one has a + clear idea of most of the details involved in HyTime. + One of my strongest criticisms of HyTime is the obscure + short names. They could have been clear if the + committee had not decided to limit name lengths to less + than 8 letters as was specified in SGML Reference + Syntax. As it is only insiders in the work on the + standard itself can understand what they actually refer + to. Part 3 is entitled Intermediate HyTime. Here are + the extra detailed treatments of aspects of HyTime + which implementors need to know. Appendixes include the + HyTime Meta-DTD with its corrections and Graphic + Notations. The book is concluded with a bibliography, + glossary, and index. If I understand the authors, the + highest level of hypertext which can be reached at the + moment is Intermediate, not Advanced. The field is too + young. They are, of course, right in this. It is no + accident that these authors are part of that Brown + group which has spread out to Boston now. It has been + the major center for producing systems for structuring + and linking highly complex documents and have built + extensive experience since the 1960's. The didactic + arrangement is impressive. Basic issues are discussed + clearly first and nuances are added later when they are + needed by the reader. It is not often that in a very + complex subject the authors so clearly have understood + what is forest and what is trees, and have been such + good guides to the uninitiated and initiated alike. + With this book I have a proper coursebook for my + students this year. If you want to know about + electronic documents which are usable in more than one + system and future-oriented, then you should buy this + book without waiting for anything else to appear. It + provides an excellent introduction for the general + reader, and thorough treatment for those who need + it.''", +} + +@InCollection{Desarmenien:1984:DOM, + author = "Jacques D{\'e}sarm{\'e}nien", + booktitle = "How to run {\TeX} in {French}", + title = "La division par ordinateur des mots fran\c cais avec + le logiciel {\TeX}", + publisher = inst-STANFORD, + address = inst-STANFORD:adr, + pages = "19--42", + year = "1984", + bibdate = "Sat Mar 12 18:15:30 1994", + acknowledgement = ack-hk, +} + +@TechReport{Desarmenien:1984:HRT, + author = "Jacques D{\'e}sarm{\'e}nien", + title = "How to run {\TeX} in {French}", + number = "STAN-CS-84-1013", + institution = inst-STANFORD, + address = inst-STANFORD:adr, + month = aug, + year = "1984", + bibdate = "Sat Feb 10 14:55:27 1996", +} + +@InProceedings{Desarmenien:1985:UTF, + author = "Jacques D{\'e}sarm{\'e}nien", + title = "The {Use} of {\TeX} in {French}: {Hyphenation} and + {Typography}", + crossref = "Lucarella:1985:PFE", + pages = "41--59", + year = "1985", + bibdate = "Tue Jul 26 09:28:32 1994", + acknowledgement = ack-hk, +} + +@Book{Desgraupes:1999:MGP, + author = "Bernard Desgraupes", + title = "{Metafont}: Guide pratique", + publisher = "Vuibert", + address = "Paris, France", + pages = "267", + year = "1999", + ISBN = "2-7117-8642-0", + ISBN-13 = "978-2-7117-8642-8", + LCCN = "????", + bibdate = "Thu Jul 31 14:46:44 2003", + acknowledgement = ack-nhfb, +} + +@Book{Detig:1997:LW, + author = "Christine Detig", + title = "{Der \LaTeXe{}-Wegweiser}", + publisher = pub-ITPG, + address = pub-ITPG:adr, + pages = "xiv + 236", + year = "1997", + ISBN = "3-8266-0256-0", + ISBN-13 = "978-3-8266-0256-6", + LCCN = "", + bibdate = "Sat Mar 07 09:00:51 1998", + price = "DM 29,80", + acknowledgement = ack-nhfb, +} + +@InProceedings{Dickey:1987:TAU, + author = "Leroy J. Dickey", + title = "Typesetting {APL} using {TROFF}", + crossref = "Haliburton:1987:ATC", + pages = "494--497", + year = "1987", + bibdate = "Wed Jul 27 11:05:31 1994", + acknowledgement = ack-nhfb, + keywords = "design; documentation; languages", + subject = "D.3.2 Software, PROGRAMMING LANGUAGES, Language + Classifications, APL \\ J.7 Computer Applications, + COMPUTERS IN OTHER SYSTEMS, Publishing \\ I.7.m + Computing Methodologies, TEXT PROCESSING, + Miscellaneous", +} + +@Book{Dietsche:1994:LLS, + author = "Luzia Dietsche and Joachim Lammarsch", + title = "{\LaTeX} zum Loslegen: ein Soforthelfer f{\"u}r den + Alltag \toenglish {\LaTeX}, ready to start: Instant + help for everyday \endtoenglish", + publisher = pub-SV, + address = pub-SV:adr, + pages = "x + 116", + year = "1994", + ISBN = "3-540-56545-0", + ISBN-13 = "978-3-540-56545-1", + bibdate = "Thu Dec 29 10:44:23 1994", + price = "DM39.00", + acknowledgement = ack-rz, +} + +@Book{Diller:1993:LLL, + author = "Antoni Diller", + title = "{\LaTeX} Line by Line: Tips and Techniques for + Document Processing", + publisher = pub-W, + address = pub-W:adr, + pages = "xiii + 291", + year = "1993", + ISBN = "0-471-93471-2 (softcover)", + ISBN-13 = "978-0-471-93471-4 (softcover)", + LCCN = "Z253.4.L38 D55 1993", + note = "Optionally accompanied by disk with examples, ISBN + 0-471-93797-5.", + price = "US\$29.95", + series = "Wiley Professional Computing", + acknowledgement = ack-bnb, +} + +@Book{Diller:1999:LLL, + author = "Antoni Diller", + title = "{\LaTeX} Line by Line: Tips and Techniques for + Document Processing", + publisher = pub-W, + address = pub-W:adr, + edition = "Second", + pages = "xv + 311", + year = "1999", + ISBN = "0-471-97918-X (softcover)", + ISBN-13 = "978-0-471-97918-0 (softcover)", + LCCN = "Z253.4.L38 D55 1999", + acknowledgement = ack-nhfb, +} + +@Manual{Dol:1994:TG, + author = "Wietse Dol and Erik Frambach and Siep Kroonenberg and + Maarten H. van der Vlerk", + title = "{\TeX} and {4\TeX} Guide", + organization = org-NTG, + address = org-NTG:adr, + year = "1994", + bibdate = "Wed Aug 10 15:38:28 1994", + note = "The CD-ROM provides a complete runnable installation + of {\TeX} and {\MF} for the IBM PC.", + price = "US\$35.00", + acknowledgement = ack-nhfb, +} + +@Book{Dol:1999:W, + author = "Wietse Dol and Erik Frambach", + title = "{4\TeX} for {Windows}", + publisher = "Dutch-language oriented \TeX{} Users Group (NTG)", + address = "Amsterdam, The Netherlands", + pages = "xx + 531", + month = jun, + year = "1999", + ISBN = "90-76669-01-5", + ISBN-13 = "978-90-76669-01-4", + LCCN = "????", + bibdate = "Tue Aug 31 07:56:55 1999", + price = "US\$25", + acknowledgement = ack-nhfb, +} + +@Article{Doob:1989:TTA, + author = "Michael Doob", + title = "{\TeX} and Typesetting\emdash An Author's View", + journal = j-NAMS, + volume = "36", + number = "9", + pages = "1203--1204", + month = nov, + year = "1989", + ISSN = "0002-9920", + bibdate = "Tue Mar 1 11:34:03 1994", +} + +@Article{Doob:1990:TSC, + author = "Michael Doob", + title = "{\TeX} and the Single {CPU}", + journal = j-NAMS, + volume = "37", + number = "3", + pages = "270--273", + month = mar, + year = "1990", + ISSN = "0002-9920", +} + +@Book{Doob:1993:TSS, + author = "Michael Doob", + title = "{\TeX}: Starting from Square 1", + publisher = pub-SV, + address = pub-SV:adr, + pages = "114", + year = "1993", + ISBN = "0-387-56441-1", + ISBN-13 = "978-0-387-56441-8", + LCCN = "Z253.4.T47 D66 1993", + bibdate = "Wed Aug 10 14:02:27 1994", + price = "US\$25.00", + acknowledgement = ack-nhfb, +} + +@Book{Doob:2000:PVS, + author = "Michael Doob", + title = "To proto vima sto {\TeX}", + publisher = "Paratiritis Editions", + address = "Thessaloniki, Greece", + pages = "viii + 144", + year = "2000", + ISBN = "960-374-081-0", + ISBN-13 = "978-960-374-081-0", + bibdate = "Wed Oct 18 07:08:44 2000", + note = "Translation into Greek by Dimitrios Filippou.", + acknowledgement = ack-df, + annote = "A Greek translation and enhancement of Michael Doob's + {\em {\TeX} starting from square one}.", +} + +@Book{Dreyfus:1989:AXF, + editor = "John Dreyfus and Knut Erichson", + title = "{ABC-XYZapf}: Fifty Years in Alphabet Design: + Professional and personal contributions selected for + Hermann Zapf", + publisher = pub-WWS, + address = pub-WWS:adr, + pages = "251", + year = "1989", + ISBN = "3-922715-35-4", + ISBN-13 = "978-3-922715-35-1", + LCCN = "Z250.A2 Z358 1989", + bibdate = "Sun Jul 10 01:13:44 1994", +} + +@Book{Drucker:1995:ALL, + author = "Johanna Drucker", + title = "The Alphabetic Labyrinth: The Letters in History and + Imagination", + publisher = pub-NORTON, + address = pub-NORTON:adr, + pages = "328", + year = "1995", + ISBN = "0-500-01608-9", + ISBN-13 = "978-0-500-01608-4", + LCCN = "P211 .D78 1995 AAL", + bibdate = "Fri Jun 23 17:23:50 1995", + price = "US\$45.00", + acknowledgement = ack-nhfb, +} + +@Article{Duan:1989:IPS, + author = "G. Duan and R. A. Morris", + title = "The Importance of Phase in the Spectra of Digital + Type", + journal = j-EPODD, + volume = "2", + number = "1", + pages = "47--60", + month = apr, + year = "1989", + CODEN = "EPODE", + ISSN = "0894-3982", +} + +@Book{Dyl:1994:KTS, + author = "Dariusz Dyl", + title = "Komputerowy sk{\l}ad tekstu w systemie {\LaTeX}. + Przewodnik po komendach i {\'s}rodowiskach wraz z + przyk{\l}adami.", + publisher = pub-MARSZALEK, + address = pub-MARSZALEK:adr, + edition = "1.", + year = "1994", + bibdate = "Thu Jun 23 18:23:22 1994", + note = "sk{\l}adano w systemie {\LaTeX} (styl book11pt) przy + u{\.z}yciu programu Vector{\TeX} ver. 2.24", + acknowledgement = ack-md, + address-l = lang-pl, + author-l = lang-pl, + note-1 = "In Polish.", + note-l = lang-pl, + publisher-l = lang-pl, + title-l = lang-pl, +} + +@Book{Eckersley:1994:GTT, + author = "Richard Eckersley and Richard Angstadt and Charles M. + Ellertson and Richard Hendel and Naomi B. Pascal and + Anita Walker Scott", + title = "Glossary of Typesetting Terms", + publisher = pub-U-CHICAGO-PRESS, + address = pub-U-CHICAGO-PRESS:adr, + pages = "xi + 169", + year = "1994", + ISBN = "0-226-18371-8", + ISBN-13 = "978-0-226-18371-8", + bibdate = "Wed Jan 4 10:03:02 1995", + price = "US\$20.00", + series = "Chicago Guides to Writing, Editing, and Publishing", + acknowledgement = ack-bnb, +} + +@InProceedings{Eddahibi:2004:AMD, + author = "Mostafa Banouni and Mohamed Elyaakoubi and Azzeddine + Lazrek", + title = "{Arabic} Mathematical e-Documents", + crossref = "Syropoulos:2004:TXD", + pages = "158--168", + year = "2004", + CODEN = "LNCSD9", + ISSN = "0302-9743", + bibdate = "Tue Nov 16 17:43:44 2004", + acknowledgement = ack-nhfb, + remark = "A production error resulted in the printed article + incorrectly listing the authors as ``Mustapha Eddahibi, + Azzeddine Lazrek, and Khalid Sami''.", +} + +@InProceedings{Eddahibi:2004:DAM, + author = "Mustapha Eddahibi and Azzeddine Lazrek and Khalid + Sami", + title = "Dynamic {Arabic} Mathematical Fonts", + crossref = "Syropoulos:2004:TXD", + pages = "149--157", + year = "2004", + CODEN = "LNCSD9", + ISSN = "0302-9743", + bibdate = "Tue Nov 16 17:43:44 2004", + acknowledgement = ack-nhfb, +} + +@Article{Ehrenfeucht:1994:CFT, + author = "A. Ehrenfeucht and P. ten Pas and G. Rozenberg", + title = "Context-free text grammars", + journal = j-ACTA-INFO, + volume = "31", + number = "2", + pages = "161--206", + month = "??", + year = "1994", + CODEN = "AINFA", + ISSN = "0001-5903", + bibdate = "Sat Nov 12 21:49:17 1994", + note = "From Joachim Schrod: This paper describes ``the basic + theory behind text grammars needed for document + structure specification''.", + acknowledgement = ack-js, +} + +@InProceedings{Eickel:1990:LLS, + author = "J{\"u}rgen Eickel", + title = "Logical and layout structures of documents", + crossref = "Nadrchal:1990:MMI", + pages = "201--208", + year = "1990", + bibdate = "Tue Mar 1 12:49:13 1994", + note = "Invited paper.", + acknowledgement = ack-rw, +} + +@Article{Eijkhout:1990:WT, + author = "Victor Eijkhout and Nico Poppelier", + title = "Wat is {\TeX}", + journal = j-TWIO, + volume = "8", + number = "2", + pages = "44--48", + year = "1990", + notes = "In Dutch.", +} + +@Book{Eijkhout:1992:TTT, + author = "Victor Eijkhout", + title = "{\TeX} by Topic, {A} {\TeX}nician's Reference", + publisher = pub-AW, + address = pub-AW:adr, + pages = "vii + 307", + year = "1992", + ISBN = "0-201-56882-9", + ISBN-13 = "978-0-201-56882-0", + LCCN = "Z253.4.T47 E38 1992", + bibdate = "Tue Dec 14 22:47:52 1993", +} + +@Book{Emerson:1987:TTU, + author = "Sandra L. Emerson and Karen Paulsell", + title = "troff Typesetting for {UNIX} systems", + publisher = pub-PH, + address = pub-PH:adr, + pages = "xx + 359", + year = "1987", + ISBN = "0-13-930959-4", + ISBN-13 = "978-0-13-930959-5", + LCCN = "Z253.4.U53 E45 1987", + bibdate = "Wed Aug 10 11:26:52 1994", + price = "US\$29.95", + acknowledgement = ack-nhfb, + keywords = "design; documentation; performance", + review = "ACM CR 8712-0981", + subject = "I.7.2 Computing Methodologies, TEXT PROCESSING, + Document Preparation, troff \\ D.4.0 Software, + OPERATING SYSTEMS, General, UNIX", +} + +@Unpublished{English:1987:UMO, + author = "Paul M. English", + title = "Using {\MF} for Original Font Design", + institution = "University of Massachusetts at Boston", + address = "Boston, MA, USA", + month = aug, + year = "1987", +} + +@Misc{EPODD:1988:EPO, + key = "EPODD", + title = j-EPODD, + howpublished = pub-W, + year = "1988" # "\unskip--", + ISSN = "0894-3982", + note = "This journal accepts papers in \TeX{} form.", + acknowledgement = ack-nhfb, +} + +@Book{Evgrafov:1993:TRN, + author = "Marat Evgrafov and Leonid Evgrafov", + title = "{\TeX}: Rukovodstvo po naboru i redaktirovaniiu + mathematicheskikh textov \toenglish {Manual} on typing + and editing of mathematical texts \endtoenglish", + publisher = pub-PHISMATHLIT, + address = pub-PHISMATHLIT:adr, + pages = "80", + year = "1993", + ISBN = "5-02-015116-5", + ISBN-13 = "978-5-02-015116-1", + bibdate = "Wed Jan 04 08:16:13 1995", + note = "The first Russian book about {\TeX} that was written + by Russians. First press run: 7000 copies.", + acknowledgement = ack-ps, +} + +@Article{Fateman:1987:TOM, + author = "Richard J. Fateman", + title = "{\TeX} output from {MACSYMA}-like systems", + journal = j-SIGSAM, + volume = "21", + number = "4", + pages = "1--5", + month = nov, + year = "1987", + CODEN = "SIGSBZ", + ISSN = "0163-5824", + bibdate = "Sat Aug 13 17:21:21 MDT 1994", + acknowledgement = ack-nhfb, + keywords = "design; theory", + subject = "F.2.2 Theory of Computation, ANALYSIS OF ALGORITHMS + AND PROBLEM COMPLEXITY, Nonnumerical Algorithms and + Problems, MACSYMA \\ I.1.3 Computing Methodologies, + ALGEBRAIC MANIPULATION, Languages and Systems, + MACSYMA", +} + +@Book{Felici:1987:DPS, + author = "James Felici and Ted Nace", + title = "Desktop publishing skills: a primer for typesetting + with computer and laser printer", + publisher = pub-AW, + address = pub-AW:adr, + pages = "vii + 180", + month = aug, + year = "1987", + ISBN = "0-201-11537-9", + ISBN-13 = "978-0-201-11537-6", + LCCN = "Z286.D47 F44 1987", + bibdate = "Mon Jul 25 11:24:24 1994", + price = "UK\pounds20, US\$19.95", + abstract = "Until now, books on desktop publishing have focused on + available hardware and software and have neglected the + more lasting skills needed to use these tools + effectively. This book has been written in response to + this need. It provides, in one place, a coherent and + accessible introduction to the principles, processes, + and techniques of publishing that must be understood + before your document production with computers and + laser printers can realize its full potential. \par + Desktop Publishing Skills introduces publishing basics, + such as typesetting, design, and page make-up. It is + independent of any specific computer or laser printer, + making it a more generic and permanent resource for + study or reference. What's more, since the entire book + was produced by the authors using the technologies and + methods described in the book, you will be able to pick + up additional ideas on the effective use of desktop + publishing by just looking at the book itself.", + acknowledgement = ack-fm, + annote = "The book is a good primer for people who wish to get + involved with `inhouse' publishing. While it addresses + people interested in Desktop Publishing, the focus is + on typesetting quality. Typesetting fundamentals are + explained and it is discussed why they are necessary. + This is done from the point of view of the professional + looking at the desktop publishing world.\par A well + written book, worth reading for laymans who are + interested in document processing.\par \TeX{} is one of + the few mentioned typesetting programs but although the + quality of its output is acknowledged the authors seem + to be unaware of the underlying algorithmic concepts + (e.g., paragraph builder) that are superior to the + concepts they describe as the `standard'. (FMi)\par + From the \TeX{}line review: I have no hesitation in + recommending this book to anyone with any interest in + getting more out of computerised typesetting. (CHe)", + bibliography = "yes", + glossary = "yes", + history = "Reprint with corrections", + index = "yes", + inprint = "yes", + keywords = "design, electronic publishing, computerized + typesetting, printing laser use in, self-publishing", + printermarks = "no", + review = "ACM CR 8802-0072 and " # j-TEXLINE # " number 7, + February 1988", + subject = "J.7 Computer Applications, COMPUTERS IN OTHER SYSTEMS, + Publishing \\ B.4.2 Hardware, INPUT/OUTPUT AND DATA + COMMUNICATIONS, Input/Output Devices, Data terminals + and printers \\ H.4.1 Information Systems, INFORMATION + SYSTEMS APPLICATIONS, Office Automation, Equipment", +} + +@Article{Filgueiras:1998:ISM, + author = "Miguel Filgueiras", + title = "Implementing a Symbolic Music Processing System", + journal = j-SPE, + volume = "28", + number = "5", + pages = "493--512", + month = may, + year = "1998", + CODEN = "SPEXBL", + ISSN = "0038-0644", + bibdate = "Thu Jul 29 15:11:46 MDT 1999", + bibsource = "http://www3.interscience.wiley.comjournalfinder.html", + URL = "http://www3.interscience.wiley.com/cgi-bin/abstract?ID=1793; + http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=1793&PLACEBO=IE.pdf", + acknowledgement = ack-nhfb, + annote = "Describes the ScEX system for music typesetting with + \TeX.", +} + +@InProceedings{Filippou:2004:HPA, + author = "Dimitrios Filippou", + title = "Hyphenation Patterns for Ancient and Modern {Greek}", + crossref = "Syropoulos:2004:TXD", + pages = "59--67", + year = "2004", + CODEN = "LNCSD9", + ISSN = "0302-9743", + bibdate = "Tue Nov 16 17:43:44 2004", + acknowledgement = ack-nhfb, +} + +@Manual{Finston:2003:URM, + author = "Laurence D. Finston", + title = "{3DLDF} user and reference manual: $3$-dimensional + drawing with {\MP} output", + organization = "????", + address = "????", + pages = "ix + 269", + year = "2003", + bibdate = "Tue Jul 12 10:58:15 2005", + note = "Manual edition 1.0 for 3DLDF version 1.0 September + 2003.", + URL = "http://dante.ctan.org/CTAN/graphics/3DLDF/3DLDF.pdf", + acknowledgement = ack-nhfb, +} + +@Manual{Finston:2004:URM, + author = "Laurence D. Finston", + title = "{3DLDF} user and reference manual: $3$-dimensional + drawing with {\MP} output", + organization = "????", + address = "????", + pages = "x + 296", + year = "2004", + bibdate = "Tue Jul 12 10:58:15 2005", + note = "Manual edition 1.1.5.1 for 3DLDF version 1.1.5.1 + January 2004.", + URL = "http://dante.ctan.org/CTAN/graphics/3DLDF/3DLDF.pdf", + acknowledgement = ack-nhfb, +} + +@Book{Firmage:1993:AA, + author = "Richard A. Firmage", + title = "The Alphabet Abecedarium: Some Notes on Letters", + publisher = pub-GODINE, + address = pub-GODINE:adr, + pages = "xi + 307", + year = "1993", + ISBN = "0-87923-987-5", + ISBN-13 = "978-0-87923-987-9", + LCCN = "P211 .F6 1993", + bibdate = "Wed Aug 10 09:58:07 1994", + acknowledgement = ack-nhfb, +} + +@Article{Fisher:1991:IAI, + author = "A. J. Fisher", + title = "Incremental algorithms for interactive text + formatting", + journal = j-J-SYST-SOFTW, + volume = "16", + number = "1", + pages = "3--16", + month = sep, + year = "1991", + CODEN = "JSSOD", + ISSN = "0164-1212", + bibdate = "Thu Sep 01 01:09:16 1994", + abstract = "The paper presents algorithms which transform a piece + of text by formatting it according to instructions + embedded in the text. In contrast to earlier + algorithms, the algorithms described perform their task + incrementally. Changes in the unformatted document are + compiled into corresponding changes in the formatted + text. By these means, it is possible to build a very + fast interactive text formatter. A text formatting + system called ALPHA is presented which uses the + algorithms described. ALPHA is a window-based system + which combines the power of a document description + language in the style of {\TeX} or TROFF with the + convenience and responsiveness of an interactive + WYSIWYG system. In addition to their intended use in + text formatting systems, the algorithms are applicable + to the incremental compilation of programming languages + and the editing of structured text. (20 Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Dept. of Comput. Sci., York Univ., UK", + classification = "C6130D (Document processing techniques); C6180 (User + interfaces)", + keywords = "ALPHA; Document description language; Formatted text; + Incremental compilation; Interactive text formatter; + Interactive text formatting; Programming languages; + TeX; TROFF; Unformatted document; Window-based system; + WYSIWYG system", + thesaurus = "Text editing; User interfaces; Word processing", +} + +@InProceedings{Flipo:1992:HPA, + author = "Daniel Flipo and Laurent Siebenmann", + title = "Hyphenation in presence of accents and diacritics. An + easy and low-cost solution", + crossref = "Zlatuska:1992:EPE", + pages = "87--96", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + acknowledgement = ack-nhfb, +} + +@Manual{Foata:1984:SLT, + author = "Dominique Foata and Jean-Jacques Pansiot and Yves + Roy", + title = "{STRATEC}\emdash un logiciel traitement de textes + math\'ematiques en amont de {\TeX} (ver.0.93)", + address = "Laboratoire de Typographie Informatique, + Universit{\'e} Louis Pasteur, Strasbourg, France", + year = "1984", + bibdate = "Sat Feb 10 14:49:32 1996", +} + +@InProceedings{Foata:1985:SRK, + author = "Dominique Foata and Jean-Jacques Pansiot and Yves + Roy", + title = "{STRATEC} and a {Rationalized Keyboard} for {Inputting + \TeX}", + crossref = "Lucarella:1985:PFE", + pages = "105--116", + year = "1985", + bibdate = "Tue Jul 26 09:28:25 1994", + acknowledgement = ack-hk, +} + +@Article{Fox:1997:QLO, + author = "Jim Fox", + title = "{Q}\&{AIX}: {\LaTeX}, the Old and the New", + journal = j-SUNEXPERT, + volume = "8", + number = "11", + pages = "72, 74", + month = nov, + year = "1997", + ISSN = "1053-9239", + bibdate = "Mon Nov 24 17:00:57 1997", + acknowledgement = ack-nhfb, +} + +@Article{Fox:1998:QLL, + author = "Jim Fox", + title = "{Q}\&{AIX}: Life with {\LaTeX}", + journal = j-SUNEXPERT, + volume = "9", + number = "4", + pages = "53--54, 56", + month = apr, + year = "1998", + ISSN = "1053-9239", + bibdate = "Thu Apr 16 18:47:04 1998", + acknowledgement = ack-nhfb, +} + +@Article{Foxley:1987:MLT, + author = "Eric Foxley", + title = "Music---a language for typesetting music scores", + journal = j-SPE, + volume = "17", + number = "8", + pages = "485--502", + month = aug, + year = "1987", + CODEN = "SPEXBL", + ISSN = "0038-0644", + bibdate = "Mon Jul 25 08:37:04 MDT 1994", + acknowledgement = ack-nhfb, + keywords = "algorithms; design; languages; performance", + subject = "J.5 Computer Applications, ARTS AND HUMANITIES, Music + \\ I.7.2 Computing Methodologies, TEXT PROCESSING, + Document Preparation, Format and notation \\ D.3.2 + Software, PROGRAMMING LANGUAGES, Language + Classifications, Macro and assembly languages \\ I.7.2 + Computing Methodologies, TEXT PROCESSING, Document + Preparation \\ J.5 Computer Applications, ARTS AND + HUMANITIES \\ D.3.3 Software, PROGRAMMING LANGUAGES, + Language Constructs, Modules, packages \\ D.3.2 + Software, PROGRAMMING LANGUAGES, Language + Classifications, Applicative languages \\ D.2.2 + Software, SOFTWARE ENGINEERING, Tools and Techniques, + User interfaces", +} + +@TechReport{Fuchs:1982:OFC, + author = "David R. Fuchs and Donald E. Knuth", + title = "Optimal Font Caching", + number = "STAN-CS-82-901", + institution = inst-STANFORD, + address = inst-STANFORD:adr, + year = "1982", + bibdate = "Sat Feb 10 14:55:25 1996", +} + +@Article{Fuchs:1985:OPF, + author = "D. R. Fuchs and D. E. Knuth", + title = "Optimal prepaging and font caching", + journal = j-TOPLAS, + volume = "7", + number = "1", + pages = "62--79", + month = jan, + year = "1985", + CODEN = "ATPSDT", + ISSN = "0164-0925", + bibdate = "Mon Jul 25 08:37:04 MDT 1994", + acknowledgement = ack-nhfb, + keywords = "algorithms; measurement; performance", + review = "ACM CR 8602-0122", + subject = "D.4.2 Software, OPERATING SYSTEMS, Storage Management, + Allocation/deallocation strategies \\ D.4.2 Software, + OPERATING SYSTEMS, Storage Management, Secondary + storage devices \\ D.4.2 Software, OPERATING SYSTEMS, + Storage Management, Virtual memory \\ E.2 Data, DATA + STORAGE REPRESENTATIONS, Linked representations \\ + I.7.2 Computing Methodologies, TEXT PROCESSING, + Document Preparation, Photocomposition", +} + +@Book{Fujita:1993:CBG, + author = "Shinsaku Fujita", + title = "{\LaTeX} for Chemists and Biochemists. {A} Guide for + Preparing Papers with Personal Computers [in + Japanese]", + publisher = "Tokyo Kagaku Dozin", + address = "Tokyo, Japan", + pages = "xiv + 305", + year = "1993", + ISBN = "4-8079-0386-1", + ISBN-13 = "978-4-8079-0386-3", + LCCN = "", + bibdate = "Mon Dec 30 06:29:35 1996", + note = "Includes diskette with macros and styles for about + thirty scientific journals.", + acknowledgement = ack-nhfb, +} + +@Article{Fujita:1994:TSF, + author = "Shinsaku Fujita", + title = "Typesetting Structural Formulae with the Text + Formatter {\TeX\slash \LaTeX}", + journal = j-COMPCHEM, + volume = "18", + number = "2", + institution = "Ashigara Research Labs Fuji Photo Film Company", + pages = "109--116", + year = "1994", + bibdate = "Sat Feb 10 08:48:07 1996", + acknowledgement = ack-mb, +} + +@Article{Furuta:1982:DFSa, + author = "Richard Furuta and Jeffrey Scofield and Alan Shaw", + title = "Document formatting systems: survey, concepts, and + issues", + journal = j-COMP-SURVEYS, + volume = "14", + number = "3", + pages = "417--472", + month = sep, + year = "1982", + bibdate = "Thu Jul 21 19:37:03 1994", + acknowledgement = ack-nhfb, +} + +@InCollection{Furuta:1982:DFSb, + author = "Richard Furuta and Jeffrey Scofield and Alan Shaw", + title = "Document formatting systems: survey, concepts, and + issues", + crossref = "Nievergelt:1982:DPS", + chapter = "??", + pages = "133--220", + year = "1982", + bibdate = "Mon Aug 22 14:24:58 1994", + acknowledgement = ack-nhfb, + review = "ACM CR 40525", + subject = "H.4.1 Information Systems, INFORMATION SYSTEMS + APPLICATIONS, Office Automation, Word processing \\ + I.7.2 Computing Methodologies, TEXT PROCESSING, + Document Preparation, Format and notation \\ I.7.2 + Computing Methodologies, TEXT PROCESSING, Document + Preparation, Languages \\ I.7 Computing Methodologies, + TEXT PROCESSING, Miscellaneous \\ K.2 Computing + Milieux, HISTORY OF COMPUTING, Software", +} + +@Article{Furuta:1985:RTT, + author = "Richard Furuta and Pierre A. MacKay", + title = "Two {\TeX} Implementations for the {IBM PC}", + journal = j-DDJ, + volume = "10", + number = "9", + pages = "80--89, 91", + month = sep, + year = "1985", + CODEN = "DDJOEB", + ISSN = "1044-789X", + bibdate = "Tue Sep 03 08:53:55 1996", + bibsource = "http://www.ddj.com/index/author/index.htm", + acknowledgement = ack-nhfb, +} + +@Book{Gallego:1992:LPP, + author = "Francisco Orteg{\'o}n Gallego", + title = "{\LaTeX}, primeros pasos", + publisher = pub-MASSON-SA, + address = pub-MASSON-SA:adr, + pages = "xix + 168", + year = "1992", + ISBN = "84-311-0649-2", + ISBN-13 = "978-84-311-0649-2", + bibdate = "Sun Dec 27 17:42:34 1992", + series = "Manuales de Inform{\'a}tica Masson", +} + +@Book{Garvey:1982:NEM, + author = "Daniel E. Garvey and William L. Rivers", + title = "Newswriting for the Electronic Media: Principles, + Examples, Applications", + publisher = pub-WPC, + address = pub-WPC:adr, + pages = "xiii + 250", + year = "1982", + ISBN = "0-534-01069-5", + ISBN-13 = "978-0-534-01069-0", + LCCN = "PN4784.B75 .G3", + bibdate = "Fri Jul 22 08:56:11 1994", + note = "Exercises, appendices, index, pp. 250.", + acknowledgement = ack-jpl, + annote = "College level text.", +} + +@Book{Gehani:1986:DFT, + author = "Narain Gehani", + title = "Document formatting and typesetting on the {UNIX} + system", + publisher = pub-SILICON, + address = pub-SILICON:adr, + pages = "xv + 364", + year = "1986", + ISBN = "0-9615336-0-9", + ISBN-13 = "978-0-9615336-0-1", + LCCN = "Z52.5.U54 G43 1986", + bibdate = "Mon Jul 25 11:54:48 1994", + price = "US\$33.95", + acknowledgement = ack-nhfb, + keywords = "documentation; languages", + review = "ACM CR 8607-0584", + subject = "I.7.2 Computing Methodologies, TEXT PROCESSING, + Document Preparation, Format and notation \\ I.7.2 + Computing Methodologies, TEXT PROCESSING, Document + Preparation, Languages \\ D.4.0 Software, OPERATING + SYSTEMS, General, UNIX", +} + +@Book{Gehani:1987:DFT, + author = "Narain Gehani", + title = "Document Formatting and Typesetting on the {UNIX} + System", + publisher = pub-SILICON, + address = pub-SILICON:adr, + edition = "Second", + pages = "xix + 310 (or xv + 377)", + year = "1987", + ISBN = "0-13-938325-5, 0-9615336-2-5", + ISBN-13 = "978-0-13-938325-0, 978-0-9615336-2-5", + LCCN = "QA76.73.A35 G437 1987", + bibdate = "Tue Dec 14 23:36:50 1993", +} + +@Book{Gehani:1988:DFT, + author = "Narain Gehani and Steven Lally", + title = "Document formatting and typesetting on the {UNIX} + system. Vol. 2: grap, mv, ms, and troff", + publisher = pub-SILICON, + address = pub-SILICON:adr, + pages = "304", + year = "1988", + ISBN = "0-9615336-3-3", + ISBN-13 = "978-0-9615336-3-2", + LCCN = "????", + bibdate = "Mon Jul 25 08:37:04 MDT 1994", + price = "US\$30.95", + acknowledgement = ack-nhfb, + keywords = "documentation; languages", + review = "ACM CR 8907-0444", + subject = "I.7.2 Computing Methodologies, TEXT PROCESSING, + Document Preparation \\ D.4.0 Software, OPERATING + SYSTEMS, General, UNIX \\ I.7.2 Computing + Methodologies, TEXT PROCESSING, Document Preparation, + troff", +} + +@MastersThesis{Gella:1995:CTL, + author = "Kamal VenkataSatya Gella", + title = "A compiler to translate {\LaTeX} document to + hypertext", + type = "Thesis (M.S.)", + school = "University of South Carolina", + address = "Columbia, SC, USA", + pages = "iv + 40", + year = "1995", + bibdate = "Sat Mar 7 18:25:51 MST 1998", + acknowledgement = ack-nhfb, + keywords = "Compilers (Computer programs); Hypertext systems", +} + +@Article{GeyerSchulz:1993:TAL, + author = "A. Geyer-Schulz and J. Matulka and G. Neumann", + title = "Typesetting {APL} with {\LaTeX}--the {APL} front end + {APL2TEX}", + journal = j-APL-QUOTE-QUAD, + volume = "23", + number = "3", + pages = "22--27", + month = mar, + year = "1993", + CODEN = "APLQD", + ISSN = "0163-6006", + bibdate = "Thu Sep 01 01:27:41 1994", + abstract = "An APL publishing system is presented for {\LaTeX} + which supports typesetting of APL publications and + documents in a mixed hardware, multiple vendor APL + environment. It requires minimal maintenance and is in + the public domain. The system has two components, the + {\LaTeX} document style option apl.sty and the APL2TEX + front end. The option apl.sty provides the full symbol + sets of the APL dialects APL2/370, APL2/PC, Dyalog APL, + I-APL, Sharp APL, and APL.68000 Levels I and II. All + APL symbols are constructed with the symbols of the + standard {\LaTeX} font family. No special fonts are + needed. The APL2TEX front end is a workspace containing + a preprocessor for converting APL objects to {\LaTeX} + logical document elements. APL2TEX is currently + available for APL2/370, APL2/PC, Dyalog APL and + APL.68000 Levels I and II. (15 Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Bus. Adm., Vienna Univ. of Econ., Austria", + classification = "C6130 (Data handling techniques); C6140D (High level + languages); C6180 (User interfaces); C7230 (Publishing + and reproduction)", + keywords = "APL 68000; APL dialects; APL publications; APL + publishing system; APL typesetting; APL2/370; APL2/PC; + APL2TEX front end; Document style option; Dyalog APL; + Font family; Full symbol sets; I-APL; LaTeX; Logical + document elements; Multiple vendor APL environment; + Public domain; Sharp APL; Workspace", + thesaurus = "APL; Character sets; Computer controlled typesetting; + User interfaces", +} + +@TechReport{Ghosh:1983:ATD, + author = "Pijush K. Ghosh", + title = "An {Approach} to {Type Design} and {Text} + {Composition} in {Indian Scripts} (with a preface by + Donald {E}. Knuth)", + number = "STAN-CS-83-965", + institution = inst-STANFORD, + address = inst-STANFORD:adr, + year = "1983", + bibdate = "Sat Feb 10 14:50:27 1996", +} + +@TechReport{Ghosh:1983:FAL, + author = "Pijush K. Ghosh and Charles A. Bigelow", + title = "A {Formal Approach} to {Lettershape Description} for + {Type Design}", + number = "STAN-CS-83-966", + institution = inst-STANFORD, + address = inst-STANFORD:adr, + year = "1983", + bibdate = "Sat Feb 10 14:50:24 1996", +} + +@Article{Ghosh:1984:BDI, + author = "P. K. Ghosh", + title = "Basic design issues in a multi-lingual type font + design and typesetting workstation", + journal = j-J-INST-ELEC-TELECOMM-ENG, + volume = "30", + number = "6", + pages = "196--202", + month = nov, + year = "1984", + bibdate = "Mon Jul 25 08:37:04 MDT 1994", + acknowledgement = ack-nhfb, + keywords = "documentation; languages", + subject = "I.7.2 Computing Methodologies, TEXT PROCESSING, + Document Preparation, Languages \\ J.5 Computer + Applications, ARTS AND HUMANITIES, Linguistics \\ I.7 + Computing Methodologies, TEXT PROCESSING, Document + Preparation", +} + +@Book{Gibaldi:1996:MHW, + author = "Joseph Gibaldi", + title = "{MLA} Handbook for Writers of Research Papers", + publisher = pub-MLAA, + address = pub-MLAA:adr, + edition = "Fourth", + pages = "xviii + 293", + year = "1996", + ISBN = "0-87352-565-5", + ISBN-13 = "978-0-87352-565-7", + LCCN = "LB2369.G53 1995", + bibdate = "Sat Sep 28 17:22:14 1996", + price = "US\$16.75", + acknowledgement = ack-nhfb, +} + +@Article{Gilchrist:1989:TTP, + author = "Martin Gilchrist", + title = "{\TeX} and Typesetting\emdash {A} Publisher's View", + journal = j-NAMS, + volume = "36", + number = "9", + pages = "1199--1201", + month = nov, + year = "1989", + ISSN = "0002-9920", + bibdate = "Tue Mar 1 11:34:21 1994", +} + +@Article{GilmourBryson:1982:TPC, + author = "A. Gilmour-Bryson", + title = "Text preparation for computer typesetting", + journal = j-ALLC-BULL, + volume = "10", + number = "2", + pages = "40--47", + year = "1982", + ISSN = "0951-1474", + bibdate = "Mon Jul 25 08:37:04 MDT 1994", + acknowledgement = ack-nhfb, + keywords = "documentation; human factors", + subject = "I.7 Computing Methodologies, TEXT PROCESSING, Document + Preparation", +} + +@InProceedings{Goncalves:2004:FRM, + author = "Luis Nobre Gon{\c{c}}alves", + title = "{\FEATPOST} and a Review of $3${D} {\MP} Packages", + crossref = "Syropoulos:2004:TXD", + pages = "112--124", + year = "2004", + CODEN = "LNCSD9", + ISSN = "0302-9743", + bibdate = "Tue Nov 16 17:43:44 2004", + acknowledgement = ack-nhfb, +} + +@Article{Gonczarowski:1989:ICP, + author = "Jakob Gonczarowski and On G. Paradise", + title = "{InScript}\emdash{}a {C}-like preprocessor for + {\POSTSCRIPT}", + journal = j-EPODD, + volume = "2", + number = "3", + pages = "157--167", + month = oct, + year = "1989", + CODEN = "EPODE", + ISSN = "0894-3982", +} + +@Book{Goossens:1994:LB, + author = "Michel Goossens and Frank Mittelbach and Alexander + Samarin", + title = "{Der {\LaTeX}-Begleiter}", + publisher = pub-AWV, + address = pub-AWV:adr, + pages = "xxxiii + 554", + year = "1994", + ISBN = "3-89319-646-3, 3-8273-1689-8", + ISBN-13 = "978-3-89319-646-3, 978-3-8273-1689-9", + LCCN = "????", + bibdate = "Fri Nov 24 12:04:53 2000", + price = "DM 79,90; ATS 583,00; CHF 73,00", + acknowledgement = ack-nhfb, + annote = "Reprinted in 1995, 1996, 1997, 1998, and 1999. A + second ISBN was assigned, although the book has not yet + been revised.", +} + +@Book{Goossens:1994:LCa, + author = "Michel Goossens and Frank Mittelbach and Alexander + Samarin", + title = "The {\LaTeX} Companion", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xxi + 528", + year = "1994", + ISBN = "0-201-54199-8", + ISBN-13 = "978-0-201-54199-1", + LCCN = "Z253.4.L38 G66 1994", + bibdate = "Thu Jun 03 09:31:37 1999", + price = "US\$34.25", + series = "Tools and Techniques for Computer Typesetting", + acknowledgement = ack-nhfb, +} + +@Book{Goossens:1994:LCb, + author = "Michel Goossens and Frank Mittelbach and Alexander + Samarin", + title = "The {\LaTeX} Companion", + publisher = pub-AW, + address = pub-AW:adr, + edition = "Second", + pages = "xxi + 530", + year = "1994", + ISBN = "0-201-54199-8", + ISBN-13 = "978-0-201-54199-1", + LCCN = "Z253.4.L38 G66 1994", + bibdate = "Wed Nov 16 12:41:07 1994", + price = "US\$34.25", + series = "Tools and Techniques for Computer Typesetting", + acknowledgement = ack-nhfb, +} + +@Book{Goossens:1997:LGC, + author = "Michel Goossens and Sebastian Rahtz and Frank + Mittelbach", + title = "The {\LaTeX} Graphics Companion: Illustrating + Documents with {\TeX} and {PostScript}", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xxi + 554", + year = "1997", + ISBN = "0-201-85469-4", + ISBN-13 = "978-0-201-85469-5", + LCCN = "Z253.4.L38G663 1997", + bibdate = "Fri Jul 11 07:51:47 1997", + price = "US\$39.75", + series = "Tools and Techniques for Computer Typesetting", + acknowledgement = ack-nhfb, + keywords = "Computerized typesetting; LaTeX (Computer file); + Mathematics printing -- Computer programs; PostScript + (Computer program language); Scientific illustration -- + Computer programs; Technical publishing -- Computer + programs.", +} + +@Book{Goossens:1999:LWC, + author = "Michel Goossens and Sebastian Rahtz", + title = "The {\LaTeX} {Web} companion: integrating {\TeX}, + {HTML}, and {XML}", + publisher = pub-AW-LONGMAN, + address = pub-AW-LONGMAN:adr, + pages = "xxii + 522", + year = "1999", + ISBN = "0-201-43311-7", + ISBN-13 = "978-0-201-43311-1", + LCCN = "QA76.76.H94G66 1999", + bibdate = "Thu Jun 03 09:32:08 1999", + note = "With Eitan M. Gurari and Ross Moore and Robert S. + Sutor.", + price = "US\$36.95", + series = "Tools and Techniques for Computer Typesetting", + acknowledgement = ack-nhfb, +} + +@Article{Gourlay:1986:LMP, + author = "John S. Gourlay", + title = "A language for music printing", + journal = j-SPE, + volume = "29", + number = "5", + pages = "388--401", + month = may, + year = "1986", + CODEN = "SPEXBL", + ISSN = "0038-0644", + bibdate = "Thu Jul 21 22:21:39 1994", + acknowledgement = ack-nhfb, +} + +@Article{Graetzer:1993:A, + author = "George Gr{\"a}tzer", + title = "{\AmSLaTeX}", + journal = j-NAMS, + volume = "40", + number = "2", + pages = "148--150", + month = feb, + year = "1993", + ISSN = "0002-9920", + bibdate = "Fri Aug 19 11:28:07 1994", + acknowledgement = ack-ps, +} + +@Article{Graetzer:1993:ATI, + author = "George Gr{\"a}tzer", + title = "Advances in {\TeX} Implementations. {I}. {\POSTSCRIPT} + Fonts", + journal = j-NAMS, + volume = "40", + number = "7", + pages = "834--838", + month = sep, + year = "1993", + ISSN = "0002-9920", + bibdate = "Tue Dec 14 10:45:27 1993", + acknowledgement = ack-ps, +} + +@Book{Graetzer:1993:MTS, + author = "George Gr{\"a}tzer", + title = "Math into {\TeX}: {A} Simplified Introduction Using + {\AmSLaTeX}", + publisher = pub-SV # " and " # pub-BIRKHAUSER, + address = pub-SV:adr # " and " # pub-BIRKHAUSER:adr, + pages = "xxix + 294", + year = "1993", + ISBN = "0-8176-3637-4, 3-7643-3637-4", + ISBN-13 = "978-0-8176-3637-1, 978-3-7643-3637-0", + LCCN = "Z253.4.A65G7 1993", + bibdate = "Fri Aug 19 11:28:39 1994", + price = "US\$34, SFr 52, DM 57", +} + +@Article{Graetzer:1994:ATIa, + author = "George Gr{\"a}tzer", + title = "Advances in {\TeX} Implementations. {II}. Integrated + Environments", + journal = j-NAMS, + volume = "41", + number = "2", + pages = "106--111", + month = feb, + year = "1994", + ISSN = "0002-9920", + bibdate = "Thu Dec 29 10:52:37 1994", + acknowledgement = ack-ps, +} + +@Article{Graetzer:1994:ATIb, + author = "George Gr{\"a}tzer", + title = "Advances in {\TeX} Implementations. {III}. {A} New + Version of {\LaTeX}, Finally", + journal = j-NAMS, + volume = "41", + number = "6", + pages = "611--615", + month = jul # "\slash{} " # aug, + year = "1994", + ISSN = "0002-9920", + bibdate = "Thu Dec 29 10:45:21 1994", + acknowledgement = ack-ps, +} + +@Book{Graetzer:1996:MI, + author = "George Gr{\"a}tzer", + title = "Math into {\LaTeX}: an introduction to {\LaTeXe} and + {\AMSLaTeX} 1.2", + publisher = pub-BIRKHAUSER, + address = pub-BIRKHAUSER:adr, + pages = "xxvii + 451", + year = "1996", + ISBN = "0-8176-3805-9, 3-7643-3805-9", + ISBN-13 = "978-0-8176-3805-4, 978-3-7643-3805-3", + LCCN = "Z253.4.A65G69 199", + bibdate = "Sat Mar 07 18:36:33 1998", + price = "US\$49.50", + acknowledgement = ack-nhfb, + keywords = "AMS-LaTeX (Ficher d'ordinateur); AMS-LaTeX; + Composition automatique (Industries graphiques); + Computerized typesetting; Mathematics printing -- + Computer programs; Mathematiques -- Impression -- + Logiciels.", +} + +@Book{Graetzer:1999:FSL, + author = "George Gr{\"a}tzer", + title = "First steps in {\LaTeX}", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xx + 131", + year = "1999", + ISBN = "0-8176-4132-7, 3-7643-4132-7", + ISBN-13 = "978-0-8176-4132-0, 978-3-7643-4132-9", + LCCN = "Z253.4.L38 G74 1999", + bibdate = "Wed Jan 31 05:59:06 2001", + acknowledgement = ack-nhfb, +} + +@Book{Graetzer:2000:ML, + author = "George Gr{\"a}tzer", + title = "Math into {\LaTeX}", + publisher = pub-BIRKHAUSER # " and " # pub-SV, + address = pub-BIRKHAUSER:adr # " and " # pub-SV:adr, + edition = "Third", + pages = "xxv + 584", + year = "2000", + ISBN = "0-8176-4131-9, 3-7643-4131-9", + ISBN-13 = "978-0-8176-4131-3, 978-3-7643-4131-2", + LCCN = "Z253.4.L38 G745 2000", + bibdate = "Thu Aug 23 10:53:02 2001", + price = "US\$49.95", + acknowledgement = ack-nhfb, + keywords = "AMS-LaTeX; AMS-LaTeX (Ficher d'ordinateur); + Composition automatique (Industries graphiques); + Computerized typesetting; Mathematics printing -- + Computer programs; Mathematiques -- Impression -- + Logiciels", +} + +@Book{Granet:1995:OL, + author = "Vincent Granet and Jean-Pierre Regourd", + title = "Objectif {\LaTeX}", + publisher = pub-MASSON, + address = pub-MASSON:adr, + pages = "303", + year = "1995", + ISBN = "2-225-84993-5", + ISBN-13 = "978-2-225-84993-0", + LCCN = "????", + bibdate = "Sat Mar 7 18:25:51 MST 1998", + series = "Objectif, 1240-1013", + acknowledgement = ack-nhfb, + keywords = "{\LaTeX} (syst{\`e}me informatique)", +} + +@Article{Griffee:1988:ITF, + author = "Alan W. Griffee and Cherrelyn A. Casey", + title = "An introduction to typographic fonts and digital font + resources", + journal = j-IBM-SYS-J, + volume = "27", + number = "2", + pages = "206", + year = "1988", + CODEN = "IBMSA7", + ISSN = "0018-8670", + bibdate = "Sun Mar 27 18:29:22 1994", + acknowledgement = ack-nhfb, +} + +@Book{Griffiths:1997:LL, + author = "David F. (Francis) Griffiths and Desmond J. Higham", + title = "Learning {\LaTeX}", + publisher = pub-SIAM, + address = pub-SIAM:adr, + pages = "x + 84", + year = "1997", + ISBN = "0-89871-383-8", + ISBN-13 = "978-0-89871-383-1", + LCCN = "Z253.4.L38G75 1997", + bibdate = "Sat Mar 07 09:32:22 1998", + acknowledgement = ack-nhfb, + keywords = "Computerized typesetting; LaTeX (Computer file); + Mathematics printing -- Data processing.", +} + +@InProceedings{Guntermann:1985:GDL, + author = "Klaus Guntermann", + title = "{GENDRIV} --- a driver for low cost devices using + built-in fonts", + crossref = "Lucarella:1985:PFE", + pages = "197--204", + year = "1985", + bibdate = "Tue Jul 26 09:28:19 1994", + acknowledgement = ack-hk, +} + +@Book{Gunther:1996:EL, + author = "Karsten G{\"u}nther", + title = "Einf{\"u}hrung in {\LaTeXe}: Lehrbuch und Referenz", + publisher = pub-DPUNKT-VERLAG, + address = pub-DPUNKT-VERLAG:adr, + pages = "xxxiv + 522", + year = "1996", + ISBN = "3-920993-36-5", + ISBN-13 = "978-3-920993-36-2", + LCCN = "", + bibdate = "Sat Mar 07 09:03:53 1998", + price = "DM 68,00; ATS 496,00; CHF 60,00", + acknowledgement = ack-nhfb, +} + +@TechReport{Guoan:1982:USM, + author = "Gu Guoan and John Hobby", + title = "Using {String Matching} to {Compress Chinese} + {Characters}", + type = "Report", + number = "STAN-CS-82-914", + institution = inst-STAN-CS, + address = inst-STAN-CS:adr, + year = "1982", + bibdate = "Sat Feb 10 14:50:40 1996", + acknowledgement = ack-hk, +} + +@Book{Gurari:1994:TLD, + author = "Eitan M. Gurari", + title = "{\TeX} and {\LaTeX}: Drawing and Literate + Programming", + publisher = pub-MH, + address = pub-MH:adr, + pages = "xiv + 310", + year = "1994", + ISBN = "0-07-025208-4 (book), 0-07-911616-7 (book + + diskette)", + ISBN-13 = "978-0-07-025208-0 (book), 978-0-07-911616-1 (book + + diskette)", + LCCN = "Z253.4.T47G87 1994", + bibdate = "Tue Mar 1 12:50:41 1994", + price = "US\$34.95", + acknowledgement = ack-nhfb, +} + +@Book{Gurari:1994:WT, + author = "Eitan M. Gurari", + title = "Writing with {\TeX}", + publisher = pub-MH, + address = pub-MH:adr, + pages = "xiv + 249", + year = "1994", + ISBN = "0-07-025207-6", + ISBN-13 = "978-0-07-025207-3", + LCCN = "Z253.4.T47 G87 1994", + bibdate = "Wed Sep 29 17:55:14 1993", + price = "US\$29.95", + acknowledgement = ack-nhfb, +} + +@Misc{GUTenberg:1988:CG, + key = "CahiersGUTenberg", + title = "Cahiers {GUTenberg}", + year = "1988" # "\unskip--", + note = "Journal of Groupe des Utilisateurs de {\TeX} + Francophones (group of French-speaking {\TeX} Users).", +} + +@Article{Haarslev:1990:FVO, + author = "V. Haarslev and R. Moller", + title = "A framework for visualizing object-oriented systems", + journal = j-SIGPLAN, + volume = "25", + number = "10", + pages = "237--244", + month = oct, + year = "1990", + CODEN = "SINOD", + ISSN = "0362-1340", + bibdate = "Sat Sep 17 11:19:53 1994", + note = "OOPSLA ECOOP '90 Conference on Object-Oriented + Programming: Systems, Languages, and Applications.", + abstract = "A new approach to visualizing program systems within + the object-oriented paradigm is described. This + approach is based on a {\TeX} like notation which has + been extended and generalized for specifying graphical + layout of arbitrary objects. The CLOS meta-level + architecture is used to associate visualization and + application objects. The authors propose several useful + techniques such as indirect values, slot and method + demons and instance-specific meta-objects. The + techniques require no modifications to the systems + which are selected for visualization. They demonstrate + the feasibility of the approach using application + domains such as CLOS debugging and constraint systems. + (29 Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Xerox Palo Alto Res. Center, CA, USA", + classification = "C6110B (Software engineering techniques); C6130B + (Graphics techniques); C6180 (User interfaces)", + confdate = "21--25 Oct. 1990", + conflocation = "Ottawa, Ont., Canada", + confsponsor = "ACM", + keywords = "Application domains; Application objects; Arbitrary + objects; CLOS debugging; CLOS meta-level architecture; + Constraint systems; Graphical layout; Indirect values; + Instance-specific meta-objects; Method demons; + Object-oriented paradigm; Object-oriented systems; + Slot; TeX like notation; Visualization", + thesaurus = "Computer graphics; Formal specification; + Object-oriented programming; Visual programming", +} + +@Article{Haarslev:1992:VGL, + author = "V. Haarslev and R. Moller", + title = "Visualization and graphical layout in object-oriented + systems", + journal = j-J-VIS-LANG-COMPUTING, + volume = "3", + number = "1", + pages = "1--23", + month = mar, + year = "1992", + CODEN = "JVLCE", + ISSN = "1045-926X", + bibdate = "Thu Sep 01 01:21:18 1994", + abstract = "The paper describes two aspects of visualizing program + systems within the object-oriented paradigm: layout + specifications for graphical objects and associations + of visualization and application objects. The layout + approach is based on a notation similar to the {\TeX} + text formatting language. It has been extended and + generalized for specifying graphical layout of user + interfaces and arbitrary objects. The simplest scheme + offers specifications similar to {\TeX}'s box-and-glue + metaphor. Size and position of virtual boxes and glue + can be specified by simple constraints. The authors + show how the CLOS (Common Lisp Object System) + meta-level architecture can be exploited to associate + visualization and application objects. They show how + several useful techniques such as indirect values, slot + and method demons, and instance-specific meta-objects + can be implemented using CLOS. These visualization + techniques require no source code modifications of + application systems. They demonstrate the feasibility + of this approach using application domains such as CLOS + debugging and constraint systems. (34 Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Dept. of Comput. Sci., Hamburg Univ., Germany", + classification = "C6110J (Object-oriented programming); C6180 (User + interfaces)", + keywords = "Application objects; Box-and-glue metaphor; CLOS; + Graphical layout; Graphical objects; Layout + specifications; Method demons; Object-oriented systems; + TeX format; TeX text formatting language; User + interfaces; Virtual boxes; Visualizing program + systems", + language = "English", + pubcountry = "UK", + thesaurus = "Object-oriented programming; Visual programming", +} + +@Book{Hafner:1997:TLL, + author = "Thomas Hafner", + title = "{\TeX} und {\LaTeX} leicht gemacht: universelles + Satzsystem f{\"u}r jeden Computer", + publisher = pub-PFLAUM, + address = pub-PFLAUM:adr, + pages = "108", + year = "1997", + ISBN = "3-7905-1505-1", + ISBN-13 = "978-3-7905-1505-3", + LCCN = "????", + bibdate = "Sat Mar 07 09:25:32 1998", + price = "DM 22,80", + acknowledgement = ack-nhfb, +} + +@Book{Hahn:1991:LER, + author = "Jane Hahn", + title = "{\LaTeX} for Everyone\emdash {A} Reference Guide and + Tutorial for Typesetting Documents Using a Computer", + publisher = pub-PTI, + address = pub-PTI:adr, + pages = "xi + 346", + year = "1991", + ISBN = "0-9631044-0-3", + ISBN-13 = "978-0-9631044-0-3", + LCCN = "Z253.4.L38 H34 1991", + bibdate = "Fri Jan 21 15:24:47 1994", + price = "US\$19.95", + acknowledgement = ack-nhfb, +} + +@Book{Hahn:1993:LER, + author = "Jane Hahn", + title = "{\LaTeX} for Everyone\emdash {A} Reference Guide and + Tutorial for Typesetting Documents Using a Computer", + publisher = pub-PH, + address = pub-PH:adr, + edition = "Second", + pages = "xi + 346", + year = "1993", + ISBN = "0-13-605908-2", + ISBN-13 = "978-0-13-605908-0", + LCCN = "Z253.4.L38 H35 1993", + bibdate = "Fri Jan 21 15:24:41 1994", + price = "US\$19.95", + acknowledgement = ack-nhfb, +} + +@Manual{Hammerlindl:2004:ASB, + author = "Andy Hammerlindl and John Bowman and Tom Prince", + title = "{{\tt Asymptote}}: a script-based vector graphics + language", + organization = "Faculty of Science, University of Alberta", + address = "Edmonton, AB, Canada", + year = "2004", + bibdate = "Tue Jul 12 11:15:03 2005", + note = "{\tt Asymptote} is a powerful script-based vector + graphics language for technical drawing, inspired by + \MP{} but with an improved C++-like syntax. + {\tt Asymptote} provides for figures the same + high-quality level of typesetting that \LaTeX{} does + for scientific text.", + URL = "http://asymptote.sourceforge.net/", + acknowledgement = ack-nhfb, +} + +@PhdThesis{Han:2000:MTE, + author = "{\noopsort{Han}H{\`a}n Th\^e{\kern-.05em}\llap{\raise + 0.5ex\hbox{\'{\relax}}} Th{\`a}nh}", + title = "Micro-typographic extensions to the {{\TeX}} + typesetting system", + type = "{Ph.D.} Dissertation", + school = "Faculty of Informatics, Masaryk University", + address = "Brno, Czech Republic", + pages = "118", + month = oct, + year = "2000", + bibdate = "Sat Jul 23 19:14:20 2005", + URL = "http://www.pragma-ade.com/pdftex/thesis.pdf", + acknowledgement = ack-nhfb, +} + +@Article{Haralambous:1992:TLO, + author = "Yannis Haralambous", + title = "{\TeX} et les Langues Orientales", + journal = "????", + volume = "??", + pages = "??--??", + year = "1992", + bibdate = "Tue Jul 08 19:07:25 2003", + acknowledgement = ack-nhfb, + language = "French", + xxnote = "Cited in \cite{Haralambous:TB16-4-418}, but not found + in major European library catalogs. Where was it + published??", +} + +@InProceedings{Haralambous:1992:TRT, + author = "Yannis Haralambous", + title = "Towards the revival of traditional {Arabic} typography + \ldots{} through {\TeX}", + crossref = "Zlatuska:1992:EPE", + pages = "293--305", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + note = "Invited talk.", + acknowledgement = ack-nhfb, +} + +@Article{Haralambous:1993:PPF, + author = "Y. Haralambous", + title = "Parametrization of {PostScript} Fonts through + {METAFONT}: an Alternative to {Adobe Multiple Master} + Fonts", + journal = j-EPODD, + volume = "6", + number = "3", + pages = "145--158", + month = sep, + year = "1993", + CODEN = "EPODEU", + ISSN = "0894-3982", + bibdate = "Sat Dec 21 15:45:22 MST 1996", + acknowledgement = ack-nhfb, +} + +@Article{Haralambous:1994:STB, + author = "Yannis Haralambous", + title = "Un syst{\`e}me tex berb{\`e}re", + journal = "Etudes et documents berb{\`e}res", + volume = "11", + pages = "43--53", + year = "1994", + bibdate = "Tue Jul 08 19:07:25 2003", + acknowledgement = ack-nhfb, + keywords = "tex (logiciel) -- tifinagh", + language = "French", +} + +@Book{Haralambous:2004:FCG, + author = "Yannis Haralambous", + title = "Fontes \& codages: Glyphes et caract{\`e}res {\`a} + l'{\`e}re du num{\'e}rique", + publisher = pub-ORA-FRANCE, + address = pub-ORA-FRANCE:adr, + pages = "xx + 990", + year = "2004", + EAN = "978-2-84177-273-5", + ISBN = "2-84177-273-X", + ISBN-13 = "978-2-84177-273-5", + LCCN = "????", + bibdate = "Fri May 20 06:49:11 2005", + acknowledgement = ack-nhfb, +} + +@Book{Hardy:1995:DMSa, + author = "Darel W. Hardy and Carol L. Walker", + title = "Doing mathematics with {Scientific WorkPlace}", + publisher = pub-BROOKS-COLE, + address = pub-BROOKS-COLE:adr, + pages = "xviii + 291", + year = "1995", + ISBN = "0-534-25284-2", + ISBN-13 = "978-0-534-25284-7", + LCCN = "QA76.95 .H37 1995", + bibdate = "Mon Mar 02 08:53:06 1998", + acknowledgement = ack-nhfb, +} + +@Book{Hardy:1995:DMSb, + author = "Darel W. Hardy and Carol L. Walker", + title = "Doing mathematics with {Scientific WorkPlace}", + publisher = pub-BROOKS-COLE, + address = pub-BROOKS-COLE:adr, + edition = "Revised", + pages = "xix + 340", + year = "1995", + ISBN = "0-534-34049-0", + ISBN-13 = "978-0-534-34049-0", + LCCN = "QA76.95 .H37 1995b", + bibdate = "Mon Mar 02 08:53:06 1998", + acknowledgement = ack-nhfb, +} + +@Article{Harrison:1989:IBP, + author = "M. A. Harrison and E. V. Munson", + title = "On integrated bibliography processing", + journal = j-EPODD, + volume = "2", + number = "4", + pages = "193--209", + month = dec, + year = "1989", + CODEN = "EPODE", + ISSN = "0894-3982", + bibdate = "Thu Sep 01 00:35:12 1994", + abstract = "Bibliography processing systems are important to the + production of scholarly and technical documents. While + the existing systems are a significant aid to authors, + their designs are not sufficient to handle the demands + that have arisen with their continued use. These + demands include larger bibliography databases, sharing + of databases among multiple authors, integration with + document editors, and the desire for new features. The + paper examines these issues as they are reflected in + three enhancements to the bibliography processing + facilities of the GNU Emacs BIBTEX-Mode and TEX-mode + integrated editing environment. The added features were + a reference annotation facility, support of forms-based + queries for automatic citation, and an enhanced + reference inspection facility supporting WYSIWYG + display of references. The design and implementation of + the three features are discussed in detail. Their + relationship to other bibliography processing tools is + discussed. (28 Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Div. of Comput. Sci., California Univ., Berkeley, CA, + USA", + classification = "C7106 (Word processing); C7230 (Publishing and + reproduction)", + keywords = "Automatic citation; Bibliography databases; Document + editors; Electronic publishing; GNU Emacs BIBTEX-Mode; + Integrated bibliography processing; Integrated editing + environment; Multiple authors; Reference annotation + facility; Reference inspection facility; Technical + documents; TEX-mode; WYSIWYG display", + thesaurus = "Electronic publishing; Word processing", +} + +@Book{Harrower:1992:NDH, + author = "Tim Harrower", + title = "The Newspaper Designer's Handbook", + publisher = pub-WCB, + address = pub-WCB:adr, + pages = "180", + year = "1992", + ISBN = "0-697-13382-6", + ISBN-13 = "978-0-697-13382-3", + LCCN = "Z253.5 .H27 1992", + bibdate = "Fri Aug 19 15:40:40 1994", + acknowledgement = ack-fm, + keywords = "layout, design, typography, newspaper", +} + +@Book{Hart:1991:HRC, + author = "Horace Hart", + title = "{Hart}'s Rules; For Compositors and Readers at the + {University Press, Oxford}", + publisher = pub-OUP, + address = pub-OUP:adr, + edition = "39th", + pages = "182", + year = "1991", + ISBN = "0-19-212983-X", + ISBN-13 = "978-0-19-212983-3", + LCCN = "Z254 .H37 1983", + price = "UK\pounds8", + abstract = "In printing and publishing houses Hart is a household + word. First printed in 1893, specifically for + Compositors and readers at the University Press, + Oxford, and first published (in its 15th edition) in + 1904, this little book of Rules has become + indispensable to all professionals, and widely useful + to others concerned with the business of putting words + into print --- which includes such matters as + alternative spellings, punctuation, capitalization, + italicization, abbreviations, and many other details.", + acknowledgement = ack-fm, + annote = "This book and the Oxford Dictionary for Writers and + Editors together give the house style of OUP at its + best. (CHe)", + bibliography = "yes", + glossary = "no", + history = "Originally compiled by Horace Hart, MA Printer to the + University, 1883--1915. First edition, 1893. Fifteenth + edition (the first for general sale), 1904. + Thirty-eighth edition 1978. Thirty-ninth edition 1983, + reprinted 1989 with corrections.", + index = "yes", + inprint = "yes", + keywords = "typesetting", + printermarks = "yes", +} + +@Article{Hartz:1993:M, + author = "David Hartz", + title = "{MathType 3.0}", + journal = j-NAMS, + volume = "40", + number = "5", + pages = "469--470", + month = may # "/" # jun, + year = "1993", + ISSN = "0002-9920", + bibdate = "Thu May 07 18:35:28 1998", + note = "Review of a Macintosh equation editor front-end to + \TeX{} and various word processors.", + acknowledgement = ack-nhfb, +} + +@Article{Hayashi:1987:TTH, + author = "T. Hayashi", + title = "Transporting {\TeX} into the {HITAC VOS3} + environment", + journal = j-SPE, + volume = "17", + number = "1", + pages = "17--28", + month = jan, + year = "1987", + CODEN = "SPEXBL", + ISSN = "0038-0644", + bibdate = "Thu Jul 21 22:26:53 1994", +} + +@Article{Hayes:1996:SM, + author = "Brian Hayes", + title = "Speaking of mathematics", + journal = j-AMSCI, + volume = "84", + number = "2", + pages = "110--113", + month = mar # "\slash " # apr, + year = "1996", + bibdate = "Sun Mar 10 1996", + acknowledgement = ack-bnb, +} + +@Book{Hayward:1977:SA, + author = "Stan Hayward", + title = "Scriptwriting for Animation", + publisher = pub-HHP, + address = pub-HHP:adr, + pages = "160", + year = "1977", + ISBN = "0-8038-6741-7", + ISBN-13 = "978-0-8038-6741-3", + LCCN = "TR 897.5 H335s, PN1996 .H37 1977", + bibdate = "Fri Aug 19 15:42:37 1994", + acknowledgement = ack-jpl, + annote = "A practical guide.", +} + +@TechReport{Hegron:1984:AGR, + author = "G{\'e}rard H{\'e}gron", + title = "Algorithmes de g{\'e}n{\-\'e\-}ra{\-}tion de + caract\`eres", + type = "Publication interne", + number = "244", + institution = pub-IRISA, + address = pub-IRISA:adr, + year = "1984", + bibdate = "Sat Sep 10 12:57:15 1994", + acknowledgement = ack-hk, +} + +@Book{Heilmann:1996:LVK, + author = "Axel Heilmann", + title = "{\LaTeX}-Vademecum: ein Kompaktf{\"u}hrer f{\"u}r + Einsteiger und Fortgeschrittene", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xix + 281", + year = "1996", + ISBN = "3-540-60522-3", + ISBN-13 = "978-3-540-60522-5", + LCCN = "", + bibdate = "Sat Mar 07 09:39:36 1998", + price = "DM 38,00", + acknowledgement = ack-nhfb, +} + +@Book{Heinemann:1988:XPS, + editor = "Sue Heinemann and Virginia Croft", + title = "{Xerox} Publishing Standards: {A} Manual of Style and + Design", + publisher = pub-WGP, + address = pub-WGP:adr, + year = "1988", + ISBN = "0-8230-5964-2", + ISBN-13 = "978-0-8230-5964-5", + LCCN = "Z286.L68 X47 1988", + bibdate = "Fri Jul 22 08:59:00 1994", + price = "US\$35.00", + acknowledgement = ack-fm, +} + +@Book{Hersch:1993:VTA, + author = "Roger D. Hersch", + title = "Visual and Technical Aspects of Type", + publisher = pub-CUP, + address = pub-CUP:adr, + pages = "204", + year = "1993", + ISBN = "0-521-44026-2", + ISBN-13 = "978-0-521-44026-4", + LCCN = "Z250.7 .V62 1993", + bibdate = "Wed Aug 10 10:48:53 1994", + price = "US\$59.95", + acknowledgement = ack-nhfb, +} + +@Article{Hersch:1995:PTG, + author = "Roger D. Hersch and Claude B{\'e}trisey and Justin Bur + and Andr{\'e} G{\"u}rtler", + title = "Perceptually Tuned Generation of Grayscale Fonts", + journal = j-IEEE-CGA, + volume = "15", + number = "6", + pages = "78--90", + month = nov, + year = "1995", + CODEN = "ICGADZ", + ISSN = "0272-1716", + bibdate = "Sat Nov 04 18:09:09 1995", +} + +@TechReport{Hershey:1969:FIP, + author = "Allen V. Hershey", + title = "{FORTRAN IV} Programming for Cartography and + Typography", + number = "TR-2339", + institution = inst-USNWL, + address = inst-USNWL:adr, + month = sep, + year = "1969", + bibdate = "Sat Sep 10 12:51:28 1994", +} + +@TechReport{Hershey:1970:PRF, + author = "Allen V. Hershey", + title = "Preparation of Reports with the {FORTRAN} Typographic + System", + number = "TN-K/27-70", + institution = inst-USNWL, + address = inst-USNWL:adr, + month = sep, + year = "1970", + bibdate = "Sat Sep 10 12:51:26 1994", +} + +@Article{Hershey:1972:CSS, + author = "Allen V. Hershey", + title = "A Computer System for Scientific Typography", + journal = j-CGIP, + volume = "1", + pages = "373--385", + year = "1972", + ISSN = "0734-189X", +} + +@TechReport{Hershey:1981:ACT, + author = "Allen V. Hershey", + title = "Advanced Computer Typography", + number = "NPS012-81-005", + institution = inst-USNPS, + address = inst-USNPS:adr, + month = dec, + year = "1981", + bibdate = "Sat Sep 10 12:51:23 1994", +} + +@InProceedings{Hickey:1989:UST, + author = "T. B. Hickey", + booktitle = "National Online Meeting proceedings--1989, New York, + May 9--11, 1989", + title = "Using {SGML} and {\TeX} for an interactive chemical + encyclopedia", + publisher = pub-LEARNED-INF, + address = pub-LEARNED-INF:adr, + pages = "187--195", + month = "", + year = "1989", + ISBN = "0-938734-34-2", + ISBN-13 = "978-0-938734-34-5", + LCCN = "QA76.55 .N37 1989", + bibdate = "Sat Sep 17 11:19:57 1994", + abstract = "Outlines the process of converting an ASCII encoded + encyclopedia (the Kirk-Othmer encyclopedia of chemical + technology) into Standard Generalized Markup Language + (SGML) for formatting and full-text indexing. The ASCII + text was modified as needed, then parsed and converted + into SGML. Graphics were scanned from the original + pages and coordinated with the text by a graphics + control file generated from the ASCII text. Production + of the full-text index and {\TeX} file from the SGML, + was straightforward, except for tables. Some of the + problems of formatting tables are described along with + the solutions. (7 Refs.)", + acknowledgement = ack-nhfb, + bookpages = "xv + 506", + classification = "A0130L (Collections of physical data, tables); + C6130B (Graphics techniques); C6130D (Document + processing techniques); C7250 (Information storage and + retrieval)", + confdate = "9--11 May 1989", + conflocation = "New York, NY, USA", + confsponsor = "Learned Inf", + keywords = "ASCII encoded encyclopedia; ASCII text; Formatting; + Full-text indexing; Graphics control file; Interactive + chemical encyclopedia; Kirk-Othmer encyclopedia of + chemical technology; SGML; Standard Generalized Markup + Language; TEX file", + thesaurus = "Collections of physical data; Computer graphics; + Information retrieval systems; Word processing", +} + +@Book{Higham:1993:HWM, + author = "Nicholas J. Higham", + title = "Handbook of Writing for the Mathematical Sciences", + publisher = pub-SIAM, + address = pub-SIAM:adr, + pages = "xii + 241", + month = jun, + year = "1993", + ISBN = "0-89871-314-5", + ISBN-13 = "978-0-89871-314-5", + LCCN = "QA42.H54 1993", + bibdate = "Tue Mar 1 12:03:19 1994", + note = "[From the publisher]: Having trouble with your latest + math paper? Giving a presentation that you just can't + pull together? Struggling with your thesis or trying to + get your first article published in a technical + journal? Handbook of Writing for the Mathematical + Sciences is the book for you! This handy volume + provides information on virtually every issue you will + face when writing a technical paper or talk, from + choosing the right journal to handling your references. + You'll also get an overview of the entire publication + process--invaluable for anyone hoping to publish in a + technical journal. To write a truly impressive paper, + you'll need to understand the anatomy of a research + paper and the steps involved in revising a draft. This + book offers discussions of these fundamental topics, + along with illustrative and provocative examples. Also + included are chapters on standard English usage, using + computers for writing and research, and writing + technical material when English is a foreign language. + This handbook provides much-needed advice on handling + the basic ingredients of a research paper, like + definitions, theorems, examples, and equations. In + addition, appendices provide essential reference + material, including summaries of \LaTeX{} symbols and + Emacs commands, addresses of mathematical societies, + and a list of papers that have won expository writing + prizes. This book is ideal for graduate students and + teachers. Among its special features: \begin{itemize} + \item Detail and extensive use of examples make it an + excellent teaching tool \item Discusses \TeX{} and + other software tools for preparing publications \item + Thorough treatment, with examples, of how to write + slides (transparencies) for a mathematical talk. \item + Comprehensive index and extensive bibliography make it + an excellent reference \item Readable for everyone in + the field--from undergraduates to seasoned + professionals \end{itemize} Contents \\ + Preface; \\ + Chapter 1: General Principles; \\ + Chapter 2: Writer's Tools and Recommended Reading; \\ + Chapter 3: Mathematical Writing; \\ + Chapter 4: English Usage; \\ + Chapter 5: When English is a Foreign Language; \\ + Chapter 6: Writing a Paper; \\ + Chapter 7: Revising a Draft; \\ + Chapter 8: Publishing a Paper; \\ + Chapter 9: Writing a Talk; \\ + Chapter 10: Computer Aids for Writing and Research; \\ + Appendix A: The Greek Alphabet; \\ + Appendix B: Summary of \TeX{} and \LaTeX{} Symbols; \\ + Appendix C: GNU Emacs--The Sixty+ Most Useful Commands; + \\ + Appendix D: Mathematical Organizations in the UK and + USA; \\ + Appendix E: Winners of Prizes for Expository Writing; + \\ + Appendix F: Glossary; \\ + Bibliography; \\ + Index.\\ + About the Author:\\ + Nicholas J. Higham is a Reader in Mathematics at the + University of Manchester, UK. He is the author of more + than 40 publications and is a member of the editorial + board of the SIAM Journal on Matrix Analysis and + Applications.", + price = "US\$21.50", + acknowledgement = ack-njh, +} + +@Article{Hirschberg:1987:NAF, + author = "D. S. Hirschberg and L. L. Larmore", + title = "New Applications of Failure Functions", + journal = j-J-ACM, + volume = "34", + number = "3", + pages = "616--625", + month = jul, + year = "1987", + CODEN = "JACOAH", + ISSN = "0004-5411", + bibdate = "Sat Apr 28 09:27:41 2001", + bibsource = "Compendex database; + ftp://ftp.ira.uka.de/pub/bibliography/Misc/IMMD_IV.bib", + URL = "http://www.acm.org/pubs/toc/Abstracts/0004-5411/28875.html", + abstract = "Presented are several algorithms whose operations are + governed by a principle of failure functions. When + searching for an extremal value within a sequence, it + suffices to consider only the subsequence of items each + of which is the first possible improvement of its + predecessor. These algorithms are more efficient than + their more traditional counterparts.", + acknowledgement = ack-nhfb, + affiliationaddress = "Univ of California at Irvine, Irvine, CA, USA", + annote = "This paper discusses line-breaking and page-breaking + algorithms at length, proving the correctness of an + improvement on the Knuth/Plass line-breaking algorithm + used in the \TeX{} typesetting system.", + classification = "723; 921", + journalabr = "J Assoc Comput Mach", + keywords = "algorithms; computer programming --- Algorithms; data + processing; Data Structures; extremal value; failure + functions; mathematical programming, dynamic; search + methods; theory; verification", + subject = "{\bf E.1}: Data, DATA STRUCTURES, Arrays. {\bf E.1}: + Data, DATA STRUCTURES, Lists. {\bf F.2.2}: Theory of + Computation, ANALYSIS OF ALGORITHMS AND PROBLEM + COMPLEXITY, Nonnumerical Algorithms and Problems, + Computations on discrete structures.", +} + +@TechReport{Hobby:1983:CMF, + author = "John Hobby and Gu Guoan", + title = "A {Chinese Meta-Font}", + type = "Report", + number = "STAN-CS-83-974", + institution = inst-STAN-CS, + address = inst-STAN-CS:adr, + year = "1983", + bibdate = "Sat Feb 10 14:51:21 1996", + acknowledgement = ack-hk, +} + +@PhdThesis{Hobby:1986:DBT, + author = "John Douglas Hobby", + title = "Digitized Brush Trajectories", + type = "{Ph.D.} dissertation", + school = "Department of Computer Science, Stanford University", + address = "Stanford, CA, USA", + pages = "151", + month = jun, + year = "1986", + bibdate = "Wed May 25 08:06:33 2005", + note = "Also published as report STAN-CS-1070 (1985).", + URL = "http://wwwlib.umi.com/dissertations/fullcit/8602484", + abstract = "We consider the problem of finding a discrete set of + pixels that approximates the envelope of a convex brush + shape with respect to a given trajectory. Let the + digitization of a planar region be the set of pixels + whose centers lie inside of it. We develop mathematical + models for the width of digitized brush strokes, and we + give a class of polygonal brush shapes such that the + width of their envelope with respect to a given + trajectory is accurately reflected by the digitization + of the envelope. Polygonal brush shapes also have the + advantage that it is usually much easier to compute the + digitization of the envelope with respect to a given + trajectory. We present fast algorithms for + approximating a given brush shape with an appropriate + polygon so that the digitization of the envelope of the + modified brush will have more accurate and uniform + width than the digitization of the exact envelope + would. We also present an algorithm for finding a set + of pixels that represents the envelope of a dynamically + changing brush while preserving accurate and uniform + stroke width. This algorithm finds a polygonal path + with simple rational slopes that is digitally + equivalent to the given trajectory. Other possible + applications of this polygonal representation include + smoothing digitized curves, data compression, and curve + fitting.", + acknowledgement = ack-nhfb, +} + +@InProceedings{Hobby:1992:IM, + author = "John D. Hobby", + title = "Introduction to {\MP}", + crossref = "Zlatuska:1992:EPE", + pages = "21--36", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + note = "Invited talk.", + acknowledgement = ack-nhfb, +} + +@Manual{Hobby:1995:DGM, + author = "John D. Hobby", + title = "Drawing Graphs with {\MP}", + organization = "AT\&T Bell Laboratories", + address = "Murray Hill, NJ, USA", + pages = "18", + year = "1995", + bibdate = "Tue Jul 12 11:58:06 2005", + URL = "http://ctan.tug.org/tex-archive/macros/latex/contrib/pdfslide/mpgraph.pdf", + acknowledgement = ack-nhfb, +} + +@Manual{Hobby:1997:MS, + author = "John D. Hobby", + title = "The {\MP} System", + organization = "????", + address = "????", + year = "1997", + day = "30", + month = dec, + URL = "file:///texlive-2004-11/texmf-dist/doc/metapost/base/mpintro.pdf", + acknowledgement = ack-nhfb, + bibdate = "Tue Jul 12 11:38:32 2005", +} + +@Article{Hobby:2001:MDS, + author = "John D. Hobby", + title = "{\MP} le dessin sous {\TeX}: manuels de l'utilisateur + pour {\MF} et graph", + journal = j-GUTENBERG, + volume = "41", + number = "??", + pages = "175", + year = "2001", + ISSN = "1140-9304", + bibdate = "Tue Jul 12 10:54:03 2005", + note = "French translation by Pierre Fournier et Jean-C{\^o}me + Charpentier.", + acknowledgement = ack-nhfb, +} + +@Manual{Hobby:2004:UMM, + author = "John D. Hobby", + title = "A User's Manual for {{\MP}}", + organization = "????", + address = "????", + pages = "i + 85", + year = "2004", + bibdate = "Tue Jul 12 11:48:44 2005", + URL = "file:///texlive-2004-11/texmf-dist/doc/metapost/base/mpman.pdf", + acknowledgement = ack-nhfb, +} + +@InProceedings{Hoenig:1992:WTM, + author = "Alan Hoenig", + title = "When {\TeX} and {\MF} work together", + crossref = "Zlatuska:1992:EPE", + pages = "1--20", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + note = "Invited talk.", + acknowledgement = ack-nhfb, +} + +@Book{Hoenig:1998:TUL, + author = "Alan Hoenig", + title = "{\TeX} Unbound: {\LaTeX} and {\TeX} Strategies for + Fonts, Graphics, \& More", + publisher = pub-OUP, + address = pub-OUP:adr, + pages = "ix + 580", + year = "1998", + ISBN = "0-19-509686-X (paperback), 0-19-509685-1 (hardcover)", + ISBN-13 = "978-0-19-509686-6 (paperback), 978-0-19-509685-9 + (hardcover)", + LCCN = "Z253.4.L38H64 1997", + bibdate = "Wed Apr 29 14:32:29 1998", + price = "US\$60.00 (hardcover), US\$35.00 (paperback)", + URL = "http://www.oup-usa.org/gcdocs/gc_0195096851.html", + acknowledgement = ack-nhfb, + keywords = "Computer fonts; Computer graphics; Computerized + typesetting; Mathematics printing -- Computer programs; + METAFONT; Technical publishing -- Computer programs; + {\LaTeX} (Computer file); {\TeX} (Computer file)", +} + +@Article{Hohti:1988:TAT, + author = "Aarno Hohti", + title = "Typesetting {APL} with {\TeX}", + journal = j-SIGAPL, + volume = "18", + number = "3", + pages = "13--16", + month = mar, + year = "1988", + bibdate = "Mon Jul 25 11:28:24 1994", + acknowledgement = ack-nhfb, + keywords = "design; documentation; languages", + subject = "D.3.2 Software, PROGRAMMING LANGUAGES, Language + Classifications, APL \\ I.7.m Computing Methodologies, + TEXT PROCESSING, Miscellaneous \\ J.7 Computer + Applications, COMPUTERS IN OTHER SYSTEMS, Publishing", +} + +@InProceedings{Holecek:2004:APG, + author = "Jan Hole{\v{c}}ek and Petr Sojka", + title = "Animations in {\pdfTeX}-Generated {PDF}: {A} New + Method for Directly Embedding Animation into {PDF}", + crossref = "Syropoulos:2004:TXD", + pages = "179--191", + year = "2004", + CODEN = "LNCSD9", + ISSN = "0302-9743", + bibdate = "Tue Nov 16 17:43:44 2004", + acknowledgement = ack-nhfb, +} + +@Book{Holzgang:1987:UPP, + author = "David A. Holzgang", + title = "Understanding {\POSTSCRIPT} Programming", + publisher = pub-SYBEX, + address = pub-SYBEX:adr, + pages = "xxxii + 459", + year = "1987", + ISBN = "0-89588-396-1", + ISBN-13 = "978-0-89588-396-4", + LCCN = "QA76.73.P67 H65 1987", + bibdate = "Wed Dec 15 09:15:51 1993", +} + +@Book{Holzgang:1989:PPR, + author = "David A. Holzgang", + title = "{\POSTSCRIPT} Programmer's Reference Guide", + publisher = pub-SF, + address = pub-SF:adr, + pages = "x + 486", + year = "1989", + ISBN = "0-673-38574-4", + ISBN-13 = "978-0-673-38574-1", + LCCN = "QA76.73.P67 H64 1989", + bibdate = "Wed Dec 15 09:15:12 1993", +} + +@InProceedings{Hoover:1992:KSS, + author = "Anita Z. Hoover", + title = "The key to successful support: knowing your {\TeX} and + {\LaTeX} users", + crossref = "Zlatuska:1992:EPE", + pages = "71--85", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + note = "Invited talk.", + acknowledgement = ack-nhfb, +} + +@Article{Hopkins:1990:RA, + author = "T. Hopkins and D. Morse", + title = "Remark on algorithm 620", + journal = j-TOMS, + volume = "16", + number = "4", + pages = "401--403", + month = dec, + year = "1990", + CODEN = "ACMSC", + ISSN = "0098-3500", + bibdate = "Thu Sep 01 00:49:22 1994", + abstract = "The authors report on an enhanced version of the + database originally reported in `Algorithm 620: + references and keywords for collected algorithms from + ACM', J. R. Rice and R. J. Hanson, ACM Trans Math. + Soft. vol. 10, no. 4, p. 359-360 (1984). In this new + version they have included all the information + necessary to generate full bibliographic references. + Extra information includes the author's name (including + any accents), the page range of the original reference + (rather than just the starting page), the month and + year of publication and an abbreviated journal name. + The programming language used to code the algorithm is + also given. Any mathematical notation used within the + algorithm title and accents in the author's name have + been defined using {\TeX}. Following the practice used + with Bib{\TeX}, all letters within the title that need + to remain capitalized in a printed version of the + reference (e.g. Fortran, Bessel) are enclosed in + braces. (3 Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Kent Univ., UK", + classification = "C4100 (Numerical analysis); C7250C (Bibliographic + systems); C7310 (Mathematics)", + keywords = "Abbreviated journal name; Algorithm title; + Bibliographic references; BibTeX; Mathematical + notation; TeX", + thesaurus = "Bibliographic systems; Mathematics computing; + Numerical methods", +} + +@Article{Howland:1986:TAU, + author = "John E. Howland", + title = "Typesetting {APL} using a Macintosh", + journal = j-SIGAPL, + volume = "16", + number = "4", + pages = "301--305", + year = "1986", + bibdate = "Mon Jul 25 08:37:04 MDT 1994", + acknowledgement = ack-nhfb, + keywords = "documentation; languages", + subject = "D.3.2 Software, PROGRAMMING LANGUAGES, Language + Classifications, APL \\ J.7 Computer Applications, + COMPUTERS IN OTHER SYSTEMS, Publishing \\ I.7.2 + Computing Methodologies, TEXT PROCESSING, Document + Preparation", +} + +@InProceedings{Hufflen:2004:MBL, + author = "Jean-Michel Hufflen", + title = "Ml{\BibTeX}: Beyond {\LaTeX}", + crossref = "Syropoulos:2004:TXD", + pages = "203--215", + year = "2004", + CODEN = "LNCSD9", + ISSN = "0302-9743", + bibdate = "Tue Nov 16 17:43:44 2004", + acknowledgement = ack-nhfb, +} + +@TechReport{Huggins:1988:EHM, + author = "K. Cleo R. Huggins", + title = "{Egyptian} Hieroglyphs for Modern Printing Devices", + number = "STAN-CS-89-1251", + institution = inst-STANFORD, + address = inst-STANFORD:adr, + month = jun, + year = "1988", + bibdate = "Sat Feb 10 14:55:22 1996", +} + +@Book{Hunter:1995:GSS, + author = "Roger Hunter and Susan Anne Bagby", + title = "Getting started with {Scientific Word} and {Scientific + WorkPlace for Windows}: professional and student + editions", + publisher = pub-BROOKS-COLE, + address = pub-BROOKS-COLE:adr, + pages = "vi + 121", + year = "1995", + ISBN = "0-534-34097-0", + ISBN-13 = "978-0-534-34097-1", + LCCN = "Q183.9 .H86 1995", + bibdate = "Mon Mar 02 08:59:42 1998", + acknowledgement = ack-nhfb, +} + +@Book{Hunter:1996:CDS, + author = "Roger Hunter and Susan Anne Bagby", + title = "Creating documents with {Scientific WorkPlace} and + {Scientific Word}", + publisher = pub-BROOKS-COLE, + address = pub-BROOKS-COLE:adr, + pages = "xxiv + 246", + year = "1996", + ISBN = "0-534-34369-4", + ISBN-13 = "978-0-534-34369-9", + LCCN = "Q183.9 .H84 1996", + bibdate = "Mon Mar 02 08:50:59 1998", + acknowledgement = ack-nhfb, +} + +@Book{Hurlburt:1978:GMS, + author = "Allen Hurlburt", + title = "The grid: {A} modular system for the design and + production of newspapers, magazines, and books", + publisher = pub-VNR, + address = pub-VNR:adr, + pages = "96", + year = "1978", + ISBN = "0-442-23598-4", + ISBN-13 = "978-0-442-23598-7", + LCCN = "Z246 .H82", + bibdate = "Fri Jul 22 11:15:07 1994", + price = "US\$15.00", + acknowledgement = ack-fm, + annote = "Explains reasons for the use of grid systems in the + design of newspapers, magazines, and books. It contains + many examples, actual layouts and their underlying + grids. (FMi)\par A complete introduction to using grids + in newspaper, magazine, and book design. (RRu)", + keywords = "layout, design, typography, grids", +} + +@Book{Ibrus:1992:VET, + author = "Hans Ibrus", + title = "{V\"aike Eesti {\TeX}iraamat}", + publisher = pub-KOMPUT, + address = pub-KOMPUT:adr, + pages = "144", + year = "1992", + bibdate = "Tue Jul 26 08:39:56 1994", + note = "In Estonian. Appendix A is a translation into Estonian + of \cite{Samuel:1983:FGT}.", + acknowledgement = ack-bnb, +} + +@Manual{Ikarus:1983:ITD, + key = "Ikarus", + title = "{IKARUS} for Typefaces in Digital Form", + organization = "URW Unternehmensberatung Karow Rubow Weber GMBH", + address = "Hamburg, Germany", + year = "1983", + bibdate = "Sat Feb 10 16:16:21 1996", + acknowledgement = ack-hk, +} + +@TechReport{Incerpi:1986:GFT, + author = "Janet Incerpi and Francis Montagnac", + title = "Getting Faster {\TeX} Output. Using the {DVI} + Library", + type = "Rapports Techniques", + number = "71", + institution = pub-INRIA, + address = pub-INRIA:adr, + month = jul, + year = "1986", + bibdate = "Sat Feb 10 08:46:31 1996", + acknowledgement = ack-hk, +} + +@InCollection{Incerpi:1986:UDL, + author = "Janet Incerpi and Francis Montagnac", + booktitle = "Getting Faster {\TeX} Output", + title = "Using the {DVI} Library", + publisher = pub-INRIA, + address = pub-INRIA:adr, + year = "1986", + bibdate = "Sat Feb 10 08:46:33 1996", + acknowledgement = ack-hk, +} + +@Article{Ion:1988:TEU, + author = "P. D. F. Ion and B. D. R. Ion", + title = "{\TeX} and its uses for information presentation", + journal = "Bulletin of the American Society for Information + Science", + volume = "14", + number = "4", + pages = "21--22", + month = apr # "-" # may, + year = "1988", + CODEN = "BASIC", + ISSN = "0095-4403", + bibdate = "Tue Sep 06 17:52:00 1994", + abstract = "Desktop publishing is becoming a significant business. + Already on the market are several systems that are easy + to use and produce quite acceptable output; other + systems available are much harder to use, but provide + much greater flexibility and more sophisticated output. + The article focuses on the desktop publishing system + {\TeX}, suitable for the more advanced user. (0 + Refs.)", + acknowledgement = ack-nhfb, + classification = "C6130 (Data handling techniques); C7108 (Desktop + publishing)", + keywords = "Desktop publishing system; Document compiler; + Information presentation; TEX", + thesaurus = "Desktop publishing; Technical presentation; Text + editing", +} + +@Article{Iseri:1989:GPP, + author = "M. Iseri and T. Ohno", + title = "General purpose page composition language---{\TeX}", + journal = "Journal of the Society of Instrument and Control + Engineers", + volume = "28", + number = "3", + pages = "213--217", + month = mar, + year = "1989", + CODEN = "KESEA", + ISSN = "0453-4662", + bibdate = "Wed Aug 31 00:54:39 MDT 1994", + abstract = "Introduces a page composition language for technical + document preparation called {\TeX} which was developed + by D. Knuth of Stanford University. Its development + background, characteristics, {\TeX} family and + functions are described using some examples. Among its + Japanese versions is `Japanese Language Micro{\TeX}' by + ASCII which was designed for use with the hardware + system consisting of NEC 9801 (MS/DOS) and Canon's + laser printer. The price of this software including a + printer driver is 132000 yen (where the driver costs + 34000 yen). The following matters are also discussed: a + simple processing example for preparing documents using + {\TeX}; various advantages in using {\TeX} (e.g. {\TeX} + is a PDS); wide choice in applicable computer models + from super computer to IBM-PC or NEC 9801 (due to its + device independent nature); and the specification and + the application example of Japanese language + Micro{\TeX}. (3 Refs.)", + acknowledgement = ack-nhfb, + classification = "C7108 (Desktop publishing); C7230 (Publishing and + reproduction)", + keywords = "Desktop publishing; General purpose page composition + language; Japanese Language MicroTEX; Japanese + versions; NEC 9801; Page composition language; + Technical document preparation; TeX", + language = "Japanese", + thesaurus = "Desktop publishing; Microcomputer applications; NEC + computers; Software packages", +} + +@Article{Iseri:1990:PVD, + author = "M. Iseri", + title = "A publisher's view of {DTP}", + journal = j-J-INFO-PROC, + volume = "31", + number = "11", + pages = "1501--1507", + month = "", + year = "1990", + CODEN = "JOSHA", + ISSN = "0447-8053", + bibdate = "Thu Sep 01 00:54:51 1994", + abstract = "The author discusses: the Editor's Workbench; the + Writer's Workbench; PostScript; SGML; {\TeX}; + Illustrator; and Linotronic. (7 Refs.)", + acknowledgement = ack-nhfb, + classification = "C7108 (Desktop publishing)", + keywords = "DTP; Editor's Workbench; Illustrator; Linotronic; + PostScript; Publisher's view; SGML; TEX; Writer's + Workbench", + language = "Japanese", + thesaurus = "Desktop publishing", +} + +@Book{ITUG:2003:LRM, + author = "{The Indian {\TeX} Users Group}", + title = "The {\LaTeX} Reference Manual", + publisher = pub-GNU-PRESS, + address = pub-GNU-PRESS:adr, + pages = "250 (est.)", + year = "2003", + ISBN = "1-882114-70-1", + ISBN-13 = "978-1-882114-70-2", + LCCN = "????", + bibdate = "Wed Jun 11 16:16:53 2003", + price = "US\$40.00 (est.)", + URL = "http://www.gnupress.org/book15.html", + acknowledgement = ack-nhfb, +} + +@Unpublished{Jackowski:1988:TPF, + author = "Bogus{\l}aw Jackowski and Tomasz Ho{\l}dys and Marek + Ry\'{cko}", + title = "With {\TeX} to the {Poles}: a few parochial remarks on + using {\TeX} by the non-{English}", + year = "1988", + bibdate = "Tue Mar 1 12:52:14 1994", + note = "Anima Ltd, Gda\'{nsk}", + acknowledgement = ack-hk, +} + +@InProceedings{Jackowski:1992:PTR, + author = "Boguslav Jackowski and Market Ry{\'c}ko", + title = "Polishing {\TeX}: from ready to use to handy in use", + crossref = "Zlatuska:1992:EPE", + pages = "119--134", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + acknowledgement = ack-nhfb, +} + +@Booklet{Jackowski:1993:MZP, + author = "Bogus{\l}aw Jackowski", + title = "Metafont: zastosowania praktyczne i niepraktyczne", + howpublished = "broszura z konferencji cz{\l}onk{\'o}w GUSTu", + address = "Bachotek", + year = "1993", + bibdate = "Thu Jun 23 18:19:41 1994", + note = "In Polish.", + acknowledgement = ack-md, + address-l = lang-pl, + author-l = lang-pl, + howpublished-l = lang-pl, + title-l = lang-pl, +} + +@Article{Jackson:1994:WHN, + author = "Allyn Jackson", + title = "{\em What's Happening\/}: New Publication Takes the + {AMS} in New Direction", + journal = j-NAMS, + volume = "41", + number = "6", + pages = "626--627", + month = jul # "\slash{}" # aug, + year = "1994", + ISSN = "0002-9920", + bibdate = "Thu Dec 29 10:54:00 1994", + acknowledgement = ack-ps, +} + +@InProceedings{Janson:1986:TTP, + author = "B. J. Janson", + editor = "Constance U. Greaser and Ethel G. Langlois", + booktitle = "Seeking scholarly perspectives: Proc. of the Eighth + Annual Meeting of the Society for Scholarly + Publishing", + title = "Technical typesetting: {A} publisher's view", + publisher = pub-SOC-SCHOL-PUB, + address = pub-SOC-SCHOL-PUB:adr, + pages = "66--68", + year = "1986", + bibdate = "Tue Jul 26 09:18:32 1994", + price = "US\$15.00", + acknowledgement = ack-nhfb, + bookpages = "86", + procdate = "May 28--30, 1986", + procloc = "San Francisco, CA", + subject = "I.7.2 Computing Methodologies, TEXT PROCESSING, + Document Preparation \\ J.7 Computer Applications, + COMPUTERS IN OTHER SYSTEMS, Publishing", +} + +@Book{Johnstone:1992:LC, + author = "Adrian Johnstone", + title = "{\LaTeX}, Concisely", + publisher = pub-ELLIS-HORWOOD, + address = pub-ELLIS-HORWOOD:adr, + pages = "xviii + 170", + year = "1992", + ISBN = "0-13-524539-7", + ISBN-13 = "978-0-13-524539-2", + LCCN = "Z253.4.L38 J64 1992", + bibdate = "Wed Jul 6 14:01:03 1994", + price = "US\$30.00", + acknowledgement = ack-nhfb, +} + +@InProceedings{Jurriens:1992:TE, + author = "Theo Jurriens", + title = "{\TeX} for everybody?", + crossref = "Zlatuska:1992:EPE", + pages = "86--86", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + acknowledgement = ack-nhfb, +} + +@InProceedings{Kanai:1991:TLE, + author = "J. Kanai", + editor = "A. Lichnerowicz", + booktitle = "Intelligent Text and Image Handling: Proceedings of a + Conference on Intelligent Text and Image Handling `RIAO + 91', Barcelona, Spain, 2--5 April 1991", + title = "Text line extraction and baseline detection", + publisher = pub-ELS, + address = pub-ELS:adr, + pages = "194--210", + month = apr, + year = "1991", + ISBN = "0-444-89361-X", + ISBN-13 = "978-0-444-89361-1", + LCCN = "QA76.9.T48 C66 199", + bibdate = "Sat Sep 17 11:20:14 1994", + abstract = "A hypothesis-driven analysis of text regions in + document images is presented. It is assumed that + document images are constructed by the {\TeX} imaging + model (the boxes and glue model) and the author + introduces the box representation of a printed symbol + called character prototype. The algorithm estimates the + location of an hbox (line of text) in a vbox (column of + text). This hypothesis is accepted if most connected + components in the hbox form character boxes. Character + prototypes are used to determine whether a box in an + hbox is a character box. The algorithm correctly + extracted an average of 96--99 percent of text-lines + from digitized text-columns written in English. The + character prototype scheme also accurately represented + the Japanese alphabet, Chinese characters, and Bengali + words, and text-lines were correctly extracted from + documents written in these languages. (12 Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Dept. of Electr., Comput. and Syst. Eng., Rensselaer + Polytech. Inst., Troy, NY, USA", + bookpages = "xiii + 999", + classification = "C5260B (Computer vision and picture processing); + C7230 (Publishing and reproduction); C7820 + (Humanities)", + confdate = "2--5 April 1991", + conflocation = "Barcelona, Spain", + confsponsor = "Comm. Eur. Communities; Minist. Educ. Sci. Spain; + Univ. Autonoma Barcelona; et al", + keywords = "Bengali words; Box representation; Character boxes; + Character prototype; Chinese characters; Digitized + text-columns; Document images; English; Glue model; + Hypothesis-driven analysis; Japanese alphabet; Printed + symbol; TeX imaging model; Text-lines", + thesaurus = "Computer controlled typesetting; Computerised picture + processing; Linguistics; Word processing", +} + +@Book{Karow:1986:DSS, + author = "Peter Karow", + title = "{Digitale Speicherung von Schriften}", + publisher = pub-URW, + address = pub-URW:adr, + pages = "331", + year = "1986", + ISBN = "3-926515-00-7", + ISBN-13 = "978-3-926515-00-1", + LCCN = "", + bibdate = "Sat Mar 07 09:12:29 1998", + acknowledgement = ack-nhfb, +} + +@Book{Karow:1987:DFT, + author = "Peter Karow", + title = "Digital Formats for Typefaces", + publisher = pub-URW, + address = pub-URW:adr, + pages = "400", + year = "1987", + ISBN = "3-926515-01-5", + ISBN-13 = "978-3-926515-01-8", + LCCN = "Z253.3 .K371 1987", + bibdate = "Fri Jul 22 09:01:47 1994", +} + +@Book{Karow:1989:SND, + author = "Peter Karow", + title = "Shotai-no-dijitaru-fomatto", + publisher = pub-URW, + address = pub-URW:adr, + pages = "436", + year = "1989", + ISBN = "3-926515-00-7 (Hamburg), 4-946454-01-2 (Japan)", + ISBN-13 = "978-3-926515-00-1 (Hamburg), 978-4-946454-01-1 + (Japan)", + LCCN = "????", + bibdate = "Sat Mar 07 09:14:13 1998", + note = "In Japanese.", + acknowledgement = ack-nhfb, +} + +@Book{Karow:1992:DSD, + author = "Peter Karow", + title = "{Digitale Schriften, Darstellung und Formate, + Geleitwort von Hermann Zapf (German) [Digital Fonts, + Representation and Formats, Forward by Hermann Zapf]}", + publisher = pub-SV # " and " # pub-URW, + address = pub-SV:adr # " and " # pub-URW:adr, + pages = "xiii + 457, with 230 illustrations", + year = "1992", + ISBN = "3-540-54917-X", + ISBN-13 = "978-3-540-54917-8", + LCCN = "????", + bibdate = "Fri Dec 18 11:12:49 1998", + acknowledgement = ack-bnb # " and " # ack-ps, +} + +@Book{Karow:1992:S, + author = "Peter Karow", + title = "Schriftstatistik", + publisher = pub-URW, + address = pub-URW:adr, + pages = "347", + year = "1992", + ISBN = "3-926515-07-4", + ISBN-13 = "978-3-926515-07-0", + LCCN = "????", + bibdate = "Sat Mar 07 09:09:13 1998", + acknowledgement = ack-nhfb, +} + +@Book{Karow:1992:SMW, + author = "Peter Karow", + title = "Schrifttechnologie: Methoden und Werkzeuge", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xvi + 460", + year = "1992", + ISBN = "3-540-54918-8", + ISBN-13 = "978-3-540-54918-5", + LCCN = "????", + bibdate = "Sat Mar 07 09:11:08 1998", + acknowledgement = ack-nhfb, +} + +@Book{Karow:1994:DTD, + author = "Peter Karow", + title = "Digital Typefaces: Description and Formats", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xiii + 448", + year = "1994", + ISBN = "3-540-56509-4", + ISBN-13 = "978-3-540-56509-3", + LCCN = "Z250.7 .K37 1994", + bibdate = "Mon Sep 05 22:16:35 1994", + price = "US\$89.00", + acknowledgement = ack-nhfb, +} + +@Book{Karow:1994:FTM, + author = "Peter Karow", + title = "Font Technology: Methods and Tools", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xvi + 457", + year = "1994", + ISBN = "0-387-57223-6 (New York), 3-540-57223-6 (Berlin)", + ISBN-13 = "978-0-387-57223-9 (New York), 978-3-540-57223-7 + (Berlin)", + LCCN = "Z250.7.K3813 1994", + bibdate = "Sat Mar 07 09:06:40 1998", + note = "Foreword by Gerard Unger.", + price = "US\$79.00", + acknowledgement = ack-nhfb, + xxtitle = "Font Technology: Description and Tools", +} + +@Book{Karow:1994:UEL, + author = "Peter Karow", + title = "{URW} EuroWorks: 500 Latin fonts for Europe", + publisher = pub-URW, + address = pub-URW:adr, + pages = "216", + year = "1994", + ISBN = "3-926515-11-2", + ISBN-13 = "978-3-926515-11-7", + LCCN = "????", + bibdate = "Sat Mar 07 09:07:20 1998", + acknowledgement = ack-nhfb, +} + +@Book{Katzenbeisser:1993:ET, + author = "Stefan Katzenbeisser", + title = "Einf{\"u}hrung in {\TeX}", + publisher = pub-OLDENBOURG, + address = pub-OLDENBOURG:adr, + edition = "Second", + pages = "108", + year = "1993", + ISBN = "3-486-22682-7", + ISBN-13 = "978-3-486-22682-9", + LCCN = "", + bibdate = "Sat Mar 07 09:19:20 1998", + price = "29,80 DM", + acknowledgement = ack-nhfb, + acknowledgement = ack-rz # " and " # ack-nhfb, + xxnote = "When did first edition appear?? Some libraries list + this as a second edition, and others as a first + edition.", +} + +@Book{Katzenbeisser:1997:IDE, + author = "Stefan Katzenbeisser", + title = "{Von der Idee zum Dokument: Einf{\"u}hrung in {\TeX} + und {\LaTeX}}", + publisher = pub-OLDENBOURG, + address = pub-OLDENBOURG:adr, + edition = "Second", + pages = "222", + year = "1997", + ISBN = "3-486-24182-6", + ISBN-13 = "978-3-486-24182-2", + LCCN = "", + bibdate = "Sat Mar 07 09:23:09 1998", + price = "DM 68,00", + acknowledgement = ack-nhfb, +} + +@InProceedings{Keller:1985:TA, + author = "Arthur M. Keller", + title = "Typesetting by Authors", + crossref = "Lucarella:1985:PFE", + pages = "1--14", + year = "1985", + bibdate = "Sat Mar 07 09:18:50 1998", + acknowledgement = ack-hk, +} + +@Book{Kellerman:1987:TPT, + author = "David Kellerman and Barry Smith", + title = "{\TeX{}TURES}: Professional Typesetting for the + Macintosh: User's Guide", + publisher = pub-AW, + address = pub-AW:adr, + pages = "123", + year = "1987", + ISBN = "0-201-17221-6", + ISBN-13 = "978-0-201-17221-8", + LCCN = "Z253.4.T47 U85 1987", + bibdate = "Mon Jul 25 12:05:51 1994", + acknowledgement = ack-nhfb, + keywords = "documentation; languages", + subject = "I.7.2 Computing Methodologies, TEXT PROCESSING, + Document Preparation \\ J.7 Computer Applications, + COMPUTERS IN OTHER SYSTEMS, Publishing \\ I.7.1 + Computing Methodologies, TEXT PROCESSING, Text + Editing", +} + +@Article{Kendall:1985:IOC, + author = "M. Kendall and A. Reed", + title = "Introduction of an on-line computer typesetting + service", + journal = j-UNIV-COMP, + volume = "7", + number = "3", + pages = "134--138", + month = "Winter", + year = "1985", + CODEN = "UNCOE", + ISSN = "0265-4385", + bibdate = "Mon Jul 25 08:37:04 MDT 1994", + acknowledgement = ack-nhfb, + keywords = "human factors", + subject = "I.7 Computing Methodologies, TEXT PROCESSING, + Miscellaneous \\ J.1 Computer Applications, + ADMINISTRATIVE DATA PROCESSING, Education \\ H.1.2 + Information Systems, MODELS AND PRINCIPLES, + User/Machine Systems, Human factors", +} + +@Article{Kernighan:1975:STM, + author = "Brian W. Kernighan and Lorinda L. Cherry", + title = "A System for Typesetting Mathematics", + journal = j-CACM, + volume = "18", + number = "3", + pages = "151--157", + year = "1975", + CODEN = "CACMA2", + ISSN = "0001-0782", + bibdate = "Sat Aug 27 16:52:49 1994", + acknowledgement = ack-nhfb, + keywords = "cacm acm", +} + +@Article{Kernighan:1978:DP, + author = "B. W. Kernighan and M. E. Lesk and J. F. {Ossanna, + Jr.}", + title = "Document preparation", + journal = j-BSTJ, + volume = "57", + number = "2", + pages = "2115--2135", + year = "1978", + bibdate = "Sat Aug 27 17:06:25 1994", + acknowledgement = ack-nhfb, +} + +@Article{Kernighan:1978:UTS, + author = "B. W. Kernighan and M. E. Lesk and J. F. Ossanna", + title = "{UNIX} Time-Sharing System: Document Preparation", + journal = j-BSTJ, + volume = "57", + number = "6", + pages = "2115--2135", + year = "1978", + bibdate = "Sat Aug 27 17:06:33 1994", + acknowledgement = ack-nhfb, + keywords = "unix bstj", +} + +@Article{Kernighan:1981:BRM, + author = "B. W. Kernighan", + title = "Book Review: ``{TEX} \& Metafont: New Directions in + Typesetting''", + journal = j-COMP-REV, + year = "1981", + bibdate = "Sat Aug 27 17:06:46 1994", + acknowledgement = ack-nhfb, +} + +@InProceedings{Kernighan:1981:PLT, + author = "B. W. Kernighan", + title = "{PIC}: {A} Language for Typesetting Graphics", + crossref = "ACM:1981:ASS", + pages = "92--96", + year = "1981", + bibdate = "Mon Jul 25 08:37:04 MDT 1994", + acknowledgement = ack-nhfb, + keywords = "design; languages", + subject = "I.7.2 Computing Methodologies, TEXT PROCESSING, + Document Preparation, Languages", +} + +@InProceedings{Kernighan:1981:TMT, + author = "B. W. Kernighan", + booktitle = "IBM Conference on Text Processing", + title = "Typesetting Mathematics, Tables, and Diagrams", + publisher = "????", + address = "Bad Neuenahr, Germany", + month = sep, + year = "1981", + bibdate = "Thu Dec 29 11:12:02 1994", + note = "Reprinted in Oldenbourg Verlag, Munich, 1982", + acknowledgement = ack-nhfb, +} + +@Article{Kernighan:1982:PLT, + author = "B. W. Kernighan", + title = "{PIC}: {A} Language for Typesetting Graphics", + journal = j-SPE, + volume = "12", + number = "1", + pages = "1--21", + month = jan, + year = "1982", + CODEN = "SPEXBL", + ISSN = "0038-0644", + bibdate = "Tue Sep 06 21:37:43 1994", + acknowledgement = ack-nhfb, + subject = "I.3.4 Computing Methodologies, COMPUTER GRAPHICS, + Graphics Utilities, Picture description languages \\ + I.7 Computing Methodologies, TEXT PROCESSING, Document + Preparation", +} + +@InCollection{Kernighan:1982:UDP, + author = "B. W. Kernighan and M. E. Lesk", + title = "{UNIX} document preparation", + crossref = "Nievergelt:1982:DPS", + pages = "1--20", + year = "1982", + bibdate = "Mon Aug 22 14:25:07 1994", + acknowledgement = ack-nhfb, + keywords = "documentation; languages", + review = "ACM CR 40430", + subject = "D.4.0 Software, OPERATING SYSTEMS, General, UNIX \\ + I.7 Computing Methodologies, TEXT PROCESSING, Text + Editing \\ I.7 Computing Methodologies, TEXT + PROCESSING, Document Preparation", +} + +@InProceedings{Kernighan:1984:UDP, + author = "B. W. Kernighan", + title = "The {Unix} Document Preparation Tools \emdash{ A} + Retrospective", + crossref = "Miller:1984:PPF", + year = "1984", + bibdate = "Sat Aug 27 17:00:38 1994", + acknowledgement = ack-nhfb, +} + +@InProceedings{Kernighan:1985:RWU, + author = "B. W. Kernighan", + booktitle = "Proceedings of the European UNIX Users Group + Conference, September, Copenhagen, Denmark", + title = "Recent Work in {Unix} Document Preparation Tools", + publisher = pub-EUUG, + address = pub-EUUG:adr, + pages = "??--??", + month = sep, + year = "1985", + bibdate = "Sat Feb 10 15:31:09 1996", + acknowledgement = ack-nhfb, +} + +@Article{Kernighan:1989:PMP, + author = "Brian W. Kernighan and Christopher J. Van Wyk", + title = "Page Makeup by Postprocessing Text Formatter Output", + journal = j-COMP-SYS, + volume = "2", + number = "2", + pages = "103--132", + month = "Spring", + year = "1989", + CODEN = "CMSYE2", + ISSN = "0895-6340", + bibdate = "Fri Sep 13 08:53:14 MDT 1996", + acknowledgement = ack-nhfb, + affiliation = "AT and T Bell Labs., Murray Hill, NJ, USA", + classification = "C6130 (Data handling techniques); C7108 (Desktop + publishing); C7230 (Publishing and reproduction)", + keywords = "Footnotes; Orphan lines; Page layouts; Page makeup; + Postprocessing; Postprocessor; TROFF text formation; + Widow lines", + thesaurus = "Desktop publishing; Printing industry; Text editing", +} + +@Article{Kernighan:1989:USD, + author = "B. W. Kernighan", + title = "The {UNIX} System Document Preparation Tools: {A} + Retrospective", + journal = j-ATT-TECH-J, + volume = "68", + number = "4", + pages = "5--20", + month = aug, + year = "1989", + ISSN = "8756-2324", + bibdate = "Sat Aug 27 17:01:14 1994", + acknowledgement = ack-nhfb, +} + +@InProceedings{Kernighan:1990:ITD, + author = "B. W. Kernighan", + title = "Issues and Tradeoffs in Document Preparation Systems", + crossref = "Furuta:1990:PIC", + pages = "1--16", + year = "1990", + bibdate = "Sat Aug 27 17:04:54 1994", + acknowledgement = ack-nhfb, +} + +@InProceedings{Khodulev:1992:TEM, + author = "Andrei B. Khodulev and Irina A. Makhovaya", + title = "On {\TeX} experience in {Mir Publishers}", + crossref = "Zlatuska:1992:EPE", + pages = "37--42", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + acknowledgement = ack-nhfb, +} + +@Article{Kim:1989:MFG, + author = "Cha Jong Kim and Han Jong Kang and Soo Youn Lee", + title = "A multipurpose font generation system", + journal = j-J-KOREA-INFO-SCI-SOCIETY, + volume = "16", + number = "5", + pages = "422--433", + month = sep, + year = "1989", + CODEN = "HJKHD", + ISSN = "0258-9125", + bibdate = "Mon Oct 24 12:44:52 MDT 1994", + abstract = "An interactive graphics system designed for the + device-independent generation of a multipurpose font is + described. Input methods include an interactive + abstraction of the contour from bit patterns of an + image scanner and an automatic composition of Hangul + from its character elements. PostScript (a page + description language) formatted outputs are adopted to + effectively support output devices such as LBP and + Display PostScript. Logical screen, multilevel + adjustment and conversion algorithm from Bezier curve + to polyline, etc. are introduced to obtain a good + quality Hangul Metafont with a friendly user interface. + (13 Refs.)", + acknowledgement = ack-nhfb, + classification = "C6130B (Graphics techniques); C6130D (Document + processing techniques)", + keywords = "Automatic composition; Bezier curve; Bit patterns; + Character elements; Conversion algorithm; + Device-independent generation; Display PostScript; + Friendly user interface; Hangul Metafont; Image + scanner; Interactive abstraction; Interactive graphics + system; LBP; Logical screen; Multilevel adjustment; + Multipurpose font generation system; Output devices; + Page description language; Polyline; PostScript + formatted outputs", + language = "Korean", + pubcountry = "South Korea", + thesaurus = "Character sets; Computer graphics; Interactive + systems; Text editing", +} + +@Book{Klockl:2002:LTT, + author = "Ingo Kl{\"o}ckl", + title = "{\LaTeX{} --- Tipps und Tricks: Layoutanpassung, + Programmierung, Grafik, Hilfsprogramme, + Zeichens{\"a}tze}", + publisher = pub-DPUNKT-PRO, + address = pub-DPUNKT-PRO:adr, + edition = "Second", + pages = "x + 606", + year = "2002", + ISBN = "3-89864-145-7", + ISBN-13 = "978-3-89864-145-6", + LCCN = "????", + bibdate = "Mon Jul 07 06:42:15 2003", + price = "80 SFR, 49 EUR", + acknowledgement = ack-nhfb, +} + +@InProceedings{Knappen:1992:CAM, + author = "J{\"o}rg Knappen", + title = "Changing the appearance of math", + crossref = "Zlatuska:1992:EPE", + pages = "212--216", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + acknowledgement = ack-nhfb, +} + +@Book{Knappen:1997:SAZ, + author = "J{\"o}rg Knappen", + title = "Schnell ans Ziel mit {\LaTeXe}", + publisher = pub-OLDENBOURG, + address = pub-OLDENBOURG:adr, + pages = "xx + 187", + year = "1997", + ISBN = "3-486-24199-0", + ISBN-13 = "978-3-486-24199-0", + LCCN = "", + bibdate = "Sat Mar 07 09:28:43 1998", + price = "DM 48,00", + acknowledgement = ack-nhfb, +} + +@TechReport{Knuth:1978:MT, + author = "Donald E. Knuth", + title = "Mathematical Typography", + number = "STAN-CS-78-648", + institution = inst-STANFORD, + address = inst-STANFORD:adr, + month = feb, + year = "1978", + bibdate = "Sat Feb 10 14:55:46 1996", + note = "Also published as \cite{Knuth:1979:MT}.", +} + +@TechReport{Knuth:1978:TEC, + author = "Donald E. Knuth", + title = "{TAU EPSILON CHI}. {A} System for Technical Text", + type = "Report", + number = "STAN-CS-78-675", + institution = inst-STAN-CS, + address = inst-STAN-CS:adr, + year = "1978", + bibdate = "Sat Feb 10 14:55:53 1996", + acknowledgement = ack-hk, +} + +@Article{Knuth:1979:LS, + author = "Donald E. Knuth", + title = "The Letter {S}", + journal = j-MATHINTEL, + volume = "2", + number = "3", + pages = "114--122", + year = "1979, 1980", + bibdate = "Sat Aug 13 10:22:12 1994", + note = "Also published as \cite{Knuth:1980:LS}.", +} + +@TechReport{Knuth:1979:MSA, + author = "Donald E. Knuth", + title = "{Metafont} --- {A} System for Alphabet Design", + type = "Report", + number = "STAN-CS-79-762", + institution = inst-STAN-CS, + address = inst-STAN-CS:adr, + year = "1979", + bibdate = "Sat Feb 10 14:55:59 1996", + acknowledgement = ack-hk, +} + +@Article{Knuth:1979:MT, + author = "Donald E. Knuth", + title = "Mathematical Typography", + journal = j-BAMSN, + volume = "1", + pages = "337--372", + month = mar, + year = "1979", + bibdate = "Wed Mar 10 11:19:57 1993", + note = "Also published as a Stanford CS Report, + STAN-CS-78-648", + acknowledgement = ack-bnb, +} + +@Book{Knuth:1979:TMN, + author = "Donald E. Knuth", + title = "{\TeX} and {\METAFONT}\emdash New Directions in + Typesetting", + publisher = pub-DP, + address = pub-DP:adr, + pages = "xi + 201 + 105", + year = "1979", + ISBN = "0-932376-02-9", + ISBN-13 = "978-0-932376-02-2", + LCCN = "Z253.3 .K58 1979", + bibdate = "Wed Dec 15 10:37:42 1993", +} + +@TechReport{Knuth:1980:CMF, + author = "Donald E. Knuth", + title = "The {Computer Modern} Family of Typefaces", + type = "Report", + number = "STAN-CS-80-780", + institution = inst-STAN-CS, + address = inst-STAN-CS:adr, + year = "1980", + bibdate = "Sat Feb 10 14:56:10 1996", + acknowledgement = ack-hk, +} + +@TechReport{Knuth:1980:LS, + author = "Donald E. Knuth", + title = "The Letter {S}", + number = "STAN-CS-80-795", + institution = inst-STANFORD, + address = inst-STANFORD:adr, + month = apr, + year = "1980", + bibdate = "Sat Feb 10 14:56:19 1996", + note = "Also published as \cite{Knuth:1979:LS}.", +} + +@Article{Knuth:1981:BPL, + author = "Donald E. Knuth and Michael F. Plass", + title = "Breaking Paragraphs into Lines", + journal = j-SPE, + volume = "11", + number = "11", + pages = "1119--1184", + month = nov, + year = "1981", + CODEN = "SPEXBL", + ISSN = "0038-0644", + bibdate = "Mon Jul 25 11:30:03 1994", + acknowledgement = ack-hk, + keywords = "algorithms; design", + review = "ACM CR 39160", + subject = "I.7 Computing Methodologies, TEXT PROCESSING, Document + Preparation", +} + +@TechReport{Knuth:1981:CMF, + author = "Donald E. Knuth", + title = "The Concept of a Meta-Font", + number = "STAN-CS-81-886", + institution = inst-STANFORD, + address = inst-STANFORD:adr, + month = oct, + year = "1981", + bibdate = "Tue Mar 1 12:53:48 1994", +} + +@Article{Knuth:1982:CMF, + author = "Donald E. Knuth", + title = "The {Concept} of a {Meta-Font}", + journal = j-VL, + volume = "16", + number = "1", + pages = "3--27", + month = "winter", + year = "1982", + acknowledgement = ack-hk, +} + +@Book{Knuth:1982:T, + author = "Donald E. Knuth", + title = "{\TeX}82", + publisher = inst-STANFORD, + address = inst-STANFORD:adr, + year = "1982", + bibdate = "Sat Mar 12 18:14:53 1994", + acknowledgement = ack-hk, +} + +@Book{Knuth:1982:TFT, + author = "Donald E. Knuth", + title = "A test file for {\TeX}", + publisher = inst-STANFORD, + address = inst-STANFORD:adr, + year = "1982", + bibdate = "Sat Mar 12 18:15:05 1994", + acknowledgement = ack-hk, +} + +@Book{Knuth:1982:TV, + author = "Donald E. Knuth", + title = "{\TeX}ware (version 1)", + publisher = inst-STANFORD, + address = inst-STANFORD:adr, + year = "1982", + bibdate = "Sat Mar 12 18:14:56 1994", + acknowledgement = ack-hk, +} + +@Book{Knuth:1982:WSS, + author = "Donald E. Knuth", + title = "The {WEB} System of Structured Documentation---Version + 1", + publisher = inst-STANFORD, + address = inst-STANFORD:adr, + year = "1982", + bibdate = "Sat Mar 12 18:15:11 1994", + acknowledgement = ack-hk, +} + +@TechReport{Knuth:1983:LLM, + author = "Donald E. Knuth", + title = "Lessons Learned from {\METAFONT}", + type = "Report", + number = "STAN-CS-83-978", + institution = inst-STAN-CS, + address = inst-STAN-CS:adr, + year = "1983", + bibdate = "Tue Mar 1 12:53:50 1994", + acknowledgement = ack-hk, +} + +@TechReport{Knuth:1983:LP, + author = "Donald E. Knuth", + title = "Literate Programming", + type = "Report", + number = "STAN-CS-83-981", + institution = inst-STAN-CS, + address = inst-STAN-CS:adr, + year = "1983", + bibdate = "Sat Feb 10 14:57:37 1996", + acknowledgement = ack-hk, +} + +@TechReport{Knuth:1983:WSS, + author = "Donald E. Knuth", + title = "The {WEB System} of {Structured} + {Documentation}---ver.2.3", + type = "Report", + number = "STAN-CS-83-980", + institution = inst-STAN-CS, + address = inst-STAN-CS:adr, + year = "1983", + bibdate = "Sat Feb 10 14:57:45 1996", + acknowledgement = ack-hk, +} + +@Article{Knuth:1984:LP, + author = "Donald E. Knuth", + title = "Literate Programming", + journal = j-CJ, + volume = "27", + number = "2", + pages = "97--111", + month = may, + year = "1984", + CODEN = "CMPJA", + bibdate = "Mon Jul 25 08:37:04 MDT 1994", + acknowledgement = ack-nhfb, + keywords = "design; human factors; languages", + review = "ACM CR 8501-0018", + subject = "D.2.7 Software, SOFTWARE ENGINEERING, Distribution and + Maintenance, Documentation \\ I.7.1 Computing + Methodologies, TEXT PROCESSING, Text Editing, Languages + \\ H.1.2 Information Systems, MODELS AND PRINCIPLES, + User/Machine Systems, Human factors \\ D.3 Software, + PROGRAMMING LANGUAGES, Language Constructs \\ I.7.1 + Computing Methodologies, TEXT PROCESSING, Text Editing, + WEB", +} + +@Book{Knuth:1984:TB, + author = "Donald E. Knuth", + title = "The {\TeX}book", + publisher = pub-AW, + address = pub-AW:adr, + pages = "ix + 483", + year = "1984", + ISBN = "0-201-13448-9 (paperback), 0-201-13447-0 (hardcover)", + ISBN-13 = "978-0-201-13448-3 (paperback), 978-0-201-13447-6 + (hardcover)", + LCCN = "Z253.4.T47 K58 1984", + bibdate = "Fri Jul 22 09:08:51 1994", + price = "US\$15.95 (paperback), US\$32.95 (hardcover)", +} + +@TechReport{Knuth:1984:TTT, + author = "Donald E. Knuth", + title = "A torture test for {\TeX}", + type = "Report", + number = "STAN-CS-84-1027", + institution = inst-STAN-CS, + address = inst-STAN-CS:adr, + year = "1984", + bibdate = "Sat Feb 10 14:57:51 1996", + acknowledgement = ack-hk, +} + +@InProceedings{Knuth:1985:CM, + author = "Donald E. Knuth", + title = "Le concept de {Metafonte}", + crossref = "Andre:1985:TIJ", + pages = "119--132", + year = "1985", + bibdate = "Tue Mar 1 12:52:49 1994", + note = "Przedruk z ``Communication et langages'' no. 55 (1983) + pp. 40--53", + acknowledgement = ack-hk, +} + +@Book{Knuth:1986:CMT, + author = "Donald E. Knuth", + title = "Computer Modern Typefaces", + volume = "E", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xv + 588", + year = "{\noopsort{1986e}}1986", + ISBN = "0-201-13446-2", + ISBN-13 = "978-0-201-13446-9", + LCCN = "Z250.8.M46 K574 1986", + bibdate = "Fri Jul 22 09:06:29 1994", + series = "Computers and Typesetting", +} + +@Book{Knuth:1986:MB, + author = "Donald E. Knuth", + title = "The {\METAFONT}book", + volume = "C", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xi + 361", + year = "{\noopsort{1986c}}1986", + ISBN = "0-201-13445-4 (hardcover), 0-201-13444-6 (paperback)", + ISBN-13 = "978-0-201-13445-2 (hardcover), 978-0-201-13444-5 + (paperback)", + LCCN = "Z250.8.M46 K58 1986", + bibdate = "Fri Jul 22 09:06:26 1994", + price = "US\$32.95 (hardcover), US\$16.95 (paperback)", + series = "Computers and Typesetting", + keywords = "design; languages", + review = "ACM CR 9004-0282", + subject = "I.7.2 Computing Methodologies, TEXT PROCESSING, + Document Preparation, Metafont", +} + +@Book{Knuth:1986:MP, + author = "Donald E. Knuth", + title = "{\METAFONT}: The Program", + volume = "D", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xv + 560", + year = "{\noopsort{1986d}}1986", + ISBN = "0-201-13438-1", + ISBN-13 = "978-0-201-13438-4", + LCCN = "Z250.8.M46 K578 1986", + bibdate = "Fri Jul 22 09:06:27 1994", + price = "US\$32.95", + series = "Computers and Typesetting", +} + +@TechReport{Knuth:1986:T, + author = "Donald E. Knuth", + title = "{\TeX}ware", + type = "Report", + number = "STAN-CS-86-1097", + institution = inst-STAN-CS, + address = inst-STAN-CS:adr, + month = apr, + year = "1986", + bibdate = "Sat Feb 10 14:57:53 1996", + acknowledgement = ack-hk, +} + +@Book{Knuth:1986:TB, + author = "Donald E. Knuth", + title = "The {\TeX}book", + volume = "A", + publisher = pub-AW, + address = pub-AW:adr, + pages = "ix + 483", + year = "{\noopsort{1986a}}1986", + ISBN = "0-201-13447-0", + ISBN-13 = "978-0-201-13447-6", + LCCN = "Z253.4.T47 K58 1986", + bibdate = "Fri Jul 22 09:03:17 1994", + price = "US\$32.95", + series = "Computers and Typesetting", +} + +@Book{Knuth:1986:TP, + author = "Donald E. Knuth", + title = "{\TeX}: The Program", + volume = "B", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xv + 594", + year = "{\noopsort{1986b}}1986", + ISBN = "0-201-13437-3", + ISBN-13 = "978-0-201-13437-7", + LCCN = "Z253.4.T47 K578 1986", + bibdate = "Fri Jul 22 09:03:46 1994", + price = "US\$32.95", + series = "Computers and Typesetting", +} + +@TechReport{Knuth:1986:TTT, + author = "Donald E. Knuth", + title = "A Torture Test for {\METAFONT}", + type = "Report", + number = "STAN-CS-86-1095", + institution = inst-STAN-CS, + address = inst-STAN-CS:adr, + year = "1986", + bibdate = "Sat Feb 10 14:57:54 1996", + acknowledgement = ack-hk, +} + +@Article{Knuth:1987:DHD, + author = "Donald E. Knuth", + title = "Digital Halftones by Dot Diffusion", + journal = j-TOG, + volume = "6", + number = "4", + pages = "245--273", + month = oct, + year = "1987", + CODEN = "ATGRDF", + ISSN = "0730-0301", + bibdate = "Fri Aug 26 08:55:46 1994", +} + +@TechReport{Knuth:1988:ET, + author = "Donald E. Knuth", + title = "The Errors of {\TeX}", + number = "STAN-CS-88-1223", + institution = inst-STAN-CS, + address = inst-STAN-CS:adr, + month = sep, + year = "1988", + bibdate = "Sat Feb 10 14:57:56 1996", +} + +@Article{Knuth:1989:AEN, + author = "Donald E. Knuth and Hermann Zapf", + title = "{AMS} Euler\emdash {A} New Typeface for Mathematics", + journal = j-SCHOLAR, + volume = "20", + number = "3", + pages = "131--157", + month = apr, + year = "1989", + ISSN = "0036-634X", +} + +@Article{Knuth:1989:CAG, + author = "Donald E. Knuth", + title = "Calling all Grand Wizards", + journal = j-TEXHAX, + volume = "89", + number = "98", + month = nov, + year = "1989", +} + +@Article{Knuth:1989:ET, + author = "Donald E. Knuth", + title = "The Errors of {\TeX}", + journal = j-SPE, + volume = "19", + number = "7", + pages = "607--681", + month = jul, + year = "1989", + CODEN = "SPEXBL", + ISSN = "0038-0644", + note = "This is an updated version of \cite{Knuth:1988:ET}.", +} + +@Book{Knuth:1989:MW, + author = "Donald E. Knuth and Tracy Larrabee and Paul M. + Roberts", + title = "Mathematical Writing", + type = "14", + publisher = pub-MATH-ASSOC-AMER, + address = pub-MATH-ASSOC-AMER:adr, + year = "1989", + ISBN = "0-88385-063-X", + ISBN-13 = "978-0-88385-063-3", + bibdate = "Sat Feb 10 14:59:43 1996", + series = "Notes Number 14", +} + +@Book{Knuth:1989:TB, + author = "Donald E. Knuth", + title = "The {\TeX}book", + publisher = pub-ASCII, + address = pub-ASCII:adr, + year = "1989", + ISBN = "4-7561-0010-4", + ISBN-13 = "978-4-7561-0010-8", + note = "Translation of the {\TeX}book into Japanese, with + addition of Appendix K, and new drawings by Duane + Bibby.", +} + +@Article{Knuth:1990:NTM, + author = "Donald E. Knuth and Joe Weening", + title = "New {{\TeX}{\slash}{\METAFONT}} sources available on + {Stanford's} master archive", + journal = j-TEXHAX, + volume = "90", + number = "13", + month = jan, + year = "1990", +} + +@Article{Knuth:1990:VFMa, + author = "Donald Knuth", + title = "Virtual Fonts: More Fun for Grand Wizards", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "13--23", + month = Apr, + year = "1990", +} + +@Article{Knuth:1990:VFMb, + author = "Donald E. Knuth", + title = "Virtual fonts: More fun for Grand Wizards", + journal = j-TEXHAX, + volume = "90", + number = "11 and 12", + month = jan, + year = "1990", +} + +@Article{Knuth:1991:TPC, + author = "D. E. Knuth", + title = "Theory and practice (computer science)", + journal = j-TCS, + volume = "90", + number = "1", + pages = "1--15", + month = nov, + year = "1991", + CODEN = "TCSCD", + ISSN = "0304-3975", + bibdate = "Mon Oct 24 12:44:52 MDT 1994", + abstract = "Looks at the intersection of theory and practice, + particularly in computer programming. The author + considers his involvement in the T/sub E/X and METAFONT + projects, and how theory and practice had relevance + during these projects. He discusses the balance between + theory and practice which should be achieved by + computer scientists. (7 Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Dept. of Comput. Sci., Stanford Univ., CA, USA", + classification = "C4240 (Programming and algorithm theory); C6110B + (Software engineering techniques)", + keywords = "Computer programming; Computer science; Computer + scientists; METAFONT; Practice; T/sub E/X; Theory", + language = "English", + pubcountry = "Netherlands", + thesaurus = "Philosophical aspects; Programming theory; Software + engineering", +} + +@Book{Knuth:1992:LP, + author = "Donald E. Knuth", + title = "Literate Programming", + publisher = pub-SUCSLI, + address = pub-SUCSLI:adr, + pages = "xiii + 368", + year = "1992", + ISBN = "0-937073-80-6 (paperback), 0-937073-81-4 (hardcover)", + ISBN-13 = "978-0-937073-80-3 (paperback), 978-0-937073-81-0 + (hardcover)", + LCCN = "QA76.6 .K644 1992", + bibdate = "Fri Jul 22 09:08:14 1994", + price = "US\$24.95 (paperback), US\$59.95 (hardcover)", + series = "CSLI Lecture Notes Number 27", + acknowledgement = ack-nhfb, +} + +@Book{Knuth:1993:CSS, + author = "Donald E. Knuth and Silvio Levy", + title = "The {CWEB} System of Structured Documentation, Version + 3.0", + publisher = pub-AW, + address = pub-AW:adr, + pages = "226", + year = "1993", + ISBN = "0-201-57569-8", + ISBN-13 = "978-0-201-57569-9", + LCCN = "QA76.9.D3 K6 1993", + bibdate = "Thu May 12 08:36:22 1994", + acknowledgement = ack-nhfb, +} + +@Book{Knuth:1993:VT, + author = "Donald E. Knuth", + title = "Vse pro {\TeX} \toenglish {Everything} about {\TeX} + \endtoenglish", + publisher = pub-PROTVINO, + address = pub-PROTVINO:adr, + pages = "xvi + 575", + year = "1993", + ISBN = "5-90061-401-8", + ISBN-13 = "978-5-90061-401-4", + bibdate = "Wed Jan 04 08:16:09 1995", + note = "Russian translation of \cite{Knuth:1984:TB}, by M. V. + Lisina, edited by S. V. Klimenko and S. N. Sokolov. AO + RD{\TeX} (AO means Inc; RD{\TeX} stands for Russian + Database {\TeX}nology). First press run: 10000 + copies.", +} + +@Book{Knuth:1999:DT, + author = "Donald E. Knuth", + title = "Digital Typography", + publisher = pub-CSLI, + address = pub-CSLI:adr, + pages = "xvi + 685", + year = "1999", + ISBN = "1-57586-011-2 (cloth), 1-57586-010-4 (paperback)", + ISBN-13 = "978-1-57586-011-4 (cloth), 978-1-57586-010-7 + (paperback)", + LCCN = "Z249.3.K59 1998", + bibdate = "Mon May 10 18:01:36 1999", + price = "US\$90.00 (cloth), US\$39.95 (paperback)", + acknowledgement = ack-nhfb, +} + +@TechReport{Kolodziejska:1987:DWP, + author = "Hanna Ko{\l}odziejska", + title = "Dzielenie wyraz{\'o}w polskich w systemie {\TeX}", + number = "165", + institution = "Sprawozdania Instytutu Informatyki Uniwersytetu + Warszawskiego", + address = "Warszawa, Poland", + year = "1987", + bibdate = "Tue Mar 1 12:54:07 1994", +} + +@Article{Kolodziejska:1988:T, + author = "Hanna Ko{\l}odziejska", + title = "{\TeX}", + journal = j-MIKROLAN, + volume = "1", + pages = "12", + year = "1988", +} + +@Article{Kolodziejska:1988:TTP, + author = "Hanna Ko{\l}odziejska", + title = "Le traitement des textes polonais avec le logiciel + {\TeX}", + journal = j-GUTENBERG, + volume = "0", + pages = "3--10", + month = apr, + year = "1988", + acknowledgement = ack-hk, +} + +@Book{Kopka:1988:LE, + author = "Helmut Kopka", + title = "{\LaTeX}\emdash{}Eine Einf{\"u}hrung", + publisher = pub-AWV, + address = pub-AWV:adr, + edition = "Second", + pages = "xvi + 340", + year = "1988", + ISBN = "3-89319-136-4, 3-89319-199-2", + ISBN-13 = "978-3-89319-136-9, 978-3-89319-199-4", + bibdate = "Sat Mar 07 09:48:36 1998", + acknowledgement = ack-nhfb, +} + +@Book{Kopka:1990:LEE, + author = "Helmut Kopka", + title = "{\LaTeX}\emdash + {}Er{\-}weit{\-}er{\-}ungs{\-}m{\"o}g{\-}lich{\-}keit{\-}en: + mit einer Einf{\"u}hrung in {METAFONT}", + publisher = pub-AWV, + address = pub-AWV:adr, + pages = "xv + 463", + year = "1990", + ISBN = "3-89319-287-5", + ISBN-13 = "978-3-89319-287-8", + LCCN = "????", + bibdate = "Sat Mar 7 09:45:48 1998", + acknowledgement = ack-nhfb, +} + +@Book{Kopka:1991:EWE, + author = "Helmut Kopka", + title = "{\LaTeX}\emdash + {}Er{\-}weit{\-}er{\-}ungs{\-}m{\"o}g{\-}lich{\-}keit{\-}en + mit einer Einf{\"u}rung in {\MF}", + publisher = pub-AWV, + address = pub-AWV:adr, + edition = "Second", + pages = "552", + year = "1991", + ISBN = "3-89319-356-1", + ISBN-13 = "978-3-89319-356-1", +} + +@Book{Kopka:1991:LE, + author = "Helmut Kopka", + title = "{\LaTeX}\emdash{}Eine Einf{\"u}hrung", + publisher = pub-AWV, + address = pub-AWV:adr, + edition = "Third", + pages = "xvii + 375", + year = "1991", + ISBN = "3-89319-338-3", + ISBN-13 = "978-3-89319-338-7", + bibdate = "Sat Mar 7 09:46:58 1998", + acknowledgement = ack-nhfb, +} + +@Book{Kopka:1992:LE, + author = "Helmut Kopka", + title = "{\LaTeX}\emdash{}Eine Einf{\"u}hrung", + publisher = pub-AWV, + address = pub-AWV:adr, + edition = "Fourth", + pages = "xvii + 445", + year = "1992", + ISBN = "3-89319-434-7", + ISBN-13 = "978-3-89319-434-6", + bibdate = "Sat Mar 07 09:49:29 1998", + acknowledgement = ack-rz # " and " # ack-nhfb, +} + +@Book{Kopka:1993:GLD, + author = "Helmut Kopka and Patrick W. Daly", + title = "A Guide to {\LaTeX}: Document Preparation for + Beginners and Advanced Users", + publisher = pub-AW, + address = pub-AW:adr, + year = "1993", + ISBN = "0-201-56889-6", + ISBN-13 = "978-0-201-56889-9", + bibdate = "Thu Jan 20 12:34:31 1994", + price = "US\$34.50", + acknowledgement = ack-nhfb, +} + +@Book{Kopka:1994:LBE, + author = "Helmut Kopka", + title = "{\LaTeX} Band 1: Einf{\"u}hrung", + publisher = pub-AWV, + address = pub-AWV:adr, + pages = "xix + 428", + year = "1994", + ISBN = "3-89319-664-1", + ISBN-13 = "978-3-89319-664-7", + bibdate = "Tue Mar 1 14:25:32 MET 1994", + note = "Replaces the old series of two volumes.", + acknowledgement = ack-rz, +} + +@Book{Kopka:1995:GDP, + author = "Helmut Kopka and Patrick W. Daly", + title = "A Guide to {\LaTeXe}: Document Preparation for + Beginners and Advanced Users", + publisher = pub-AW, + address = pub-AW:adr, + edition = "Second", + pages = "x + 554", + year = "1995", + ISBN = "0-201-42777-X", + ISBN-13 = "978-0-201-42777-6", + LCCN = "Z253.4.L38 K66 1995", + bibdate = "Thu May 25 15:18:31 1995", + price = "US\$37.61", + acknowledgement = ack-nhfb, +} + +@Book{Kopka:1995:LBEa, + author = "Helmut Kopka", + title = "{\LaTeX} Band 2: Erg{\"a}nzungen\emdash mit einer + Einf{\"u}rung in {\MF}", + publisher = pub-AWV, + address = pub-AWV:adr, + pages = "xiv + 428", + year = "1995", + ISBN = "3-89319-665-X", + ISBN-13 = "978-3-89319-665-4", + bibdate = "Wed Nov 16 13:07:25 1994", + price = "DM69.90", + acknowledgement = ack-rz, +} + +@Book{Kopka:1997:LBE, + author = "Helmut Kopka", + title = "{\LaTeX} Band 3: Erweiterungen", + publisher = pub-AWV, + address = pub-AWV:adr, + pages = "xiii + 412", + year = "1997", + ISBN = "3-89319-666-8", + ISBN-13 = "978-3-89319-666-1", + bibdate = "Mon Mar 02 19:38:20 1998", + price = "DM69.90", + acknowledgement = ack-rz, +} + +@Book{Kopka:1999:GLD, + author = "Helmut Kopka and Patrick W. Daly", + title = "A Guide to {\LaTeXe}: Document Preparation for + Beginners and Advanced Users", + publisher = pub-AW, + address = pub-AW:adr, + edition = "Third", + pages = "xv + 600", + year = "1999", + ISBN = "0-201-39825-7", + ISBN-13 = "978-0-201-39825-0", + LCCN = "Z253.4.L38 K66 1999", + bibdate = "Thu Apr 12 11:15:10 2001", + price = "US\$44.95", + acknowledgement = ack-nhfb, +} + +@Book{Kopka:2004:GLT, + author = "Helmut Kopka and Patrick W. Daly", + title = "Guide to {\LaTeX}: Tools and Techniques for Computer + Typesetting", + publisher = pub-AW, + address = pub-AW:adr, + edition = "Fourth", + pages = "xii + 597", + year = "2004", + ISBN = "0-321-17385-6", + ISBN-13 = "978-0-321-17385-0", + LCCN = "Z253.4.L38 K66 2004", + bibdate = "Wed Jan 21 05:16:54 2004", + note = "Includes CD-ROM.", + price = "US\$49.99, CAN\$75.99", + acknowledgement = ack-nhfb, +} + +@Book{Krantz:1996:PMW, + author = "Steven G. Krantz", + title = "A Primer of Mathematical Writing: Being a disquisition + on having your ideas recorded, typeset, published, read + \& appreciated", + publisher = pub-AMS, + address = pub-AMS:adr, + pages = "216", + year = "1996", + ISBN = "0-8218-0635-1", + ISBN-13 = "978-0-8218-0635-7", + LCCN = "QA42.K73 1996", + bibdate = "Fri Nov 08 11:44:14 1996", + note = "Includes discussions of computers and {\TeX}.", + price = "US\$19.00", + URL = "http://www.ams.org/bookstore", + acknowledgement = ack-nhfb, +} + +@Book{Krieger:1990:IT, + author = "Jost Krieger and Norbert Schwarz", + title = "Introduction to {\TeX}", + publisher = pub-AWE, + address = pub-AWE:adr, + pages = "278", + year = "1990", + ISBN = "0-201-51141-X", + ISBN-13 = "978-0-201-51141-3", + bibdate = "Wed Apr 19 10:42:04 1995", + note = "English translation of \cite{Schwarz:1988:ET}. See + also the Dutch translation, \cite{Schwarz:1990:IT}.", +} + +@InProceedings{Kroenert:1990:IIS, + author = "G{\"u}nther Kr{\"o}nert", + title = "Importance of the {ISO} standard 8613 for document + interchange. {Basic} standard, functional standards, + initial experience, benefits", + crossref = "Nadrchal:1990:MMI", + pages = "209--218", + year = "1990", + bibdate = "Tue Mar 1 12:55:29 1994", + note = "Invited paper.", + acknowledgement = ack-rw, +} + +@TechReport{Kwong:1991:KKB, + author = "Man Kam Kwong", + title = "{\tt kxp} and {\tt kxpl}: {A} Busy Man's {\LaTeX}: + Part {I}: An Overview", + type = "Technical Report", + number = "ANL-91/14", + institution = inst-ANL, + address = inst-ANL:adr, + month = mar, + year = "1991", + bibdate = "Sat Sep 24 12:30:40 1994", + acknowledgement = ack-nhfb, +} + +@Book{Labuz:1984:HTW, + author = "Ronald Labuz", + title = "How to Typeset from a Word Processor: {A} Practical + Manual for Type Buyers and Typesetters", + publisher = pub-RRB, + address = pub-RRB:adr, + pages = "xii + 218", + year = "1984", + ISBN = "0-8352-1899-6", + ISBN-13 = "978-0-8352-1899-3", + LCCN = "Z253.3.L33 1984", + bibdate = "Tue Mar 1 12:55:45 1994", + price = "US\$24.95", + acknowledgement = ack-jpl, + annote = "Decent survey of the field for the computer + illiterate, though details of equipment may be dated by + now, but does cover high-end phototypesetters in + addition to personal computers.", +} + +@Book{Lachand-Robert:1995:MTL, + author = "Thomas Lachand-Robert", + title = "La maitrise de {\TeX} et {\LaTeX}", + publisher = pub-MASSON, + address = pub-MASSON:adr, + pages = "644", + year = "1995", + ISBN = "2-225-84832-7", + ISBN-13 = "978-2-225-84832-2", + LCCN = "????", + bibdate = "Sat Mar 7 18:25:51 MST 1998", + acknowledgement = ack-nhfb, + keywords = "{\LaTeX} (syst{\`e}me informatique); {\TeX} + (logiciel)", +} + +@InProceedings{Lagally:1992:ATA, + author = "Klaus Lagally", + title = "{ArabTEX} --- Typesetting {Arabic} with vowels and + ligatures", + crossref = "Zlatuska:1992:EPE", + pages = "153--172", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + acknowledgement = ack-nhfb, +} + +@MastersThesis{Lagus:1995:APG, + author = "Krista Lagus", + title = "Automated pagination of the generalized newspaper + using simulated annealing", + type = "Master's thesis", + school = "Helsinki University of Technology", + address = "Helsinki, Finland", + year = "1995", + bibdate = "Tue Feb 09 08:38:03 1999", + acknowledgement = ack-nhfb, +} + +@Book{Lammarsch:1996:CTL, + author = "Joachim Lammarsch and Harald Schoppmann", + title = "{CTAN}-3: das {\TeX}-/{\LaTeX}-Archiv von {DANTE} + e.{V}.", + publisher = pub-AW, + address = pub-AW:adr, + pages = "123", + year = "1996", + ISBN = "", + ISBN-13 = "", + LCCN = "", + bibdate = "Sat Mar 07 09:36:38 1998", + note = "Includes CD-ROM.", + price = "DM 49,90", + acknowledgement = ack-nhfb, +} + +@Book{Lamport:1985:LDP, + author = "Leslie Lamport", + title = "{\LaTeX}\emdash {A} Document Preparation System\emdash + User's Guide and Reference Manual", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiv + 242", + year = "1985", + ISBN = "0-201-15790-X", + ISBN-13 = "978-0-201-15790-1", + LCCN = "Z253.4.L38 L35 1986", + bibdate = "Thu Jul 21 23:00:50 1994", + price = "US\$26.95", + acknowledgement = ack-nhfb, + keywords = "documentation; languages; performance", + review = "ACM CR 9001-0030", + subject = "I.7.2 Computing Methodologies, TEXT PROCESSING, + Document Preparation, LaTeX \\ D.2.3 Software, SOFTWARE + ENGINEERING, Coding, Pretty printers", +} + +@Book{Lamport:1991:L, + author = "Leslie Lamport", + title = "{{\LaTeX}}", + publisher = "Cyfronet", + address = "Krak{\'o}w", + pages = "x + 202", + year = "1991", + bibdate = "Wed Jun 22 18:19:42 MDT 2005", + bibsource = "alpha.bn.org.pl:210/INNOPAC", + note = "Polish translation of ``{\LaTeX}: A Document + Preparation System'', 1986, by Piotr Wyrostek.", + acknowledgement = ack-nhfb, + language = "Polish", + subject = "LATEX; podr{\k{e}}cznik", +} + +@Book{Lamport:1994:LDP, + author = "Leslie Lamport", + title = "{\LaTeX}: {A} Document Preparation System: User's + Guide and Reference Manual", + publisher = pub-AW, + address = pub-AW:adr, + edition = "Second", + pages = "xvi + 272", + year = "1994", + ISBN = "0-201-52983-1", + ISBN-13 = "978-0-201-52983-8", + LCCN = "Z253.4.L38L35 1994", + bibdate = "Sat Mar 07 09:39:20 1998", + note = "Reprinted with corrections in 1996.", + acknowledgement = ack-nhfb, +} + +@Book{Lamport:1995:DLH, + author = "Leslie Lamport", + title = "Das {\LaTeX} Handbuch", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xviii + 325", + year = "1995", + ISBN = "3-89319-826-1", + ISBN-13 = "978-3-89319-826-9", + LCCN = "", + bibdate = "Mon Mar 02 19:39:00 1998", + note = "German translation of \cite{Lamport:1994:LDP} by + Rebecca Stiels.", + price = "DM69.90", + acknowledgement = ack-nhfb, +} + +@Book{Lamport:2004:LSO, + author = "Leslie Lamport", + title = "{{\LaTeX}}: system opracowywania dokument{\'o}w: + podr{\k{e}}cznik i przewodnik u{\c{c}}zytkownika", + publisher = "Wydawnictwa Naukowo-Techniczne", + address = "Warszawa", + pages = "xviii + 366", + year = "2004", + ISBN = "83-204-2878-5", + ISBN-13 = "978-83-204-2878-0", + bibdate = "Wed Jun 22 18:19:42 MDT 2005", + bibsource = "alpha.bn.org.pl:210/INNOPAC", + note = "Polish translation of ``{\LaTeX}: a document + preparation system'', 1994, by Marta Woli{\'n}ska and + Marcin Woli{\'n}ski.", + acknowledgement = ack-nhfb, + language = "Polish", + subject = "LATEX; podr{\^I}ecznik", +} + +@Article{Lao:1986:ST, + author = "Marek J. Lao", + title = "Sztuka {\TeX}owania", + journal = j-WM, + volume = "27", + number = "1", + pages = "81--87", + year = "1986", + bibdate = "Thu Jun 23 18:21:02 1994", + note = "Roczniki Polskiego Towarzystwa Matematycznego, Seria + II. In Polish.", + author-l = lang-pl, + title-l = lang-pl, +} + +@Book{Larsen:1989:LD, + author = "Steen Larsen", + title = "{\LaTeX p\aa} dansk", + publisher = pub-UNIC, + address = pub-UNIC:adr, + year = "1989", + ISBN = "87-7252-089-2", + ISBN-13 = "978-87-7252-089-6", +} + +@InProceedings{Laurens:2004:IIT, + author = "J{\'e}r{\^o}me Laurens", + title = "i{\TeX}Mac: An Integrated {\TeX} Environment for {Mac + OS X}", + crossref = "Syropoulos:2004:TXD", + pages = "192--202", + year = "2004", + CODEN = "LNCSD9", + ISSN = "0302-9743", + bibdate = "Tue Nov 16 17:43:44 2004", + acknowledgement = ack-nhfb, +} + +@InProceedings{Lavaud:1992:SHE, + author = "Michel Lavaud", + title = "A solution to help ensuring the future of {\TeX}: make + its use easier on cheap machines", + crossref = "Zlatuska:1992:EPE", + pages = "66--68", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + acknowledgement = ack-nhfb, +} + +@InProceedings{Lavaud:1992:WEF, + author = "Michel Lavaud", + title = "A way to ensure the future of {\TeX}: make its use + easier on low-cost machines", + crossref = "Zlatuska:1992:EPE", + pages = "307--330", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + note = "Invited talk.", + acknowledgement = ack-nhfb, +} + +@Book{Lawson:1990:AT, + author = "Alexander Lawson", + title = "Anatomy of a Typeface", + publisher = pub-HAMISH, + address = pub-HAMISH:adr, + pages = "428", + year = "1990", + ISBN = "0-241-13267-3", + ISBN-13 = "978-0-241-13267-8", + LCCN = "Z250 .L34 1990", + bibdate = "Fri Aug 19 15:44:54 1994", + acknowledgement = ack-mc, +} + +@Book{Lee:1979:BIG, + author = "Marshall Lee", + title = "Bookmaking: the Illustrated Guide to Design\slash + Production\slash Editing", + publisher = pub-RRB, + address = pub-RRB:adr, + edition = "Second", + pages = "485", + year = "1979", + ISBN = "0-8352-1097-9", + ISBN-13 = "978-0-8352-1097-3", + LCCN = "Z116.A2 .L44 1979", + bibdate = "Fri Jul 22 11:16:45 1994", + price = "US\$25.00", + acknowledgement = ack-jpl, +} + +@InProceedings{Leitch:1985:GAD, + author = "S. Leitch and F. J. Smith", + title = "Generalised {Algorithm} for {Drawing} {Non-Parametric + Splines}", + crossref = "Lucarella:1985:PFE", + pages = "155--161", + year = "1985", + bibdate = "Tue Jul 26 09:28:01 1994", + acknowledgement = ack-hk, +} + +@InProceedings{Leitch:1985:IMI, + author = "S. Leitch", + title = "Implementing {\METAFONT} on an {ICL Perq}", + crossref = "Lucarella:1985:PFE", + pages = "171--182", + year = "1985", + bibdate = "Tue Jul 26 09:27:53 1994", + acknowledgement = ack-hk, +} + +@InProceedings{Lesk:1976:CTT, + author = "M. E. Lesk and B. W. Kernighan", + title = "Computer Typesetting of Technical Journals on {UNIX}", + crossref = "NCC:1976:ACP", + volume = "46", + pages = "879--888", + month = jun, + year = "1976", + bibdate = "Sat Aug 27 16:53:38 1994", + acknowledgement = ack-nhfb, +} + +@Article{Lesk:1988:GIL, + author = "Michael Lesk", + title = "{GRAB}\emdash{}Inverted Indexes with Low Storage + Overhead", + journal = j-COMP-SYS, + volume = "1", + number = "3", + pages = "207--220", + month = "Summer", + year = "1988", + CODEN = "CMSYE2", + ISSN = "0895-6340", + bibdate = "Fri Sep 13 09:01:18 MDT 1996", + acknowledgement = ack-nhfb, + classification = "C6150J (Operating systems); C7250L + (Non-bibliographic systems)", + keywords = "B-trees; Bit vector; Bytes; Fixed length codeword + compression scheme; GRAB; Hash codes; Inverted indexes; + Pointers; Preindexing pass; Searching command; Sparse + vectors; Storage overhead; Whole words", + thesaurus = "DEC computers; Information retrieval; Information + retrieval systems; Operating systems [computers]; + Unix", +} + +@Book{Level:1995:PTF, + author = "Jeff Level and Bruce Newman and Brenda Newman", + title = "Precision type font reference guide, version 5.0", + publisher = "Precision Type", + address = "Commack, NY, USA", + pages = "xxv + 653", + year = "1995", + ISBN = "0-9646252-0-2", + ISBN-13 = "978-0-9646252-0-4", + LCCN = "Z250.7 .P74 1995", + bibdate = "Wed Feb 28 15:00:20 MST 1996", + acknowledgement = ack-nhfb, + keywords = "Printing --- Specimens --- Handbooks, manuals, etc.; + Type and type-founding --- Handbooks, manuals, etc.", +} + +@Book{Level:2000:PTF, + author = "Jeff Level and Bruce Newman and Brenda Newman", + title = "Precision type font reference guide, version 5.0", + publisher = pub-HARTLEY-MARKS, + address = pub-HARTLEY-MARKS:adr, + pages = "xxv + 653", + year = "2000", + ISBN = "0-88179-182-2", + ISBN-13 = "978-0-88179-182-2", + LCCN = "", + bibdate = "Thu Apr 12 10:59:49 2001", + note = "Republication of \cite{Level:1995:PTF}.", + price = "US\$39.95, CDN\$59.95", + acknowledgement = ack-nhfb, + keywords = "Printing --- Specimens --- Handbooks, manuals, etc.; + Type and type-founding --- Handbooks, manuals, etc.", +} + +@Article{Levine:1990:LGR, + author = "Michael J. S. Levine", + title = "A {\LaTeX} Graphics Routine for drawing {Feynman} + Diagrams", + journal = j-CPC, + volume = "58", + number = "1 and 2", + pages = "181--198", + month = feb # "\slash " # mar, + year = "1990", + bibdate = "Fri Feb 9 18:09:31 1996", + note = "Available in the CPC library, and from + \path|listral@ib.rl.ac.uk| with an e-mail request {\tt + GET CPC INTRO CPCINDEX}.", +} + +@InProceedings{Li:1985:GSC, + author = "Jiarong Li", + title = "Generation of {Some Chinese Characters} with + {Metafont}", + crossref = "Lucarella:1985:PFE", + pages = "161--170", + year = "1985", + bibdate = "Tue Jul 26 09:27:44 1994", + acknowledgement = ack-hk, +} + +@TechReport{Liang:1983:WHP, + author = "Franklin Mark Liang", + title = "Word Hy-phen-a-tion by Com-pu-ter", + number = "STAN-CS-83-977", + institution = inst-STANFORD, + address = inst-STANFORD:adr, + month = aug, + year = "1983", + bibdate = "Sat Feb 10 15:00:15 1996", + URL = "http://www.tug.org/docs/liang/", +} + +@PhdThesis{Liang:1984:WHP, + author = "Franklin Mark Liang", + title = "Word Hy-phen-a-tion by Com-pu-ter", + type = "{Ph.D.} dissertation", + school = "Computer Science Department, Stanford University", + address = "Stanford, CA, USA", + pages = "92", + month = mar, + year = "1984", + bibdate = "Fri Jul 08 14:48:58 2005", + URL = "http://wwwlib.umi.com/dissertations/fullcit/8329742; + http://www.tug.org/docs/liang/", + abstract = "This thesis describes research leading to an improved + word hyphenation algorithm for the T(,E)X82 typesetting + system. Hyphenation is viewed primarily as a data + compression problem, where we are given a dictionary of + words with allowable division points, and try to devise + methods that take advantage of the large amount of + redundancy present. The new hyphenation algorithm is + based on the idea of hyphenating and inhibiting + patterns. These are simply strings of letters that, + when they match in a word, give us information about + hyphenation at some point in the pattern. For example, + `-tion' and `c-c' are good hyphenating patterns. An + important feature of this method is that a suitable set + of patterns can be extracted automatically from the + dictionary. In order to represent the set of patterns + in a compact form that is also reasonably efficient for + searching, the author has developed a new data + structure called a packed trie. This data structure + allows the very fast search times characteristic of + indexed tries, but in many cases it entirely eliminates + the wasted space for null links usually present in such + tries. We demonstrate the versatility and practical + advantages of this data structure by using a variant of + it as the critical component of the program that + generates the patterns from the dictionary. The + resulting hyphenation algorithm uses about 4500 + patterns that compile into a packed trie occupying 25K + bytes of storage. These patterns find 89\% of the + hyphens in a pocket dictionary word list, with + essentially no error. By comparison, the uncompressed + dictionary occupies over 500K bytes.", + acknowledgement = ack-nhfb, +} + +@Book{Licha:1992:AV, + author = "Michaela Lich{\'a} and Old{\v{r}}ich Ulrych", + title = "{\AmSTeX} verze 2.1", + publisher = pub-CSTUG, + address = pub-CSTUG:adr, + pages = "80", + year = "1992", + bibdate = "Thu Mar 11 12:11:15 1993", + note = "This publication provides a short (but complete) tour + through {\AmSTeX} 2.1 together with \path=amsppt.sty= + 2.1. Almost all features are demonstrated with a lot of + examples. The book is organized in such a way that it + is useful for novices (basic textbook), and for + advanced users (quick reference guide) as well. + Contains a table of all symbols.", +} + +@InProceedings{Likos:2004:JBC, + author = "Johannis Likos", + title = "{$\mu o \nu o 2 \pi o \lambda \upsilon$}: {Java}-Based + Conversion of Monotonic to Polytonic {Greek}", + crossref = "Syropoulos:2004:TXD", + pages = "34--54", + year = "2004", + CODEN = "LNCSD9", + ISSN = "0302-9743", + bibdate = "Tue Nov 16 17:43:44 2004", + acknowledgement = ack-nhfb, +} + +@InProceedings{Lin:1994:CMF, + author = "Y.-J. Lin and T.-L. Lee", + title = "Conversion From {\METAFONT} Files To {TrueType}", + crossref = "Anonymous:1994:CCI", + pages = "65--75", + year = "1994", + bibdate = "Sat Dec 21 15:45:22 MST 1996", + acknowledgement = ack-nhfb, + OPTeditor = "", +} + +@Article{Linton:1989:CUI, + author = "Mark A. Linton and John M. Vissides and Paul R. + Calder", + title = "Composing user interfaces with {InterViews}", + journal = j-IEEE-COMPUTER, + volume = "22", + number = "2", + pages = "8--22", + month = feb, + year = "1989", + bibdate = "Thu Jul 21 22:56:53 1994", + note = "From {\em Computing Reviews\/}: ``InterViews objects + are combined through a model similar to the boxes and + glues in Knuth's {\TeX}, which allows interface objects + to be combined with little concern for undesired + interactions.''", +} + +@Book{Lipkin:1999:LLV, + author = "Bernice Sacks Lipkin", + title = "{\LaTeX} for {Linux}: a vade mecum", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xxxi + 568", + year = "1999", + ISBN = "0-387-98708-8 (softcover)", + ISBN-13 = "978-0-387-98708-8 (softcover)", + LCCN = "Z 253.4 L38 L56 1999", + bibdate = "Thu Sep 21 10:27:12 2000", + price = "US\$49.95", + acknowledgement = ack-nhfb, + keywords = "Computerized typesetting; LaTeX (Computer file)", +} + +@InProceedings{Loverdos:2004:DTN, + author = "Christos K. K. Loverdos and Apostolos Syropoulos", + title = "Digital Typography in the New Millennium: Flexible + Documents by a Flexible Engine", + crossref = "Syropoulos:2004:TXD", + pages = "1--16", + year = "2004", + CODEN = "LNCSD9", + ISSN = "0302-9743", + bibdate = "Tue Nov 16 17:43:44 2004", + acknowledgement = ack-nhfb, +} + +@Article{Lubkin:1990:PSP, + author = "Saul Lubkin", + title = "Porting sophisticated programs to your {UNIX} + environment for free", + journal = j-COMPUTERSHOPPER, + pages = "642--644", + month = mar, + year = "1990", +} + +@InProceedings{Lucarella:1985:TFD, + author = "Dario Lucarella", + title = "{\TeX} Formulae Dictionary", + crossref = "Lucarella:1985:PFE", + pages = "93--103", + year = "1985", + bibdate = "Tue Mar 1 12:56:59 1994", + acknowledgement = ack-hk, +} + +@Book{Luna:1992:UTD, + author = "Paul Felix John Luna", + title = "Understanding Type for Desktop Publishing", + publisher = pub-BLUEPRINT, + address = pub-BLUEPRINT:adr, + pages = "136", + year = "1992", + ISBN = "0-948905-76-X", + ISBN-13 = "978-0-948905-76-6", + LCCN = "Z250.7 .L86 1992", + bibdate = "Fri Aug 19 15:45:31 1994", + note = "Highly regarded English typographer: designed the + Oxford English Dictionary and the New English Bible.", + acknowledgement = ack-mc, +} + +@TechReport{Luvisetto:1992:LER, + author = "M. L. Luvisetto and E. Ugolini", + title = "{\LaTeX}: easy recipes", + number = "INFN/TC-92/05", + institution = "Ist. Naz. Fis. Nucl.", + address = "Bologna, Italy", + pages = "17", + month = mar, + year = "1992", + bibdate = "Thu Sep 01 01:22:55 1994", + abstract = "Basic commands are given to enable an easy conversion + from {\TeX} to {\LaTeX} to users that have a good + knowledge of {\TeX} typesetting for technical and + scientific articles. Basic concepts are described. + Clear and easy ways to typeset the most common items + are described. Mathematics and tabular typesetting are + described in deeper detail. (3 Refs.)", + acknowledgement = ack-nhfb, + classification = "C6130D (Document processing techniques); C6140 + (Programming languages); C7230 (Publishing and + reproduction)", + keywords = "Easy conversion; LaTeX; Scientific articles; Tabular + typesetting; TeX typesetting", + thesaurus = "Computer controlled typesetting; Programming + languages; Word processing", +} + +@Book{Lvovskii:1994:NVP, + author = "Sergei L'vovskii", + title = "Nabor i verstka v pakete {\LaTeX} \toenglish {Typing} + and proving in the {\LaTeX} package \endtoenglish", + publisher = pub-KOSMOINFORM, + address = pub-KOSMOINFORM:adr, + pages = "328", + year = "1994", + ISBN = "5-90024-211-0", + ISBN-13 = "978-5-90024-211-8", + bibdate = "Wed Jan 04 08:17:58 1995", + note = "The first complete description of {\LaTeX} 2.09 in + Russian. First press run: 5000 copies.", + acknowledgement = ack-ps, +} + +@InProceedings{MacKay:1983:TAS, + author = "Pierre A. MacKay", + title = "{\TeX} for {Arabic} script", + crossref = "Burton:1983:SIC", + pages = "391--400", + year = "1983", + bibdate = "Wed Jul 27 10:59:33 1994", + acknowledgement = ack-nhfb, +} + +@Article{Mamrak:1993:BAD, + author = "S. Mamrak and J. Barnes and C. S. O'Connell", + title = "Benefits of automating data translation", + journal = j-IEEE-SOFTWARE, + volume = "10", + number = "4", + pages = "82--88", + month = jul, + year = "1993", + CODEN = "IESOE", + ISSN = "0740-7459", + bibdate = "Thu Sep 01 01:29:34 1994", + abstract = "A description is given of the Integrated Chameleon + Architecture, (ICA), a special software environment + that automatically generates translation code, + eliminating the error-prone process of writing and + updating code, and enforces completeness in the + high-level translator specification and correctness in + the translated data. Two sets of translaters developed + using ICA are examined. The first set translates ICA's + user manual from the {\LaTeX} markup language to Troff + markup macros. The second translates documents encoded + in schemes like Refer (from the roff macro family) and + Bib{\TeX} ({\LaTeX}'s bibliographic package) into an + encoding conventional imposed by a central + bibliographic database for human-machine interaction. + (2 Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Dept. of Comput. Sci., Ohio State Univ., Columbus, OH, + USA", + classification = "C6110B (Software engineering techniques); C6115 + (Programming support); C6130D (Document processing + techniques)", + keywords = "Automatic code generation; Bibliographic package; + Bibtex; Code updating; Data translation automation; + Error elimination; High-level translator specification; + Human-machine interaction; ICA; Integrated Chameleon + Architecture; LaTex; Markup language; Markup macros; + Refer; Roff macro; Software environment; Text + formatters; Troff; User manual", + language = "English", + pubcountry = "USA", + thesaurus = "Application generators; Automatic programming; + Document handling; Formal specification; Text editing", +} + +@Article{Manas:1987:WDS, + author = "Jose A. Ma\~{n}as", + title = "Word division in {Spanish}", + journal = j-CACM, + volume = "30", + number = "7", + pages = "612--616", + month = jul, + year = "1987", + CODEN = "CACMA2", + ISSN = "0001-0782", + bibdate = "Wed Jan 04 08:19:24 1995", + acknowledgement = ack-nhfb, + keywords = "algorithms", + subject = "I.2.7 Computing Methodologies, ARTIFICIAL + INTELLIGENCE, Natural Language Processing, Text + analysis \\ H.1.m Information Systems, MODELS AND + PRINCIPLES, Miscellaneous \\ I.7 Computing + Methodologies, TEXT PROCESSING \\ H.4.1 Information + Systems, INFORMATION SYSTEMS APPLICATIONS, Office + Automation, Word processing \\ I.5.4 Computing + Methodologies, PATTERN RECOGNITION, Applications, Text + processing", +} + +@Article{Manson:1987:UEP, + author = "David Manson", + title = "Using {\TeX} for Electronic Publishing at {I. P. Sharp + Associates}", + journal = j-SIGDOC, + volume = "13", + number = "1", + pages = "3--7", + month = mar, + year = "1987", + bibdate = "Thu Jul 21 22:25:07 1994", +} + +@Book{Maor:1994:SN, + author = "Eli Maor", + title = "{e}: The Story of a Number", + publisher = pub-PUP, + address = pub-PUP:adr, + pages = "xiv + 223", + year = "1994", + ISBN = "0-691-03390-0", + ISBN-13 = "978-0-691-03390-7", + LCCN = "QA247.5.M33 1994", + bibdate = "Thu Sep 08 11:13:04 1994", + note = "This book chronicles the story of the ultimate version + number of {\MF}.", + acknowledgement = ack-nhfb, +} + +@Misc{Maranget:1998:HLH, + author = "Luc Maranget", + title = "{HeVeA}: {\LaTeX} to {HTML} translator", + howpublished = "World-Wide Web document.", + year = "1998", + bibdate = "Sat Aug 08 09:50:01 1998", + note = "The translator is written in Objective Caml.", + URL = "http://para.inria.fr/~maranget/hevea/", + acknowledgement = ack-nhfb, +} + +@Article{Margolis:1994:MMG, + author = "Marvin S. Margolis", + title = "{MG} Mathematical Graphics System", + journal = j-NAMS, + volume = "41", + number = "3", + pages = "200--201", + month = mar, + year = "1994", + ISSN = "0002-9920", + bibdate = "Thu Dec 29 10:48:31 1994", + acknowledgement = ack-ps, +} + +@Book{Mauerer:1997:TLU, + author = "Wolfgang Mauerer", + title = "Textverarbeitung mit {\LaTeXe} unter {UNIX}", + publisher = pub-HANSER, + address = pub-HANSER:adr, + pages = "xiv + 361", + year = "1997", + ISBN = "3-446-18909-2", + ISBN-13 = "978-3-446-18909-6", + LCCN = "????", + bibdate = "Sat Mar 07 09:31:31 1998", + price = "DM 49,80", + series = "UNIX easy", + acknowledgement = ack-nhfb, +} + +@Article{McClelland:1988:LTD, + author = "Bruce McClelland", + title = "From logon to typeset document in under ten minutes", + journal = j-ONLINE, + volume = "12", + number = "6", + pages = "66--71", + month = nov, + year = "1988", + ISSN = "0146-5422", + bibdate = "Mon Jul 25 08:37:04 MDT 1994", + acknowledgement = ack-nhfb, + keywords = "design; documentation; management", + subject = "H.3.5 Information Systems, INFORMATION STORAGE AND + RETRIEVAL, On-line Information Services \\ J.7 Computer + Applications, COMPUTERS IN OTHER SYSTEMS, Publishing", +} + +@Article{McKibben:1991:EEW, + author = "L. McKibben", + title = "Equation editing with {WordPerfect}", + journal = j-LAB-MICROCOMP, + volume = "10", + number = "3", + pages = "117--118", + month = "", + year = "1991", + CODEN = "LMICD", + ISSN = "0262-2955", + bibdate = "Wed Aug 31 00:54:39 MDT 1994", + abstract = "For years scientists and engineers have had to use + special software packages to create, edit, and print + their scientific equations. Software packages such as + {\TeX} (for mainframes and PC's), MASS-11, WordMarc+ + and T3 were created specifically to handle these + requirements. The needs of scientists were essentially + ignored by the early popular software developers, who + designed such packages as WordStar, Microsoft Word and + early versions of WordPerfect. Now, the developers of + the largest-selling software package in the world, + WordPerfect, are also beginning to cater to the + scientific and engineering communities with the latest + release for the IBM-compatible computer, version 5.1. + All in all, the new equation editor is an exciting + development and will greatly aid scientists who need to + use mainstream word processing software, but there are + some limitations that the user should be aware of. (0 + Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Oklahoma Univ., Norman, OK, USA", + classification = "C6130D (Document processing techniques); C7310 + (Mathematics)", + keywords = "Equation editor; Scientists; Word processing; + WordPerfect", + thesaurus = "Mathematics computing; Software packages; Text + editing", +} + +@Book{McLean:1980:THM, + author = "Ruari McLean", + title = "The Thames and Hudson Manual of Typography", + publisher = pub-TH, + address = pub-TH:adr, + pages = "216", + year = "1980", + ISBN = "0-500-68022-1", + ISBN-13 = "978-0-500-68022-3", + LCCN = "Z244.3 .M45", + bibdate = "Fri Aug 19 15:46:43 1994", + acknowledgement = ack-fm # " and " # ack-mc, + annote = "A broad, very readable introduction to the + conventional typography. This is the best recent + general book if you read only one. (RRu)", +} + +@Book{McLean:1995:TTI, + editor = "Ruari McLean", + title = "Typographers on Type: An Illustrated Anthology from + {William Morris} to the present day", + publisher = pub-NORTON, + address = pub-NORTON:adr, + pages = "xii + 188", + year = "1995", + ISBN = "0-393-70201", + ISBN-13 = "0-393-70201", + LCCN = "Z 250 A2 T96 1995", + bibdate = "Mon May 11 18:03:27 1998", + price = "US\$27.00", + acknowledgement = ack-nhfb, +} + +@TechReport{Mei:1980:LLC, + author = "{Tung Yun Mei}", + title = "{LCCD}, {A Language} for {Chinese Character} + {Design}", + type = "Report", + number = "STAN-CS-80-824", + institution = inst-STAN-CS, + address = inst-STAN-CS:adr, + year = "1980", + bibdate = "Tue Mar 1 12:54:32 1994", + note = "See also " # j-SPE # "Vol. 11 (1981), No. 12, pp. + 1273--1292.", + acknowledgement = ack-hk, +} + +@Booklet{MF:1986:MCF, + key = "MF", + title = "The {MF Chel Family} of Fonts", + howpublished = inst-METAFOUNDRY, + address = inst-METAFOUNDRY:adr, + year = "1986", + acknowledgement = ack-hk, +} + +@Booklet{MF:1986:MRF, + key = "MF", + title = "The {MF Roman Family} of Fonts", + howpublished = inst-METAFOUNDRY, + address = inst-METAFOUNDRY:adr, + year = "1986", + acknowledgement = ack-hk, +} + +@Booklet{MF:1987:MDF, + key = "MF", + title = "The {MF Decorative Family} of Fonts", + howpublished = inst-METAFOUNDRY, + address = inst-METAFOUNDRY:adr, + year = "1987", + acknowledgement = ack-hk, +} + +@Booklet{MF:1987:MSF, + key = "MF", + title = "The {MF Slavic Families} of Fonts", + howpublished = inst-METAFOUNDRY, + address = inst-METAFOUNDRY:adr, + year = "1987", + acknowledgement = ack-hk, +} + +@Article{Milne:1986:RTS, + author = "J. S. Milne", + title = "Review of Two Scientific Word-Processing Programs: + {$T^3$} version 2.02 by {TCI Software Research Inc.}, + and {Volkswriter Scientific} version 1.0 by {Lifetree + Software Inc.}", + journal = j-MATHINTEL, + volume = "8", + number = "1", + pages = "66--71", + year = "1986", + bibdate = "Sat Aug 27 11:09:18 1994", +} + +@Article{Milne:1990:FWP, + author = "J. S. Milne", + title = "Four Word Processors with {\TeX} Capabilities", + journal = j-NAMS, + volume = "37", + number = "8", + pages = "1018--1022", + month = oct, + year = "1990", + ISSN = "0002-9920", + acknowledgement = ack-bnb, +} + +@Article{Milne:1992:TSW, + author = "J. S. Milne", + title = "Three Scientific Word Processors", + journal = j-NAMS, + volume = "39", + number = "8", + pages = "838--840", + month = oct, + year = "1992", + ISSN = "0002-9920", + bibdate = "Tue Mar 1 12:06:32 1994", + note = "The word processors {Chi}{Writer} 4.02, {Leo} 1.4, and + {Scientific Word} 1.0 are discussed in terms of ease of + use, effectiveness in producing {\TeX} code, and other + features of interest to users who require {\TeX} output + but do not wish to use {\TeX} directly.", +} + +@InProceedings{Mittelbach:1992:FHQ, + author = "Frank Mittelbach and Chris Rowley", + title = "The future of high quality typesetting: structure and + design", + crossref = "Zlatuska:1992:EPE", + pages = "255--256", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + note = "Invited talk.", + acknowledgement = ack-nhfb, +} + +@InProceedings{Mittelbach:1992:LSD, + author = "Frank Mittelbach and Chris Rowley", + title = "{\LaTeX3:} structure and design", + crossref = "Zlatuska:1992:EPE", + pages = "69--70", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + note = "Invited talk.", + acknowledgement = ack-nhfb, +} + +@InProceedings{Mittelbach:1992:PQH, + author = "Frank Mittelbach and Chris Rowley", + title = "The Pursuit of Quality: How can Automated Typesetting + achieve the Highest Standards of Craft Typography?", + crossref = "Vanoirbeek:1992:EPE", + pages = "261--273", + year = "1992", + bibdate = "Thu Dec 29 11:04:13 1994", + acknowledgement = ack-ps, +} + +@Book{Mittelbach:2004:LC, + author = "Frank Mittelbach and Michel Goossens and Johannes + Braams and David Carlisle and Chris Rowley and + Christine Detig and Joachim Schrod", + title = "The {\LaTeX} Companion", + publisher = pub-AW, + address = pub-AW:adr, + edition = "Second", + pages = "xxvii + 1090", + year = "2004", + ISBN = "0-201-36299-6", + ISBN-13 = "978-0-201-36299-2", + LCCN = "Z253.4.L38 G66 2004", + bibdate = "Thu May 20 13:23:24 2004", + price = "US\$59.99, CAN\$86.99", + series = "Tools and Techniques for Computer Typesetting", + acknowledgement = ack-nhfb, + remark = "Authors listed as: Frank Mittelbach and Michel + Goossens with Johannes Braams, David Carlisle, and + Chris Rowley, and with contributions by Christine Detig + and Joachim Schrod.", +} + +@Article{Molnar:1993:TGT, + author = "Suzanne M. Molnar", + title = "A Tour of Graphical Typesetting on the {Macintosh}", + journal = j-UMAP, + volume = "14", + number = "2", + pages = "97--112", + year = "1993", + bibdate = "Tue Dec 14 10:48:29 1993", + acknowledgement = ack-ps, +} + +@Article{Morin:1993:TT, + author = "Richard Morin", + title = "Tangled up in {\TeX}", + journal = j-SUNEXPERT, + volume = "4", + number = "10", + pages = "42--46", + month = oct, + year = "1993", + bibdate = "Mon Oct 18 18:07:05 1993", + note = "A brief review of {\TeX} support, including the + Comprehensive {\TeX} Archive Network (CTAN), the {\TeX} + Users Group, and several books on {\TeX}.", + acknowledgement = ack-nhfb, +} + +@Article{Morin:1994:TRPa, + author = "Richard Morin", + title = "{\TeX}, {ReDuX} (Part {I})", + journal = j-SUNEXPERT, + volume = "5", + number = "11", + pages = "28, 30--31", + month = nov, + year = "1994", + bibdate = "Tue Dec 20 11:13:23 1994", + note = "Comments on why use \TeX. Mentions the {\TeX} Users + Group, and the Comprehensive {\TeX} Archive Network + (CTAN)", + acknowledgement = ack-nhfb, +} + +@Article{Morin:1994:TRPb, + author = "Richard Morin", + title = "{\TeX}, {ReDuX} (Part {II})", + journal = j-SUNEXPERT, + volume = "5", + number = "12", + pages = "28--31", + month = dec, + year = "1994", + bibdate = "Sat Nov 19 17:02:39 1994", + note = "Lists sources of {\TeX}, and gives short reviews of + several books about {\TeX}, {\AmSTeX}, {\LaTeX}, and + literate programming.", + acknowledgement = ack-nhfb, +} + +@Article{Morishita:1989:DLT, + author = "J. Morishita", + title = "{DTP} language {\TeX}", + journal = j-SYS-CTL-INFO, + volume = "33", + number = "3", + pages = "117--125", + month = "", + year = "1989", + CODEN = "SSEJE", + ISSN = "0374-4507", + bibdate = "Thu Sep 01 00:40:26 1994", + abstract = "Desk-top publishing (DTP) has come to be of major + interest with the spread of computers-that is, the + progress of the printer and image scanner-and with the + development of computer software. DTP was initially + used to print documents and to perform all the + processes required for printing on a table with the aid + of computers. {\TeX} document data is a method that + embeds a {\TeX} command into the text to be printed. + This method is the traditional style, as in the runoff + system, nroff and troff. (10 Refs.)", + acknowledgement = ack-nhfb, + classification = "C6130D (Document processing techniques); C7108 + (Desktop publishing)", + keywords = "Desk-top publishing; Document data; Image scanner; + Printer; TEX", + language = "Japanese", + thesaurus = "Desktop publishing", +} + +@InProceedings{Morris:1991:HTV, + author = "Robert A. Morris and Karl Berry and Kathryn A. + Hargreaves and Dimitrios Liarokapis", + title = "How typeface variation and typographic variation + affect readability at small sizes", + crossref = "Pietrowski:1991:ISI", + pages = "344--352", + year = "1991", + bibdate = "Tue Mar 1 12:57:02 1994", + acknowledgement = ack-kb, +} + +@Book{Mortensen:1991:RRT, + author = "Niels G. Mortensen", + title = "Ris{\o}-rapporter i {\TeX}. Matematisk og + naturvidenskabelig typografi i praksis (Ris{\o} reports + in {\TeX}. Mathematical and scientific typography in + practice).", + publisher = pub-RISO, + address = pub-RISO:adr, + year = "1991", + ISBN = "87-550-1635-9", + ISBN-13 = "978-87-550-1635-4", + note = "Prepared using {\LaTeX}, and typeset on a Chelgraph + IBX photo-typesetter.", +} + +@InProceedings{Murata:1992:FHS, + author = "Makoto Murata and Koichi Hayashi", + title = "Formatter Hierarchy for Structured Documents", + crossref = "Vanoirbeek:1992:EPE", + pages = "77--94", + year = "1992", + bibdate = "Thu Dec 29 11:04:16 1994", + acknowledgement = ack-ps, +} + +@Article{Myhill:1990:PTI, + author = "M. Myhill", + title = "Publishing {\TeX}nical {INFORMATION}: typesetting by + database", + journal = j-PROGRAM, + volume = "24", + number = "3", + pages = "281--289", + month = jul, + year = "1990", + CODEN = "PRGMB", + ISSN = "0033-0337", + bibdate = "Thu Sep 01 00:57:42 1994", + abstract = "Much has been written about the link between desktop + publishing and word-processing systems. Linking a + database management system to a publishing system can + have considerable advantages. At the University of + Exeter Library the {\TeX} typesetting system and the + INFORMATION database management system have been + combined in a number of stages to produce foreign + language bibliographies. (7 Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Exeter Univ. Libr., UK", + classification = "C6160 (Database management systems (DBMS)); C7108 + (Desktop publishing); C7210L (Library automation)", + keywords = "Desktop publishing; Foreign language bibliographies; + INFORMATION database management system; TeX typesetting + system; University of Exeter Library; Word-processing + systems", + thesaurus = "Database management systems; Desktop publishing; + Library automation", +} + +@PhdThesis{Naiman:1991:UGI, + author = "Avi Naiman", + title = "The Use of Grayscale for Improved Character + Presentation", + type = "Ph.D. Thesis", + school = "University of Toronto", + address = "Toronto, Ontario, Canada", + year = "1991", + bibdate = "Tue Mar 1 12:57:40 1994", + note = "Technical report CSRI-253. To order by mail, send a + letter to ATTN: Technical Reports, Computer Systems + Research Institute, University of Toronto, 6 King's + College Road, Toronto, Ontario M5S 1A1, CANADA, Tel: + (416) 978-8751. The cost is CDN\$16 if inside Canada, + US\$16 if outside. Avi's e-mail address is + \path|avi@cvs.rochester.edu|.", + acknowledgement = ack-kb, +} + +@Book{Negru:1988:CT, + author = "John Negru", + title = "Computer typesetting", + publisher = pub-VNR, + address = pub-VNR:adr, + pages = "xiv + 185", + year = "1988", + ISBN = "0-442-26696-0", + ISBN-13 = "978-0-442-26696-7", + LCCN = "Z253.3 .N4 1988", + bibdate = "Mon Jul 25 11:56:23 1994", + price = "US\$39.95", + acknowledgement = ack-nhfb, + keywords = "languages", + subject = "J.5 Computer Applications, ARTS AND HUMANITIES, + Linguistics \\ I.7.0 Computing Methodologies, TEXT + PROCESSING, General \\ I.7.2 Computing Methodologies, + TEXT PROCESSING, Document Preparation, + Photocomposition", +} + +@Book{Nelson:1978:PD, + author = "Roy Paul Nelson", + title = "Publication Design", + publisher = pub-WCB, + address = pub-WCB:adr, + edition = "Second", + pages = "295", + year = "1978", + ISBN = "0-697-04324-X", + ISBN-13 = "978-0-697-04324-5", + LCCN = "Z246 .N44 1978", + bibdate = "Fri Jul 22 09:13:36 1994", + acknowledgement = ack-jpl, + annote = "This is an introductory text suitable for college + level. It comprises a broad survey a design issues + (production, typography, art, book design), with little + in the way of business management.", +} + +@Book{Nelson:1991:PD, + author = "Roy Paul Nelson", + title = "Publication Design", + publisher = pub-WCB, + address = pub-WCB:adr, + edition = "Fifth", + pages = "xiv + 319", + year = "1991", + ISBN = "0-697-08620-8", + ISBN-13 = "978-0-697-08620-4", + LCCN = "Z246 .N44 1991", + bibdate = "Fri Aug 19 11:31:39 1994", + acknowledgement = ack-nhfb, +} + +@Article{Noot:1983:STF, + author = "Han Noot", + title = "Structured text formatting", + journal = j-SPE, + volume = "13", + number = "1", + pages = "79--94", + month = jan, + year = "1983", + CODEN = "SPEXBL", + ISSN = "0038-0644", + bibdate = "Thu Jul 21 22:12:03 1994", + abstract = "An abstract format machine is presented which can be + ``microprogrammed'' to yield document formatters. A + high-level language to be used for this + microprogramming is discussed. It contains special + constructs for the manipulation of blocks of text. The + format machine has a design which encourages the + implementation of well-structured and concise sets of + layout directives on it. It incorporates a systematic + strategy for dealing with problems such as the + avoidance of ``widows.'' At various points in this + paper we contrast out approach with that of a number of + recent, well-known text formatting systems.", + acknowledgement = ack-nhfb, +} + +@Misc{NTG:1989:NTG, + key = "NTG", + title = "Nederlandstalige {\TeX} Gebruikersgroep", + year = "1989" # "\unskip--", + note = "Journal of the NTG (Dutch-speaking {\TeX} Users + Group).", +} + +@Article{Ohl:1995:DFD, + author = "Thorsten Ohl", + title = "Drawing {Feynman} diagrams with {\LaTeX} and + {\METAFONT}", + journal = j-COMP-PHYS-COMM, + volume = "90", + number = "2--3", + pages = "340--354", + month = oct, + year = "1995", + CODEN = "CPHCBZ", + ISSN = "0010-4655", + bibdate = "Sat Dec 21 15:45:22 MST 1996", + bibsource = "Compendex database", + abstract = "feynMF is a {\LaTeX} package for easy drawing of + professional quality Feynman diagrams with METAFONT (or + METAPOST). feynMF lays out most diagrams satisfactorily + from the structure of the graph without any need for + manual intervention. Nevertheless all the power of + METAFONT (or METAPOST) is available for the most + complicated cases.", + acknowledgement = ack-nhfb, + affiliation = "Technische Hochschule Darmstadt", + affiliationaddress = "Darmstadt, Ger", + classification = "723; 723.1.1; 723.5; 902.1; 921.4; 931.4", + keywords = "Algorithms; Computer graphics; Computer programming + languages; Computer software; Drawing (graphics); + Feynman diagrams; Graph theory; latex (programming + language); metafont (programming language); Quantum + theory", +} + +@Article{Ohno:1991:DPS, + author = "Y. Ohno", + title = "Document preparation software", + journal = "Journal of the Institute of Electronics, Information + and Communication Engineers", + volume = "74", + number = "2", + pages = "175--177", + month = feb, + year = "1991", + CODEN = "DJTGE", + ISSN = "0913-5693", + bibdate = "Thu Sep 01 01:14:00 1994", + abstract = "In a monograph for students, text processing concepts + such as WYSIWYG and PageMaker type functions are + explained. The background to the use of {\TeX} and + {\LaTeX} by both Japanese and American mathematical + societies is discussed. (6 Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Fac. of Sci. and Technol., Keio Univ., Yokohama, + Japan", + classification = "C6130D (Document processing techniques); C7108 + (Desktop publishing)", + keywords = "Document preparation software; LaTeX; PageMaker; TeX; + Text processing; WYSIWYG", + language = "Japanese", + thesaurus = "Desktop publishing; Software packages; Text editing", +} + +@Book{Olsak:1995:TST, + author = "Petr Ol{\v{s}}{\'a}k", + title = "Typografick{\'y} syst{\'e}m {\TeX}", + publisher = "CSTUG", + address = "Praha, Czech Republic", + pages = "272", + year = "1995", + ISBN = "80-901950-0-8", + ISBN-13 = "978-80-901950-0-4", + bibdate = "Fri Feb 13 09:05:16 1998", + acknowledgement = ack-nhfb, +} + +@Book{Olsak:1997:TNC, + author = "Petr Ol{\v{s}}{\'a}k", + title = "{\TeX}book naruby. ({Czech}) [{\TeX}book inside out]", + publisher = "Konvoj", + address = "Berkova 22, Brno, 612 00, Czech Republic", + pages = "467", + year = "1997", + ISBN = "80-85615-64-9", + ISBN-13 = "978-80-85615-64-7", + bibdate = "Tue Dec 31 06:43:10 1996", + price = "250 Kc", + URL = "http://math.feld.cvit.cz/olsak/tbn.html", + abstract = "All internal algorithms of \TeX{} and \TeX{} + primitives are described in detail, with 3000 lines of + examples of illustrating macros. All examples are + extracted in the freely-available file {\tt tbn.mac}. + Part B of the book (150 pages) is a general glossary of + all \TeX{} primitives and macros of plain and + csplain.", + acknowledgement = ack-nhfb, +} + +@Article{Oman:1990:TSI, + author = "Paul W. Oman and Curtis R. Cook", + title = "Typographic Style is More than Cosmetic", + journal = j-CACM, + volume = "33", + number = "5", + pages = "506--520", + month = may, + year = "1990", + CODEN = "CACMA2", + ISSN = "0001-0782", +} + +@InProceedings{Padovani:2004:IEM, + author = "Luca Padovani", + title = "Interactive Editing of {MathML} Markup Using {\TeX} + Syntax", + crossref = "Syropoulos:2004:TXD", + pages = "125--138", + year = "2004", + CODEN = "LNCSD9", + ISSN = "0302-9743", + bibdate = "Tue Nov 16 17:43:44 2004", + acknowledgement = ack-nhfb, +} + +@Article{Palais:1986:MTP, + author = "Richard S. Palais", + title = "Mathematical Text Processing", + journal = j-NAMS, + volume = "33", + number = "1", + pages = "3--7", + month = jan, + year = "1986", + ISSN = "0002-9920", + acknowledgement = ack-hk, +} + +@Article{Pappas:1989:TIP, + author = "T. L. Pappas", + title = "{\TeX}nology on the {IBM PC}", + journal = j-COMPUTER, + volume = "22", + number = "8", + pages = "111--120", + month = aug, + year = "1989", + CODEN = "CPTRB", + ISSN = "0018-9162", + bibdate = "Thu Sep 01 00:41:20 1994", + abstract = "An overview of the {\TeX} typesetting system is given, + and some of the author's experiences are discussed. He + discusses input, justification and hyphenation, fonts, + math typesetting, macros, device-independent files and + special effects. {\TeX} products are then reviewed. The + author describes the hardware he has used and + recommends a {\TeX} software configuration. (0 Refs.)", + acknowledgement = ack-nhfb, + classification = "C7230 (Publishing and reproduction)", + keywords = "Device-independent files; Fonts; Hyphenation; IBM PC; + Input; Justification; Macros; Math typesetting; + Overview; Software configuration; Special effects; + TeXnology; Typesetting system", + thesaurus = "Computer controlled typesetting", +} + +@InProceedings{Pappas:1990:LPR, + author = "T. L. Pappas", + booktitle = "Proceedings of Eighth Annual National Conference on + Ada Technology", + title = "Literate programming for reusability: a queue package + example", + publisher = "U.S. Army Commun.-Electron. Command", + address = "Fort Monmouth, NJ, USA", + pages = "500--514", + month = "", + year = "1990", + bibdate = "Wed Aug 31 00:54:39 MDT 1994", + abstract = "Writing reusable software components requires more + than just following coding guidelines. It also requires + that potential clients of a component can easily + understand the documentation associated with the + component. Literate programming, as suggested by D. + Knuth (1983), is concerned with combining code and + documentation in a form that is more easily read by + humans, rather than by compilers. The paper illustrates + the benefits of a literate programming approach to + writing reusable software by presenting a generic + package written in a literate programming style. ADA + WEB, a language for literate programming that combines + Ada and {\TeX}, was used to prepare the paper. (14 + Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Intermetrics Inc., Warminster, PA, USA", + bookpages = "xiv + 669", + classification = "C6110B (Software engineering techniques)", + confdate = "5--8 March 1990", + conflocation = "Atlanta, GA, USA", + confsponsor = "Ancost", + keywords = "Ada; ADA WEB; Documentation; Generic package; Literate + programming; Queue package; Software components; TEX", + thesaurus = "Ada; Programming; Software reusability; System + documentation", +} + +@Article{Pappas:1990:POL, + author = "T. L. (Frank) Pappas", + title = "{\POSTSCRIPT} output on a {LaserJet} printer", + journal = j-COMPUTER, + volume = "23", + number = "10", + pages = "82--88", + month = oct, + year = "1990", + CODEN = "CPTRB", + ISSN = "0018-9162", + bibdate = "Mon Aug 29 17:27:22 1994", + acknowledgement = ack-nhfb, +} + +@Article{Pappas:1991:TTD, + author = "T. L. (Frank) Pappas", + title = "{\TeX} typesetting with a difference", + journal = j-COMPUTER, + volume = "24", + number = "6", + pages = "92--93", + month = jun, + year = "1991", + CODEN = "CPTRB", + ISSN = "0018-9162", +} + +@InProceedings{Partl:1990:HMT, + author = "Hubert Partl", + title = "How to make {\TeX} and {\LaTeX} international", + crossref = "Nadrchal:1990:MMI", + pages = "190--200", + year = "1990", + CODEN = "CPHCB", + bibdate = "Thu Sep 01 01:01:10 1994", + note = "Invited paper.", + abstract = "Originally, the public domain typesetting systems + {\TeX} and {\LaTeX} have been designed for American + standards only. Nowadays, however, they are being used + all over the world and with a lot of different + languages. The author gives an example of the problems + that arise when modifying {\TeX} and {\LaTeX} for + easier application with a language other than + US-English. Hints are added, how similar work might be + performed for all European languages, with special + emphasis on compatibility and portability problems and + on international co-operation. (6 Refs.)", + acknowledgement = ack-rw # " and " # ack-nhfb, + affiliation = "Tech. Univ. of Vienna, Wien, Austria", + annote = "The present article is both a resum{\'e} of a + well-established German standard and a guideline for + other national language styles to be developed.", + classification = "C7106 (Word processing)", + confdate = "19--28 Sept. 1989", + conflocation = "Skalsky dvur, Czechoslovakia", + confsponsor = "EPS; Czechoslovak Acad. Sci.; Union of Czechoslovak + Math. Phys", + keywords = "Compatibility; European languages; LaTeX; Portability + problems; Public domain typesetting systems; TeX", + thesaurus = "Software packages; Text editing; Word processing", +} + +@Misc{Partl:1993:DL, + author = "Hubert Partl and Elis. Schlegl and Irene Hyna", + title = "Una Descripci{\'o}n de {\LaTeX}", + year = "1993", + bibdate = "Tue Nov 30 10:08:52 1993", + note = "Spanish translation by Tomas Bautista of German + introduction to {\LaTeX}, {\LaTeX}-Kurzbeschreibung. + Includes material on the {\tt spanish} style option. + Available in Spain from \path=ftp.eunet.es= (also known + as \path=goya.uu.es=) in the directory + \path=info/UNIX/text/TeX/spanish/tutorial=, as well as + from the main {\TeX} archives.", + acknowledgement = ack-ps, +} + +@Booklet{Pawlowski:1993:LCT, + author = "Wies{\l}aw Paw{\l}owski", + title = "{\LaTeX}, czyli {\TeX} dla ludzi", + howpublished = "broszura z konferencji cz{\l}onk{\'o}w GUSTu", + address = "Bachotek", + year = "1993", + bibdate = "Thu Jun 23 18:23:31 1994", + note = "In Polish.", + acknowledgement = ack-md, + address-l = lang-pl, + author-l = lang-pl, + howpublished-l = lang-pl, + title-l = lang-pl, +} + +@InProceedings{Perez:2004:BCS, + author = "Jagoba Arias P{\'e}rez and Jes{\'u}s L{\'a}zaro and + Juan M. Aguirregabiria", + title = "{Basque}: {A} Case Study in Generalizing Language + Support", + crossref = "Syropoulos:2004:TXD", + pages = "27--33", + year = "2004", + CODEN = "LNCSD9", + ISSN = "0302-9743", + bibdate = "Tue Nov 16 17:43:44 2004", + acknowledgement = ack-nhfb, +} + +@InProceedings{Piska:2004:CTF, + author = "Karel P{\'\i}{\v{s}}ka", + title = "Creating {Type 1} Fonts from {\MF} Sources: Comparison + of Tools, Techniques and Results", + crossref = "Syropoulos:2004:TXD", + pages = "240--256", + year = "2004", + CODEN = "LNCSD9", + ISSN = "0302-9743", + bibdate = "Tue Nov 16 17:43:44 2004", + acknowledgement = ack-nhfb, +} + +@InProceedings{Plaice:2004:MOO, + author = "John Plaice and Yannis Haralambous and Paul Swoboda + and G{\'a}bor Bella", + title = "Moving {$\Omega$} to an Object-Oriented Platform", + crossref = "Syropoulos:2004:TXD", + pages = "17--26", + year = "2004", + CODEN = "LNCSD9", + ISSN = "0302-9743", + bibdate = "Tue Nov 16 17:43:44 2004", + acknowledgement = ack-nhfb, +} + +@PhdThesis{Plass:1981:OPT, + author = "Michael F. Plass", + title = "Optimal pagination techniques for automatic + typesetting systems", + type = "{Ph.D.} dissertation", + school = "Computer Science Department, Stanford University", + address = "Stanford, CA, USA", + pages = "vi + 72", + year = "1981", + bibdate = "Mon May 20 11:04:41 MDT 1996", + series = "Report no. STAN-CS-81-870", + URL = "http://wwwlib.umi.com/dissertations/fullcit/8124134", + abstract = "This thesis considers how to use a computer to break a + document into pages suitable for printing. Although + this problem is easy to solve when the document + consists of just text, it becomes complicated when + footnotes, displays, and figures are introduced. These + elements add some freedom of choice in the way breaks + are chosen, since the white space around the displays + and the exact placement of the figures can be decided + by the pagination algorithm. Out of the many possible + ways to paginate such a document, the pagination + algorithm should pick the one that is in some sense + optimal. The approach taken here is to define a badness + function that depends on the way the document is broken + up, and then to design an algorithm to find a way to + minimize the value of this function. The document is + modelled by two lists, the text list and the figure + list. Each item in the text list is either a `box', + corresponding to something that will print such as a + line of text, a `glue' item, corresponding to the white + space between the lines, a `penalty' item, + corresponding to a legal place to break the list, or a + `citation', marking a reference to one of the figures. + The items in the figure list indicate the size of each + figure, and by how much each figure is allowed to + stretch or shrink. This model is based on the one used + in the \TeX{} typesetting system. The optimizing + pagination algorithm uses dynamic programming to find, + for each $i$, $j$, and $k$, the best way to put the + first $i$ lines of text and the first $j$ figures onto + the first $k$ pages; to make the program run in a + reasonable amount of time, this calculation includes + only those subproblems that are feasible, i.e., likely + to lead to a solution with a small badness value. The + badness function must be chosen carefully in order to + get a problem that can be solved by these techniques. + For certain simple badness functions, the pagination + problem is NP-complete; two such functions are + described in the thesis.", + acknowledgement = ack-nhfb, + keywords = "Pagination; Computerized typesetting", +} + +@InCollection{Plass:1982:CBL, + author = "Michael F. Plass and Donald E. Knuth", + title = "Choosing better line breaks", + crossref = "Nievergelt:1982:DPS", + chapter = "??", + pages = "221--242", + year = "1982", + bibdate = "Mon Aug 22 14:25:12 1994", + abstract = "This article discusses a new approach to the problem + of dividing the text of a paragraph into lines of + approximately equal length. Instead of simply making + decisions one line at a time, the method considers the + paragraph as a whole, so that the final appearance of a + given line might be influenced by the text on + succeeding lines. A system based on three simple + primitive concepts called ``boxes,'' ``glue,'' and + ``kerns'' provides the ability to deal satisfactorily + with a wide variety of typesetting problems in a + unified framework, using a single algorithm that + determines optimum breakpoints. This algorithm avoids + backtracking by a judicious use of the techniques of + dynamic programming. Extensive computational experience + confirms that the approach is both efficient and + effective in producing high-quality output.", + acknowledgement = ack-nhfb, + keywords = "algorithms; documentation", + review = "ACM CR 40914", + subject = "I.7 Computing Methodologies, TEXT PROCESSING, Text + Editing \\ I.7.2 Computing Methodologies, TEXT + PROCESSING, Document Preparation, Format and notation", +} + +@Article{Poppelier:1992:BR, + author = "Nico Poppelier and Amy Hendrickson", + title = "Book reviews", + journal = j-NTG, + volume = "92", + number = "1", + pages = "135--138", + month = may, + year = "1992", + bibdate = "Sat May 11 07:33:52 1996", + annote = "Contains reviews of {\em \LaTeX{} for Everyone\/} + \cite{Hahn:1991:LER}, {\em Practical SGML\/} + \cite{vanHerwijnen:1990:PS}, and {\em \TeX{} by Topic, + A \TeX{}nician's Reference\/} + \cite{Eijkhout:1992:TTT}.", + keywords = "reviews", +} + +@Article{Poppelier:1992:BRJ, + author = "Nico Poppelier", + title = "Book reviews: {Jane Hahn, {\em \LaTeX} for + Everyone\/}; {Eric van Herwijnen, {\em Practical + SGML}}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "182--184", + month = jul, + year = "1992", + bibdate = "Tue Mar 1 12:07:33 1994", + annote = "Contains reviews of {\em \LaTeX{} for Everyone\/} + \cite{Hahn:1991:LER}, and {\em Practical SGML\/} + \cite{vanHerwijnen:1990:PS}.", +} + +@InProceedings{Porrat:1992:DHT, + author = "Rama Porrat", + title = "Developments in {Hebrew \TeX}", + crossref = "Zlatuska:1992:EPE", + pages = "135--148", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + acknowledgement = ack-nhfb, +} + +@InProceedings{Porter:1992:DRA, + author = "Gilbert B. {Porter III} and Emil V. Rainero", + title = "Document Reconstruction: {A} System for Recovering + Document Structure from Layout", + crossref = "Vanoirbeek:1992:EPE", + pages = "127--141", + year = "1992", + bibdate = "Thu Dec 29 11:04:17 1994", + acknowledgement = ack-ps, +} + +@Book{Porter:1997:MTN, + author = "Richard D. Porter", + title = "Math into Type: The Next Generation", + publisher = pub-AMS, + address = pub-AMS:adr, + pages = "120", + year = "1997", + ISBN = "0-8218-0644-0", + ISBN-13 = "978-0-8218-0644-9", + LCCN = "", + bibdate = "Thu Jan 30 17:05:24 1997", + price = "US\$19.00", + acknowledgement = ack-nhfb, +} + +@Article{Probets:2003:SOF, + author = "S. G. Probets and D. F. Brailsford", + title = "Substituting outline fonts for bitmap fonts in + archived {PDF} files", + journal = j-SPE, + volume = "33", + number = "9", + pages = "885--899", + day = "25", + month = jul, + year = "2003", + CODEN = "SPEXBL", + DOI = "10.1002/spe.532", + ISSN = "0038-0644", + bibdate = "Sat Nov 29 17:39:47 MST 2003", + bibsource = "http://www.interscience.wiley.com/jpages/0038-0644; + http://www3.interscience.wiley.com/journalfinder.html", + URL = "http://brain.mhri.edu.au/text/texpdf/texpdf-ffont.html; + http://www.cs.nott.ac.uk/~dfb/Publications/Download/2003/Probets03.pdf; + http://www.eprg.org/research/", + acknowledgement = ack-nhfb, + onlinedate = "25 Jun 2003", +} + +@InProceedings{Przechlewski:2004:MTR, + author = "Tomasz Przechlewski", + title = "Managing {\TeX} Resources with {XML} Topic Maps", + crossref = "Syropoulos:2004:TXD", + pages = "216--228", + year = "2004", + CODEN = "LNCSD9", + ISSN = "0302-9743", + bibdate = "Tue Nov 16 17:43:44 2004", + acknowledgement = ack-nhfb, +} + +@InCollection{Rahtz:1987:PW, + author = "Sebastian Rahtz", + title = "The processing of words", + crossref = "Rahtz:1987:ITH", + pages = "69--79", + year = "1987", + bibdate = "Mon Aug 22 14:25:29 1994", + acknowledgement = ack-nhfb, + keywords = "human factors", + review = "ACM CR 8803-0222", + subject = "I.7.0 Computing Methodologies, TEXT PROCESSING, + General \\ J.5 Computer Applications, ARTS AND + HUMANITIES \\ K.3.0 Computing Milieux, COMPUTERS AND + EDUCATION, General", +} + +@TechReport{Rahtz:1989:STG, + author = "Sebastian Rahtz", + title = "A Survey of {\TeX} and Graphics", + number = "CSTR 89-7", + institution = "University of Southampton", + address = "Department of Electronics and Computer Science, + Southampton SO9 5NH, UK", + month = oct, + year = "1989", + bibdate = "Tue Mar 1 12:54:12 1994", +} + +@Book{Reid:1988:PLP, + author = "Glenn C. Reid", + title = "{\POSTSCRIPT} Language Program Design", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xii + 224", + year = "1988", + ISBN = "0-201-14396-8", + ISBN-13 = "978-0-201-14396-6", + LCCN = "QA76.73.P67 R45 1988", + bibdate = "Tue Dec 14 23:17:57 1993", +} + +@Article{Revesz:1991:TOM, + author = "G. E. Revesz", + title = "On translating ordinary mathematical notation", + journal = j-STRUCTURED-PROGRAMMING, + volume = "12", + number = "3", + pages = "115--122", + month = "", + year = "1991", + CODEN = "STPGE", + ISSN = "0935-1183", + bibdate = "Thu Sep 01 01:15:09 1994", + abstract = "The abstract mathematical description of an algorithm + is usually much better for human consumption than its + implementation in a conventional programming language. + The aim is to use ordinary mathematical notation as a + program development tool for certain applications. The + author illustrates some ideas via an experimental + translator which translates mathematical formulas to + Pascal statements. More precisely, a combination of + ordinary mathematical notation and conventional style + control structures and declarations is used as the + programming language. But, because of the + two-dimensional nature of ordinary mathematical + notation, the proper display of source programs + requires some special tools. Given the popularity of + the {\TeX} type-setting system, the author decided to + encode the source programs in plain {\TeX}. The + experimental translator has four phases: the first + phase is a lexical analyzer (tokenizer) which deals + primarily with the decoding of the {\TeX} notation; the + second phase is a preprocessor which analyses the + declarations and performs other pattern matching + functions; the third is the actual parser; and the + fourth phase is the code generator. (6 Refs.)", + acknowledgement = ack-nhfb, + affiliation = "IBM Corp., Thomas J. Watson Res. Center, Yorktown, NY, + USA", + classification = "C6110 (Systems analysis and programming); C6140D + (High level languages); C6150C (Compilers, interpreters + and other processors)", + keywords = "Abstract mathematical description; Code generator; + Conventional style control structures; Declarations; + Experimental translator; Lexical analyzer; Ordinary + mathematical notation; Parser; Pascal statements; + Pattern matching functions; Preprocessor; Program + development tool; Programming language; Source + programs; TeX notation; TeX type-setting system; + Tokenizer; Two-dimensional nature", + thesaurus = "Pascal; Program compilers; Program interpreters; + Structured programming; Word processing", +} + +@Book{Rice:1978:BDT, + author = "Stanley Rice", + title = "Book Design---Text Format Models", + publisher = pub-BOWK, + address = pub-BOWK:adr, + pages = "xiv + 215", + year = "1978", + ISBN = "0-8352-1045-6", + ISBN-13 = "978-0-8352-1045-4", + LCCN = "Z245 R5 1978", + bibdate = "Fri Jul 22 09:14:04 1994", + price = "US\$17.50", + acknowledgement = ack-dh, +} + +@Book{Rolland:1993:LGP, + author = "Christian Rolland", + title = "{\LaTeX} guide pratique", + publisher = pub-AW, + address = pub-AW:adr, + pages = "280", + month = jul, + year = "1993", + ISBN = "2-87908-025-8", + ISBN-13 = "978-2-87908-025-3", + bibdate = "Tue Dec 14 10:38:20 1993", + note = "Distributed by Bourdas, code 009808.", + price = "FF 190", + acknowledgement = ack-ps, +} + +@Book{Rolland:1995:LGP, + author = "Christian Rolland", + title = "{\LaTeX}: guide pratique", + publisher = pub-AW-FRANCE, + address = pub-AW-FRANCE:adr, + edition = "Deuxi{\`e}me", + pages = "xix + 345", + year = "1995", + ISBN = "2-87908-104-1", + ISBN-13 = "978-2-87908-104-5", + LCCN = "????", + bibdate = "Sat Mar 7 18:25:51 MST 1998", + acknowledgement = ack-nhfb, + annote = "Un syst{\`e}me performant pour la pr{\'e}paration de + documents.", + keywords = "{\LaTeX} (syst{\`e}me informatique)", +} + +@Book{Rolland:1999:LPP, + author = "Christian Rolland", + title = "{\LaTeX} par la pratique", + publisher = pub-ORA, + address = pub-ORA:adr, + pages = "xx + 559", + year = "1999", + ISBN = "2-84177-073-7", + ISBN-13 = "978-2-84177-073-1", + LCCN = "????", + bibdate = "Sat Mar 7 18:25:51 MST 1998", + acknowledgement = ack-nhfb, + annote = "Un syst{\`e}me performant pour la pr{\'e}paration de + documents. CD-ROM {\TeX}live 6b ci-inclus.", + keywords = "{\LaTeX} (syst{\`e}me informatique)", +} + +@InProceedings{Romberger:1985:ATL, + author = "Staffan Romberger and Yngve Sundblad", + title = "Adapting {\TeX} to {Languages} that use {Latin} + {Alphabetic Characters}", + crossref = "Lucarella:1985:PFE", + pages = "27--40", + year = "1985", + bibdate = "Tue Mar 1 12:57:06 1994", + acknowledgement = ack-hk, +} + +@InProceedings{Rose:1992:HTP, + author = "Kristoffer H. Rose", + title = "How to typeset pretty diagram arrows with {\TeX} --- + design decisions used in {\Xy-pic}", + crossref = "Zlatuska:1992:EPE", + pages = "183--210", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + acknowledgement = ack-nhfb, +} + +@InProceedings{Rose:1992:TDX, + author = "Kristoffer H. Rose", + title = "Typesetting Diagrams with {XY-pc}: user's manual", + crossref = "Zlatuska:1992:EPE", + pages = "273--292", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + acknowledgement = ack-nhfb, +} + +@TechReport{Rosset:1984:SSA, + author = "J.-L. {Rosset, editor}", + title = "{S.A.PR.I.S.T.I}. (Syst\`eme Assist\'e de {PR}oduction + Int\'egrant Simplement Textes et Images)", + type = "Suppl\'ement au No.", + number = "65", + institution = inst-CIRCE, + address = inst-CIRCE:adr, + year = "1984", + bibdate = "Tue Mar 1 12:54:15 1994", + acknowledgement = ack-hk, +} + +@Article{Rosson:1988:DUB, + author = "Mary B. Rosson and Wendy Kellogg and Susanne Maass", + title = "The designer as user: building requirements for design + tools from design practice", + journal = j-CACM, + volume = "31", + number = "11", + pages = "1288--1298", + month = nov, + year = "1988", + CODEN = "CACMA2", + ISSN = "0001-0782", + bibdate = "Thu Jul 21 22:43:20 1994", + note = "From {\em Computing Reviews\/}: ``InterViews objects + are combined through a model similar to the boxes and + glues in Knuth's {\TeX}, which allows interface objects + to be combined with little concern for undesired + interactions.''", + acknowledgement = ack-nhfb, +} + +@Book{Roth:1988:RWP, + editor = "Stephen E. Roth", + title = "Real World {{\POSTSCRIPT}}", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiv + 383", + year = "1988", + ISBN = "0-201-06663-7", + ISBN-13 = "978-0-201-06663-0", + LCCN = "Z286.D47 R4 1988", + bibdate = "Wed Dec 15 18:12:59 1993", +} + +@InProceedings{Rowley:2001:LLA, + author = "Chris Rowley", + editor = "{ACM}", + booktitle = "Proceedings of the {Twentieth Annual ACM Symposium on + Principles of Distributed Computing 2001, Newport, + Rhode Island, United States}", + title = "The {\LaTeX} legacy: 2.09 and all that", + publisher = pub-ACM, + address = pub-ACM:adr, + pages = "17--25", + year = "2001", + ISBN = "1-58113-383-9", + ISBN-13 = "978-1-58113-383-7", + LCCN = "????", + bibdate = "Sat Mar 23 13:38:26 2002", + acknowledgement = ack-nhfb, +} + +@Book{Roy:1984:TWT, + author = "Yves Roy", + title = "{\TeX\slash WEB}, et le traitement de textes + math\'ematiques", + publisher = pub-MASSON, + address = pub-MASSON:adr, + pages = "vii + 102", + year = "1984", + ISBN = "2-225-80249-1", + ISBN-13 = "978-2-225-80249-2", + LCCN = "Z253.4.T47 R69 1984", + bibdate = "Thu Nov 19 18:54:40 1998", + note = "Preface de D. Foata.", + acknowledgement = ack-hk, +} + +@Book{Rubinstein:1988:DTI, + author = "Richard Rubinstein", + title = "Digital Typography\emdash An Introduction to Type and + Composition for Computer System Design", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xi + 340", + month = nov, + year = "1988", + ISBN = "0-201-17633-5", + ISBN-13 = "978-0-201-17633-9", + LCCN = "Z253.3 .R8 1988", + bibdate = "Fri Jul 22 09:15:20 1994", + note = "Reprinted with corrections", + price = "US\$32.25", + acknowledgement = ack-nhfb # " and " # ack-fm, + keywords = "computerized typesetting, type and typefounding, data + processing, electronic publishing, bibliography + annotated", +} + +@Book{Ruder:1988:TG, + author = "Emil Ruder", + title = "Typographie; Ein Gestaltungsbuch", + publisher = pub-NIGGLI, + address = pub-NIGGLI:adr, + edition = "Fifth revised", + year = "1988", + bibdate = "Tue Mar 1 12:08:26 1994", + note = "Contains complete English and French translation.", + acknowledgement = ack-fm, + annote = "Excellent book about typography and design. Contains + many examples of the explained concepts. The main focus + is on individual typography as an art.", + keywords = "layout, typography, design, fonts", +} + +@TechReport{Ruggles:1983:LDS, + author = "Lynn Ruggles", + title = "Letterform Design Systems", + number = "STAN-CS-83-971", + institution = inst-STANFORD, + address = inst-STANFORD:adr, + month = apr, + year = "1983", + bibdate = "Sat Feb 10 15:00:44 1996", +} + +@PhdThesis{Ruggles:1987:PIE, + author = "Lynn Elizabeth Ruggles", + title = "{Paragon}, an interactive, extensible, environment for + typeface design", + type = "{Ph.D.} dissertation", + school = "University of Massachusetts Amherst", + address = "Amherst, MA, USA", + pages = "192", + year = "1987", + bibdate = "Wed May 25 08:16:01 2005", + URL = "http://wwwlib.umi.com/dissertations/fullcit/8805968", + abstract = "Typefaces have been designed and used for over 600 + years. As new technology was developed, new methods + were designed to cope with the changes in materials and + techniques. The current century has seen the + development of raster output devices in the form of + laser printers, CRT typesetters, and bitmapped graphics + displays. Systems used to generate digital type designs + for these devices generally fall into the category of + copying systems rather than design systems. Little work + has been done to provide the type designer with a + system intended to be used for the design of new + typefaces. This thesis discusses a typeface design + system which has been created to fill this gap. The + system, named Paragon, is an interactive, extensible, + typeface design environment implemented on an + interactive graphics workstation. It is an attempt to + integrate the traditional typeface design environment + with the capabilities of interactive computer graphics. + It enhances the traditional environment by providing + functions to aid the design process which are difficult + to do by hand, but easy to do within a computer system. + The design system itself is extensible in that a + designer who has little if any knowledge of computers + or programming can create new commands by using the + primitive operations that are provided and can then + incorporate these commands into the working + environment.", + acknowledgement = ack-nhfb, +} + +@Book{Rybicka:1995:PZ, + author = "Ji{\v{r}}i Rybi{\v{c}}ka", + title = "{\LaTeX} pro za{\v{c}}{\'a}te{\v{c}}n{\'{\i}}ky", + publisher = "Konvoy", + address = "Brno, Czech Republic", + pages = "169", + year = "1995", + ISBN = "80-85615-42-8", + ISBN-13 = "978-80-85615-42-5", + bibdate = "Sat Mar 07 18:35:26 1998", + acknowledgement = ack-nhfb, +} + +@Booklet{Rycko:1993:CNA, + author = "Marek Ry{\'c}ko", + title = "Co nieco o akapicie", + howpublished = "broszura z konferencji cz{\l}onk{\'o}w GUSTu", + address = "Bachotek", + year = "1993", + bibdate = "Thu Jun 23 18:23:33 1994", + note = "In Polish.", + acknowledgement = ack-md, + address-l = lang-pl, + author-l = lang-pl, + howpublished-l = lang-pl, + title-l = lang-pl, +} + +@Book{Salomon:1995:AT, + author = "David Salomon", + title = "The Advanced {\TeX}book", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xx + 490", + year = "1995", + ISBN = "0-387-94556-3", + ISBN-13 = "978-0-387-94556-9", + LCCN = "Z253.4.T47 S25 1995", + bibdate = "Fri Sep 10 09:26:14 1999", + price = "US\$39.95", + URL = "http://www.ecs.csun.edu/~dxs/tatb.advertis/tatbAd.html", + acknowledgement = ack-nhfb, +} + +@TechReport{Samuel:1983:FGT, + author = "Arthur Samuel", + title = "First Grade {\TeX}. {A} Beginner's {\TeX} Manual", + number = "STAN-CS-83-985", + institution = inst-STANFORD, + address = inst-STANFORD:adr, + month = nov, + year = "1983", + bibdate = "Sat Feb 10 15:01:14 1996", + note = "Also published by TUG as {\TeX}niques No.~11.", +} + +@Article{Sankar:1989:ASG, + author = "S. Sankar", + title = "{APE}\emdash a set of {\TeX} macros to format {Ada} + programs", + journal = j-SIGADA-LETTERS, + volume = "9", + number = "7", + pages = "114--128", + month = nov # "\slash " # dec, + year = "1989", + CODEN = "AALEE", + ISSN = "0736-721X", + bibdate = "Sat Nov 12 21:50:04 1994", + abstract = "Describes a set of macros designed for the purpose of + formatting Ada programs in T/sub E/X. These macros were + implemented by the author in early 1987, and they have + been refined a few times since. They have also been + extended for the language extensions of Ada developed + by the Program Analysis and Verification Group at + Stanford University. These macros exist as one + collection in a file which is included into the + document using the mod input command. This file is + available on request from the author. The design of the + macros were motivated by the program example + environment in Scribe. It is for this reason that they + have been named APE, which is an acronym for `Ada + Program-Example'. The macros are of two kinds-global + macros and local macros. The global macros are visible + throughout the scope in which the input command has + been inserted. (4 Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Dept. of Comput. Sci., Stanford Univ., CA, USA", + classification = "C6140D (High level languages)", + keywords = "Ada Program-Example; APE; Format Ada programs; Global + macros; languages; Local macros; TEX; TeX macros", + subject = "D.2.3 Software, SOFTWARE ENGINEERING, Coding \\ D.3.2 + Software, PROGRAMMING LANGUAGES, Language + Classifications, Ada", + thesaurus = "Ada; Macros", +} + +@Book{Sawyer:1995:TPS, + author = "Stanley A. Sawyer and Steven Krantz", + title = "A {\TeX} Primer for Scientists", + publisher = pub-CRC, + address = pub-CRC:adr, + pages = "viii + 399", + year = "1995", + ISBN = "0-8493-7159-7", + ISBN-13 = "978-0-8493-7159-2", + bibdate = "Wed Jan 04 08:23:09 1995", + price = "US\$29.95", + acknowledgement = ack-nhfb, +} + +@Article{Scavo:1993:TM, + author = "Tom Scavo and Yannis Haralambous and Werenfried Spit", + title = "{\TeX} on the Macintosh", + journal = j-NAMS, + volume = "40", + number = "10", + pages = "1353--1360", + month = dec, + year = "1993", + ISSN = "0002-9920", + bibdate = "Thu Dec 29 10:55:24 1994", + acknowledgement = ack-ps, +} + +@InProceedings{Schaefer:2004:SSC, + author = "Frank-Rene Schaefer", + title = "{\c{S}}{\"a}fer{\TeX}: Source Code Esthetics for + Automated Typesetting", + crossref = "Syropoulos:2004:TXD", + pages = "229--239", + year = "2004", + CODEN = "LNCSD9", + ISSN = "0302-9743", + bibdate = "Tue Nov 16 17:43:44 2004", + acknowledgement = ack-nhfb, +} + +@Book{Scherber:1994:OST, + author = "Peter Scherber", + title = "Offizin\emdash Schrift\-en\-reihe zu {\TeX}, {\LaTeX}, + und Metafont (Band 1, Hrsg. von {DANTE} e.{V})", + publisher = pub-AW, + address = pub-AW:adr, + pages = "x + 159", + year = "1994", + ISBN = "3-89319-396-0", + ISBN-13 = "978-3-89319-396-7", + bibdate = "Sat Mar 07 09:53:36 1998", + price = "DM 49,00", + acknowledgement = ack-ps # " and " # ack-nhfb, +} + +@Book{Schlager:2005:WLA, + author = "Petra Schlager and Manfred Thibud", + title = "{Wissenschaftlich mit \LaTeX{} arbeiten}. ({German}) + [{Working} scientifically with {{\LaTeX}}]", + publisher = "Pearson Studium", + address = "Munich, Germany", + pages = "218", + year = "2005", + ISBN = "3-8273-7078-7", + ISBN-13 = "978-3-8273-7078-5", + LCCN = "????", + bibdate = "Tue Jun 21 18:20:31 2005", + note = "Includes CD-ROM.", + acknowledgement = ack-nhfb, + language = "German", +} + +@Misc{Schrell:1993:DTS, + editor = "Andreas Schrell", + key = "Schrell:1993:DSW", + title = "{DANTE-\TeX}-Stammtisch in Wuppertal: Jahrbuch + 1992/93", + pages = "80", + year = "1993", + bibdate = "Tue Mar 1 12:09:25 1994", + acknowledgement = ack-rz, +} + +@Article{Schrod:1991:IVM, + author = "Joachim Schrod", + title = "An International Version of {\em {MakeIndex}}", + journal = j-GUTENBERG, + volume = "10--11", + pages = "81--90", + month = sep, + year = "1991", +} + +@Book{Schumann:1989:PBT, + author = "Lothar Schumann", + title = "{Professioneller Buchsatz mit \TeX}", + publisher = pub-OLDENBOURG, + address = pub-OLDENBOURG:adr, + pages = "viii + 336", + year = "1989", + ISBN = "3-486-21173-0", + ISBN-13 = "978-3-486-21173-3", + bibdate = "Sat Mar 7 09:55:30 1998", + acknowledgement = ack-nhfb, +} + +@Book{Schumann:1991:PBT, + author = "Lothar Schumann", + title = "{Professioneller Buchsatz mit \TeX: Lehrbuch f{\"u}r + Anwender}", + publisher = pub-OLDENBOURG, + address = pub-OLDENBOURG:adr, + pages = "viii + 336", + year = "1991", + ISBN = "3-486-21736-4", + ISBN-13 = "978-3-486-21736-0", + bibdate = "Sat Mar 07 09:55:49 1998", + acknowledgement = ack-ps, +} + +@Book{Schwartz:1988:WYA, + author = "Laurens R. Schwartz", + title = "What You Aren't Supposed To Know About Writing And + Publishing: An Expos{/'e} of Editors, Agents, + Publishing Houses, and More \emdash An Insider's + Report", + publisher = pub-SP, + address = pub-SP:adr, + pages = "viii + 173", + year = "1988", + ISBN = "0-944007-02-3", + ISBN-13 = "978-0-944007-02-0", + LCCN = "KF300.Z9 S35 1988", + bibdate = "Tue Mar 1 12:58:57 1994", + acknowledgement = ack-jpl, + annote = "Satirical (gallows?) humor providing anecdotal insight + into the publishing world from someone who's had a lot + of different jobs in the trade. Down-to-earth + information and really funny.", +} + +@Book{Schwartz:1992:LSS, + author = "Stefan Schwartz and Rudolf Potu{\v{c}}ek", + title = "{\LaTeX}\emdash {Satzkunst} statt {DTP} + ({\LaTeX}\emdash The Art of Typography rather than + {DTP})", + publisher = pub-VOGEL, + address = pub-VOGEL:adr, + pages = "106", + year = "1992", + ISBN = "3-8023-1178-7", + ISBN-13 = "978-3-8023-1178-9", + bibdate = "Sat Mar 07 09:56:40 1998", + price = "DM34.00", + acknowledgement = ack-nhfb, +} + +@Book{Schwarz:1988:ET, + author = "Norbert Schwarz", + title = "Einf{\"u}hrung in {\TeX}", + publisher = pub-AWV, + address = pub-AWV:adr, + edition = "Second", + pages = "272", + year = "1988", + ISBN = "3-925118-97-7", + ISBN-13 = "978-3-925118-97-5", + bibdate = "Tue Mar 1 12:10:26 1994", + note = "Available in English translation, + \cite{Krieger:1990:IT}, and in Dutch translation, + \cite{Schwarz:1990:IT}.", + xxnote = "Duplicate ISBN with \cite{Schwarz:1991:ET}.", +} + +@Book{Schwarz:1990:ET, + author = "Norbert Schwarz", + title = "Einf{\"u}hrung in {\TeX}", + publisher = pub-AWV, + address = pub-AWV:adr, + edition = "Second extended", + pages = "272", + year = "1990", + ISBN = "3-925118-97-7", + ISBN-13 = "978-3-925118-97-5", + bibdate = "Tue Mar 1 12:10:26 1994", + note = "Available in English translation, + \cite{Krieger:1990:IT}, and in Dutch translation, + \cite{Schwarz:1990:IT}.", + xxnote = "Duplicate ISBN with \cite{Schwarz:1991:ET}.", +} + +@Book{Schwarz:1990:IT, + author = "Norbert Schwarz", + title = "{Inleiding \TeX}", + publisher = pub-AWE, + address = pub-AWE:adr, + pages = "282", + year = "1990", + ISBN = "90-6789-151-7", + ISBN-13 = "978-90-6789-151-6", + bibdate = "Wed Apr 19 10:42:24 1995", + note = "Dutch translation of \cite{Schwarz:1988:ET}. See also + the English translation, \cite{Krieger:1990:IT}.", +} + +@Book{Schwarz:1991:ET, + author = "Norbert Schwarz", + title = "Einf{\"u}hrung in {\TeX}", + publisher = pub-AWV, + address = pub-AWV:adr, + edition = "Third", + pages = "336", + year = "1991", + ISBN = "3-925118-97-7", + ISBN-13 = "978-3-925118-97-5", + bibdate = "Tue Mar 1 12:10:26 1994", + note = "Available in English translation, + \cite{Krieger:1990:IT}, and in Dutch translation, + \cite{Schwarz:1990:IT}.", + xxnote = "Duplicate ISBN with \cite{Schwarz:1988:ET}.", +} + +@Book{Schwarz:1997:TRF, + author = "Stefan Schwarz and Rudolf Potu{\v{c}}ek", + title = "Das {\TeX}ikon: Referenzhandbuch f{\"u}r {\TeX} und + {\LaTeX}", + publisher = pub-AW-LONGMAN, + address = pub-AW-LONGMAN:adr, + pages = "774", + year = "1997", + ISBN = "3-89319-690-0", + ISBN-13 = "978-3-89319-690-6", + LCCN = "", + bibdate = "Fri Jan 26 16:46:24 2001", + price = "DM 69,90", + acknowledgement = ack-nhfb, +} + +@InProceedings{Semenzato:1992:AAL, + author = "Luigi Semenzato and Edward Wang", + title = "Aleph: {A} Language for Typesetting", + crossref = "Vanoirbeek:1992:EPE", + pages = "65--75", + year = "1992", + bibdate = "Thu Dec 29 11:04:19 1994", + acknowledgement = ack-ps, +} + +@Book{Seroul:1989:PLT, + author = "Raymond Seroul", + title = "Le petit Livre de {\TeX}", + publisher = pub-IE, + address = pub-IE:adr, + pages = "317", + year = "1989", + ISBN = "2-7296-0233-X", + ISBN-13 = "978-2-7296-0233-8", + bibdate = "Wed Jul 6 14:54:52 1994", + acknowledgement = ack-nhfb, +} + +@Book{Seroul:1991:BBT, + author = "Raymond Seroul and Silvio Levy", + title = "A Beginner's Book of {\TeX}", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xii + 282", + year = "1991", + ISBN = "0-387-97562-4, 3-540-97562-4", + ISBN-13 = "978-0-387-97562-7, 978-3-540-97562-5", + LCCN = "Z253.4.T47 S47 1991", + bibdate = "Fri Jul 22 09:17:14 1994", + note = "This is a translation and adaption by Silvio Levy of + \cite{Seroul:1989:PLT}.", + acknowledgement = ack-nhfb, +} + +@Book{Sewell:1989:WPL, + author = "E. Wayne Sewell", + title = "Weaving a Program: Literate Programming in {\WEB}", + publisher = pub-VNR, + address = pub-VNR:adr, + pages = "xx + 556", + year = "1989", + ISBN = "0-442-31946-0", + ISBN-13 = "978-0-442-31946-5", + LCCN = "QA76.73.W24 S491 1989", + bibdate = "Mon Jul 25 11:32:59 1994", + price = "US\$34.95", + keywords = "algorithms; design; documentation; experimentation; + languages", + review = "ACM CR 9007-0537", + subject = "D.2.7 Software, SOFTWARE ENGINEERING, Distribution and + Maintenance, Documentation \\ I.7.1 Computing + Methodologies, TEXT PROCESSING, Text Editing, TeX \\ + D.3.2 Software, PROGRAMMING LANGUAGES, Language + Classifications, Pascal \\ D.2.2 Software, SOFTWARE + ENGINEERING, Tools and Techniques, Top-down programming + \\ D.2.3 Software, SOFTWARE ENGINEERING, Coding, Pretty + printers \\ I.7.1 Computing Methodologies, TEXT + PROCESSING, Text Editing, WEB \\ D.2.7 Software, + SOFTWARE ENGINEERING, Distribution and Maintenance, + Portability", +} + +@InCollection{Seybold:1982:DPS, + author = "J. W. Seybold", + title = "Document preparation systems and commercial + typesetting", + crossref = "Nievergelt:1982:DPS", + pages = "243--264", + year = "1982", + bibdate = "Mon Aug 22 14:25:31 1994", + acknowledgement = ack-nhfb, + keywords = "design; documentation; human factors; theory", + review = "ACM CR 40431", + subject = "I.7.2 Computing Methodologies, TEXT PROCESSING, + Document Preparation, Format and notation \\ I.7.2 + Computing Methodologies, TEXT PROCESSING, Document + Preparation, Photocomposition", +} + +@Article{Sherborne:1990:RGC, + author = "B. S. Sherborne and G. E. Stedman", + title = "Recursive generation of {Cartesian} angular momentum + coupling trees for {${\rm SO}(3)$}", + journal = j-COMP-PHYS-COMM, + volume = "59", + number = "2", + pages = "417--428", + month = jun, + year = "1990", + CODEN = "CPHCB", + ISSN = "0010-4655", + bibdate = "Fri Dec 18 11:10:49 1998", + abstract = "Two computer algorithms are evaluated for the + reduction of angular momentum coupling trees with + vector ($j=1$) terminals with a Cartesian choice of + basis as used in nonlinear optics. Rather than employ + advanced tensor algebra, both methods essentially + iterate in distinct ways the basic techniques of + angular momentum coupling. Turbo Pascal programs + implementing these algorithms are presented and + compared. The accompanying analysis integrates the + Cartesian tensor approach and the diagrammatic approach + to the solution of problems in nonlinear optics. The + programs generate {\TeX} files for the relevant angular + momentum diagrams. (13 Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Dept. of Phys., Canterbury Univ., Christchurch, New + Zealand", + classification = "A0210 (Algebra, set theory, and graph theory); A0220 + (Group theory); A0270 (Computational techniques); A4265 + (Nonlinear optics); C7320 (Physics and Chemistry)", + keywords = "Cartesian angular momentum coupling trees; Computer + algorithms; Diagrammatic approach; Nonlinear optics; + Recursive generation; SO(3); Tensor approach; TeX + files; Turbo Pascal programs; Vector", + thesaurus = "Angular momentum theory; Microcomputer applications; + Nonlinear optics; Physics computing; SO groups; + Software packages; Tensors; Trees [mathematics]; + Vectors", +} + +@Book{Shirokov:1994:PPS, + author = "Boris Shirokov", + title = "{PC}{\TeX}. Prostoi sposob iziaschnogo oformleniia + mathematicheskikh tekstov: uchebnoe posobie \toenglish + {PC{\TeX}}. {Simple} method of elegant markup of + mathematical texts: textbook \endtoenglish", + publisher = "Petrozavodsk State University", + address = "Petrozavodsk, Russia", + pages = "80", + year = "1994", + ISBN = "5-230-08971-7", + ISBN-13 = "978-5-230-08971-1", + bibdate = "Wed Jan 04 08:16:39 1995", + note = "This small manual talks about working with {\TeX} on + IBM PC compatible computers (not about PC{\TeX}!).", + acknowledgement = ack-ps, +} + +@Book{Shultis:1994:LNP, + author = "J. Kenneth Shultis", + title = "{\LaTeX} Notes: Practical Tips for Preparing Technical + Documents", + publisher = pub-PHPTR, + address = pub-PHPTR:adr, + pages = "xi + 180", + year = "1994", + ISBN = "0-13-120973-6", + ISBN-13 = "978-0-13-120973-2", + LCCN = "Z253.4.L38 S48 1994", + bibdate = "Thu May 12 08:36:58 1994", + price = "US\$32.00", + acknowledgement = ack-nhfb, +} + +@Article{Siebenmann:1986:TWU, + author = "L. C. Siebenmann", + title = "Toward {Wider Use} of {\TeX Typesetting}. {A} + {Pre}--{\TeX Manifesto}", + journal = j-NAMS, + volume = "33", + number = "4", + pages = "597--607", + month = aug, + year = "1986", + ISSN = "0002-9920", + acknowledgement = ack-hk, +} + +@InProceedings{Siebenmann:1992:CGR, + author = "Laurent Siebenmann", + title = "{CaesarCM} --- {A} gentle road to perfect hyphenation + in modest {\TeX} environments", + crossref = "Zlatuska:1992:EPE", + pages = "97--106", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + acknowledgement = ack-nhfb, +} + +@InProceedings{Siebenmann:1992:LM, + author = "Laurent Siebenmann", + title = "The Lion and the Mouse", + crossref = "Zlatuska:1992:EPE", + pages = "43--52", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + acknowledgement = ack-nhfb, +} + +@InProceedings{Siebenmann:1992:MAD, + author = "Laurent Siebenmann", + title = "La mise en application d{\'e}finitive de la norme de + {Cork}", + crossref = "Zlatuska:1992:EPE", + pages = "107--118", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + acknowledgement = ack-nhfb, +} + +@TechReport{Siegel:1985:EPA, + author = "David R. Siegel", + title = "The {Euler Project} at {Stanford}", + institution = inst-STANFORD, + address = inst-STANFORD:adr, + year = "1985", + bibdate = "Sat Feb 10 15:01:16 1996", +} + +@Book{Siemoneit:1989:TG, + author = "Manfred Siemoneit", + title = "{Typographisches Gestalten}", + publisher = pub-POLYGRAPH, + address = pub-POLYGRAPH:adr, + edition = "Second", + year = "1989", + bibdate = "Tue Mar 1 12:59:34 1994", + acknowledgement = ack-fm, + annote = "An excellent book on typographic design. Covers almost + all principles of high quality typography. (Written in + German.)", + keywords = "layout, typography, design", +} + +@Book{Simon:1987:SCO, + author = "John J. {Simon, Jr.}", + title = "From sand to circuits and other inquiries", + publisher = pub-HARVARD-INFO-TECH, + address = pub-HARVARD-INFO-TECH:adr, + pages = "xi + 271", + year = "1987", + ISBN = "0-674-32575-3", + ISBN-13 = "978-0-674-32575-3", + LCCN = "QA76.24 .F76 1986, T185.F76 1986, TK7828 .S48 1986", + bibdate = "Mon Jul 25 11:57:30 1994", + note = "Includes chapter on computer typesetting.", + price = "US\$24.95", + acknowledgement = ack-nhfb, + keywords = "design; human factors", + review = "ACM CR 8708-0653", + subject = "K.2 Computing Milieux, HISTORY OF COMPUTING, Hardware + \\ K.2 Computing Milieux, HISTORY OF COMPUTING \\ K.2 + Computing Milieux, HISTORY OF COMPUTING, Systems", +} + +@Book{Skillin:1974:WT, + author = "Marjorie E. Skillin and Robert Malcolm Gay", + title = "Words into Type", + publisher = pub-PH, + address = pub-PH:adr, + edition = "Third", + pages = "xx + 583", + year = "1974", + ISBN = "0-13-964262-5", + ISBN-13 = "978-0-13-964262-3", + LCCN = "PN160.S52 1974", + bibdate = "Sun Mar 6 17:34:11 1994", + price = "US\$39.95", + acknowledgement = ack-jpl, +} + +@InProceedings{Smith:1989:CLF, + author = "N. E. Smith", + title = "Coping with a large {Forth} system", + crossref = "Forsley:1989:RFC", + pages = "113--115", + year = "1989", + bibdate = "Fri Feb 09 18:09:45 1996", + abstract = "The PUBlicationS (PUBS) Software System extracts + bibliographic data from the DOE Energy Data Base and + automatically inserts typesetting commands so no manual + intervention is necessary before typesetting a + publication using {\TeX}. This system processes about + 40 DOE publications of four major classes. PUBS + contains over 30,000 lines of code in 150+modules. This + paper addresses how SAIC programmers cope with a Forth + system of this size. The conditional compilation + approach used is described. (0 Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Sci. Applications Int. Corp., Oak Ridge, TN, USA", + classification = "C6110 (Systems analysis and programming); C6150C + (Compilers, interpreters and other processors); C7230 + (Publishing and reproduction)", + keywords = "Bibliographic data; Conditional compilation; DOE + Energy Data Base; DOE publications; Large Forth system; + SAIC programmers; TeX; Typesetting commands", + language = "English", + pubcountry = "USA", + thesaurus = "Program compilers; Publishing; Text editing", +} + +@InProceedings{Smith:1990:PCS, + author = "N. E. Smith", + booktitle = "1990 Rochester Forth Conference: Embedded Systems", + title = "Parsing character strings in {Forth}", + publisher = inst-APPL-FORTH-RES, + address = inst-APPL-FORTH-RES:adr, + pages = "133--134", + month = "", + year = "1990", + ISBN = "0-914593-10-2", + ISBN-13 = "978-0-914593-10-2", + LCCN = "QA76.73.F24 R59 1990", + bibdate = "Sat Sep 17 11:20:21 1994", + abstract = "Forth is well suited to parsing character strings. The + paper discusses the Forth program developed to + translate human understandable special character + representations in the database into {\TeX} commands + for typesetting. This program is part of the + Publications (PUBS) Software System at the DOE Office + of Scientific and Technical Information which is used + to generate approximately 40 DOE bibliographic + publications. Special characters include math and Greek + symbols which are not part of the ASCII character set. + An alpha is represented as (Alpha) in the database, but + must be translated for typesetting with {\TeX}. + Characters and symbols can be sub/superscripted to form + equations such as H(sub 2)O to typeset $H_2O$. Symbol + nesting is supported. (0 Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Sci. Applications Int. Corp., Oak Ridge, TN, USA", + bookpages = "ix + 176", + classification = "C6130 (Data handling techniques)", + confdate = "12--16 June 1990", + conflocation = "Rochester, NY, USA", + confsponsor = "Harris Semicond.; Miller Microcomput. Services; NASA; + et al", + keywords = "Forth program; Greek symbols; Human understandable + special character representations; Mathematical + symbols; Maths symbols; Parameter stack; Publications; + Substring parsing; TeX commands; TSPECIAL", + language = "English", + pubcountry = "USA", + thesaurus = "Character sets; Computer controlled typesetting; Data + handling", +} + +@Article{Smith:1991:ABL, + author = "Lisa M. C. Smith and Mansur H. Samadzadeh", + title = "An Annotated Bibliography of Literate Programming", + journal = j-SIGPLAN, + volume = "26", + pages = "14--20", + month = jan, + year = "1991", + CODEN = "SINOD", + ISSN = "0362-1340", +} + +@Book{Snow:1992:TB, + author = "Wynter Snow", + title = "{\TeX} for the Beginner", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xii + 377", + year = "1992", + ISBN = "0-201-54799-6", + ISBN-13 = "978-0-201-54799-3", + LCCN = "Z253.4.T47 S64 1992", + bibdate = "Fri Jul 22 09:18:21 1994", + acknowledgement = ack-bnb, +} + +@InProceedings{Soiffer:1995:MTM, + author = "N. Soiffer", + title = "Mathematical Typesetting in {Mathematica}", + crossref = "Levelt:1995:IPI", + pages = "140--149", + year = "1995", + bibdate = "Mon Apr 8 10:31:32 MDT 1996", + acknowledgement = ack-nhfb, +} + +@InProceedings{Sojka:1992:TDP, + author = "Petr Sojka and Rudolf \v{C}ervenka and Martin + Svoboda", + title = "{\TeX} for database publishing", + crossref = "Zlatuska:1992:EPE", + pages = "53--58", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + acknowledgement = ack-nhfb, +} + +@TechReport{Southall:1985:DNT, + author = "Richard Southall", + title = "Designing New Typefaces with {Metafont}", + number = "STAN-CS-85-1074", + institution = inst-STANFORD, + address = inst-STANFORD:adr, + month = sep, + year = "1985", + bibdate = "Sat Feb 10 15:01:18 1996", +} + +@InProceedings{Southall:1985:MPD, + author = "Richard Southall", + title = "{\METAFONT} and the problem of type design", + crossref = "Andre:1985:TIJ", + pages = "133--145", + year = "1985", + bibdate = "Tue Mar 1 12:57:09 1994", + acknowledgement = ack-hk, +} + +@InProceedings{Southall:1992:PRR, + author = "Richard Southall", + title = "Presentation Rules and Rules of Composition in the + Formatting of Complex Text", + crossref = "Vanoirbeek:1992:EPE", + pages = "275--290", + year = "1992", + bibdate = "Thu Dec 29 11:04:20 1994", + acknowledgement = ack-ps, +} + +@Book{Sowa:1994:TLG, + author = "Friedhelm Sowa", + title = "{{\TeX\slash \LaTeX} und Graphik: Eine {\"U}berblick + {\"u}ber die Verfahren \toenglish {\TeX}/{\LaTeX} and + Graphics: A Survey of the Methods \endtoenglish}", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xv + 115", + year = "1994", + ISBN = "3-540-56468-3", + ISBN-13 = "978-3-540-56468-3", + bibdate = "Sat Mar 07 18:56:54 1998", + price = "DM39.00", + acknowledgement = ack-rz, +} + +@Book{Spivak:1980:JTG, + author = "M. Spivak", + title = "The Joy of {TEX}: {A} Gourmet Guide to Typesetting + Technical Text by Computer: With Numerous Explicit + Illustrations (Version 1)", + publisher = pub-AMS, + address = pub-AMS:adr, + pages = "134", + year = "1980", + bibdate = "Mon Jul 25 08:37:04 MDT 1994", + price = "US\$9.00", + acknowledgement = ack-nhfb, + subject = "H.1 Information Systems, MODELS AND PRINCIPLES, + Miscellaneous \\ H.4 Information Systems, INFORMATION + SYSTEMS APPLICATIONS, Miscellaneous", +} + +@Manual{Spivak:1985:PM, + author = "Michael D. Spivak", + title = "{PC\TeX} Manual", + publisher = pub-PTI, + address = pub-PTI:adr, + year = "1985", +} + +@Book{Spivak:1986:JTG, + author = "Michael D. Spivak", + title = "The Joy of {\TeX}\emdash {A} Gourmet Guide to + Typesetting with the {\AMSTEX} macro package", + publisher = pub-AMS, + address = pub-AMS:adr, + pages = "xviii + 290", + year = "1986", + ISBN = "0-8218-2999-8", + ISBN-13 = "978-0-8218-2999-8", + LCCN = "Z253.4.T47 S6731 1986", + bibdate = "Wed Dec 15 10:41:57 1993", +} + +@Manual{Spivak:1986:MPT, + author = "Michael D. Spivak", + title = "Manual ``{PC\TeX}'' ou {\TeX} en 9~le{\c{c}}ons", + publisher = inst-CIRCE, + address = inst-CIRCE:adr, + year = "1986", + note = "French translation of \cite{Spivak:1985:PM}.", +} + +@Book{Spivak:1989:LS, + author = "Michael D. Spivak", + title = "{L\AMSTEX}, The Synthesis", + publisher = pub-TEXPLORATORS, + address = pub-TEXPLORATORS:adr, + pages = "viii + 289", + year = "1989", + bibdate = "Sat Mar 12 18:20:15 1994", + acknowledgement = ack-nhfb, +} + +@Book{Spivak:1990:JTG, + author = "Michael D. Spivak", + title = "The Joy of {\TeX}\emdash {A} Gourmet Guide to + Typesetting with the {\AmSTeX} macro package", + publisher = pub-AMS, + address = pub-AMS:adr, + edition = "2nd revised", + pages = "xxii + 309", + year = "1990", + ISBN = "0-8218-2997-1", + ISBN-13 = "978-0-8218-2997-4", + LCCN = "Z253.4.T47 S6731 1990", + bibdate = "Wed Jul 6 13:55:42 1994", + price = "US\$40.00", + acknowledgement = ack-nhfb, +} + +@Book{Spivak:1991:LWM, + author = "Michael D. Spivak", + title = "The {\LAMSTeX} Wizard's Manual", + publisher = pub-TEXPLORATORS, + address = pub-TEXPLORATORS:adr, + year = "1991", + bibdate = "Tue Mar 15 19:13:42 1994", +} + +@Book{Spivak:1993:VT, + author = "Michael D. Spivak", + title = "Voskhititel'nii {\TeX} \toenglish {Joy} of {\TeX} + \endtoenglish", + publisher = pub-MIR, + address = pub-MIR:adr, + pages = "285", + year = "1993", + ISBN = "5-03-001942-1", + ISBN-13 = "978-5-03-001942-0", + bibdate = "Wed Dec 28 09:18:07 1994", + note = "Russian translation of {\em The Joy of {\TeX}}. + Translated by Irina Makhovaya and edited by Andrei + Khodulev. First book about {\TeX} in Russian. First + press run: 7000 copies.", + acknowledgement = ack-ps, +} + +@Book{Srinivasan:1993:UDP, + author = "Balasubramaniam Srinivasan", + title = "{UNIX} Document Processing and Typesetting", + publisher = pub-WORLD-SCI, + address = pub-WORLD-SCI:adr, + pages = "xiv + 445", + year = "1993", + ISBN = "981-02-0605-4", + ISBN-13 = "978-981-02-0605-5", + LCCN = "Z52.5.U54S65 1993", + bibdate = "Wed Aug 10 12:23:20 1994", + acknowledgement = ack-nhfb, +} + +@TechReport{Steemers:1989:JSG, + author = "L. Steemers and C. G. van der Laan", + title = "Journal Style Guidelines", + type = "RC-Rapport", + number = "26", + institution = "Rekencentrum der Rijksuniversiteit te Groningen", + address = "Groningen, The Netherlands", + year = "1989", + bibdate = "Tue Mar 1 12:54:27 1994", +} + +@Article{Steen:1981:TTE, + author = "Lynn Arthur Steen", + title = "Technical Text Editing", + journal = j-UMAP, + volume = "2", + number = "3", + pages = "17--35", + year = "1981", + bibdate = "Tue Dec 14 11:11:12 1993", + acknowledgement = ack-ps, +} + +@InProceedings{Stoffels:1992:APS, + author = "J. Stoffels and C. van Reeuwijk", + title = "Ampdes: a program for the synthesis of + high-performance amplifiers", + crossref = "IEEE:1992:PEC", + pages = "474--479", + year = "1992", + bibdate = "Sat Sep 17 11:20:23 1994", + abstract = "A circuit synthesis program for high-performance + small-signal amplifiers, called Ampdes is described. + The synthesis can be done with minimal interaction from + the user: only the essential information must be given, + and the program will produce a Spice net list and a + {\TeX} design report. For a typical design, this takes + 30 minutes on a mini-computer. Unlike other synthesis + programs, it searches in an extremely large set of + possible circuits (over 1,000,000 configurations), and + is not restricted to one device technology. To ensure a + high rate of success in the designs, it uses + mathematically sound search rules instead of heuristic + ones, and accurate approximations of the circuit + behavior. These features require considerable + computational effort, and therefore it is necessary to + use a refined search strategy to reduce the time for a + design run. This strategy is also described. (13 + Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Fac. of Electr. Eng., Delft Univ. of Technol., + Netherlands", + classification = "B1130B (Computer-aided circuit analysis and design); + B1220 (Amplifiers); C7410D (Electronic engineering)", + confdate = "16--19 March 1992", + conflocation = "Brussels, Belgium", + confsponsor = "IEEE; EDAC Assoc.; Alcatel Bell; CAVE (CEC); Dept. + Trade. Ind. UK; Esprit; Hewlett Packard; IBM", + keywords = "Accurate approximations; Ampdes; Circuit behavior; + Circuit synthesis program; Computational effort; Device + technology; High-performance small-signal amplifiers; + Mathematically sound search rules; Refined search + strategy; Spice net list; TeX design report", + thesaurus = "Amplifiers; Circuit analysis computing; SPICE", +} + +@Article{Stone:1992:CAR, + author = "Harold S. Stone", + title = "Copyrights and Author Responsibilities", + journal = j-COMPUTER, + volume = "25", + number = "12", + pages = "46--51", + month = dec, + year = "1992", + CODEN = "CPTRB", + ISSN = "0018-9162", + bibdate = "Sat Sep 10 12:51:19 1994", + note = "This paper discusses U.S. copyright law and its + implications for the reuse of published text. + Guidelines are given for the citation and quoting of + such material.", + acknowledgement = ack-nhfb, +} + +@Book{Sutton:1990:TB, + author = "James Sutton and Alan Bartram", + title = "Typefaces for Books", + publisher = pub-BL # " and " # pub-NAB, + address = pub-BL:adr # " and " # pub-NAB:adr, + pages = "288", + year = "1990", + ISBN = "1-56131-016-6, 1-56131-017-4 (paperback)", + ISBN-13 = "978-1-56131-016-6, 978-1-56131-017-3 (paperback)", + LCCN = "Z250 .S896 1990", + bibdate = "Fri Jul 22 09:19:06 1994", + note = "Contains full-page type samples in a variety of point + sizes for a large number of typefaces.", + acknowledgement = ack-nhfb, +} + +@Book{Swanson:1986:MTC, + author = "Ellen Swanson", + title = "Mathematics into Type; Copy Editing and Proofreading + of Mathematics for Editorial Assistants and Authors", + publisher = pub-AMS, + address = pub-AMS:adr, + edition = "Revised", + pages = "x + 90", + year = "1986", + ISBN = "0-8218-0053-1", + ISBN-13 = "978-0-8218-0053-9", + LCCN = "T11.4.S96 1979", + bibdate = "Fri Jul 22 09:19:41 1994", + acknowledgement = ack-fm, +} + +@Book{Syropoulos:2003:DTU, + author = "Apostolos Syropoulos and Antonis Tsolomitis and Nick + Sofroniou", + title = "Digital typography using {\LaTeX}", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xxix + 510", + year = "2003", + ISBN = "0-387-95217-9", + ISBN-13 = "978-0-387-95217-8", + LCCN = "Z253.4.L38 S97 2003", + bibdate = "Thu Mar 13 18:17:25 2003", + acknowledgement = ack-nhfb, + annote = "Seems to have been published in Europe with same ISBN, + but different title: From \LaTeX{} to $\Lambda$: An + Introduction to Digital Typography", + keywords = "Lambda; Omega; Unicode", +} + +@TechReport{Tang:1981:PIC, + author = "Chih-sung Tang", + title = "On the Problem of Inputting {Chinese} Characters", + type = "Report", + number = "STAN-CS-81-848", + institution = inst-STAN-CS, + address = inst-STAN-CS:adr, + year = "1981", + bibdate = "Sat Feb 10 15:01:20 1996", + acknowledgement = ack-hk, +} + +@Article{Tatarkiewicz:1988:TLD, + author = "Jakub Tatarkiewicz", + title = "{\TeX}nika {\L}adnego Druku", + journal = j-COMPUTER, + volume = "8", + pages = "36--37", + year = "1988", + CODEN = "CPTRB", + ISSN = "0018-9162", + note = "In Polish.", +} + +@InProceedings{Taupin:1992:MUT, + author = "Daniel Taupin", + title = "{Music\TeX}: using {\TeX} to write polyphonic or + instrumental music", + crossref = "Zlatuska:1992:EPE", + pages = "257--272", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + note = "Invited talk.", + acknowledgement = ack-nhfb, +} + +@InProceedings{Taylor:1992:FT, + author = "Phillip Taylor", + title = "The future of {\TeX}", + crossref = "Zlatuska:1992:EPE", + pages = "235--254", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + acknowledgement = ack-nhfb, +} + +@InProceedings{Teo:1988:UVS, + author = "G. S. Teo and M. {Mac an Airchinnigh}", + title = "The use of {VDM} in the specification of {Chinese} + characters", + crossref = "Bloomfield:1988:VVW", + pages = "476--499", + year = "1988", + bibdate = "Mon Oct 24 12:49:04 1994", + abstract = "The VDM Meta-IV is an important bridge that joins + application domain with implementation. The importance + and centrality of the Meta-IV specification language in + providing a `standard' framework for analysis and + design is highlighted. In addressing the usefulness of + the Meta-IV in the specification, design and + implementation of graphical icons for a general purpose + user interface management system, the authors chose to + focus on the domain of Chinese characters-ideograms + which have many characteristics in common with + graphical icons. Two different (conceptual) models were + developed. The first considered the ideogram as a stack + of transparencies. The second viewed it as the modular + composition of basic mathematical/graphical entities. + Specifications of both models in the Meta-IV were + developed and the declarative graphical programming + language METAFONT was used in the implementation. To + facilitate an appropriate entry level into learning and + using METAFONT for the task in hand, the VDM Meta-IV + was used to provide an abstract model of the language. + The results reported indicate that use of the VDM + Meta-IV as an expression of a common semantic base was + a success. (9 Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Dept. of Computer Science, Trinity College, Dublin, + Ireland", + classification = "C6110B (Software engineering techniques); C6120 + (File organisation); C6130B (Graphics techniques); + C6180 (User interfaces)", + confdate = "11--16 Sept. 1988", + conflocation = "Dublin, Ireland", + confsponsor = "Comm. Eur. Communities", + keywords = "Abstract model; Chinese characters; Common semantic + base; Data structures; Declarative graphical + programming language; Formal specification; Graphical + icons; Ideograms; METAFONT; Modular composition; + Specification language; User interface management + system; VDM; VDM Meta-IV; Vienna Development Method", + language = "English", + pubcountry = "West Germany", + thesaurus = "Character sets; Computer graphics; Data structures; + Formal specification; Specification languages; User + interfaces", +} + +@Misc{TEXEURO:1989:TE, + key = "TEXEURO", + title = "{\TeX}-Euro", + year = "1989" # "\unskip--", + bibdate = "Tue Mar 1 13:00:22 1994", + note = "This is an unmoderated discussion list for {\TeX} with + emphasis on European issues. To subscribe, send a + request with the text {\tt subscribe tex-euro} to + \path|listserv@dhdurz1.bitnet|.", +} + +@Misc{TEXHAX:1987:T, + key = "TEXHAX", + title = j-TEXHAX, + year = "1987" # "\unskip--", + note = "This is a TUG-supported moderated electronic mailing + list. To subscribe, send a request to + \path|texhax-request@june.cs.washington.edu|.", +} + +@Misc{TEXMAG:1988:T, + key = "TEXMAG", + title = "{\TeX}mag", + year = "1988" # "\unskip--", + bibdate = "Tue Mar 1 12:11:24 1994", + note = "This is an electronic magazine with articles about + {\TeX}. To subscribe, send a request with the text {\tt + subscribe texmag-l} to \path|listserv@vm.byu.edu|.", +} + +@InProceedings{Thimbleby:1991:LTT, + author = "H. Thimbleby", + booktitle = "Proceedings of the Fourth Annual Conference on + Computers and the Writing Process", + title = "Low-tech {\TeX}? (typesetting program)", + publisher = "Univ. Sussex", + address = "Brighton, UK", + pages = "124--130", + month = "", + year = "1991", + bibdate = "Sat Sep 17 11:20:26 1994", + abstract = "The author recounts his experience of using {\TeX} for + hundreds of pages (each many times). {\TeX} is a widely + and freely distributed high quality typesetting + program. It reads a markup language in standard ASCII + text, and therefore documents are easily transferred + from machine to machine. The author reviews the + advantages and disadvantages of using {\TeX} for book + publishing. (13 Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Stirling Univ., UK", + bookpages = "v + 247", + classification = "C7108 (Desktop publishing); C7230 (Publishing and + reproduction)", + confdate = "22--23 March 1991", + conflocation = "Brighton, UK", + keywords = "Book publishing; Markup language; Standard ASCII text; + TeX; Typesetting program", + thesaurus = "Computer controlled typesetting; Desktop publishing", +} + +@Booklet{Tobin:1985:EMS, + author = "Georgia K. M. Tobin", + title = "The Elements of {Metafont} Style", + year = "1985", +} + +@Article{Trickey:1988:UL, + author = "Howard Trickey", + title = "Using {\LaTeX}", + journal = j-SIGACT, + volume = "19", + number = "2", + pages = "55--57", + month = "Summer", + year = "1988", + bibdate = "Thu Jul 21 22:42:07 1994", + acknowledgement = ack-nhfb, +} + +@Book{Tschichold:1928:NTH, + author = "Jan Tschichold", + title = "Die neue Typographie: ein Handbuch f{\"u}r + zeitgem{\"a}ss Schaffende", + publisher = "Verl. das Bildungsverbandes der Deutschen + Buchdrucker", + address = "Berlin, Germany", + pages = "240", + year = "1928", + bibdate = "Sat Mar 07 10:08:59 1998", + acknowledgement = ack-nhfb, + xxISBN = "none", + xxLCCN = "", +} + +@Book{Tschichold:1986:TMS, + author = "Jan Tschichold", + title = "{Typographische Mitteilungen, Sonderheft Elementare + Typographie}", + publisher = pub-HSCHV, + address = pub-HSCHV:adr, + pages = "36", + year = "1986", + ISBN = "3-87439-233-3", + ISBN-13 = "978-3-87439-233-4", + price = "DM 24", + acknowledgement = ack-fm, + history = "Reprint of the special edition ``elementare + typographie'' of the october issue of Typographische + Mitteilungen 1925.", + inprint = "yes", +} + +@Book{Tschichold:1987:AAF, + author = "Jan Tschichold", + title = "{Ausgew\"ahlte Aufs\"atze \"uber Fragen der Gestalt + des Buches}", + publisher = pub-BIRKHAUSER, + address = pub-BIRKHAUSER:adr, + year = "1987", + ISBN = "3-7643-1946-1", + ISBN-13 = "978-3-7643-1946-5", + bibdate = "Sat Mar 7 10:05:07 1998", + note = "Second printing", + acknowledgement = ack-fm # " and " # ack-nhfb, + annote = "A set of interesting articles about typography + issues.", + keywords = "typography, layout, design", +} + +@Book{Tschichold:1991:FB, + author = "Jan Tschichold", + editor = "Robert Bringhurst", + title = "The Form of the Book", + publisher = pub-LUND-HUMPHRIES, + address = pub-LUND-HUMPHRIES:adr, + pages = "xviii + 180", + year = "1991", + ISBN = "0-85331-623-6", + ISBN-13 = "978-0-85331-623-7", + LCCN = "Z116.A3 T7613 1991b", + bibdate = "Fri Jul 22 09:20:17 1994", + note = "Originally published in German as Ausgew{\"a}hlte + Ausfs{\"a}tze {\"u}ber Fragen der Gestalt des Buches + und der Typographie by Birkh{\"a}user Verlag, Basel, + 1975", + price = "UK\pounds 18.95", + acknowledgement = ack-mc, + subtitle = "Essays on the Morality of Good Design", + translator = "Hajo Hadeler", +} + +@Book{Tschichold:1991:NT, + author = "Jan Tschichold", + title = "{Die Neue Typographie}", + publisher = pub-HSCHV, + address = pub-HSCHV:adr, + pages = "240", + year = "1991", + bibdate = "Sat Feb 24 09:56:32 1996", + price = "DM60", + acknowledgement = ack-fm # " and " # ack-nhfb, + bibliography = "yes", + history = "Reprint of the first edition from 1928 + \cite{Tschichold:1928:NTH} with supplement containing + articles about the history of books by Werner Doede, + Jan Tschichold and Gerd Fleischman", + inprint = "yes", + subtitle = "{Ein Handbuch f{\"u}r zeitgem{\"a}{\ss} Schaffende}", +} + +@Book{Tschichold:1995:NTHa, + author = "Jan Tschichold", + title = "Die neue Typographie: ein Handbuch f{\"u}r + zeitgem{\"a}ss Schaffende", + publisher = pub-BRINKMANN-BOSE, + address = pub-BRINKMANN-BOSE:adr, + edition = "Second", + pages = "240", + year = "1995", + ISBN = "3-922660-23-1", + ISBN-13 = "978-3-922660-23-1", + LCCN = "", + bibdate = "Sat Mar 07 10:06:33 1998", + price = "DM 80,00", + acknowledgement = ack-nhfb, +} + +@Book{Tschichold:1995:NTHb, + author = "Jan Tschichold", + title = "The new typography: a handbook for modern designers", + volume = "8", + publisher = pub-U-CAL-PRESS, + address = pub-U-CAL-PRESS:adr, + pages = "xliv + 236", + year = "1995", + ISBN = "0-520-07146-8", + ISBN-13 = "978-0-520-07146-9", + LCCN = "Z116.T7513 1995", + bibdate = "Sat Mar 07 10:11:35 1998", + note = "Translated from the original German editions + \cite{Tschichold:1928:NTH,Tschichold:1995:NTHa} by + Ruari McLean. With an introduction by Robin Kinross.", + series = "Weimar and now", + acknowledgement = ack-nhfb, +} + +@Book{Tschichold:1995:TAL, + author = "Jan Tschichold", + title = "Treasury of Alphabets and Lettering: {A} Source Book + of the Best Letter Forms of Past and Present for Sign + Painters, Graphic Artists, Commercial Artists, + Typographers, Printers, Sculptors, Architects, and + Schools of Art and Design", + publisher = pub-NORTON, + address = pub-NORTON:adr, + pages = "236", + year = "1995", + ISBN = "0-393-70197-2", + ISBN-13 = "978-0-393-70197-5", + LCCN = "Z250 .T883 1995", + bibdate = "Fri Jun 23 17:25:36 1995", + note = "This is identical to the 1966 edition, with a new + introduction by Ben Rosen.", + price = "US\$35.00", + acknowledgement = ack-nhfb, +} + +@Book{Tufte:1983:VDQ, + author = "Edward R. Tufte", + title = "The Visual Display of Quantitative Information", + publisher = pub-GP, + address = pub-GP:adr, + pages = "197", + year = "1983", + ISBN = "0-9613921-0-X", + ISBN-13 = "978-0-9613921-0-9", + LCCN = "QA90 .T83 1983", + bibdate = "Fri Jul 22 09:21:51 1994", + price = "US\$34.00", +} + +@Book{Tufte:1990:EI, + author = "Edward R. Tufte", + title = "Envisioning Information", + publisher = pub-GP, + address = pub-GP:adr, + pages = "126", + year = "1990", + LCCN = "QA90 .T82 1990", + bibdate = "Fri Jul 22 09:22:34 1994", + price = "US\$48.00", +} + +@Article{Tuthill:1983:TUS, + author = "B. Tuthill", + title = "Typesetting on the {UNIX} system", + journal = j-BYTE, + volume = "8", + number = "19", + pages = "253--265", + month = oct, + year = "1983", + CODEN = "BYTEDJ", + ISSN = "0360-5280", + bibdate = "Fri Feb 09 18:10:41 1996", + acknowledgement = ack-nhfb, + keywords = "documentation; human factors", + subject = "K Computing Milieux, PERSONAL COMPUTING \\ D.4.7 + Software, OPERATING SYSTEMS, Organization and Design, + UNIX \\ D.4.0 Software, OPERATING SYSTEMS, General, + UNIX \\ D.4.m Computing Methodologies, TEXT PROCESSING, + Miscellaneous \\ I.7", +} + +@Book{Tymms:1987:AI, + author = "W. R. Tymms and M. D. Wyatt", + title = "The Art of Illuminating", + publisher = pub-CHARTWELL, + address = pub-CHARTWELL:adr, + pages = "104", + year = "1987", + ISBN = "1-55521-198-4", + ISBN-13 = "978-1-55521-198-1", + LCCN = "ND3310 .T95 1987", + bibdate = "Fri Jul 22 09:23:54 1994", +} + +@Article{Udell:1989:PPI, + author = "J. Udell", + title = "The power of the press (Interleaf's {TE}chnical + Publishing Software)", + journal = j-BYTE, + volume = "14", + number = "12", + pages = "271--276", + month = nov, + year = "1989", + CODEN = "BYTED", + ISSN = "0360-5280", + bibdate = "Thu Sep 01 00:44:12 1994", + abstract = "Interleaf's Technical Publishing Software (TPS) blends + two styles of computer-based publishing. The first, + represented by troff and {\TeX} is stream-oriented and + works with a global description of a document's for + mat. The second (and newer) style, best exemplified by + PageMaker, works in a WYSIWYG mode with individual + pages. TPS's union of the two styles is, for the most + part, a happy one that has made it one of the most + interesting desktop publishing packages around. The + latest version, release 4.0 enhances both halves of + TPS's personality. The author reviews the use of TPS on + a Sun workstation, assessing its style, structure, and + content; its graphics capabilities; layout problems; + equation chart, and table editors; document and project + management; and Interleaf's step towards open + architecture via TPS release 4.0. (0 Refs.)", + acknowledgement = ack-nhfb, + classification = "C7108 (Desktop publishing)", + keywords = "Chart editors; Desktop publishing packages; Document + management; Equation editors; Graphics capabilities; + Interleaf Technical Publishing Software; Interleaf TPS; + Layout problems; Open architecture; PageMaker; Press; + Project management; Stream-oriented computer-based + publishing; Sun workstation; Table editors; TeX; TPS + release 4.0; Troff; WYSIWYG mode", + thesaurus = "Desktop publishing; Performance evaluation; Software + packages; Workstations", +} + +@Article{Uehara:1990:CTP, + author = "T. Uehara", + title = "Current technology and problems in computer fonts", + journal = j-J-INFO-PROC, + volume = "31", + number = "11", + pages = "1570--1580", + year = "1990", + CODEN = "JOSHA", + ISSN = "0447-8053", + bibdate = "Mon Oct 24 12:44:52 MDT 1994", + abstract = "The author discusses the handling and creation of + typefaces on computers. He mentions METAFONT and spline + curve approximation. (45 Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Central Res. Lab., Hitachi Ltd., Ibaraki, Japan", + classification = "C6130B (Graphics techniques); C7108 (Desktop + publishing)", + keywords = "Computer fonts; Desktop publishing; METAFONT; Spline + curve approximation; Typefaces", + language = "Japanese", + pubcountry = "Japan", + thesaurus = "Character sets; Desktop publishing", +} + +@Misc{UKTEX:1987:U, + key = "UKTEX", + title = "{UK\TeX}", + year = "1987" # "\unskip--", + note = "This is an electronic discussion list for {\TeX} + issues in the United Kingdom.", +} + +@Book{Ulichney:1987:DH, + author = "Robert Ulichney", + title = "Digital Halftoning", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xiv + 362", + year = "1987", + ISBN = "0-262-21009-6", + ISBN-13 = "978-0-262-21009-6", + LCCN = "T385 .U451 1987", + bibdate = "Fri Jul 22 09:24:18 1994", +} + +@Booklet{Urban:1986:IL, + author = "Michael Urban", + title = "An Introduction to {\LaTeX}", + howpublished = "Prepared for the TRW Software Productivity Project; + reprinted with permission and distributed by TUG", + year = "1986", + acknowledgement = ack-hk, +} + +@Booklet{Urban:1991:PPL, + author = "Michael {Urban (adaptation fran{\c{c}}\-aise de + {\'E}ric Cornelis)}", + title = "Premiers pas en {\LaTeX}", + howpublished = j-GUTENBERG, + month = may, + year = "1991", + bibdate = "Tue Mar 1 12:12:35 1994", + note = "French translation of \cite{Urban:1986:IL}.", + acknowledgement = ack-nhfb, +} + +@InProceedings{Utting:1983:TSC, + author = "I. A. Utting and D. J. Caul and H. Brown and S. E. + Binns", + title = "A typesetting server for the {Cambridge} ring", + crossref = "Dallas:1983:IWU", + pages = "243--248", + year = "1983", + bibdate = "Fri Dec 18 11:10:34 1998", + acknowledgement = ack-nhfb, + keywords = "design", + subject = "C.2.0 Computer Systems Organization, + COMPUTER-COMMUNICATION NETWORKS, General, Data + communications \\ C.2.5 Computer Systems Organization, + COMPUTER-COMMUNICATION NETWORKS, Local Networks, + Rings", +} + +@InProceedings{Utting:1985:RDI, + author = "Ian Utting", + title = "The {R}{\^o}le of Device Independent Output", + crossref = "Lucarella:1985:PFE", + pages = "183--191", + year = "1985", + bibdate = "Tue Mar 1 12:57:11 1994", + acknowledgement = ack-hk, +} + +@InProceedings{Vacha:1992:TTP, + author = "Ondr{\v{r}}ej V{\'a}cha", + title = "{\TeX} for typesetting in a publishing house", + crossref = "Zlatuska:1992:EPE", + pages = "59--65", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + acknowledgement = ack-nhfb, +} + +@Book{ValienteFeruglio:1997:CTC, + author = "Gabriel {Valiente Feruglio}", + title = "Composicion de textos cientificos con {\LaTeX}", + publisher = "Universitat Politecnica de Catalunya", + address = "Barcelona, Spain", + pages = "259", + year = "1997", + ISBN = "84-8301-204-9", + ISBN-13 = "978-84-8301-204-8", + LCCN = "????", + bibdate = "Sat Mar 7 18:25:51 MST 1998", + price = "US\$22.78", + series = "Aula Teorica; 61", + acknowledgement = ack-nhfb, + keywords = "Escritos cientificos -- Composicion; Informatica; + Puvill Libros; {\LaTeX} (Sistema informatico)", +} + +@TechReport{vanderLaan:1989:LTL, + author = "C. G. van der Laan and J. R. Luyten", + title = "{\LaTeX} Templates: Letter and Article", + type = "RC-Rapport", + number = "27", + institution = "Rekencentrum der Rijksuniversiteit te Groningen", + address = "Groningen, The Netherlands", + month = nov, + year = "1989", + bibdate = "Tue Mar 1 12:54:36 1994", +} + +@TechReport{vanderLaan:1989:SLM, + author = "C. G. van der Laan and D. C. Coleman and J. R. + Luyten", + title = "{SGML}--{\LaTeX} 1.~{Mathematical} formulas", + type = "RC-Rapport", + number = "24", + institution = "Rekencentrum der Rijksuniversiteit te Groningen", + address = "Groningen, The Netherlands", + year = "1989", + bibdate = "Tue Mar 1 12:54:33 1994", + note = "(English version).", +} + +@InProceedings{vanderLaan:1992:FFI, + author = "Kees van der Laan", + title = "{FIFO} and {FIFO} incognito", + crossref = "Zlatuska:1992:EPE", + pages = "225--234", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + acknowledgement = ack-nhfb, +} + +@InProceedings{vanderLaan:1992:TCT, + author = "Kees van der Laan", + title = "Typesetting crosswords via {\TeX}", + crossref = "Zlatuska:1992:EPE", + pages = "217--224", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + acknowledgement = ack-nhfb, +} + +@InProceedings{vanderLaan:1992:TD, + author = "Kees van der Laan", + title = "Table diversions", + crossref = "Zlatuska:1992:EPE", + pages = "211--211", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + acknowledgement = ack-nhfb, +} + +@InProceedings{vanHerwijnen:1989:UTI, + author = "E. van Herwijnen", + booktitle = "International Conference on Computing in High-Energy + Physics", + title = "The use of text interchange standards for submitting + physics articles to journals", + volume = "57(1--3)", + publisher = pub-NH, + address = pub-NH:adr, + pages = "244--250", + month = dec, + year = "1989", + CODEN = "CPHCB", + ISSN = "0010-4655", + bibdate = "Sat Sep 17 11:19:55 1994", + series = j-COMP-PHYS-COMM, + abstract = "The authors discuss which text interchange standards + will enable physics authors to submit their articles + directly to publishers via a computer network. An + analysis of a questionnaire circulated recently by the + European Physical Society shows that there is an + abundance of different hardware and software in use by + physics authors for electronic manuscript preparation. + A standard interchange format which would permit + authors to continue to use their preferred system as + well as enabling document interchange seems imperative + if one wishes to achieve the goal of electronic + submission of machine readable documents directly to + publishers. A possible candidate could be SGML, the ISO + standard for text interchange. Use of this standard + would generate additional benefits such as the + automatic generation of document databases. The + relationships between the ISO standards SGML and ODA, + the de facto standard {\TeX} and the page description + language PostScript are explained. A proposal is made + for the structure of a standard physics article + intended for use with SGML and {\TeX}. A short + discussion is given on the thorny problem of the + inclusion of mathematics and graphics that are + particularly common in physics documents. Finally they + indicate some limitations of SGML and the prerequisites + that are required to make the exchange of electronic + documents in SGML format universally possible. (18 + Refs.)", + acknowledgement = ack-nhfb, + affiliation = "CERN, Geneva, Switzerland", + classification = "C7320 (Physics and Chemistry)", + confdate = "10--14 April 1989", + conflocation = "Oxford, UK", + confsponsor = "Oxford Univ", + keywords = "Computer network; Electronic manuscript preparation; + Graphics; Hardware; ISO standard; Machine readable + documents; ODA; Physics articles; PostScript; SGML; + Software; TeX; Text interchange standards", + thesaurus = "Physics computing", +} + +@Book{vanHerwijnen:1990:PS, + author = "Eric van Herwijnen", + title = "Practical {SGML}", + publisher = pub-KLUWER, + address = pub-KLUWER:adr, + pages = "xviii + 307", + year = "1990", + ISBN = "0-7923-0635-X", + ISBN-13 = "978-0-7923-0635-1", + LCCN = "QA76.73.S44 V36 1990", + price = "UK\pounds24.90, US\$49.00", + acknowledgement = ack-mc # " and " # ack-fm, + inprint = "yes", + review = "in " # j-TEXLINE # " 10, p. 27 and + \cite{Poppelier:1992:BR} and + \cite{Poppelier:1992:BRJ}", +} + +@InProceedings{vanHuu:1985:TIS, + author = "Le van Huu", + title = "{\TeX} and {ISO\slash STPL} standard", + crossref = "Lucarella:1985:PFE", + pages = "67--78", + year = "1985", + bibdate = "Sat Feb 10 08:48:10 1996", + acknowledgement = ack-hk, +} + +@InProceedings{VanWyde:1981:GTL, + author = "C. T. Van Wyde", + title = "A graphics typesetting language", + crossref = "ACM:1981:ASS", + pages = "97--107", + year = "1981", + bibdate = "Mon Jul 25 08:37:04 MDT 1994", + acknowledgement = ack-nhfb, + keywords = "algorithms; languages", + subject = "I.7.2 Computing Methodologies, TEXT PROCESSING, + Document Preparation, Photocomposition", +} + +@InProceedings{Vens:1992:IPF, + author = "Erik-Jan Vens", + title = "Incorporating {\POSTSCRIPT} fonts in {\TeX}", + crossref = "Zlatuska:1992:EPE", + pages = "173--182", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + acknowledgement = ack-nhfb, +} + +@InProceedings{Vesilo:1992:TBO, + author = "R. A. Vesilo", + booktitle = "IREECON '91, Australia's Electronics Convention + Proceedings", + title = "Translating between {ODA} and multimedia {DVI}({\TeX}) + documents", + publisher = pub-IREE, + address = pub-IREE:adr, + pages = "646--649 (vol. 2)", + month = sep, + year = "1992", + ISBN = "0-909394-26-1", + ISBN-13 = "978-0-909394-26-4", + LCCN = "????", + bibdate = "Sat Sep 17 11:20:29 1994", + note = "2 vol.", + abstract = "A system for translating between ODA formatted form + and multimedia DVI({\TeX}) documents is described. The + main tasks involved are structure and content + conversion. Consideration must be given to differing + functionality and mapping between ODA's multi-level and + DVI's three-level structure. A five-level software + structure has been developed for the translators. (8 + Refs.)", + acknowledgement = ack-nhfb, + affiliation = "Sch. of Math., Phys., Comput. and Electron., Macquarie + Univ., North Ryde, NSW, Australia", + bookpages = "xxi + 703", + classification = "B6210 (Telecommunication applications); C6130D + (Document processing techniques); C6160S (Spatial and + pictorial databases)", + confdate = "16--20 Sept. 1991", + conflocation = "Sydney, NSW, Australia", + keywords = "Content conversion; Device Independent Documents; + Five-level software structure; Mapping; Multimedia DVI + documents; ODA formatted form; Office Document + Architecture; Structure conversion; TeX documents; + Translators", + thesaurus = "Document handling; Multimedia systems", +} + +@InProceedings{Vinogradov:1992:RTN, + author = "Michael Vinogradov", + title = "{Russian \TeX}: new eight bit fonts and {IBM PC} + equipment", + crossref = "Zlatuska:1992:EPE", + pages = "149--152", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + acknowledgement = ack-nhfb, +} + +@Book{vonBechtolsheim:1992:TP, + author = "Stephan von Bechtolsheim", + title = "{\TeX} in Practice", + publisher = pub-SV, + address = pub-SV:adr, + pages = "1587, with 31 illustrations", + year = "1992", + ISBN = "0-387-97296-X", + ISBN-13 = "978-0-387-97296-1", + LCCN = "Z253.4.T47 B4 1993", + bibdate = "Fri Jul 22 09:26:02 1994", + note = "Four volume set.", + price = "US\$169.00", + acknowledgement = ack-nhfb, +} + +@Book{vonBechtolsheim:1992:TPB, + author = "Stephan von Bechtolsheim", + title = "{\TeX} in Practice: Basics", + volume = "1", + publisher = pub-SV, + address = pub-SV:adr, + pages = "359, with 9 illustrations", + year = "{\noopsort{1992a}}1992", + ISBN = "0-387-97595-0", + ISBN-13 = "978-0-387-97595-5", + LCCN = "Z253.4.T47 B4 1993", + bibdate = "Fri Jul 22 09:25:55 1994", + price = "US\$49.00", + acknowledgement = ack-nhfb, +} + +@Book{vonBechtolsheim:1992:TPO, + author = "Stephan von Bechtolsheim", + title = "{\TeX} in Practice: Output Routines", + volume = "4", + publisher = pub-SV, + address = pub-SV:adr, + pages = "300", + year = "{\noopsort{1992d}}1992", + ISBN = "0-387-97598-5", + ISBN-13 = "978-0-387-97598-6", + LCCN = "Z253.4.T47 B4 1993", + bibdate = "Fri Jul 22 09:25:56 1994", + price = "US\$49.00", + acknowledgement = ack-nhfb, +} + +@Book{vonBechtolsheim:1992:TPP, + author = "Stephan von Bechtolsheim", + title = "{\TeX} in Practice: Paragraphs, Math, and Fonts", + volume = "2", + publisher = pub-SV, + address = pub-SV:adr, + pages = "384", + year = "{\noopsort{1992b}}1992", + ISBN = "0-387-97596-9", + ISBN-13 = "978-0-387-97596-2", + LCCN = "Z253.4.T47 B4 1993", + bibdate = "Fri Jul 22 09:25:58 1994", + price = "US\$49.00", + acknowledgement = ack-nhfb, +} + +@Book{vonBechtolsheim:1992:TPT, + author = "Stephan von Bechtolsheim", + title = "{\TeX} in Practice: Tokens, Macros", + volume = "3", + publisher = pub-SV, + address = pub-SV:adr, + pages = "544, with 22 illustrations", + year = "{\noopsort{1992c}}1992", + ISBN = "0-387-97597-7", + ISBN-13 = "978-0-387-97597-9", + LCCN = "Z253.4.T47 B4 1993", + bibdate = "Fri Jul 22 09:26:06 1994", + price = "US\$49.00", + acknowledgement = ack-nhfb, +} + +@Book{vonBechtolsheim:1993:TPB, + author = "Stephan von Bechtolsheim", + title = "{\TeX} in Practice: Basics", + volume = "1", + publisher = pub-SV, + address = pub-SV:adr, + year = "1993", + ISBN = "0-387-97595-0, 3-540-97595-0", + ISBN-13 = "978-0-387-97595-5, 978-3-540-97595-3", + LCCN = "Z253.4.T47 B4 1993", + bibdate = "Mon Oct 18 15:41:37 1993", + acknowledgement = ack-nhfb, +} + +@Book{vonBechtolsheim:1993:TPO, + author = "Stephan von Bechtolsheim", + title = "{\TeX} in Practice: Output Routines, Tables", + volume = "4", + publisher = pub-SV, + address = pub-SV:adr, + year = "1993", + ISBN = "0-387-97598-5, 3-540-97598-5", + ISBN-13 = "978-0-387-97598-6, 978-3-540-97598-4", + LCCN = "Z253.4.T47 B4 1993", + bibdate = "Mon Oct 18 15:41:37 1993", + acknowledgement = ack-nhfb, +} + +@Book{vonBechtolsheim:1993:TPP, + author = "Stephan von Bechtolsheim", + title = "{\TeX} in Practice: Paragraphs, Math, and Fonts", + volume = "2", + publisher = pub-SV, + address = pub-SV:adr, + year = "1993", + ISBN = "0-387-97596-9, 3-540-97596-9", + ISBN-13 = "978-0-387-97596-2, 978-3-540-97596-0", + LCCN = "Z253.4.T47 B4 1993", + bibdate = "Mon Oct 18 15:41:37 1993", + acknowledgement = ack-nhfb, +} + +@Book{vonBechtolsheim:1993:TPT, + author = "Stephan von Bechtolsheim", + title = "{\TeX} in Practice: Tokens, Macros", + volume = "3", + publisher = pub-SV, + address = pub-SV:adr, + year = "1993", + ISBN = "0-387-97597-7, 3-540-97597-7", + ISBN-13 = "978-0-387-97597-9, 978-3-540-97597-7", + LCCN = "Z253.4.T47 B4 1993", + bibdate = "Mon Oct 18 15:41:37 1993", + acknowledgement = ack-nhfb, +} + +@Book{Voss:2004:PGT, + author = "Herbert Vo{\ss}", + title = "{PSTricks: Grafik f{\"u}r {\TeX} und {\LaTeX}}", + publisher = pub-LEHMANNS, + address = pub-LEHMANNS:adr, + pages = "486", + year = "2004", + ISBN = "3-86541-053-7", + ISBN-13 = "978-3-86541-053-5", + LCCN = "????", + bibdate = "Thu Mar 24 18:14:11 2005", + price = "34.95 EUR", + acknowledgement = ack-nhfb, +} + +@Book{Voss:2005:PGT, + author = "Herbert Vo{\ss}", + title = "{PSTricks: Grafik f{\"u}r {\TeX} und {\LaTeX}}", + publisher = pub-LEHMANNS, + address = pub-LEHMANNS:adr, + edition = "Second", + pages = "xxiv + 486", + year = "2005", + ISBN = "3-86541-073-1", + ISBN-13 = "978-3-86541-073-3", + LCCN = "????", + bibdate = "Thu Mar 24 18:14:11 2005", + price = "19.95 EUR", + URL = "http://www.dante.de/help/literatur/pstricks.shtml", + acknowledgement = ack-nhfb, +} + +@Book{Vulis:1992:MTA, + author = "Michael Vulis", + title = "Modern {\TeX} and its Applications", + publisher = pub-CRC, + address = pub-CRC:adr, + pages = "275", + year = "1992", + ISBN = "0-8493-4431-X", + ISBN-13 = "978-0-8493-4431-2", + LCCN = "Z253.4.T47V84 1993", + bibdate = "Wed Dec 15 19:53:27 1993", + price = "US\$32.95", + acknowledgement = ack-nhfb, +} + +@Book{Walden:1987:MFF, + author = "Jeff Walden", + title = "More File Formats for Popular {PC} software: {A} + Programmer's Reference", + publisher = pub-W, + address = pub-W:adr, + pages = "369", + year = "1987", + ISBN = "0-471-85077-2", + ISBN-13 = "978-0-471-85077-9", + LCCN = "QA76.9.F5 W35 1987", + bibdate = "Fri Jul 22 11:19:33 1994", + note = "From {\em Computing Reviews\/}: ``The volume under + review deals with (among others) WordPerfect, SuperCalc + 4, and the unusual Microsoft Rich Text Format (RTF). + RTF has the distinction of being entirely readable + ASCII and is reminiscent of {\TeX} command format.'' + Conversion software from RTF to {\LaTeX} written by + Daniel Taupin is available from major {\TeX} archive + sites.", + price = "US\$24.95", + acknowledgement = ack-nhfb, +} + +@InProceedings{Waldock:1982:TAE, + author = "W. C. Waldock", + booktitle = "User services, proceedings of the Tenth ACM SIGUCCS + conference (Chicago, IL, Nov. 10--12, 1982)", + title = "Typesetting in the academic environment", + publisher = pub-ACM, + address = pub-ACM:adr, + pages = "25--28", + year = "1982", + bibdate = "Thu Dec 29 11:08:40 1994", + acknowledgement = ack-nhfb, + keywords = "design; documentation", + subject = "J.1 Computer Applications, ADMINISTRATIVE DATA + PROCESSING, Education \\ I.7 Computing Methodologies, + TEXT PROCESSING, Miscellaneous", +} + +@Article{Waldschmidt:1987:ECG, + author = "H. Waldschmidt", + title = "An Editor for Constructing Graphics with {\TeX}", + journal = j-CGF, + volume = "6", + number = "4", + pages = "359--364", + month = dec, + year = "1987", + CODEN = "CGFODY", + ISSN = "0167-7055", + bibdate = "Sat Mar 22 09:39:17 MST 1997", + bibsource = "Compendex database", + acknowledgement = ack-nhfb, + affiliation = "Technische Hochschule Darmstadt, Darmstadt, West Ger", + affiliationaddress = "Technische Hochschule Darmstadt, Darmstadt, West + Ger", + classcodes = "C6130B (Graphics techniques)", + classification = "723; 745", + corpsource = "Inst. fur Theor. Inf., Tech. Hochschule Darmstadt, + West Germany", + keywords = "computer graphics; computer programming languages; + documentation; graphic editor; graphics interactive + construction; grouping characters; Interactive; + interactive construction; languages; T/sub E/X; text + editing; typesetting; typesetting language; typesetting + language {\TeX}; typesetting system; {\TeX} editor, + design", + subject = "I.3.6 Computing Methodologies, COMPUTER GRAPHICS, + Methodology and Techniques, Interaction techniques \\ + I.7.1 Computing Methodologies, TEXT PROCESSING, Text + Editing, TeX \\ I.7.2 Computing Methodologies, TEXT + PROCESSING, Document Preparation, TeX", + treatment = "P Practical", +} + +@Book{Walsh:1994:MTW, + author = "Norman Walsh", + title = "Making {\TeX} Work", + publisher = pub-ORA, + address = pub-ORA:adr, + pages = "xxxvi + 483", + year = "1994", + ISBN = "1-56592-051-1", + ISBN-13 = "978-1-56592-051-4", + bibdate = "Thu May 12 08:24:59 1994", + price = "US\$29.95", + acknowledgement = ack-nhfb, +} + +@Article{Werntges:1992:GIL, + author = "Heinz Werntges", + title = "Grafik-Import in {\LaTeX} \toenglish {Importing} + graphics in {\LaTeX} \endtoenglish", + journal = j-CT, + volume = "12", + pages = "252--258", + year = "1992", + bibdate = "Thu Dec 29 10:49:47 1994", + acknowledgement = ack-ps, +} + +@Book{Wettl:2004:LKH, + author = "Ferenc Wettl and Gyula Mayer and P{\'e}ter Szab{\'o}", + title = "{\LaTeX} {K}{\'e}zik{\"o}nyv. (Hungarian) [{\LaTeX} + Handbook]", + publisher = "Panem", + address = "Budapest, {\"O}v u. 146. 1146-Hungary", + pages = "????", + year = "2004", + ISBN = "963-545-398-1", + ISBN-13 = "978-963-545-398-6", + bibdate = "Wed May 19 05:53:46 2004", + series = "K{\"o}nnyen is lehet", + language = "Hungarian", +} + +@Book{Weyerich:1993:LLLa, + author = "Astrid Weyerich and Rainer Kl{\"o}tzer and Sabine + Stromp and Kerstin Rieder and Rainer Oesterreich", + title = "{\LaTeX} Lernen leicht gemacht\emdash Eine + aufgabenorientierte Anleitung\emdash Teil {A}: + Arbeitsheft", + publisher = pub-TUB, + address = pub-TUB:adr, + pages = "iv + 100", + year = "1993", + ISBN = "3-7983-1546-9", + ISBN-13 = "978-3-7983-1546-4", + bibdate = "Sat Mar 07 10:18:52 1998", + acknowledgement = ack-rz # " and " # ack-nhfb, +} + +@Book{Weyerich:1993:LLLb, + author = "Astrid Weyerich and Rainer Kl{\"o}tzer and Sabine + Stromp and Kerstin Rieder and Rainer Oesterreich", + title = "{\LaTeX} Lernen leicht gemacht\emdash Eine + aufgabenorientierte Anleitung\emdash Teil {B}: Manual", + publisher = pub-TUB, + address = pub-TUB:adr, + pages = "176", + year = "1993", + ISBN = "3-7983-1546-9", + ISBN-13 = "978-3-7983-1546-4", + bibdate = "Tue Mar 1 14:25:32 MET 1994", + acknowledgement = ack-rz, +} + +@Book{White:1983:MG, + author = "Jan V. White", + title = "Mastering Graphics", + publisher = pub-BOWK, + address = pub-BOWK:adr, + pages = "xiii + 180", + year = "1983", + ISBN = "0-8352-1704-3", + ISBN-13 = "978-0-8352-1704-0", + LCCN = "Z253 .W47 1983", + bibdate = "Wed Dec 15 10:59:05 1993", + libnote = "Not yet in my library.", +} + +@Book{White:1987:HST, + author = "Alex White", + title = "How to {SPEC} Type", + publisher = pub-WGP, + address = pub-WGP:adr, + pages = "128", + year = "1987", + ISBN = "0-8230-2473-3", + ISBN-13 = "978-0-8230-2473-5", + LCCN = "Z253.W46 1987", + bibdate = "Wed Aug 10 14:03:06 1994", + price = "US\$14.95", + abstract = "This book is divided into two parts. {\em Part One: + Preparing the Copy for Type}, discusses fundamental + terms and introduces the principles of type speccing. + {\em Part Two: Type Samples}, describes how to spec + typographic examples drawn in thumbnail form, how to + mark up the manuscript copy, and then shows the final + typeset results.", + acknowledgement = ack-fm, + annote = "A gold mine of ideas, concepts, and their realisation. + Beside general introductions into typographic spec + techniques, the book discusses topics like Runarounds, + Initial Caps, Tables, Rules and Boxes, and many more.", + keywords = "typography, layout, design, fonts, specs", +} + +@Book{White:1988:GDE, + author = "Jan V. White", + title = "Graphic Design for the Electronic Age", + publisher = pub-WGP, + address = pub-WGP:adr, + pages = "xi + 211", + year = "1988", + ISBN = "0-8230-2122-X", + ISBN-13 = "978-0-8230-2122-2", + LCCN = "Z286.D47 W5 1988", + bibdate = "Wed Dec 15 10:59:04 1993", + acknowledgement = ack-nhfb # " and " # ack-fm, + annote = "A very good book on typography and document design; + main topics are components of larger documents.", + keywords = "typography, layout, design", +} + +@Book{White:1990:GP, + author = "Jan V. White", + title = "Great Pages", + publisher = pub-SERIF, + address = pub-SERIF:adr, + pages = "128", + year = "1990", + ISBN = "1-878567-01-2", + ISBN-13 = "978-1-878567-01-7", + LCCN = "Z286.D47 W5 1990", + bibdate = "Wed Dec 15 10:59:05 1993", +} + +@Article{Wikeckowski:1992:TPZ, + author = "Z. Wi{\k{e}}ckowski", + title = "{\TeX} --- polskie znaki inaczej", + journal = j-PCkurier, + volume = "15", + pages = "89", + month = "lipiec", + year = "1992", + bibdate = "Thu Jun 23 18:23:42 1994", + note = "In Polish.", + acknowledgement = ack-md, + author-l = lang-pl, + month-l = lang-pl, + title-l = lang-pl, + title-t1 = "{\TeX} --- Polish letters another way", + title-t1-l = lang-eng, +} + +@Book{Wilberg:1997:L, + author = "Hans Peter Wilberg and Friedrich Forssman", + title = "Lesetypographie", + publisher = "Verlang Hermann Schmidt", + address = "Mainz, Germany", + pages = "332", + year = "1997", + ISBN = "3-87439-375-5", + ISBN-13 = "978-3-87439-375-1", + LCCN = "", + bibdate = "Mon Mar 02 19:42:44 1998", + acknowledgement = ack-nhfb, +} + +@InProceedings{Williams:2004:BGA, + author = "George Williams", + title = "Beyond Glyphs, Advanced Typographic Features of + Fonts", + crossref = "Syropoulos:2004:TXD", + pages = "257--263", + year = "2004", + CODEN = "LNCSD9", + ISSN = "0302-9743", + bibdate = "Tue Nov 16 17:43:44 2004", + acknowledgement = ack-nhfb, +} + +@Book{Williamson:1983:MBD, + author = "Hugh Williamson", + title = "Methods of Book Design: The Practice of an Industrial + Craft", + publisher = pub-YUP, + address = pub-YUP:adr, + edition = "Third", + pages = "xiv + 391", + year = "1983", + ISBN = "0-300-02663-3 (hardcover), 0-300-03035-5 (paperback)", + ISBN-13 = "978-0-300-02663-4 (hardcover), 978-0-300-03035-8 + (paperback)", + LCCN = "Z116.A3 W5 1983", + bibdate = "Fri Jul 22 09:27:41 1994", + note = "Bibliography, many examples and illustrations, index", + price = "UK\pounds13", + abstract = "Since its first edition was published in 1956, this + book has been recognised as a classic work, and has + become a basic tool for the practising book designer. + \missing{} Writing for authors, booksellers, + librarians, and the general reader, as well as for + teachers and students of printing design and for + publishers and printers, the author assumes no + technical knowledge in his readers. He deals with such + matters as the preparation of copy, the selection and + arrangement of type, the designer's part in book + illustration and jacket design, and the economics of + book production; and he explains the materials and + techniques of book production and their effect on the + design of books. His analysis, for the benefit of the + designer, of computer-centered digital + photo-composition, based on his first-hand experience + as a printer and typographer, is of particular interest + and value. \missing{} The third edition has been + completely rewritten to cover innovations in book + production tendencies and techniques over the last + twenty years, in the light of the author's continued + experience in publishing and printing.", + acknowledgement = ack-jpl # " and " # ack-fm, + annote = "That the {\em frontispiece} is the layout for the + title-page opposite indicates the content of the + book.", + bibliography = "yes", + glossary = "yes", + history = "First edition, 1956, and second edition, 1966, + published by Oxford University Press.", + index = "yes", + inprint = "yes", + keywords = "book design", + printermarks = "no", +} + +@Article{Winkel:1988:TSU, + author = "Brian J. Winkel", + title = "{\TeX}: The Software used to Produce this Journal", + journal = j-COLL-MICRO, + volume = "5", + number = "1", + pages = "93--96", + month = apr # "/" # may, + year = "1988", + ISSN = "0731-4213", + bibdate = "Thu Jul 21 22:35:39 1994", + acknowledgement = ack-nhfb, +} + +@InProceedings{Wittbecker:1986:GTB, + author = "Alan E. Wittbecker", + booktitle = "Conference proceedings: setting the direction / ACM + SIGUCCS User Services Conference XIV, Le Centre + Sheraton, Montreal, Quebec, September 27th -- October + 1st, 1986", + title = "Genesis of a {\TeX}-based markup metalanguage", + publisher = pub-ACM, + address = pub-ACM:adr, + pages = "31--33", + year = "1986", + DOI = "http://doi.acm.org/10.1145/324239.324238", + ISBN = "0-89791-208-X", + ISBN-13 = "978-0-89791-208-2", + LCCN = "QA74.A15 1986", + bibdate = "Sat Mar 23 13:41:45 2002", + note = "ACM order number 459860.", + URL = "http://www.acm.org/pubs/contents/proceedings/userservices/324239/", + acknowledgement = ack-nhfb, + bookpages = "x + 462", +} + +@Article{Witten:1982:PTD, + author = "I. H. Witten and M. Bonham and E. Strong", + title = "On the power of traps and diversions in a document + preparation language", + journal = j-SPE, + volume = "12", + number = "12", + pages = "1119--1131", + month = dec, + year = "1982", + CODEN = "SPEXBL", + ISSN = "0038-0644", + bibdate = "Mon Jul 25 08:37:04 MDT 1994", + acknowledgement = ack-nhfb, + keywords = "design; documentation; languages", + review = "ACM CR 40526", + subject = "I.7.2 Computing Methodologies, TEXT PROCESSING, + Document Preparation, nroff \\ I.7.2 Computing + Methodologies, TEXT PROCESSING, Document Preparation, + Languages", +} + +@Book{Wohlfeil:1998:PCB, + author = "Stefan Wohlfeil", + title = "On the Pagination of Complex, Book-Like Documents", + publisher = "Shaker Verlag", + address = "Aachen and Maastricht, The Netherlands", + pages = "224", + year = "1998", + ISBN = "3-8265-3304-6", + ISBN-13 = "978-3-8265-3304-4", + LCCN = "????", + bibdate = "Tue Feb 09 08:23:52 1999", + price = "DM 98.00", + URL = "http://www.shaker.de/Online-Gesamtkatalog/Details.idc?ID=24201&CC=59311&IDSRC=1&ISBN=3-8265-3304-6&Reihe=15; + http://wwwpi6.fernuni-hagen.de/Forschung/Pagination/", + acknowledgement = ack-cr # " and " # ack-nhfb, + mailto = "Stefan.Wohlfeil@Fernuni-Hagen.de", +} + +@TechReport{Wolcott:1976:CCT, + author = "N. M. Wolcott and J. Hilsenrath", + title = "A Contribution to Computer Typesetting Techniques: + Tables of Coordinates for {Hershey's} Repertory of + Occidental Type Fonts and Graphic Symbols", + type = "Special Publication", + number = "424", + institution = pub-NBS, + address = pub-NBS:adr, + month = apr, + year = "1976", + bibdate = "Sat Feb 10 15:02:17 1996", +} + +@InProceedings{Wonneberger:1986:TPT, + author = "Reinhard Wonneberger", + title = "{\TeX} for Philological Typesetting", + crossref = "Wezler:1986:PXI", + pages = "595--596", + year = "1986", + bibdate = "Tue Jul 26 09:41:46 1994", + acknowledgement = ack-rw, +} + +@InProceedings{Wonneberger:1986:VVT, + author = "R. Wonneberger", + title = "``Verheissung und Versprechen'', a third generation + approach to theological typesetting", + crossref = "Desarmenien:1986:TSD", + pages = "180--198", + year = "1986", + bibdate = "Mon Jul 25 08:37:04 MDT 1994", + acknowledgement = ack-nhfb, + keywords = "documentation; languages", + subject = "I.7.1 Computing Methodologies, TEXT PROCESSING, Text + Editing, TeX \\ I.7.2 Computing Methodologies, TEXT + PROCESSING, Document Preparation, TeX", +} + +@Book{Wonneberger:1987:L, + author = "Reinhard Wonneberger", + title = "{\LaTeX}", + publisher = pub-AWV, + address = pub-AWV:adr, + pages = "xiii + 141", + year = "1987", + ISBN = "3-925118-46-2", + ISBN-13 = "978-3-925118-46-3", + bibdate = "Sat Mar 07 10:23:00 1998", + series = "Addison-Wesley Kom\-pakt\-f{\"u}hr\-er", + acknowledgement = ack-nhfb, +} + +@Book{Wonneberger:1988:L, + author = "Reinhard Wonneberger", + title = "{\LaTeX}", + publisher = pub-AWV, + address = pub-AWV:adr, + edition = "Second", + pages = "xiv + 141", + year = "1988", + ISBN = "3-89319-152-6", + ISBN-13 = "978-3-89319-152-9", + bibdate = "Sat Mar 07 10:26:14 1998", + note = "Reprinted in 1990 and 1991.", + series = "Addison-Wesley Kom\-pakt\-f{\"u}hr\-er", + acknowledgement = ack-nhfb, +} + +@InProceedings{Wonneberger:1990:SDP, + author = "Reinhard Wonneberger", + title = "Structured document processing: the {\LaTeX} + approach", + crossref = "Nadrchal:1990:MMI", + pages = "177--189", + year = "1990", + CODEN = "CPHCB", + bibdate = "Sat Sep 17 11:20:31 1994", + note = "Invited paper.", + abstract = "Basic concepts and the usage of {\LaTeX} are + introduced. The idea of general markup and other + important concepts of structured document processing + are introduced. The general importance of {\LaTeX} and + {\TeX} and their future development are discussed. (44 + Refs.)", + acknowledgement = ack-rw # " and " # ack-nhfb, + affiliation = "Electron. Data Syst. (Deutschland)", + classification = "C7106 (Word processing)", + confdate = "19--28 Sept. 1989", + conflocation = "Skalsky dvur, Czechoslovakia", + confsponsor = "EPS; Czechoslovak Acad. Sci.; Union of Czechoslovak + Math. Phys", + keywords = "General markup; LaTeX approach; Structured document + processing; TeX", + language = "English", + pubcountry = "Netherlands", + thesaurus = "Text editing; Word processing", +} + +@Book{Wonneberger:1993:L, + author = "Reinhard Wonneberger", + title = "{\LaTeX}", + publisher = pub-AWV, + address = pub-AWV:adr, + edition = "Third", + pages = "xvi + 166", + month = apr, + year = "1993", + ISBN = "3-89319-589-0", + ISBN-13 = "978-3-89319-589-3", + bibdate = "Sat Sep 10 13:14:28 1994", + price = "DM29.80", + series = "Addison-Wesley Kom\-pakt\-f{\"u}hr\-er", + abstract = "(Umschlagtext:) {\LaTeX} ist ein im akademischen + Umfeld weit verbreitetes Formatierungswerkzeug f{\"u}r + schwierige Texte. Technisch gesehen handelt es sich um + ein spezielles umfangreiches Makropaket f{\"ur} Donald + E. Knuths Satzsystem {\TeX}. Der Benutzer braucht + normalerweise keine {\TeX}-Kenntnisse. Der bew{\"a}hrte + Addison-Wesley-Kom\-pakt\-f{\"u}hr\-er liegt nunmehr in + dritter, erweiterter Auflage vor. Bei der Erweiterung + geht es im wesentlichen um einen neuen Abschnitt ``uber + den `German Style''', eine seit Erscheinen der + fr{\"u}heren Auflage neu entwickelte und inzwischen + weit verbreitete Erg{\"a}nzung von {\LaTeX} im Hinblick + auf die Besonderheiten der deutschen Sprache.", +} + +@Article{Wood:1987:TWG, + author = "Patrick Wood", + title = "Typesetting: when gray isn't", + journal = j-POSTSCRIPT-LANG-J, + volume = "1", + number = "2", + pages = "15--19", + month = jun, + year = "1987", + ISSN = "0891-5873", + bibdate = "Sat Aug 27 11:11:18 1994", + acknowledgement = ack-nhfb, + keywords = "design; languages; measurement", + subject = "I.4.3 Computing Methodologies, IMAGE PROCESSING, + Enhancement, Grayscale manipulation \\ J.7 Computer + Applications, COMPUTERS IN OTHER SYSTEMS, Publishing", +} + +@Misc{Wood:19xx:PLJ, + editor = "Patrick Wood", + key = "POSTSCRIPTLJ", + title = "{\POSTSCRIPT Language Journal}", + howpublished = "Pipeline Associates, Inc., P. O. Box 5763, Parsippany, + NJ 07054", + year = "19xx", + bibdate = "Tue Mar 1 12:16:37 1994", +} + +@TechReport{Wyk:1980:LTG, + author = "C. J. {Van Wyk}", + title = "A Language for Typesetting Graphics", + type = "Report", + number = "STAN-CS-80-803", + institution = inst-STAN-CS, + address = inst-STAN-CS:adr, + year = "1980", + bibdate = "Sat Feb 10 15:02:22 1996", + acknowledgement = ack-hk, +} + +@Book{Wyrostek:1992:LSP, + author = "Piotr {Wyrostek, translator}", + title = "{\LaTeX}: System przygotowywania dokument{\'o}w. + Przewodnik u{\.z}ytkownika i podr{\k{e}}cznik", + publisher = pub-ARIEL, + address = pub-ARIEL:adr, + year = "1992", + ISBN = "83-900460-1-6", + ISBN-13 = "978-83-900460-1-3", + bibdate = "Thu Jul 21 23:00:45 1994", + note = "Polish translation of \cite{Lamport:1985:LDP}.", + price = "91000 zl", + acknowledgement = ack-jb, +} + +@Article{Yamakawa:1990:DPV, + author = "T. Yamakawa and Y. Kawabata and H. Tamura", + title = "Desktop publishing viewed from the office automation + industries", + journal = j-J-INFO-PROC, + volume = "31", + number = "11", + pages = "1508--1517", + month = "", + year = "1990", + CODEN = "JOSHA", + ISSN = "0447-8053", + bibdate = "Thu Sep 01 01:05:45 1994", + abstract = "The authors mention: Aldus, PageMaker, computerised + typesetting and DTP's links with office automation. + They discuss WYSIWYG; SGML; {\TeX}; PostScript; the + office document architecture; and various systems such + as the Andrew Toolkit Document System; the Diamond + multimedia system; and EXPRESS. (33 Refs.)", + acknowledgement = ack-nhfb, + classification = "C7104 (Office automation); C7108 (Desktop + publishing)", + keywords = "Aldus; Andrew Toolkit Document System; Computerised + typesetting; Desktop publishing; Diamond multimedia + system; EXPRESS; Office automation; Office document + architecture; PageMaker; PostScript; SGML; TeX; + WYSIWYG", + language = "Japanese", + thesaurus = "Desktop publishing; Office automation", +} + +@InProceedings{Yang:2004:EME, + author = "Michael Yang and Richard Fateman", + title = "Extracting mathematical expressions from {PostScript} + documents", + crossref = "Gutierrez:2004:IJU", + pages = "305--311", + year = "2004", + DOI = "http://doi.acm.org/10.1145/1005285.1005329", + bibdate = "Fri Oct 21 06:52:53 MDT 2005", + bibsource = "http://portal.acm.org/", + URL = "http://www.ocf.berkeley.edu/~mlyang/papers/MichaelYangPsmath.pdf", + abstract = "Full-text indexing of documents containing mathematics + cannot be considered a complete success unless the + mathematics symbolism is extracted and represented in a + standardized form permitting both searching for + formulas, and re-use of this information in (for + example) computer algebra systems. Most documents + produced in the past and subsequently digitally + encoded, and even most of those potentially ``born + digital'' in current journal production are---at + best---encoded in a printer form such as Adobe + Postscript [1], in which mathematics is not explicitly + marked or easily identifiable. While one might look + forward in the future to other document encodings such + as MathML, the common journal or textbook product is + essentially without semantic content: a jumble of odd + characters. Sometimes it is just a jumble of black and + white dots! In this paper we demonstrate an approach to + decoding, to recognizing and extracting mathematical + expressions, from a Postscript document. We can produce + a syntactic representation of the extracted expressions + which can then be used to generate various forms. For + example, if we extract TeX or Presentation MathML, we + can re-typeset the expression, but perhaps in a + different size or font family. More significantly, if + we start from this presentation information, we can + hope to combine it with additional contextual + processing of the surrounding text and meta-data + associated with the document, to assign semantics,(e.g. + content MathML), or provide versions in computer + algebra system languages such as Maple or Mathematica. + Finally, it is possible to use this material to present + audio or braille versions of mathematics for the + visually disabled. We have previously addressed some + aspects of the higher level of processing (parsing TeX + for example). In this paper we address the only first + stage and concentrate on what may seem to be overly + simple, but is in fact difficult to do precisely: + extracting the mathematics parts from text.", + acknowledgement = ack-nhfb, +} + +@Article{Yuan:2001:LPS, + author = "Michael Yuan", + title = "{LaTeX2HTML}: Publish Science to the {Web}", + journal = j-LINUX-J, + volume = "92", + pages = "93--94", + month = dec, + year = "2001", + CODEN = "LIJOFX", + ISSN = "1075-3583", + bibdate = "Fri Feb 8 14:44:29 MST 2002", + bibsource = "http://noframes.linuxjournal.com/lj-issues/issue92/index.html", + abstract = "Tailoring math-intensive documents to fit the + Internet.", + acknowledgement = ack-nhfb, +} + +@PhdThesis{ZabalaSalelles:1982:IGO, + author = "Ignacio Andres {Zabala Salelles}", + title = "Interfacing with graphics objects", + school = "Department of Computer Science, Stanford University", + address = "Stanford, CA, USA", + pages = "146", + month = dec, + year = "1982", + bibdate = "Wed May 25 08:19:32 2005", + URL = "http://wwwlib.umi.com/dissertations/fullcit/8314505", + abstract = "Document manipulation is one of the fields in which + computer-based systems are proving themselves to be + most effective. Nevertheless different typesetting + tasks require different degrees of control on the + behavior of a typesetting system, and different users + need different kinds of computer feedback in response + to their commands and these are important barriers to + the acceptance of computer tools. A solution to the + lack of a `best' user interface might be to have a + powerful virtual typesetting machine and easy-to-use + facilities for defining interfaces. High resolution + displays and pointing devices suggest a style of using + computer systems that is analogous to that of the + familiar paper and pencil. In addition, the capability + of using stored knowledge---both data and procedural + information---and the use of adequate structuring + methodologies can provide a great deal of power and + flexibility in handling images and the objects they + represent. Taking these considerations into account, + the author has designed and programmed GOB, an + interactive document processor that operates in terms + of graphic objects whose structure and format are + stored separately. GOB handles both text and graphics + in a uniform way, and it can produce documents of + quality similar to that of the best batch text + processors. The positioning and the redisplay + mechanisms of GOB are two of its most original + features. Positioning is done by solving sparse systems + of linear equations that are constantly changing. GOB + provides a programming language that can be used to + program complex formatting functions and to define user + interfaces. A subset of GOB has been made to run to the + point of generating pictures like those appearing in + several places of this dissertation. The experience + with the prototype suggests that it is indeed feasible + to build interactive systems of this kind, that have a + value by themselves (using built-in user interfaces), + and that also allow for customization of the document + manipulator.", + acknowledgement = ack-nhfb, +} + +@Book{Zagretdinov:1994:ISL, + author = "Renat Zagretdinov and others", + title = "Izdatel'skaiia systema {\LaTeX}. Kratkoe rukovodstvo + \toenglish {The \LaTeX} editing system. {Brief} guide + \endtoenglish", + publisher = "Kazan State University", + address = "Kazan, Russia", + pages = "94", + year = "1994", + bibdate = "Wed Jan 04 08:17:15 1995", + note = "This manual is a short introduction to {\LaTeX} 2.09, + with some material added about the Russian version + CyrTUG-em{\TeX}; it also contains a glossary of + {\LaTeX} control sequences, etc. First press run: 1000 + copies.", + acknowledgement = ack-ps, +} + +@Book{Zapf:1987:HZH, + author = "Hermann Zapf", + title = "Hermann Zapf and His Design Philosophy: Selected + Articles and Lectures on Calligraphy and Contemporary + Developments in Type Design, with Illustrations and + Bibliographical Notes, and a Complete List of his + Typefaces", + publisher = pub-STA, + address = pub-STA:adr, + pages = "254", + year = "1987", + ISBN = "0-941447-00-6", + ISBN-13 = "978-0-941447-00-3", + LCCN = "Z250 .Z323 1987", + bibdate = "Fri Jul 22 09:28:29 1994", + price = "US\$45.00", +} + +%%% ===================================================================== +%%% We put all Proceedings entries at the end so they can be +%%% cross-referenced by earlier entries. This order is regrettably +%%% required by BibTeX. +%%% ===================================================================== + +@Proceedings{ACM:1981:ASS, + key = "ACM-SIGOA'81", + booktitle = "Proceedings of the {ACM SIGPLAN SIGOA} Symposium on + Text Manipulation, Portland, Oregon, June 8--10, 1981", + title = "Proceedings of the {ACM SIGPLAN SIGOA} Symposium on + Text Manipulation, Portland, Oregon, June 8--10, 1981", + volume = "16(6)", + publisher = pub-ACM, + address = pub-ACM:adr, + pages = "160", + month = jun, + year = "1981", + ISBN = "0-89791-043-5", + ISBN-13 = "978-0-89791-043-9", + LCCN = "QA76.7 .S54 v.16:6", + bibdate = "Tue Jul 26 09:19:02 1994", + series = j-SIGPLAN, + acknowledgement = ack-nhfb, +} + +@Proceedings{Andre:1983:AJM, + editor = "Jacques Andr\'e", + booktitle = "Actes des {Journ}\'{ees} sur la {Manipulation} de + {Documents}, Rennes 4--6 Mai 1983", + title = "Actes des {Journ}\'{ees} sur la {Manipulation} de + {Documents}, Rennes 4--6 Mai 1983", + publisher = pub-INRIA, + address = pub-INRIA:adr, + year = "1983", + acknowledgement = ack-hk, +} + +@Proceedings{Andre:1985:TIJ, + editor = "Jacques Andr\'e", + booktitle = "Typographie et Informatique, 21--25 janvier 1985", + title = "Typographie et Informatique, 21--25 janvier 1985", + publisher = pub-INRIA, + address = pub-INRIA:adr, + year = "1985", + bibdate = "Tue Mar 1 12:57:09 1994", + acknowledgement = ack-hk, +} + +@Proceedings{Andre:1989:RID, + editor = "Jacques Andr{\'e} and Roger Hersch", + booktitle = "Raster Imaging and Digital Topography", + title = "Raster Imaging and Digital Topography", + publisher = pub-CUP, + address = pub-CUP:adr, + pages = "x + 292", + year = "1989", + ISBN = "0-521-37490-1", + ISBN-13 = "978-0-521-37490-3", + LCCN = "Z253.3 .R37 1989", + bibdate = "Fri Jul 22 09:29:08 1994", +} + +@Proceedings{Anonymous:1991:PFA, + editor = "Anonymous", + booktitle = "Proceedings of the Fourth Annual Conference on + Computers and the Writing Process", + title = "Proceedings of the Fourth Annual Conference on + Computers and the Writing Process", + publisher = "Univ. Sussex", + address = "Brighton, UK", + pages = "v + 247", + month = mar, + year = "1991", + bibdate = "Sat Sep 17 11:20:33 1994", + abstract = "The following topics were dealt with: computer-aided + writing education; computer supported fiction, + including CINEWRITE system and JONATHAN collaborative + writing environment; reading and writing education with + hypertext; computer manual design and composition; + {\TeX} typesetting program; handwritten Pitman + shorthand recognition aids for authors; electronic + dictionaries for writers; collaborative writing + practices; Rapporteur constructive dialogue game for + document production; hypertext semantic linking; Headed + Record Expertext hypermedia and expert system; software + specification annotation; and online design brief + expansion document preparation with hypertext.", + acknowledgement = ack-nhfb, + classification = "C7820 (Humanities); C7810C (Computer-aided + instruction); C6160S (Spatial and pictorial databases); + C7106 (Word processing)", + confdate = "22--23 March 1991", + conflocation = "Brighton, UK", + keywords = "TeX; Reading education; CAI; Computer-aided writing + education; CINEWRITE; JONATHAN; Collaborative writing + environment; Hypertext; Computer manual design; + Typesetting program; Handwritten Pitman shorthand + recognition aids; Electronic dictionaries; Rapporteur; + Document production; Semantic linking; Headed Record + Expertext; Hypermedia; Expert system; Software + specification annotation; Online design brief + expansion", + thesaurus = "Computer aided instruction; Desktop publishing; + Groupware; Hypermedia; Linguistics; Literature; + Microcomputer applications; Word processing", +} + +@Proceedings{Anonymous:1994:CCI, + editor = "Anonymous", + booktitle = "Chinese computing: International conference --- June + 1994, Singapore", + title = "Chinese computing: International conference --- June + 1994, Singapore", + volume = "4(1)", + publisher = "1994", + address = "Chinese and Oriental Languages Information Processing + Society", + pages = "????", + year = "1994", + ISSN = "0218-7019", + bibdate = "Sat Dec 21 15:45:22 MST 1996", + series = "COMMUNICATIONS- COLIPS", + acknowledgement = ack-nhfb, +} + +@Proceedings{Asperti:2003:MKM, + editor = "Andrea Asperti and Bruno Buchberger and James Harold + Davenport", + booktitle = "Mathematical Knowledge Management: Second + International Conference, MKM 2003 Bertinoro, Italy, + February 16--18, 2003", + title = "Mathematical Knowledge Management: Second + International Conference, {MKM} 2003 Bertinoro, Italy, + February 16--18, 2003", + volume = "2594", + publisher = pub-SV, + address = pub-SV:adr, + pages = "x + 225", + year = "2003", + ISBN = "3-540-00568-4", + ISBN-13 = "978-3-540-00568-1", + LCCN = "", + bibdate = "Thu Jul 10 07:12:22 2003", + price = "65.50 SFR; 40.66 EUR", + series = ser-LNCS, + acknowledgement = ack-nhfb, + annote = "This book constitutes the refereed proceedings of the + Second International Conference on Mathematical + Knowledge Management, MKM 2003, held in Betinoro, + Italy, in February 2003.The 16 revised full papers + presented together with an invited paper were carefully + reviewed and selected for presentation. Among the + topics addressed are digitization, representation, + formalization, proof assistants, distributed libraries + of mathematics, NAG library, \LaTeX{}, MathML, + mathematics markup, theorem description, query + languages for mathematical metadata, mathematical + information retrieval, XML-based mathematical knowledge + processing, semantic Web, mathematical content + management, formalized mathematics repositories, + theorem proving, and proof theory.", +} + +@Proceedings{Bloomfield:1988:VVW, + editor = "R. Bloomfield and L. Marshall and R. Jones", + booktitle = "VDM '88: VDM, the Way Ahead: 2nd VDM-Europe Symposium, + Dublin, Ireland, September, 1988: Proceedings", + title = "{VDM} '88: {VDM}, the Way Ahead: 2nd {VDM}-Europe + Symposium, Dublin, Ireland, September, 1988: + Proceedings", + publisher = pub-SV, + address = pub-SV:adr, + pages = "ix + 499", + year = "1988", + ISBN = "0-387-50214-9 (New York), 3-540-50214-9 (Berlin)", + ISBN-13 = "978-0-387-50214-4 (New York), 978-3-540-50214-2 + (Berlin)", + LCCN = "QA76.76.D47 V8541 1988", + bibdate = "Mon Oct 24 13:01:54 1994", + acknowledgement = ack-nhfb, +} + +@Proceedings{Burton:1983:SIC, + editor = "Sarah K. Burton and Douglas D. Short", + booktitle = "Sixth International Conference on Computers and the + Humanities (North Carolina State University, Raleigh, + {NC}, June 6--8, 1983)", + title = "Sixth International Conference on Computers and the + Humanities (North Carolina State University, Raleigh, + {NC}, June 6--8, 1983)", + publisher = pub-CSP, + address = pub-CSP:adr, + pages = "x + 782", + year = "1983", + ISBN = "0-914894-96-X", + ISBN-13 = "978-0-914894-96-4", + LCCN = "AZ105 .I56 1983", + bibdate = "Tue Jul 26 09:59:19 1994", + acknowledgement = ack-nhfb, +} + +@Proceedings{Clark:1990:TAU, + editor = "Malcolm Clark", + booktitle = "{\TeX}: Applications, Uses, Methods. Proceedings, + Third European \TeX Conference, {\TeX88}, Exeter, + August 1988", + title = "{\TeX}: Applications, Uses, Methods. Proceedings, + Third European {\TeX} Conference, {\TeX88}, Exeter, + August 1988", + publisher = pub-ELLIS-HORWOOD, + address = pub-ELLIS-HORWOOD:adr, + pages = "277", + year = "1990", + ISBN = "0-13-912296-6", + ISBN-13 = "978-0-13-912296-5", + LCCN = "Z253.4.T47 C45 1990", + bibdate = "Fri Jul 22 09:29:34 1994", + price = "US\$69.95", +} + +@Proceedings{Dallas:1983:IWU, + editor = "Ian Neil Dallas and Edward Brian Spratt", + booktitle = "Ring technology Local Area Networks: Proceedings of + the {IFIP WG6}.4\slash University of Kent Workshop on + Ring Technology Based Local Area Networks, Kent, {UK}, + 28--30 September 1983", + title = "Ring technology Local Area Networks: Proceedings of + the {IFIP WG6}.4\slash University of Kent Workshop on + Ring Technology Based Local Area Networks, Kent, {UK}, + 28--30 September 1983", + publisher = pub-NH, + address = pub-NH:adr, + pages = "ix + 269", + year = "1983", + ISBN = "0-444-86852-6", + ISBN-13 = "978-0-444-86852-7", + LCCN = "TK5105.5 .I3427 1983", + bibdate = "Tue Jul 26 09:34:30 1994", + acknowledgement = ack-nhfb, +} + +@Proceedings{Desarmenien:1986:TSD, + editor = "Jacques D{\'e}sarm{\'e}nien", + key = "TEXSCIDOC86", + booktitle = "{\TeX} for Scientific Documentation. Second European + Conference. Strasbourg, France, June 19--21, 1986. + Proceedings", + title = "{\TeX} for Scientific Documentation. Second European + Conference. Strasbourg, France, June 19--21, 1986. + Proceedings", + number = "236", + publisher = pub-SV, + address = pub-SV:adr, + pages = "vi + 204", + year = "1986", + ISBN = "3-540-16807-9, 0-387-16807-9 (paperback)", + ISBN-13 = "978-3-540-16807-2, 978-0-387-16807-4 (paperback)", + LCCN = "Z253.4.T47 T49 1986", + bibdate = "Wed Aug 10 19:14:59 1994", + series = "Lecture Notes in Computer Science", + acknowledgement = ack-hk, +} + +@Proceedings{Forsley:1989:RFC, + editor = "Lawrence P. Forsley", + booktitle = "1989 Rochester Forth Conference. Industrial + Automation: June 20--24, 1989, University of + Rochester", + title = "1989 Rochester Forth Conference. Industrial + Automation: June 20--24, 1989, University of + Rochester", + publisher = inst-APPL-FORTH-RES, + address = inst-APPL-FORTH-RES:adr, + pages = "vii + 143", + year = "1989", + ISBN = "0-914593-09-9", + ISBN-13 = "978-0-914593-09-6", + LCCN = "TJ212.2.A15 1989", + bibdate = "Tue Apr 09 17:32:18 1996", + acknowledgement = ack-nhfb, +} + +@Proceedings{Furuta:1990:PIC, + editor = "R. Furuta", + booktitle = "Proceedings of the International Conference on + Electronic Publishing, Document Manipulation \& + Typography, Gaithersburg, Maryland, September 1990", + title = "Proceedings of the International Conference on + Electronic Publishing, Document Manipulation \& + Typography, Gaithersburg, Maryland, September 1990", + publisher = pub-CUP, + address = pub-CUP:adr, + pages = "x + 298", + year = "1990", + ISBN = "0-521-40246-8", + ISBN-13 = "978-0-521-40246-0", + LCCN = "Z 286 E43 I58 1990", + bibdate = "Fri Jul 22 11:20:37 1994", + acknowledgement = ack-kb, +} + +@Proceedings{Gutierrez:2004:IJU, + editor = "Jaime Gutierrez", + title = "{ISAAC 2004: July 4--7, 2004, University of Cantabria, + Santander, Spain: proceedings of the 2004 International + Symposium on Symbolic and Algebraic Computation}", + publisher = pub-ACM, + address = pub-ACM:adr, + pages = "xii + 328", + year = "2004", + ISBN = "1-58113-827-X", + ISBN-13 = "978-1-58113-827-6", + LCCN = "????", + bibdate = "Fri Oct 21 06:33:01 MDT 2005", + bibsource = "z3950.loc.gov:7090/Voyager", + acknowledgement = ack-nhfb, + meetingname = "International Symposium on Symbolic and Algebraic + Computation (2004 : Santander, Spain)", +} + +@Proceedings{Haliburton:1987:ATC, + editor = "John Haliburton", + booktitle = "{APL} in Transition: Conference Proceedings, {APL87}, + May 10--14, 1987, Dallas, Texas", + title = "{APL} in Transition: Conference Proceedings, {APL87}, + May 10--14, 1987, Dallas, Texas", + publisher = pub-ACM, + address = pub-ACM:adr, + pages = "xv + 512", + year = "1987", + ISBN = "0-89791-226-8", + ISBN-13 = "978-0-89791-226-6", + LCCN = "????", + bibdate = "Wed Jul 27 11:05:37 1994", + note = "APL quote quad, v. 17, no. 4.", + price = "US\$37.00", + acknowledgement = ack-nhfb, +} + +@Proceedings{Heck:1992:DPA, + editor = "Andr{\'e} Heck", + booktitle = "Desktop Publishing in Astronomy {\&} Space Sciences. + Strasbourg Astronomical Observatory, [1--3] October, + 1991", + title = "Desktop Publishing in Astronomy {\&} Space Sciences. + Strasbourg Astronomical Observatory, [1--3] October, + 1991", + publisher = pub-WORLD-SCI, + address = pub-WORLD-SCI:adr, + pages = "xi + 240", + year = "1992", + ISBN = "981-02-0915-0", + ISBN-13 = "978-981-02-0915-5", + LCCN = "QB14.2 .D47 1992", + bibdate = "Fri Jul 22 09:30:26 1994", + note = "In addition to the papers presented at the colloquium, + each paper is followed by a summary of the discussion + about that paper.", + acknowledgement = ack-bnb, +} + +@Proceedings{Hersch:1998:EPA, + editor = "Roger Hersch and Jacques Andr{\'e} and Heather Brown", + booktitle = "Electronic publishing, artistic imaging, and digital + typography: 7th International Conference on Electronic + Publishing, {EP} '98 held jointly with the 4th + International Conference on Raster Imaging and Digital + Typography, {RIDT} '98, St. Malo, France, March\slash + April 1998: proceedings", + title = "Electronic publishing, artistic imaging, and digital + typography: 7th International Conference on Electronic + Publishing, {EP} '98 held jointly with the 4th + International Conference on Raster Imaging and Digital + Typography, {RIDT} '98, St. Malo, France, March\slash + April 1998: proceedings", + volume = "1375", + publisher = pub-SV, + address = pub-SV:adr, + pages = "various", + year = "1998", + CODEN = "LNCSD9", + ISBN = "3-540-64298-6", + ISBN-13 = "978-3-540-64298-5", + ISSN = "0302-9743", + LCCN = "Z250.7.I58 1998", + bibdate = "Mon Apr 27 17:37:18 MDT 1998", + series = ser-LNCS, + acknowledgement = ack-nhfb, + alttitle = "EP '98 RIDT '98", + keywords = "Computerized typesetting --- Congresses; Electronic + publishing --- Congresses; Type and type-founding --- + Digital techniques --- Congresses", +} + +@Proceedings{ICCPCOL:1988:ICC, + key = "ICCPCOL '88", + booktitle = "1988 International Conference on Computer Processing + of Chinese and Oriental Languages, August 29--September + 1, 1988, Toronto, Canada", + title = "1988 International Conference on Computer Processing + of Chinese and Oriental Languages, August 29--September + 1, 1988, Toronto, Canada", + publisher = "Concordia University", + address = "Montr{\'{e}}al, Qu{\'{e}}bec, Canada", + pages = "xvii + 645", + year = "1988", + LCCN = "QA76.9.T48 I48 1988", + bibdate = "Mon Oct 24 12:52:27 1994", + acknowledgement = ack-nhfb, + xxISBN = "none", +} + +@Proceedings{IEEE:1992:PEC, + key = "IEEE ECDA '92", + booktitle = "Proceedings \slash The European Conference on Design + Automation, Brussels, Belgium, March 16--19, 1992", + title = "Proceedings \slash The European Conference on Design + Automation, Brussels, Belgium, March 16--19, 1992", + publisher = pub-IEEE, + address = pub-IEEE:adr, + pages = "xx + 569", + year = "1992", + ISBN = "0-8186-2645-3", + ISBN-13 = "978-0-8186-2645-6", + LCCN = "TK7867 .E93 1992", + bibdate = "Thu Sep 08 13:21:26 1994", + acknowledgement = ack-nhfb, +} + +@Proceedings{Levelt:1995:IPI, + editor = "A. H. M. (Antonius Henricus Maria) Levelt", + booktitle = "ISSAC '95: Proceedings of the 1995 International + Symposium on Symbolic and Algebraic Computation: July + 10--12, 1995, Montreal, Canada", + title = "{ISSAC} '95: Proceedings of the 1995 International + Symposium on Symbolic and Algebraic Computation: July + 10--12, 1995, Montreal, Canada", + publisher = pub-ACM, + address = pub-ACM:adr, + pages = "xviii + 314", + year = "1995", + ISBN = "0-89791-699-9", + ISBN-13 = "978-0-89791-699-8", + LCCN = "QA 76.95 I59 1995", + bibdate = "Mon May 11 18:06:16 1998", + note = "ACM order number: 505950.", + abstract = "The following topics were dealt with: differential + equations; visualisation; algebraic numbers; + algorithms; systems; polynomial and differential + algebra; seminumerical methods; greatest common + divisors; and.", + acknowledgement = ack-nhfb, + classification = "C4100 (Numerical analysis); C4170 (Differential + equations); C7310 (Mathematics computing)", + confsponsor = "ACM", + keywords = "Algebraic numbers; Algorithms; Differential algebra; + Differential equations; Greatest common divisors; + Polynomial; Seminumerical methods; Systems; + Visualisation", + source = "ISSAC '95", + thesaurus = "Data visualisation; Differential equations; Group + theory; Numerical analysis; Symbol manipulation", +} + +@Proceedings{Lucarella:1985:PFE, + editor = "Dario Lucarella", + key = "TEXSCIDOC85", + booktitle = proc-TEX85, + title = proc-TEX85, + publisher = pub-AW, + address = pub-AW:adr, + pages = "204", + year = "1985", + ISBN = "0-201-13399-7", + ISBN-13 = "978-0-201-13399-8", + LCCN = "Q224.E97 1985", + bibdate = "Fri Jul 22 09:31:21 1994", + acknowledgement = ack-hk, +} + +@Proceedings{Miller:1984:PPF, + editor = "John J. H. Miller", + booktitle = "{PROTEXT I}: Proceedings of the First International + Conference on Text Processing Systems held in Dublin + from 24th to 26th October, 1984", + title = "{PROTEXT I}: Proceedings of the First International + Conference on Text Processing Systems held in Dublin + from 24th to 26th October, 1984", + publisher = pub-BP, + address = pub-BP:adr, + pages = "vii + 59", + year = "1984", + ISBN = "0-906783-41-0 (hardcover), 0-906783-42-9 (paper)", + ISBN-13 = "978-0-906783-41-2 (hardcover), 978-0-906783-42-9 + (paper)", + LCCN = "QA76.9.T48 I591 1984", + bibdate = "Fri Jul 22 09:32:58 1994", + acknowledgement = ack-hk, +} + +@Proceedings{Miller:1985:PIP, + editor = "John J. H. Miller", + booktitle = "{PROTEXT II}: Proceedings of the Second International + Conference on Text Processing Systems held in Dublin + from 23rd to 25th October, 1985", + title = "{PROTEXT II}: Proceedings of the Second International + Conference on Text Processing Systems held in Dublin + from 23rd to 25th October, 1985", + publisher = pub-BP, + address = pub-BP:adr, + pages = "viii + 212", + year = "1985", + ISBN = "0-906783-50-X (hardcover), 0-906783-40-2 (paperback)", + ISBN-13 = "978-0-906783-50-4 (hardcover), 978-0-906783-40-5 + (paperback)", + LCCN = "QA76.9.T48 I561 1985", + bibdate = "Fri Jul 22 09:35:19 1994", + acknowledgement = ack-hk, +} + +@Proceedings{Miller:1986:PIP, + editor = "John J. H. Miller", + booktitle = "{PROTEXT III}: Proceedings of the Third International + Conference on Text Processing Systems held in Dublin + from 22nd to 24th October, 1986", + title = "{PROTEXT III}: Proceedings of the Third International + Conference on Text Processing Systems held in Dublin + from 22nd to 24th October, 1986", + publisher = pub-BP, + address = pub-BP:adr, + pages = "vii + 169", + year = "1986", + ISBN = "0-906783-57-7 (hardcover), 0-906783-58-5 (paperback)", + ISBN-13 = "978-0-906783-57-3 (hardcover), 978-0-906783-58-0 + (paperback)", + LCCN = "QA76.9.T48 I561 1986", + bibdate = "Fri Jul 22 09:33:46 1994", + acknowledgement = ack-hk, +} + +@Proceedings{Miller:1987:PIP, + editor = "John J. H. Miller", + booktitle = "{PROTEXT IV}: Proceedings of the Fourth International + Conference on Text Processing Systems, 20--22 October + 1987, Boston, {USA}", + title = "{PROTEXT IV}: Proceedings of the Fourth International + Conference on Text Processing Systems, 20--22 October + 1987, Boston, {USA}", + publisher = pub-BP, + address = pub-BP:adr, + pages = "vii + 153", + year = "1987", + ISBN = "0-906783-80-1 (hardcover), 0-906783-79-8 (paperback)", + ISBN-13 = "978-0-906783-80-1 (hardcover), 978-0-906783-79-5 + (paperback)", + LCCN = "QA76.9.T48 I571 1987", + bibdate = "Fri Jul 22 09:38:44 1994", +} + +@Proceedings{Nadrchal:1990:MMI, + editor = "J. Nadrchal", + key = "CTP", + booktitle = "Man-Machine Interface in the Scientific Environment. + {Proceedings} of the 8th European Summer School on + Computing Techniques in Physics. Skalsk{\'y} + Dv{\accent'27u}r, Czechoslovakia, 19--28 {September} + 1989", + title = "Man-Machine Interface in the Scientific Environment. + {Proceedings} of the 8th European Summer School on + Computing Techniques in Physics. Skalsk{\'y} + Dv{\accent'27u}r, Czechoslovakia, 19--28 {September} + 1989", + volume = "61", + organization = "European Summer Schools on Computing Techniques in + Physics", + publisher = pub-NH # "; " # "Elsevier Science Publishers B. V.", + address = pub-NH:adr, + year = "1990", + bibdate = "Wed Aug 24 21:50:25 1994", + note = "In addition to the papers presented at the colloquium, + each paper is followed by a summary of the discussion + about that paper.", + series = j-CPC, +} + +@Proceedings{NCC:1976:ACP, + key = "AFIPS NCC '76", + booktitle = "{AFIPS} Conference Proceedings of the 1976 National + Computer Conference, June 7--10, 1976, New York City", + title = "{AFIPS} Conference Proceedings of the 1976 National + Computer Conference, June 7--10, 1976, New York City", + volume = "45", + publisher = pub-AFIPS, + address = pub-AFIPS:adr, + pages = "1082", + year = "1976", + ISBN = "??", + ISBN-13 = "??", + LCCN = "??", + bibdate = "Mon Oct 24 14:14:11 1994", + acknowledgement = ack-nhfb, +} + +@Book{Nievergelt:1982:DPS, + editor = "J. Nievergelt and G. Coray and J.-D. Nicoud and A. C. + Shaw", + booktitle = "Document Preparation Systems: A Collection of Survey + Articles", + title = "Document Preparation Systems: {A} Collection of Survey + Articles", + publisher = pub-ENH, + address = pub-ENH:adr, + pages = "xiv + 274", + year = "1982", + ISBN = "0-444-86493-8", + ISBN-13 = "978-0-444-86493-2", + LCCN = "Z244 .D63 1982", + bibdate = "Mon Jul 25 11:49:30 1994", + price = "US\$46.50", + acknowledgement = ack-nhfb, + keywords = "algorithms; human factors; languages; theory", + review = "ACM CR 40376", + subject = "H.1 Information Systems, MODELS AND PRINCIPLES, + User/Machine Systems \\ I.7 Computing Methodologies, + TEXT PROCESSING, Text Editing \\ I.7 Computing + Methodologies, TEXT PROCESSING, Document Preparation J + Computer Applications, COMPUTERS IN OTHER SYSTEMS", +} + +@Proceedings{Nixon:1989:NOM, + editor = "Carol Nixon and Lauree Padgett", + booktitle = "National Online Meeting proceedings--1989, New York, + May 9--11, 1989", + title = "National Online Meeting proceedings--1989, New York, + May 9--11, 1989", + publisher = pub-LEARNED-INF, + address = pub-LEARNED-INF:adr, + pages = "xv + 506", + month = may, + year = "1989", + ISBN = "0-938734-34-2", + ISBN-13 = "978-0-938734-34-5", + LCCN = "QA76.55 .N37 1989", + bibdate = "Thu Sep 01 01:32:56 1994", + abstract = "The following topics were dealt with: gateways; CD-ROM + business databases; government information sources; end + user access to medical information; engineering + information workstations user interfaces for online + services; indexing of graphic materials; text/image + database design and performance; chief information + officer responsibilities; Comprehensive Core Medical + Library; alternatives to online databases; trade data; + WISER; full text searching behavior; library automation + project management; private databases; third world + information needs; facsimile and copyright; EasyNet end + user's reference needs; trademark images on Dialog; AI; + image publishing on CD-ROM; ARS Pesticide properties + database; SGML and {\TeX} for interactive chemical + encyclopedia; patent information; strategic business + intelligence; ISDN; Search MAESTRO SOS; hypertext; + telephone diversification and information industry of + 1990's; global market; reference media diversification; + spelling errors; document fulfillment; data quality; + art and architecture thesaurus; behavioral and social + science information; Information Index; international + marketing; aural interfaces; in-house bibliographic + databases; PENpages; expert systems; bilingual + Hebrew-English acquisition system; CD-ROM MEDLINE; + document image archive; and online searching + education.", + acknowledgement = ack-nhfb, + classification = "C7200 (Information science and documentation)", + confdate = "9--11 May 1989", + conflocation = "New York, NY, USA", + confsponsor = "Learned Inf", + keywords = "Gateways; CD-ROM business databases; Medical + information; Engineering information workstations; User + interfaces; Online services; Indexing; Text/image + database design; Chief information officer + responsibilities; Comprehensive Core Medical Library; + Online databases; Trade data; WISER; Full text + searching; Library automation project management; + Private databases; Third world information needs; + Copyright; EasyNet; Trademark images; AI; Image + publishing; CD-ROM; ARS Pesticide properties database; + SGML; TeX; Interactive chemical encyclopedia; Patent + information; Search MAESTRO SOS; Hypertext; Spelling + errors; Document fulfillment; Data quality; Art; + Architecture; Thesaurus; Information Index; + International marketing; Aural interfaces; In-house + bibliographic databases; PENpages; Expert systems; + Bilingual Hebrew-English acquisition system; CD-ROM + MEDLINE; Document image archive; Online searching + education", + thesaurus = "CD-ROMs; Electronic publishing; Indexing; Information + dissemination; Information needs; Information + retrieval; Information retrieval systems; Information + services; Library automation", +} + +@Proceedings{Pietrowski:1991:ISI, + editor = "Ken Pietrowski", + booktitle = proc-NIPT91, + title = proc-NIPT91, + volume = "2", + publisher = pub-IST, + address = pub-IST:adr, + year = "1991", + bibdate = "Sat Mar 12 18:27:13 1994", +} + +@Book{Rahtz:1987:ITH, + editor = "Sebastian Rahtz", + booktitle = "Information technology in the humanities: tools, + techniques and applications", + title = "Information technology in the humanities: tools, + techniques and applications", + publisher = pub-HALSTED, + address = pub-HALSTED:adr, + pages = "184", + year = "1987", + ISBN = "0-470-20852-X, 0-7458-0148-X", + ISBN-13 = "978-0-470-20852-6, 978-0-7458-0148-3", + LCCN = "AZ105 .I54 1987", + bibdate = "Mon Jul 25 12:00:55 1994", + price = "UK\pounds 25.00, US\$39.95", + series = "Ellis Horwood series in computers and their + applications", +} + +@Proceedings{Syropoulos:2004:TXD, + editor = "Apostolos Syropoulos and Karl Berry and Yannis + Haralambous and Baden Hughes and Steven Peter and John + Plaice", + booktitle = "{\TeX}, {XML}, and Digital Typography: International + Conference on {\TeX}, XML, and Digital Typography, held + jointly with the 25th Annual Meeting of the TeX Users + Group, TUG 2004, Xanthi, Greece, August 30--September + 3, 2004: Proceedings", + title = "{\TeX}, {XML}, and Digital Typography: International + Conference on {\TeX}, {XML}, and Digital Typography, + held jointly with the 25th Annual Meeting of the Te{X} + Users Group, {TUG 2004}, Xanthi, Greece, August + 30--September 3, 2004: Proceedings", + volume = "3130", + publisher = pub-SV, + address = pub-SV:adr, + pages = "viii + 263", + year = "2004", + CODEN = "LNCSD9", + DOI = "10.1007/b99374", + ISBN = "3-540-22801-2", + ISBN-13 = "978-3-540-22801-1", + ISSN = "0302-9743", + LCCN = "Z253.3 I58 2004", + bibdate = "Tue Nov 16 08:40:30 2004", + series = ser-LNCS, + URL = "http://link.springer-ny.com/link/service/series/0558/tocs/t3130.htm; + http://www.springerlink.com/openurl.asp?genre=issue&issn=0302-9743&volume=3130; + http://www.springerlink.com/openurl.asp?genre=volume&id=doi:10.1007/b99374", + acknowledgement = ack-nhfb, +} + +@Proceedings{Vanoirbeek:1992:EPE, + editor = "C. Vanoirbeek and G. Coray", + booktitle = "{EP92}\emdash Proceedings of Electronic Publishing, + '92, International Conference on Electronic Publishing, + Document Manipulation, and Typography, Swiss Federal + Institute of Technology, Lausanne, Switzerland, April + 7-10, 1992", + title = "{EP92}\emdash Proceedings of Electronic Publishing, + '92, International Conference on Electronic Publishing, + Document Manipulation, and Typography, Swiss Federal + Institute of Technology, Lausanne, Switzerland, April + 7-10, 1992", + publisher = pub-CUP, + address = pub-CUP:adr, + pages = "x + 316", + year = "1992", + ISBN = "0-521-43277-4", + ISBN-13 = "978-0-521-43277-1", + LCCN = "Z 286 E43 I58 1992", + bibdate = "Tue Dec 14 10:50:52 1993", + note = "Prepared with {\LaTeX}, and Microsoft Word converted + to {\LaTeX}.", + price = "UK\pounds 35", + acknowledgement = ack-ps, +} + +@Proceedings{vanVliet:1986:TPD, + editor = "J. C. van Vliet", + booktitle = "Text Processing and Document Manipulation: Proceedings + of the International Conference, University of + Nottingham, 14--16 April 1986", + title = "Text Processing and Document Manipulation: Proceedings + of the International Conference, University of + Nottingham, 14--16 April 1986", + publisher = pub-CUP, + address = pub-CUP:adr, + pages = "viii + 277", + month = apr, + year = "1986", + ISBN = "0-521-32592-7", + ISBN-13 = "978-0-521-32592-9", + LCCN = "QA76.9.T48 T481 1986", + bibdate = "Fri Jul 22 09:41:00 1994", + acknowledgement = ack-kb, +} + +@Proceedings{vanVliet:1988:DMT, + editor = "J. C. van Vliet", + booktitle = "Document Manipulation and Typography. Proceedings of + the International Conference on Electronic Publishing, + Document Manipulation and Typography, Nice (France), + April 20--22, 1988", + title = "Document Manipulation and Typography. Proceedings of + the International Conference on Electronic Publishing, + Document Manipulation and Typography, Nice (France), + April 20--22, 1988", + publisher = pub-CUP, + address = pub-CUP:adr, + pages = "vi + 288", + year = "1988", + ISBN = "0-521-36294-6", + ISBN-13 = "978-0-521-36294-8", + LCCN = "Z286.E43 I571 1988", + bibdate = "Mon Jul 25 11:52:56 1994", + price = "US\$47.50", + acknowledgement = ack-hk, +} + +@Proceedings{Veer:1988:HCI, + editor = "Gerrit C. van der Veer and Gijsbertus Mulder", + booktitle = "Human-computer Interaction: Psychonomic Aspects. + Conference of the Dutch Psychonomic Society", + title = "Human-computer Interaction: Psychonomic Aspects. + Conference of the Dutch Psychonomic Society", + publisher = pub-SV, + address = pub-SV:adr, + pages = "458", + year = "1988", + ISBN = "0-387-18901-7", + ISBN-13 = "978-0-387-18901-7", + bibdate = "Thu Jul 21 23:41:57 1994", + acknowledgement = ack-nhfb, +} + +@Proceedings{Wezler:1986:PXI, + editor = "Albrecht Wezler and Ernst Hammerschmidt", + booktitle = "Proceedings of the {XXXII} International Congress for + Asian and North African Studies, Hamburg, 25th--30th + August 1986", + title = "Proceedings of the {XXXII} International Congress for + Asian and North African Studies, Hamburg, 25th--30th + August 1986", + number = "IX", + publisher = pub-STEINER, + address = pub-STEINER:adr, + pages = "lxxi + 719", + year = "1986", + ISBN = "3-515-04808-1", + ISBN-13 = "978-3-515-04808-8", + LCCN = "DS1.5 .I565 1986", + bibdate = "Tue Jul 26 09:38:31 1994", + series = "Zeitschrift der Deutschen Morgenl{\"a}ndischen + Gesellschaft, Supplement", + acknowledgement = ack-nhfb, +} + +@Proceedings{Zlatuska:1992:EPE, + editor = "Ji{\v{r}}{\'\i} Zlatu{\v{s}}ka", + booktitle = "{Euro{\TeX}} 92: Proceedings of the 7th European + {\TeX} Conference", + title = "{Euro{\TeX}} 92: Proceedings of the 7th European + {\TeX} Conference", + publisher = pub-MASARYKOVA, + address = pub-MASARYKOVA:adr, + pages = "viii + 330", + month = sep, + year = "1992", + ISBN = "80-210-0480-0", + ISBN-13 = "978-80-210-0480-1", + bibdate = "Sat Aug 27 11:11:50 1994", + acknowledgement = ack-nhfb, +} diff --git a/Master/texmf-dist/bibtex/bib/beebe/texgraph.bib b/Master/texmf-dist/bibtex/bib/beebe/texgraph.bib new file mode 100644 index 00000000000..1d368548855 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/beebe/texgraph.bib @@ -0,0 +1,2839 @@ +%%% -*-BibTeX-*- +%%% /u/sy/beebe/tex/bib/texgraph.bib, Fri Jun 21 09:31:33 1991 +%%% Edit by Nelson H. F. Beebe +%%% ==================================================================== +%%% BibTeX-file{ +%%% author = "Nelson H. F. Beebe", +%%% version = "2.00", +%%% date = "26 July 2005", +%%% time = "09:10:05 MDT", +%%% filename = "texgraph.bib", +%%% address = "University of Utah +%%% Department of Mathematics, 110 LCB +%%% 155 S 1400 E RM 233 +%%% Salt Lake City, UT 84112-0090 +%%% USA", +%%% telephone = "+1 801 581 5254", +%%% FAX = "+1 801 581 4148", +%%% checksum = "03829 2839 10819 99945", +%%% email = "beebe at math.utah.edu, beebe at acm.org, +%%% beebe at computer.org (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "AWK, bibliography, BibTeX, +%%% digital-halftoning, ditroff, dvips, +%%% dvitops, EEPIC, EPIC, Feynman-diagrams, +%%% FPIC, GNUPLOT, GRAP, graphics, HITeX, JTeX, +%%% Juno, PEX, PHIGS, PIC, PiCTeX, PLOT79, +%%% PostScript, PStricks, TeX, texpic, TeXtyl, +%%% TIFF, TPIC, trees, X-Window-System, +%%% Xerox-Color-Encoding-Standard, Xlib", +%%% supported = "yes", +%%% docstring = "This BibTeX file records publications about +%%% the use of graphics in TeX documents. +%%% Sebastian Rahtz kindly provided the first 58 +%%% entries in this bibliography which started +%%% the collection, and Nelson H. F. Beebe +%%% provided another 70+ to make the first +%%% version. The ISBN and ISSN fields will be +%%% printed if the is-alpha.bst or is-plain.bst +%%% style files are used. +%%% +%%% At version 2.00, the year coverage looked +%%% like this: +%%% +%%% 1967 ( 1) 1980 ( 1) 1993 ( 0) +%%% 1968 ( 0) 1981 ( 4) 1994 ( 1) +%%% 1969 ( 1) 1982 ( 3) 1995 ( 3) +%%% 1970 ( 1) 1983 ( 6) 1996 ( 4) +%%% 1971 ( 0) 1984 ( 4) 1997 ( 9) +%%% 1972 ( 1) 1985 ( 7) 1998 ( 2) +%%% 1973 ( 0) 1986 ( 10) 1999 ( 2) +%%% 1974 ( 0) 1987 ( 21) 2000 ( 0) +%%% 1975 ( 0) 1988 ( 20) 2001 ( 1) +%%% 1976 ( 1) 1989 ( 20) 2002 ( 0) +%%% 1977 ( 1) 1990 ( 14) 2003 ( 1) +%%% 1978 ( 0) 1991 ( 8) 2004 ( 5) +%%% 1979 ( 2) 1992 ( 5) +%%% +%%% Article: 89 +%%% Book: 33 +%%% InCollection: 5 +%%% InProceedings: 3 +%%% Manual: 13 +%%% Misc: 2 +%%% PhdThesis: 1 +%%% Proceedings: 3 +%%% TechReport: 16 +%%% Unpublished: 4 +%%% +%%% Total entries: 169 +%%% +%%% CONVENTIONS +%%% +%%% Books are tagged by the first author's last +%%% name, a colon, up to 3 upper-case letters +%%% taken from the first three upper-case words +%%% in the title (ignoring words like A, And, +%%% The), followed by the last two digits of +%%% the publication year. If there is a volume +%%% entry, it is appended to the tag, prefixed +%%% by a hyphen. +%%% +%%% For Dutch authors, a van part is included +%%% in the author tag. For names with accented +%%% letters, accents are dropped in the author +%%% tag. +%%% +%%% This scheme is systematic enough that it +%%% can be programmed: most of the +%%% Addison-Wesley book entries were created +%%% with an awk program from a dump of the AW +%%% database supplied by Mona Zeftel. Older +%%% entries in this bibliography were modified +%%% on 28-Nov-1990 to conform to this tagging +%%% scheme. +%%% +%%% The choice of a limit of 3 letters was +%%% determined from experiments on the +%%% Addison-Wesley collection. Long tags are +%%% undesirable because they are a nuisance to +%%% type, and also interfere with the tagged +%%% bibliography output produced using the +%%% LaTeX showtags style option. +%%% +%%% Journal article tags look like +%%% author:abbrev-volume-number-page, where the +%%% author part is the last name of the first +%%% author: for example, +%%% Bhattacharya:PR203-1-203. +%%% +%%% Where systematic numbers are available, +%%% technical report tags should look like +%%% author:abbrev-number: for example, +%%% Billawala:STAN-CS-89-1256. +%%% +%%% Entries are stored ordered by the BibTeX +%%% tag name, independent of the entry type +%%% (the GNU Emacs function sort-bibtex-entries +%%% can be used to ensure correct ordering). +%%% However, entries that are cross-referenced +%%% by others are stored at the end of the +%%% file, since that order is required by +%%% BibTeX. +%%% +%%% With few exceptions, value fields for +%%% acknowledgement, address, journal, and +%%% publisher keywords should use macros +%%% defined in the string preamble below. This +%%% helps to ensure consistency, and reduces +%%% the entry sizes. Address entries must +%%% always include the country. +%%% +%%% The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== + +@Preamble{"\input bibnames.sty " + # "\input path.sty " + # "\ifx \undefined \acro \def\acro#1{{\sc #1}} \fi " + # "\ifx \undefined \bs \def\bs{{\char92}} \fi " + # "\ifx \undefined \Dash \def \Dash{\nobreak\thinspace---\penalty0\thinspace} \fi " + # "\ifx \undefined \DVI \def\DVI{{\tt dvi}} \fi " + # "\ifx \undefined \EPIC \def\EPIC{{\tt epic}} \fi " + # "\ifx \undefined \FEATPOST \def \FEATPOST {{\manfnt FEAT}\-{\manfnt POST}\spacefactor1000 }\fi" + # "\ifx \undefined \GRAP \def\GRAP{{\tt grap}} \fi " + # "\ifx \undefined \JTeX \def\JTeX{J\TeX{}} \fi " + # "\ifx \undefined \MP \def \MP {{\manfnt META}\-{\manfnt POST}\spacefactor1000 } \fi" + # "\ifx \undefined \PiC \def\PiC{{\sc pic}} \fi " + # "\ifx \undefined \PiCTeX \def\PiCTeX{{\PiC\TeX}} \fi " + # "\ifx \undefined \TEXHAX \def\TEXHAX{{\TeX{}hax}} \fi " + # "\ifx \undefined \TEXTYL \def\TEXTYL{{\TeX{}tyl}} \fi " + # "\ifx \undefined \TPIC \def\TPIC{{\tt tpic}} \fi " + # "\ifx \undefined \Xy \def \Xy{{\sc Xy}} \fi " + # "\ifx \undefined \XYMTeX \def\XYMTeX{X\kern-.25em\smash{\raise.50ex\hbox{\char'7}}\kern-.25em{M}\kern-.1em\TeX} \fi " + + # "\hyphenation{An-wen-der-ver-ei-ni-gung Co-lo-phon Deutsch-sprach-ige}" +} + +@String{ack-nhfb = "Nelson H. F. Beebe, + University of Utah, + Department of Mathematics, 110 LCB, + 155 S 1400 E RM 233, + Salt Lake City, UT 84112-0090, USA, + Tel: +1 801 581 5254, + FAX: +1 801 581 4148, + e-mail: \path|beebe@math.utah.edu|, + \path|beebe@acm.org|, + \path|beebe@computer.org| (Internet), + URL: \path|http://www.math.utah.edu/~beebe/|"} + +@String{ack-spqr = "Sebastian P. Q. Rahtz, + Department of Computer Science, + University of Southampton, + Southampton, + SO9 5NH, UK, + e-mail: JANET: \path|S.P.Q.Rahtz@ecs.southampton.ac.uk|"} + +%%% NB: TeX normally will not hyphenate words connected by a dash, and +%%% will normally allow a line break only after such a dash, not before. +%%% However, style guides show examples of the em dash starting a line, +%%% so a break before is probably okay. I have been unable to get TeX to +%%% hyphenate automatically after an \emdash (either the macro, or ---), +%%% so I have inserted explicit discretionary hyphens after such cases. +%%% + +%%% ==================================================================== +%%% Institution abbreviations: + +@String{inst-STAN-CS = "Stanford University, Department of Computer + Science"} + +@String{inst-STAN-CS:adr = "Stanford, CA, USA"} + +%%% ==================================================================== +%%% Journal abbreviations: + +@String{j-CACM = "Communications of the Association for + Computing Machinery"} + +@String{j-CBM = "Computers in Biology and Medicine"} + +@String{j-CC = "Computers and Chemistry"} + +@String{j-CGF = "Computer Graphics Forum"} + +@String{j-CGIP = "Computer Graphics and Image Processing"} + +@String{j-COMP-GRAPHICS = "Computer Graphics"} + +@String{j-COMP-PHYS-COMM = "Computer Physics Communications"} + +@String{j-CPC = "Computer Physics Communications"} + +@String{j-DDJ = "Dr. Dobb's Journal of Software Tools"} + +@String{j-EPODD = "Electronic Publishing\emdash Origination, + Dissemination, and Design"} + +@String{j-GUTENBERG = "Cahiers {GUTenberg}"} + +@String{j-OR = "Opuscula Romana"} + +@String{j-PROC-SID = "Proceedings of the Society for Information + Display"} + +@String{j-SIGGRAPH = "ACM SIG{\-}GRAPH\emdash Com{\-}puter + Graphics"} + +@String{j-SPE = "Soft{\-}ware\emdash Prac{\-}tice and + Experience"} + +@String{j-TEXNIQUES = "{\TeX{}}{\-}niques, Publications for the + {\TeX{}} community"} + +@String{j-TOG = "ACM Transactions on Graphics"} + +@String{j-TUGboat = "{\TUB{}}"} + +@String{j-USENIX-SCP = "{USENIX} Summer Conference Proceedings"} + +%%% ==================================================================== +%%% Publisher abbreviations: + +@String{pub-ADOBE = "{Adobe Systems Incorporated}"} + +@String{pub-ADOBE:adr = "1585 Charleston Road, P.~O. Box 7900, + Mountain View, CA 94039-7900, USA, Tel: + (415) 961-4400"} + +@String{pub-ANSI = "American National Standards Institute"} + +@String{pub-ANSI:adr = "1430 Broadway, New York, N. Y., 10018"} + +@String{pub-AP = "Academic Press"} + +@String{pub-AP:adr = "New York, NY, USA"} + +@String{pub-ARBORTEXT = "Arbortext, Inc."} + +@String{pub-ARBORTEXT:adr = "Ann Arbor, MI, USA"} + +@String{pub-ATT-BELL = "AT\&T Bell Laboratories"} + +@String{pub-ATT-BELL:adr = "Murray Hill, NJ, USA"} + +@String{pub-AW = "Ad{\-d}i{\-s}on-Wes{\-l}ey"} + +@String{pub-AW:adr = "Reading, MA, USA"} + +@String{pub-DP = "Digital Press"} + +@String{pub-DP:adr = "12 Crosby Drive, Bedford, MA 01730, USA"} + +@String{pub-ELLIS-HORWOOD = "Ellis Horwood"} + +@String{pub-ELLIS-HORWOOD:adr = "New York, NY, USA"} + +@String{pub-GP = "Graphics Press"} + +@String{pub-GP:adr = "Box 430, Cheshire, CT 06410, USA"} + +@String{pub-HRW = "Holt, Rinehart, and Winston"} + +@String{pub-HRW:adr = "New York, NY, USA"} + +@String{pub-MASARYKOVA = "Masarykova Universita"} + +@String{pub-MASARYKOVA:adr = "Brno, Czechoslovakia"} + +@String{pub-MEGATEK = "Megatek Corporation"} + +@String{pub-MEGATEK:adr = "9645 Scranton Rd, San Diego, CA 92121, USA"} + +@String{pub-MH = "Mc{\-}Graw-Hill"} + +@String{pub-MH:adr = "New York, NY, USA"} + +@String{pub-MIT = "MIT Press"} + +@String{pub-MIT:adr = "Cambridge, MA, USA"} + +@String{pub-ORA = "O'Reilly \& {Associates, Inc.}"} + +@String{pub-ORA:adr = "981 Chestnut Street, Newton, MA 02164, USA"} + +@String{pub-OXFORD = "Oxford University Press"} + +@String{pub-OXFORD:adr = "Walton Street, Oxford OX2 6DP, UK"} + +@String{pub-PH = "Pren{\-}tice-Hall"} + +@String{pub-PH:adr = "Englewood Cliffs, NJ 07632, USA"} + +@String{pub-STAN-CS = "Stanford University, Department of Computer + Science"} + +@String{pub-STAN-CS:adr = "Stanford, CA, USA"} + +@String{pub-SV = "Spring{\-}er-Ver{\-}lag"} + +@String{pub-SV:adr = "Berlin, Germany~/ Heidelberg, Germany~/ + London, UK~/ etc."} + +@String{pub-SYBEX = "Sybex"} + +@String{pub-SYBEX:adr = "2021 Challenger Driver, Suite 100, Alameda, + CA 94501, USA"} + +@String{pub-TUG = "{\TeX} Users Group"} + +@String{pub-TUG:adr = "Providence, RI, USA"} + +@String{pub-URW = "URW Verlag"} + +@String{pub-URW:adr = "Hamburg, Germany"} + +@String{pub-USENIX = "USENIX"} + +@String{pub-USENIX:adr = "Berkeley, CA, USA"} + +@String{pub-USNPS = "U. S. Naval Postgraduate School"} + +@String{pub-USNPS:adr = "Monterey, CA 93940, USA"} + +@String{pub-USNWL = "U. S. Naval Weapons Laboratory"} + +@String{pub-USNWL:adr = "Dahlgren, VA 22448, USA"} + +%%% ==================================================================== +%%% Series abbreviations: + +@String{ser-LNCS = "Lecture Notes in Computer Science"} + +%%% ==================================================================== +%%% Bibliography entries sorted by citation label: + +@Misc{Adobe:colophon, + author = pub-ADOBE, + title = "{Colophon}\emdash {Adobe Systems News} {Publication}", + address = pub-ADOBE:adr, + bibdate = "Mon Mar 14 23:15:58 1994", + acknowledgement = ack-nhfb, +} + +@Book{Adobe:PLP88, + author = "Glenn C. Reid", + title = "{PostScript} Language Program Design", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xii + 224", + year = "1988", + ISBN = "0-201-14396-8", + ISBN-13 = "978-0-201-14396-6", + LCCN = "QA76.73.P67 R45 1988", + bibdate = "Sat Aug 27 11:13:46 1994", + acknowledgement = ack-nhfb, +} + +@Book{Adobe:PLR85, + author = pub-ADOBE, + title = "{PostScript} Language Reference Manual", + publisher = pub-AW, + address = pub-AW:adr, + pages = "ix + 321", + year = "{\noopsort{1985a}}1985", + ISBN = "0-201-10174-2", + ISBN-13 = "978-0-201-10174-4", + LCCN = "QA76.73.P67 A33 1985", + bibdate = "Sat Aug 27 11:13:49 1994", + acknowledgement = ack-nhfb, +} + +@Book{Adobe:PLT85, + author = pub-ADOBE, + title = "{PostScript} Language Tutorial and Cookbook", + publisher = pub-AW, + address = pub-AW:adr, + pages = "x + 243", + year = "{\noopsort{1985b}}1985", + ISBN = "0-201-10179-3", + ISBN-13 = "978-0-201-10179-9", + LCCN = "QA76.73.P67 A34 1985", + bibdate = "Sat Aug 27 11:13:42 1994", +} + +@TechReport{Aldus:tiff, + author = "Aldus Corporation and Microsoft Corporation", + title = "Tag Image File Format ({TIFF}) Specification Revision + 5.0", + institution = "Aldus Corporation, 411 First Avenue South, Suite 200, + Seattle, WA 98104, Tel: (206) 622-5500, and Microsoft + Corporation, 16011 NE 36th Way, Box 97017, Redmond, WA + 98073-9717, Tel: (206) 882-8080", + month = aug # " 8", + year = "1988", + acknowledgement = ack-nhfb, +} + +@Article{Andrews:TB10-2-177-178, + author = "Phil Andrews", + title = "{{Integration of \TeX\ and graphics at the Pittsburgh + Supercomputing Center}}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "177--178", + month = jul, + year = "1989", + bibdate = "Wed Apr 7 10:22:07 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + abstract = "Drivers which support \protect\verb|\special| commands + which include CGM files.", + acknowledgement = ack-bnb # " and " # ack-nhfb # " and " # ack-spqr, +} + +@Article{Anonymous:TB10-1-118, + author = "Anonymous", + title = "{{GUTenberg Congr\`es:\ {\TeX} et les graphiques, + Paris, 16--17 May 1989}}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "118--118", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Feb 20 18:54:33 MST 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Manual{ANSI:gks, + title = "Information Systems\emdash Com\-puter Graphics\emdash + Graph\-i\-cal Kernel System ({GKS}). {ANSI} + {X3}.124-1985", + organization = pub-ANSI, + address = pub-ANSI:adr, + year = "1985", + bibdate = "Mon Mar 14 23:18:01 1994", + note = "Includes Fortran bindings to GKS.", + acknowledgement = ack-nhfb, +} + +@Manual{ANSI:phigs, + title = "Information Systems\emdash Com\-puter Graphics\emdash + Pro\-gram\-mer's Hierarchical Interactive Graphical + System. Draft proposal {X3}.144.1988", + organization = pub-ANSI, + address = pub-ANSI:adr, + year = "1988", + acknowledgement = ack-nhfb, +} + +@Manual{ANSI:phigs+, + title = "{PHIGS}+ Functional Description, Revision 2.0", + organization = pub-ANSI, + address = pub-ANSI:adr, + month = jul # " 20", + year = "1987", + bibdate = "Mon Mar 14 23:18:31 1994", + acknowledgement = ack-nhfb, +} + +@Article{Appelt:TB9-3-284-287, + author = "Wolfgang Appelt", + title = "{{Typesetting chess}}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "284--287", + month = Nov, + year = "1988", + acknowledgement = ack-spqr, +} + +@Manual{Arbortext:1986, + author = "{Arbortext Inc}", + title = "Manual for {DVIPS}", + year = "1986", + note = "See notes on LPEXT distributed with the software.", + acknowledgement = ack-spqr, +} + +@Book{ATT:UPM83-2, + author = "AT{\&T}", + key = "ATT", + title = "{UNIX} Programmer's Manual", + volume = "2", + publisher = pub-HRW, + address = pub-HRW:adr, + pages = "vii + 616", + year = "1983", + ISBN = "0-03-061743-X", + ISBN-13 = "978-0-03-061743-0", + LCCN = "QA76.8.U65 B44 1983", + bibdate = "Mon Sep 30 17:04:17 1996", + acknowledgement = ack-nhfb, + xxnote = "NB: special form AT{\&T} required to get correct + alpha-style labels.", +} + +@Article{Beck:TB11-3-373-380, + author = "Micah Beck and A. Siegel", + title = "{TransFig}: Portable Figures for {\TeX}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "373--380", + year = "1990", + bibdate = "Wed Apr 7 10:22:09 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + abstract = "Fig is a public domain drawing program which runs + Sunview or X Windows; Transfig is a set of programs to + translate Fig format into a variety of formats, + including {\PiCTeX}, {\LaTeX} pictures and {\PS}.", + acknowledgement = ack-bnb # " and " # ack-nhfb # " and " # ack-spqr, +} + +@Article{Beebe:dvi-drivers, + author = "Nelson H. F. Beebe", + title = "A {\TeX} {DVI} Driver Family", + journal = j-TEXNIQUES, + volume = "5", + pages = "71--114", + month = aug, + year = "1987", + note = "Proceedings of the Eighth Annual Meeting of the \TeX{} + Users Group", + acknowledgement = ack-nhfb, +} + +@TechReport{Beebe:plot79, + author = "Nelson H. F. Beebe", + title = "A User's Guide to {\PLOT}", + institution = "University of Utah", + year = "1980", + acknowledgement = ack-nhfb, +} + +@Article{Beebe:plot79-biomed, + author = "Nelson H. F. Beebe and R. P. C. Rodgers", + title = "{\PLOT}: a comprehensive portable {Fortran} scientific + line graphics system, as applied to biomedical + research", + journal = j-CBM, + volume = "19", + number = "6", + pages = "385--402", + year = "1989", +} + +@Article{Beebe:tex-graphics, + author = "Nelson H. F. Beebe", + title = "{\TeX{}} and Graphics: The State of the Problem", + journal = j-GUTENBERG, + volume = "2", + pages = "13--53", + year = "1989", + note = "Presented to: Congr{\`{e}}s GUTenberg, Paris, France, + 16--17 May 1989", +} + +@TechReport{Bentley/Kernighan:1984, + author = "Jon Bentley and Brian W. Kernighan", + title = "{\GRAP}\emdash a language for typesetting graphs", + type = "Computing Science Technical Report", + number = "114", + institution = pub-ATT-BELL, + address = pub-ATT-BELL:adr, + year = "1984", + note = "Also distributed as software documentation.", + acknowledgement = ack-spqr, +} + +@Article{Bentley:grap, + author = "Jon Louis Bentley and Brian W. Kernighan", + title = "{GRAP}\emdash {A} Language for typesetting graphs", + journal = j-CACM, + volume = "29", + number = "8", + pages = "782--792", + month = aug, + year = "1986", + acknowledgement = ack-nhfb, +} + +@Article{Bentley:pic, + author = "Jon Louis Bentley", + title = "Programming Pearls\emdash Little Languages", + journal = j-CACM, + volume = "29", + number = "8", + pages = "711--721", + month = aug, + year = "1986", + note = "Description of the {\em pic\/} language.", + abstract = "Discusses the design of {\em ad hoc} languages for + specialist tasks, such as {\GRAP}.", + acknowledgement = ack-nhfb, +} + +@Article{Berendt:TB11-2-190-194, + author = "Gerhard Berendt", + title = "{{On the implementation of graphics into \TeX}}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "190--194", + month = jun, + year = "1990", + bibdate = "Wed Apr 7 10:22:10 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + abstract = "Picture macros which are implemented with a + combination of {\LaTeX} picture and {\EPIC}, and macros + for including {\PS} pictures.", + acknowledgement = ack-bnb # " and " # ack-nhfb # " and " # ack-spqr, +} + +@Book{Brown:UP85, + author = "Maxine Brown", + title = "Understanding {PHIGS}", + publisher = pub-MEGATEK, + address = pub-MEGATEK:adr, + year = "1985", + LCCN = "T385 .B761 1985", + bibdate = "Wed Dec 15 15:35:57 1993", + acknowledgement = ack-nhfb, +} + +@Article{Bruggemann-Klein:1989, + author = "Anne Br{\"{u}}ggemann-Klein and Derrick Wood", + title = "Drawing trees nicely with {\TeX}", + journal = j-EPODD, + volume = "3", + pages = "101--115", + year = "1989", + abstract = "Use pure {\TeX} to draw complicated trees.", + acknowledgement = ack-spqr, +} + +@Article{Carlisle:TB17-3-321, + author = "David Carlisle", + title = "{{{A {\LaTeX} tour, Part 2: The {\sf tools} and {\sf + graphics} distributions}}}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "321--326", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Feb 20 18:54:33 MST 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Carnes:TB2-3-25, + author = "Lance Carnes", + title = "{{\TeX\ for the HP3000}}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "25", + month = nov, + year = "1981", + acknowledgement = ack-nhfb, +} + +@Article{Childs:TB10-1-44-46, + author = "Bart Childs and Alan Stolleis and Don Berryman", + title = "{{A portable graphics inclusion}}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "44--46", + month = apr, + year = "1989", + bibdate = "Wed Apr 7 10:22:10 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + abstract = "Discussion of standards for \verb|\special| commands + to include external figure files.", + acknowledgement = ack-bnb # " and " # ack-nhfb # " and " # ack-spqr, +} + +@Unpublished{Clark:1989, + author = "James Clark", + title = "{DVITOPS} User Manual", + year = "1989", + note = "Unpublished machine-readable documentation.", + acknowledgement = ack-spqr, +} + +@Article{Clark:TB12-1-157-165, + author = "Adrian Clark", + title = "Practical halftoning with {\TeX}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "157--165", + year = "1991", + acknowledgement = ack-spqr, +} + +@Article{Clark:TB13-3-253, + author = "Malcolm Clark", + title = "{{Portable graphics in {\TeX}}}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "253--260", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Feb 20 18:54:33 MST 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Clark:TB8-3-270, + author = "Adrian F. Clark", + title = "{{Halftone output from \TeX}}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "270", + month = nov, + year = "1987", +} + +@Article{Damrau:TB13-3-315, + author = "Jackie Damrau", + title = "{{Discovering graphics in {\LaTeX} documents}}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "315--321", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Feb 20 18:54:33 MST 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Dvonch:color-pdl, + author = "Mary Ann Dvonch and Paul Roetling and Robert Buckley", + title = "Color Descriptors in Page Description Languages", + journal = j-PROC-SID, + volume = "30", + number = "2", + pages = "177--181", + year = "1989", + bibdate = "Sun Dec 4 12:30:46 1994", + acknowledgement = ack-nhfb, +} + +@Article{Ehrbar:TB7-3-171, + author = "Hans Ehrbar", + title = "{{Statistical graphics with \TeX}}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "171--175", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Wed Apr 07 10:22:13 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb # " and " # ack-spqr, +} + +@Book{Enderle:CGP84, + author = "G. Enderle and K. Kansy and G. Pfaff", + title = "Computer Graphics Programming. {GKS}\emdash The + Graphics Standard", + publisher = pub-SV, + address = pub-SV:adr, + pages = "xvi + 542", + year = "1984", + ISBN = "0-387-11525-0, 3-540-11525-0", + ISBN-13 = "978-0-387-11525-2, 978-3-540-11525-0", + LCCN = "T385 .E531 1984", + bibdate = "Wed Dec 15 07:59:26 1993", + series = "Symbolic Computation, Editor: J. + Encarna{\c{c}}{\~{a}}o and P. Hayes", + acknowledgement = ack-nhfb, +} + +@TechReport{epic, + author = "Sunil Podar", + title = "Enhancements to the Picture Environment of {\LaTeX}", + type = "Technical Report", + number = "86-17", + institution = "Department of Computer Science, S.U.N.Y", + year = "1986", + note = "Version 1.2: July 14, 1986.", + abstract = "Describes the {\EPIC} macros, which extend the + capabilities of {\LaTeX} picture without requiring new + facilities.", + acknowledgement = ack-spqr, +} + +@Article{Eppstein:TB6-1-31, + author = "David Eppstein", + title = "{{Trees in \TeX}}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "31--35", + month = mar, + year = "1985", + abstract = "Drawing simple horizontal trees in plain {\TeX} or + {\LaTeX}.", + acknowledgement = ack-spqr, +} + +@Manual{Finston:2003:URM, + author = "Laurence D. Finston", + title = "{3DLDF} user and reference manual: $3$-dimensional + drawing with {\MP} output", + organization = "????", + address = "????", + pages = "ix + 269", + year = "2003", + bibdate = "Tue Jul 12 10:58:15 2005", + note = "Manual edition 1.0 for 3DLDF version 1.0 September + 2003.", + URL = "http://dante.ctan.org/CTAN/graphics/3DLDF/3DLDF.pdf", + acknowledgement = ack-nhfb, +} + +@Manual{Finston:2004:URM, + author = "Laurence D. Finston", + title = "{3DLDF} user and reference manual: $3$-dimensional + drawing with {\MP} output", + organization = "????", + address = "????", + pages = "x + 296", + year = "2004", + bibdate = "Tue Jul 12 10:58:15 2005", + note = "Manual edition 1.1.5.1 for 3DLDF version 1.1.5.1 + January 2004.", + URL = "http://dante.ctan.org/CTAN/graphics/3DLDF/3DLDF.pdf", + acknowledgement = ack-nhfb, +} + +@Book{Foley:FIC82, + author = "James D. Foley and Andries van Dam", + title = "Fundamentals of Interactive Computer Graphics", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xx + 664", + year = "1982", + ISBN = "0-201-14468-9", + ISBN-13 = "978-0-201-14468-0", + LCCN = "T385 .F63 1982", + bibdate = "Wed Dec 15 08:01:46 1993", + series = "The Systems Programming Series", + acknowledgement = ack-nhfb, +} + +@Article{Fossmeier:TB12-2-229-232, + author = "Reinhard F{\"o}{\ss}meier", + title = "{X} bitmaps in {\TeX}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "229--232", + year = "1991", + acknowledgement = ack-spqr, +} + +@Article{Fossmeier:TB15-4-492, + author = "Reinhard F{\"o}{\ss}meier", + title = "{{Stereographic pictures using {\TeX}}}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "492--495", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Feb 20 18:54:33 MST 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Frick:1999:SGP, + author = "Arne Frick and Georg Sander and Kathleen Wang", + title = "Simulating Graphs As Physical Systems", + journal = j-DDJ, + volume = "24", + number = "8", + pages = "58, 60--64", + month = aug, + year = "1999", + CODEN = "DDJOEB", + ISSN = "1044-789X", + bibdate = "Fri Jul 16 19:10:34 MDT 1999", + URL = "http://www.ddj.com/", + abstract = "Automatically generating comprehensible graphs for + large amounts of data is a difficult problem in + computer science. Our authors describe an algorithm + based on a physical system of springs for drawing a + useful and aesthetically pleasing graph from a large + data set.", + acknowledgement = ack-nhfb, +} + +@Article{Fujita:TB16-1-80, + author = "Shinsaku Fujita", + title = "{{{\XYMTeX} for drawing chemical structural + formulas}}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "80--88", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Feb 20 18:54:33 MST 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@InProceedings{Goncalves:2004:FRM, + author = "Luis Nobre Gon{\c{c}}alves", + title = "{\FEATPOST} and a Review of $3${D} {\MP} Packages", + crossref = "Syropoulos:2004:TXD", + pages = "112--124", + year = "2004", + CODEN = "LNCSD9", + ISSN = "0302-9743", + bibdate = "Tue Nov 16 17:43:44 2004", + acknowledgement = ack-nhfb, +} + +@Book{Goossens:1997:LGC, + author = "Michel Goossens and Sebastian Rahtz and Frank + Mittelbach", + title = "The {\LaTeX} Graphics Companion: Illustrating + Documents with {\TeX} and {PostScript}", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xxi + 554", + year = "1997", + ISBN = "0-201-85469-4", + ISBN-13 = "978-0-201-85469-5", + LCCN = "Z253.4.L38G663 1997", + bibdate = "Fri Jul 11 07:51:47 1997", + price = "US\$39.75", + series = "Tools and Techniques for Computer Typesetting", + acknowledgement = ack-nhfb, + keywords = "LaTeX (Computer file); Computerized typesetting.; + PostScript (Computer program language); Scientific + illustration -- Computer programs.; Mathematics + printing -- Computer programs.; Technical publishing -- + Computer programs.", +} + +@Article{Gourlay:music-printing, + author = "John S. Gourlay", + title = "A language for music printing", + journal = j-CACM, + volume = "29", + number = "5", + pages = "388--401", + month = may, + year = "1986", + ISSN = "0001-07782", + bibdate = "Sun Aug 14 18:32:13 MDT 1994", + acknowledgement = ack-nhfb, + keywords = "design; human factors; languages", + review = "ACM CR 8612-1130", + subject = "J.5 Computer Applications, ARTS AND HUMANITIES, Music + \\ I.7.2 Computing Methodologies, TEXT PROCESSING, + Document Preparation, Format and notation \\ I.7.2 + Computing Methodologies, TEXT PROCESSING, Document + Preparation, Languages", +} + +@Article{Haas/Kane:1987, + author = "Roswitha T. Haas and Kevin C. O'Kane", + title = "Typesetting Chemical Structure Formulas with the Text + Formatter {\TeX}/{\LaTeX}", + journal = j-CC, + volume = "11", + number = "4", + pages = "251--271", + year = "1987", + acknowledgement = ack-spqr, +} + +@Article{Hamilton-Kelly:TB11-1-103-119, + author = "Brian {Hamilton Kelly}", + title = "{{Some macros to draw crosswords}}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "103--119", + month = apr, + year = "1990", + acknowledgement = ack-spqr, +} + +@Manual{Hammerlindl:2004:ASB, + author = "Andy Hammerlindl and John Bowman and Tom Prince", + title = "{{\tt Asymptote}}: a script-based vector graphics + language", + organization = "Faculty of Science, University of Alberta", + address = "Edmonton, AB, Canada", + year = "2004", + bibdate = "Tue Jul 12 11:15:03 2005", + note = "{\tt Asymptote} is a powerful script-based vector + graphics language for technical drawing, inspired by + \MP{} but with an improved C++-like syntax. {\tt + Asymptote} provides for figures the same high-quality + level of typesetting that \LaTeX{} does for scientific + text.", + URL = "http://asymptote.sourceforge.net/", + acknowledgement = ack-nhfb, +} + +@Book{Harrington:CGP83, + author = "Steven Harrington", + title = "Computer Graphics\emdash {A} Programming Approach", + publisher = pub-MH, + address = pub-MH:adr, + pages = "xv + 448", + year = "1983", + ISBN = "0-07-026751-0", + ISBN-13 = "978-0-07-026751-0", + LCCN = "T385 .H34 1983", + bibdate = "Tue Dec 14 23:42:22 1993", + price = "US\$21.95", + acknowledgement = ack-nhfb, + libnote = "Missing from my library.", +} + +@Book{Harrington:CGP87, + author = "Steven Harrington", + title = "Computer Graphics\emdash {A} Programming Approach", + publisher = pub-MH, + address = pub-MH:adr, + edition = "Second", + pages = "xiv + 466", + year = "1987", + ISBN = "0-07-026753-7", + ISBN-13 = "978-0-07-026753-4", + LCCN = "T385 .H34 1987", + bibdate = "Tue Dec 14 22:55:04 1993", + price = "US\$38.95", + acknowledgement = ack-nhfb, +} + +@InCollection{Heinz:1990, + author = "Alois Heinz", + title = "Including pictures in {\TeX}", + crossref = "Clark:TAU90", + abstract = "General discussion of methods of graphics inclusion in + {\TeX}.", + acknowledgement = ack-spqr, +} + +@TechReport{Hershey:1981:ACT, + author = "Allen V. Hershey", + title = "Advanced Computer Typography", + number = "NPS012-81-005", + institution = pub-USNPS, + address = pub-USNPS:adr, + month = dec, + year = "1981", + acknowledgement = ack-nhfb, +} + +@TechReport{Hershey:calligraphy, + author = "Allen V. Hershey", + title = "Calligraphy for Computers", + number = "TR-2101", + institution = pub-USNWL, + address = pub-USNWL:adr, + month = aug, + year = "1967", + acknowledgement = ack-nhfb, +} + +@Article{Hershey:computer-typography, + author = "Allen V. Hershey", + title = "A Computer System for Scientific Typography", + journal = j-CGIP, + volume = "1", + pages = "373--385", + year = "1972", + acknowledgement = ack-nhfb, +} + +@TechReport{Hershey:fortran-cartography, + author = "Allen V. Hershey", + title = "{FORTRAN IV} Programming for Cartography and + Typography", + number = "TR-2339", + institution = pub-USNWL, + address = pub-USNWL:adr, + month = sep, + year = "1969", + acknowledgement = ack-nhfb, +} + +@TechReport{Hershey:fortran-typography, + author = "Allen V. Hershey", + title = "Preparation of Reports with the {FORTRAN} Typographic + System", + number = "TN-K\slash 27-70", + institution = pub-USNWL, + address = pub-USNWL:adr, + month = sep, + year = "1970", + acknowledgement = ack-nhfb, +} + +@TechReport{Hobby:1983:CMF, + author = "John Hobby and Gu Guoan", + title = "A {Chinese Meta-Font}", + type = "Report", + number = "STAN-CS-83-974", + institution = inst-STAN-CS, + address = inst-STAN-CS:adr, + year = "1983", + bibdate = "Sat Feb 10 14:51:21 1996", + acknowledgement = ack-hk, +} + +@PhdThesis{Hobby:1986:DBT, + author = "John Douglas Hobby", + title = "Digitized Brush Trajectories", + type = "{Ph.D.} dissertation", + school = "Department of Computer Science, Stanford University", + address = "Stanford, CA, USA", + pages = "151", + month = jun, + year = "1986", + bibdate = "Wed May 25 08:06:33 2005", + note = "Also published as report STAN-CS-1070 (1985).", + URL = "http://wwwlib.umi.com/dissertations/fullcit/8602484", + abstract = "We consider the problem of finding a discrete set of + pixels that approximates the envelope of a convex brush + shape with respect to a given trajectory. Let the + digitization of a planar region be the set of pixels + whose centers lie inside of it. We develop mathematical + models for the width of digitized brush strokes, and we + give a class of polygonal brush shapes such that the + width of their envelope with respect to a given + trajectory is accurately reflected by the digitization + of the envelope. Polygonal brush shapes also have the + advantage that it is usually much easier to compute the + digitization of the envelope with respect to a given + trajectory. We present fast algorithms for + approximating a given brush shape with an appropriate + polygon so that the digitization of the envelope of the + modified brush will have more accurate and uniform + width than the digitization of the exact envelope + would. We also present an algorithm for finding a set + of pixels that represents the envelope of a dynamically + changing brush while preserving accurate and uniform + stroke width. This algorithm finds a polygonal path + with simple rational slopes that is digitally + equivalent to the given trajectory. Other possible + applications of this polygonal representation include + smoothing digitized curves, data compression, and curve + fitting.", + acknowledgement = ack-nhfb, +} + +@InProceedings{Hobby:1992:IM, + author = "John D. Hobby", + title = "Introduction to {\MP}", + crossref = "Zlatuska:1992:EPE", + pages = "21--36", + year = "1992", + bibdate = "Thu Sep 2 12:27:38 1999", + note = "Invited talk.", + acknowledgement = ack-nhfb, +} + +@Manual{Hobby:1995:DGM, + author = "John D. Hobby", + title = "Drawing Graphs with {\MP}", + organization = "AT\&T Bell Laboratories", + address = "Murray Hill, NJ, USA", + pages = "18", + year = "1995", + bibdate = "Tue Jul 12 11:58:06 2005", + URL = "http://ctan.tug.org/tex-archive/macros/latex/contrib/pdfslide/mpgraph.pdf", + acknowledgement = ack-nhfb, +} + +@Manual{Hobby:1997:MS, + author = "John D. Hobby", + title = "The {\MP} System", + organization = "????", + address = "????", + pages = "20", + day = "30", + month = dec, + year = "1997", + bibdate = "Tue Jul 12 11:38:32 2005", + URL = "file:///texlive-2004-11/texmf-dist/doc/metapost/base/mpintro.pdf", + acknowledgement = ack-nhfb, +} + +@Article{Hobby:2001:MDS, + author = "John D. Hobby", + title = "{\MP} le dessin sous {\TeX}: manuels de l'utilisateur + pour {\MF} et graph", + journal = j-GUTENBERG, + volume = "41", + number = "??", + pages = "175", + year = "2001", + ISSN = "1140-9304", + bibdate = "Tue Jul 12 10:54:03 2005", + note = "French translation by Pierre Fournier et Jean-C{\^o}me + Charpentier.", + acknowledgement = ack-nhfb, +} + +@Manual{Hobby:2004:UMM, + author = "John D. Hobby", + title = "A User's Manual for {{\MP}}", + organization = "????", + address = "????", + pages = "i + 85", + year = "2004", + bibdate = "Tue Jul 12 11:48:44 2005", + URL = "file:///texlive-2004-11/texmf-dist/doc/metapost/base/mpman.pdf", + acknowledgement = ack-nhfb, +} + +@Article{Hoenig:TB12-1-125-128, + author = "Alan Hoenig", + title = "Labelling figures in {\TeX} documents", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "125--128", + year = "1990", + abstract = "Problems of combining figures drawn using {\MF} with + labels typeset by {\TeX}.", + acknowledgement = ack-spqr, +} + +@Book{Hoenig:1998:TUL, + author = "Alan Hoenig", + title = "{\TeX} Unbound: {\LaTeX} and {\TeX} Strategies for + Fonts, Graphics, \& More", + publisher = pub-OXFORD, + address = pub-OXFORD:adr, + pages = "ix + 580", + year = "1998", + ISBN = "0-19-509686-X (paperback), 0-19-509685-1 (hardcover)", + ISBN-13 = "978-0-19-509686-6 (paperback), 978-0-19-509685-9 + (hardcover)", + LCCN = "Z253.4.L38H64 1997", + bibdate = "Wed Apr 29 14:32:29 1998", + price = "US\$60.00 (hardcover), US\$35.00 (paperback)", + URL = "http://www.oup-usa.org/gcdocs/gc_0195096851.html", + acknowledgement = ack-nhfb, + keywords = "Computer fonts; Computer graphics; Computerized + typesetting; Mathematics printing -- Computer programs; + METAFONT; Technical publishing -- Computer programs; + {\LaTeX} (Computer file); {\TeX} (Computer file)", +} + +@Book{Holzgang:UPP87, + author = "David A. Holzgang", + title = "Understanding {PostScript} Programming", + publisher = pub-SYBEX, + address = pub-SYBEX:adr, + pages = "xxxii + 459", + year = "1987", + ISBN = "0-89588-396-1", + ISBN-13 = "978-0-89588-396-4", + LCCN = "QA76.73.P67 H65 1987", + bibdate = "Sat Aug 27 11:13:54 1994", + acknowledgement = ack-nhfb, +} + +@Book{Hopgood:IGK83, + author = "F. Robert A. Hopgood and Julian R. Gallop and David A. + Duce and Dale C. Sutcliffe", + title = "Introduction to the Graphical Kernel System ({GKS})", + publisher = pub-AP, + address = pub-AP:adr, + pages = "xi + 200", + year = "1983", + ISBN = "0-12-355570-1", + ISBN-13 = "978-0-12-355570-0", + LCCN = "T385 .I57 1983", + bibdate = "Wed Dec 15 10:30:59 1993", + note = "{A. P. I. C.} Studies in Data Processing No. 19.", + acknowledgement = ack-nhfb, +} + +@Book{Hopgood:IGK86, + author = "F. Robert A. Hopgood and Julian R. Gallop and David A. + Duce and Dale C. Sutcliffe", + title = "Introduction to the Graphical Kernel System ({GKS})", + publisher = pub-AP, + address = pub-AP:adr, + edition = "Second", + pages = "xii + 250", + year = "1986", + ISBN = "0-12-355571-X (paperback)", + ISBN-13 = "978-0-12-355571-7 (paperback)", + LCCN = "T385 .I571 1986", + bibdate = "Wed Dec 15 10:31:02 1993", + note = "Revised for the International Standard. {A. P. I. C.} + Studies in Data Processing No. 28", + price = "UK\pounds 12.50", + acknowledgement = ack-nhfb, +} + +@Article{Jeffrey:TB12-2-227-229, + author = "Alan Jeffrey", + title = "Labelled diagrams in {\MF}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "227--229", + year = "1991", + acknowledgement = ack-spqr, +} + +@Book{Jones:IXW89, + author = "Oliver Jones", + title = "Introduction to the {X Window System}", + publisher = pub-PH, + address = pub-PH:adr, + pages = "xii + 511", + year = "1989", + ISBN = "0-13-499997-5", + ISBN-13 = "978-0-13-499997-5", + LCCN = "QA76.76.W56 J66 1989", + bibdate = "Wed Dec 15 10:35:42 1993", + acknowledgement = ack-nhfb, +} + +@Article{Kahrs:ditroff, + author = "Mark Kahrs and Lee Moore", + title = "Adventures with Type\-set\-ter-In\-de\-pen\-dent + {TROFF}", + journal = j-USENIX-SCP, + pages = "258--269", + month = jun # " 12--15", + year = "1984", + acknowledgement = ack-nhfb, +} + +@InProceedings{Kamin:1997:SPL, + author = "Samuel N. Kamin and David Hyatt", + title = "A Special-Purpose Language for Picture-Drawing", + crossref = "USENIX:1997:PCD", + pages = "297--310", + year = "1997", + bibdate = "Mon Feb 03 15:29:55 2003", + note = "This paper describes FPIC, an implementation in ML of + a programmable extension to a PIC-like + \cite{Kernighan:pic} language. The authors raise + interesting points about the difficulty of doing this + correctly in ML, and conclude that a more powerful base + language (e.g., Haskell) might be more suitable. FPIC + includes support for both PostScript and \LaTeX{} + output.", + URL = "http://www.usenix.org/publications/library/proceedings/dsl97/full_papers/kamin/kamin_html/kamin.html", + acknowledgement = ack-nhfb, +} + +@Unpublished{Karney:1989, + author = "Charles Karney", + title = "Getting {\TeX} labelling on graphics", + year = "1988", + note = "Electronic mail to {\TEXHAX}, 24 May 1989.", + abstract = "Suggestion of a scheme whereby the author nominates + captions for tagged points on a graph, passes these + through {\TeX} as \verb|\special|s and then has the + {\DVI} driver integrate these typeset captions back + into the graph being printed. This scheme has not yet + been implemented.", + acknowledgement = ack-spqr, +} + +@Book{Karow:DFT87, + author = "Peter Karow", + title = "Digital Formats for Typefaces", + publisher = pub-URW, + address = pub-URW:adr, + pages = "400", + year = "1987", + ISBN = "3-926515-01-5", + ISBN-13 = "978-3-926515-01-8", + LCCN = "Z253.3 .K371 1987", + bibdate = "Wed Dec 15 10:35:50 1993", + acknowledgement = ack-nhfb, +} + +@TechReport{Kernighan:ditroff, + author = "Brian W. Kernighan", + title = "A Typesetter-independent {TROFF}", + number = "Computer Science Report 91", + institution = pub-ATT-BELL, + address = pub-ATT-BELL:adr, + year = "1981", + acknowledgement = ack-nhfb, +} + +@Article{Kernighan:pic, + author = "Brian W. Kernighan", + title = "{PIC}\emdash {A} language for typesetting graphics", + journal = j-SPE, + volume = "12", + number = "1", + pages = "1--22", + month = jan, + year = "1982", + acknowledgement = ack-nhfb, +} + +@Article{Kneser:TB12-1-28-30, + author = "Thomas Kneser", + title = "{\LaTeX}-paragraphs floating around figures", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "28--30", + year = "1991", + abstract = "Macros to allow `in-text' figures on the edge of + paragraphs.", + acknowledgement = ack-spqr, +} + +@Book{Knuth:ct-a, + author = "Donald E. Knuth", + title = "The {\TeX}book", + volume = "{\noopsort{1986a}}A", + publisher = pub-AW, + address = pub-AW:adr, + pages = "ix + 483", + year = "1986", + ISBN = "0-201-13447-0", + ISBN-13 = "978-0-201-13447-6", + LCCN = "Z253.4.T47 K58 1986", + bibdate = "Wed Dec 15 10:36:52 1993", + series = "Computers and Typesetting", + acknowledgement = ack-nhfb, +} + +@Book{Knuth:ct-b, + author = "Donald E. Knuth", + title = "{\TeX}: The Program", + volume = "B", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xv + 594", + year = "{\noopsort{1986b}}1986", + ISBN = "0-201-13437-3", + ISBN-13 = "978-0-201-13437-7", + LCCN = "Z253.4.T47 K578 1986", + bibdate = "Wed Dec 15 10:36:54 1993", + series = "Computers and Typesetting", + acknowledgement = ack-nhfb, +} + +@Book{Knuth:ct-c, + author = "Donald E. Knuth", + title = "The {\METAFONT}book", + volume = "C", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xi + 361", + year = "{\noopsort{1986c}}1986", + ISBN = "0-201-13445-4", + ISBN-13 = "978-0-201-13445-2", + LCCN = "Z250.8.M46 K58 1986", + bibdate = "Wed Dec 15 10:37:29 1993", + series = "Computers and Typesetting", + acknowledgement = ack-nhfb, +} + +@Book{Knuth:ct-d, + author = "Donald E. Knuth", + title = "{\METAFONT}: The Program", + volume = "D", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xv + 560", + year = "{\noopsort{1986d}}1986", + ISBN = "0-201-13438-1", + ISBN-13 = "978-0-201-13438-4", + LCCN = "Z250.8.M46 K578 1986", + bibdate = "Wed Dec 15 10:37:32 1993", + series = "Computers and Typesetting", + acknowledgement = ack-nhfb, +} + +@Book{Knuth:ct-e, + author = "Donald E. Knuth", + title = "Computer Modern Typefaces", + volume = "E", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xv + 588", + year = "{\noopsort{1986e}}1986", + ISBN = "0-201-13446-2", + ISBN-13 = "978-0-201-13446-9", + LCCN = "Z250.8.M46 K574 1986", + bibdate = "Wed Dec 15 10:37:33 1993", + series = "Computers and Typesetting", + acknowledgement = ack-nhfb, +} + +@Article{Knuth:halftone, + author = "Donald E. Knuth", + title = "Digital Halftones by Dot Diffusion", + journal = j-TOG, + volume = "6", + number = "4", + pages = "245--273", + month = oct, + year = "1987", + bibdate = "Fri Aug 26 08:57:23 1994", + acknowledgement = ack-nhfb, +} + +@Article{Knuth:TB8-1-14, + author = "Donald Knuth and Pierre MacKay", + title = "{{Mixing right-to-left texts with left-to-right + texts}}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "14", + month = apr, + year = "1987", + acknowledgement = ack-nhfb, +} + +@Article{Knuth:TB8-2-135, + author = "Donald E. Knuth", + title = "{{Fonts for digital halftones}}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "135--160", + month = jul, + year = "1987", + acknowledgement = ack-spqr, +} + +@TechReport{Knuth:tex-errors, + author = "Donald E. Knuth", + title = "The Errors of {\TeX}", + number = "{STAN-CS-88-1223}", + institution = pub-STAN-CS, + address = pub-STAN-CS:adr, + month = sep, + year = "1988", + bibdate = "Mon Mar 14 23:27:07 1994", + acknowledgement = ack-nhfb, +} + +@Book{Knuth:TMN79, + author = "Donald E. Knuth", + title = "{\TeX} and {\METAFONT}\emdash New Directions in + Typesetting", + publisher = pub-DP, + address = pub-DP:adr, + pages = "xi + 201 + 105", + year = "1979", + ISBN = "0-932376-02-9", + ISBN-13 = "978-0-932376-02-2", + LCCN = "Z253.3 .K58 1979", + bibdate = "Wed Dec 15 10:37:42 1993", + acknowledgement = ack-nhfb, +} + +@Manual{Kotz:gnuplot, + author = "David Kotz", + title = "{GNUPLOT \LaTeX} Tutorial Version 2.0", + organization = "Computer Science Department, Duke University", + month = feb, + year = "1990", + note = "See also \cite{Williams:gnuplot}.", + acknowledgement = ack-nhfb, +} + +@Unpublished{Kwok:1988, + author = "Conrad Kwok", + title = "{EEPIC}: Extensions to {\EPIC} and {\LaTeX} Picture + environment", + year = "1988", + bibdate = "Mon Feb 10 07:34:44 1997", + note = "Unpublished machine-readable document.", + abstract = "Macros which re-implement some of {\EPIC} and {\LaTeX} + picture with appropriate \verb|\special| commands from + the {\TPIC} set.", + acknowledgement = ack-spqr, +} + +@Article{Laan:TB17-2-222, + author = "Kees van der Laan", + title = "{{Turtle graphics and {\TeX}\Dash a child can do + it}}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "222--228", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Feb 20 18:54:33 MST 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Laan:TB17-3-269, + author = "Kees van der Laan", + title = "{{{Graphics and {\TeX}\Dash A reappraisal of + {\MF}/MetaPost/{\PS}}}}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "269--279", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Feb 20 18:54:33 MST 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Book{Lamport:LDP85, + author = "Leslie Lamport", + title = "{\LaTeX}\emdash {A} Document Preparation System\emdash + User's Guide and Reference Manual", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiv + 242", + year = "1985", + ISBN = "0-201-15790-X", + ISBN-13 = "978-0-201-15790-1", + LCCN = "Z253.4.L38 L35 1986", + bibdate = "Wed Dec 15 10:38:04 1993", + acknowledgement = ack-nhfb, +} + +@Article{Lesenko:TB18-3-166, + author = "Sergey Lesenko", + title = "{{{\acro{DVIPDF}} and {Graphics}}}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "166--169", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Feb 20 18:54:33 MST 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Levine:CPC-58-181, + author = "Michael J. S. Levine", + title = "A {\LaTeX} graphics routine for drawing {Feynman} + diagrams", + journal = j-CPC, + volume = "58", + pages = "181--198", + year = "1990", + acknowledgement = ack-spqr, +} + +@Article{Maclenan:TB12-1-66-69, + author = "M. P. Maclenan and G. M. Burns", + title = "An approach to drawing circuit diagrams for text + books", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "66--69", + year = "1991", + abstract = "A library of pictograms built on {\PiCTeX}.", + acknowledgement = ack-spqr, +} + +@Article{Moore:TB18-3-159, + author = "Ross Moore", + title = "{{High quality labels on included graphics, using + {\Xy-pic}}}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "159--165", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Feb 20 18:54:33 MST 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Moore:TB19-1-61, + author = "Ross Moore", + title = "{{Erratum: {High} quality labels on included graphics, + using {\Xy-pic}, {\tubissue 18(3)}, pp. 151--158}}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "61--61", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Feb 20 18:54:33 MST 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Nelson:1985:JCG, + author = "Greg Nelson", + title = "Juno, a Constraint-Based Graphics System", + journal = j-COMP-GRAPHICS, + volume = "19", + number = "3", + pages = "235--243", + month = jul, + year = "1985", + CODEN = "CPGPBZ", + ISBN = "0-89791-166-0", + ISBN-13 = "978-0-89791-166-5", + ISSN = "0097-8930", + LCCN = "????", + bibdate = "Sat Dec 21 15:50:08 MST 1996", + bibsource = "Compendex database", + abstract = "Juno is a system that harmoniously integrates a + language for describing pictures with a + what-you-see-is-what-you-get image editor. Two of + Juno's novelties are that geometric constraints are + used to specify locations, and that the text of a Juno + program is modified in response to the interactive + editing of the displayed image that the program + produces.", + acknowledgement = ack-nhfb, + affiliation = "Xerox Palo Alto Research Cent, Palo Alto, CA, USA", + affiliationaddress = "Xerox Palo Alto Research Cent, Palo Alto, CA, + USA", + classification = "723", + conference = "SIGGRAPH '85 Conf Proc", + journalabr = "Comput Graphics (ACM)", + keywords = "computer graphics; Interactive; computer systems, + digital --- Interactive Operation; image processing --- + Image Analysis; computer programming --- Algorithms; + editor; metafont; implicit editing; juno", + meetingaddress = "San Francisco, CA, USA", + meetingdate = "Jul 22--26 1985", + meetingdate2 = "07/22--26/85", +} + +@Article{Ness:tv-guide, + author = "David Ness", + title = "The Use of {\TeX{}} in a Commercial Environment", + journal = j-TEXNIQUES, + volume = "5", + pages = "115--123", + month = aug, + year = "1987", + note = "Proceedings of the Eighth Annual Meeting of the \TeX{} + Users Group", + acknowledgement = ack-nhfb, +} + +@Article{Nicole:TB12-1-70, + author = "Olivier Nicole", + title = "{{A graphic driver to interface statistical software S + and {\PiCTeX}}}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "70--73", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Wed Apr 07 10:22:16 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb # " and " # ack-spqr, +} + +@InCollection{Norris/Oakley:1990, + author = "A. C. Norris and A. L. Oakley", + title = "Electronic Publishing and Chemical Text Processing", + crossref = "Clark:TAU90", + acknowledgement = ack-spqr, +} + +@Book{Nye:1988:XPM, + author = "Adrian Nye", + title = "Xlib Programming Manual for Version 11", + volume = "1", + publisher = pub-ORA, + address = pub-ORA:adr, + pages = "xxxiii + 615", + year = "1988", + ISBN = "0-937175-26-9", + ISBN-13 = "978-0-937175-26-2", + LCCN = "QA76.76.W56 D44 v.1 1988", + bibdate = "Wed Dec 15 10:40:05 1993", + acknowledgement = ack-nhfb, +} + +@Book{Nye:XRM88, + author = "Adrian Nye", + title = "Xlib Reference Manual for Version 11", + volume = "2", + publisher = pub-ORA, + address = pub-ORA:adr, + pages = "xiv + 701", + year = "1988", + ISBN = "0-937175-27-7", + ISBN-13 = "978-0-937175-27-9", + LCCN = "QA76.76.W56 D44 v.2 1988", + bibdate = "Wed Dec 15 10:40:05 1993", + acknowledgement = ack-nhfb, +} + +@Article{Ohl:1995:DFD, + author = "Thorsten Ohl", + title = "Drawing {Feynman} diagrams with {\LaTeX} and + {\METAFONT}", + journal = j-COMP-PHYS-COMM, + volume = "90", + number = "2--3", + pages = "340--354", + month = oct, + year = "1995", + CODEN = "CPHCBZ", + ISSN = "0010-4655", + bibdate = "Sat Dec 21 15:45:22 MST 1996", + bibsource = "Compendex database", + abstract = "feynMF is a {\LaTeX} package for easy drawing of + professional quality Feynman diagrams with METAFONT (or + METAPOST). feynMF lays out most diagrams satisfactorily + from the structure of the graph without any need for + manual intervention. Nevertheless all the power of + METAFONT (or METAPOST) is available for the most + complicated cases.", + acknowledgement = ack-nhfb, + affiliation = "Technische Hochschule Darmstadt", + affiliationaddress = "Darmstadt, Ger", + classification = "723; 723.5; 921.4; 723.1.1; 902.1; 931.4", + keywords = "Computer software; Computer graphics; Graph theory; + Computer programming languages; Algorithms; Drawing + (graphics); Quantum theory; Feynman diagrams; latex + (programming language); metafont (programming + language)", +} + +@Article{Olejniczak-Burkert:TB10-4-627-637, + author = "Rolf Olejniczak-Burkert", + title = "{{{\it texpic\/}\emdash Design and Implementation of a + Picture Graphics Language in \TeX\ \`a la {\it + pic\/}}}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "627--637", + month = dec, + year = "1989", + bibdate = "Wed Apr 07 10:22:23 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb # " and " # ack-spqr, +} + +@Book{Oreilly:XWS88, + author = "Tim O'Reilly and Valerie Quercia and Linda Lamb", + title = "{X} Window System User's Guide for Version 11", + volume = "3", + publisher = pub-ORA, + address = pub-ORA:adr, + year = "1988", + ISBN = "0-937175-29-3", + ISBN-13 = "978-0-937175-29-3", + acknowledgement = ack-nhfb, +} + +@Article{Pickrell:TB11-1-26-31, + author = "Lee S. Pickrell", + title = "{{Combining graphics with {\TeX} on IBM PC-compatible + systems and LaserJet printers}}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "26--31", + month = apr, + year = "1990", + bibdate = "Wed Apr 7 10:22:27 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb # " and " # ack-spqr, +} + +@Article{Pickrell:TB11-2-200-206, + author = "Lee S. Pickrell", + title = "{{Combining graphics with \TeX\ on PC systems with + laser printers, part II}}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "200--206", + month = jun, + year = "1990", + bibdate = "Wed Apr 7 10:22:29 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb # " and " # ack-spqr, +} + +@Article{Plestenjak:1999:ADP, + author = "Bor Plestenjak", + title = "An algorithm for drawing planar graphs", + journal = j-SPE, + volume = "29", + number = "11", + pages = "973--984", + month = sep, + year = "1999", + CODEN = "SPEXBL", + ISSN = "0038-0644", + bibdate = "Sat Sep 18 18:25:59 MDT 1999", + bibsource = "http://www3.interscience.wiley.comjournalfinder.html", + URL = "http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=63501203&PLACEBO=IE.pdf; + http://www3.interscience.wiley.com/cgi-bin/abstract?ID=63501203", + acknowledgement = ack-nhfb, +} + +@Article{Price:TB2-1-122, + author = "Lynne A. Price", + title = "{{Hebrew letter (with source)}}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "122", + month = feb, + year = "1981", + acknowledgement = ack-nhfb, +} + +@Manual{Publisher, + author = "{Arbortext Inc}", + title = "The {Publisher} User Manual", + publisher = pub-ARBORTEXT, + address = pub-ARBORTEXT:adr, + year = "1988", + acknowledgement = ack-spqr, +} + +@TechReport{Rahtz:1987, + author = "Sebastian Rahtz", + title = "The right text-processing tools for the job?", + type = "CSMAN", + number = "87-4", + institution = "Computer Science, University of Southampton", + year = "1987", + acknowledgement = ack-spqr, +} + +@Article{Rahtz:1988, + author = "Sebastian Rahtz", + title = "The {Protestant Cemetery, Rome}: a study undertaken + under the auspices of the {Unione Internazionale degli + Istituti di Archeologia Storia e Storia dell'Arte in + Roma}", + journal = j-OR, + volume = "16", + pages = "149--167", + year = "1987", + acknowledgement = ack-spqr, +} + +@InCollection{Ramek:1990:CSF, + author = "Michael Ramek", + title = "Chemical structure formulae and x/y diagrams with + {\TeX}", + crossref = "Clark:TAU90", + year = "1990", + acknowledgement = ack-spqr, +} + +@Article{Reckdahl:1996:UAG, + author = "Keith Reckdahl", + title = "{{{Using \acro{EPS} graphics in {\LaTeXe} documents, + Part 2: Floating figures, boxed figures, captions, and + math in figures}}}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "288--310", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Feb 20 18:54:33 MST 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Reid:TB10-2-188-191, + author = "Tom Reid and Don Hosek", + title = "{{Report from the |DVI| driver standards committee}}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "188--191", + month = jul, + year = "1989", + acknowledgement = ack-spqr, +} + +@Article{Renfrow:TB10-4-607, + author = "J. T. Renfrow", + title = "{{Methodologies for preparing and integrating {\PS} + graphics}}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "607--626", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Wed Apr 07 10:22:30 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb # " and " # ack-spqr, +} + +@TechReport{Renner:textyl, + author = "John S. Renner", + title = "{\TeX}tyl: a line-drawing interface for {\TeX}", + number = "OSU-CISRC-4\slash 87-TR9", + institution = "Department of Computer Science, Ohio State + University", + month = mar, + year = "1987", + acknowledgement = ack-nhfb, +} + +@Unpublished{Reynolds:1987, + author = "J. C. Reynolds", + title = "User's manual for Diagram Macros", + month = dec, + year = "1987", + note = "Unpublished machine-readable document.", + acknowledgement = ack-spqr, +} + +@Book{Roads:FCM87, + editor = "Curtis Roads and John Strawn", + title = "Foundations of Computer Music", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xiii + 712", + year = "1987", + ISBN = "0-262-18114-2", + ISBN-13 = "978-0-262-18114-3", + LCCN = "ML1092 .F7 1985", + bibdate = "Wed Dec 15 10:41:13 1993", + acknowledgement = ack-nhfb, +} + +@Article{Roegel:1997:CAM, + author = "Denis Roegel", + title = "Creating {$3$D} animations with {{\MP}}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "274--283", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + URL = "http://ctan.tug.org/tex-archive/graphics/metapost/contrib/macros/3d/doc/paper1997corrected.pdf", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rogers:TB10-1-39-44, + author = "David F. Rogers", + title = "{{Computer graphics and \TeX\emdash a challenge}}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "39--44", + month = apr, + year = "1989", + bibdate = "Wed Apr 7 10:22:30 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb # " and " # ack-spqr, +} + +@Article{Rogers:TB18-4-246, + author = "David F. Rogers", + title = "{{{\it The {\LaTeX} Graphics Companion}, by {Michel + Goossens}, {Sebastian Rahtz} and {Frank Mittelbach}}}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "246--246", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Feb 20 18:54:33 MST 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rose:TB18-3-151, + author = "{Kristoffer H\o{}gsbro Rose}", + title = "{{{Very} high level 2-dimensional graphics with {\TeX} + and {\Xy-pic}}}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "151--158", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Feb 20 18:54:33 MST 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@TechReport{Rost:pex, + author = "Randi J. Rost", + title = "{PEX} Introduction and Overview", + number = "Version 3.20", + institution = "Digital Equipment Corporation, Workstation Systems + Engineering", + month = apr, + year = "1988", + note = "This document is present in the X Window System + Version 11 Release 3 in the file + \path|X11/X11/doc/extensions/pex/doc/intro/doc.ms|.", + acknowledgement = ack-nhfb, +} + +@Book{Roth:RWP88, + editor = "Stephen E. Roth", + title = "Real World {PostScript}", + publisher = pub-AW, + address = pub-AW:adr, + pages = "xiv + 383", + year = "1988", + ISBN = "0-201-06663-7", + ISBN-13 = "978-0-201-06663-0", + LCCN = "Z286.D47 R4 1988", + bibdate = "Wed Dec 15 18:12:59 1993", + acknowledgement = ack-nhfb, +} + +@Article{Rubinstein:TB10-2-170-172, + author = "Zalman Rubinstein", + title = "{{Chess printing via \MF\ and \TeX}}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "170--172", + month = jul, + year = "1989", +} + +@Article{Saito:TB8-2-103, + author = "Yasuki Saito", + title = "{{Report on \JTeX: A Japanese \TeX}}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "103", + month = jul, + year = "1987", + acknowledgement = ack-nhfb, +} + +@Article{Salomon:TB10-2-207-216, + author = "David Salomon", + title = "{{DDA methods in \TeX}}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "207--216", + month = jul, + year = "1989", + abstract = "Deals with the mathematical background to producing + good circles, arcs and lines from dots, using Digital + Differential Analyzer methods.", + acknowledgement = ack-spqr, +} + +@Book{Scheifler:XWS88, + author = "Robert W. Scheifler and James Gettys and Ron Newman", + title = "{X Window System}: {C} Library and Protocol + Reference", + publisher = pub-DP, + address = pub-DP:adr, + pages = "xxix + 701", + year = "1988", + ISBN = "1-55558-012-2", + ISBN-13 = "978-1-55558-012-4", + LCCN = "QA76.76.W56 S34 1988", + bibdate = "Wed Dec 15 10:41:32 1993", + acknowledgement = ack-nhfb, +} + +@Article{Schopf:TB10-1-105-107, + author = "Rainer Sch{\"{o}}pf", + title = "{{Drawing histogram bars inside the \LaTeX\ + picture--environment}}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "105--107", + month = apr, + year = "1989", + acknowledgement = ack-spqr, +} + +@Article{Schrod:TB12-2-232-233, + author = "Joachim Schrod", + title = "Report on the {{\tt DVI}} driver standard", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "232--233", + year = "1991", + acknowledgement = ack-spqr, +} + +@Article{Schwer:TB11-2-194, + author = "Len Schwer", + title = "{{Including Macintosh graphics in {\LaTeX} + documents}}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "194--200", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Wed Apr 07 10:22:30 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb # " and " # ack-spqr, +} + +@Article{SIGGRAPH:core77, + author = "ACM\slash SIGGRAPH", + title = "Status Report of the {Graphic Standards Planning + Committee of ACM\slash SIGGRAPH}", + journal = j-SIGGRAPH, + volume = "11", + number = "3", + year = "1977", + acknowledgement = ack-nhfb, +} + +@Article{SIGGRAPH:core79, + author = "ACM\slash SIGGRAPH", + title = "Status Report of the {Graphic Standards Planning + Committee of ACM\slash SIGGRAPH}", + journal = j-SIGGRAPH, + volume = "13", + number = "3", + month = aug, + year = "1979", + acknowledgement = ack-nhfb, +} + +@InCollection{Simpson:1990:NTU, + author = "Rick Simpson", + title = "Non-traditional uses of {\MF}", + crossref = "Clark:TAU90", + year = "1990", + acknowledgement = ack-spqr, +} + +@Article{Sowa:1991:IGT, + author = "Friedrich Sowa", + title = "Integration of graphics into {\TeX}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "58--63", + year = "1991", + bibdate = "Wed Apr 7 10:22:30 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + abstract = "Describes BM2FONT, a program to turn bitmap pictures + (e.g.\ TIFF) into PK files for use by {\TeX}, with some + notes on halftoning.", + acknowledgement = ack-bnb # " and " # ack-nhfb # " and " # ack-spqr, +} + +@Article{Spivak:TB10-2-164-165, + author = "Michael Spivak and Michael Ballantyne and Yoke Lee", + title = "{{HI-\TeX\ cutting \& pasting}}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "164--165", + month = jul, + year = "1989", + abstract = "Describes dvipaste, a system for merging dvi files. + The idea is that complex tables or figures will be + typeset on their own, to avoid burdening {\TeX}'s + memory, and then merged into the main {\DVI} file, + where space has been left, just before printing.", +} + +@Article{Spragens:TB6-2-66, + author = "Alan Spragens", + title = "{{Graphics commands for {\TeX}\Dash Discussion in + {\TeX}hax conference}}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "66--68", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Feb 20 18:54:33 MST 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Tobin:TB4-1-26, + author = "Georgia K. M. Tobin", + title = "{{Computer calligraphy}}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "26", + month = apr, + year = "1983", + acknowledgement = ack-nhfb, +} + +@Article{Tobin:TB5-1-36, + author = "Georgia K. M. Tobin", + title = "{{The OCLC Roman family of fonts}}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "36", + month = may, + year = "1984", + acknowledgement = ack-nhfb, +} + +@Article{Tobin:TB6-1-12, + author = "G. K. M. Tobin", + title = "{{A bit of doggerel}}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "12", + month = mar, + year = "1985", + acknowledgement = ack-nhfb, +} + +@Article{Tobin:TB8-1-26, + author = "Georgia K. M. Tobin", + title = "{{Some empirical observations on \MF\ design}}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "26", + month = apr, + year = "1987", + acknowledgement = ack-nhfb, +} + +@Article{Tobin:TB9-1-15-18, + author = "Georgia K. M. Tobin", + title = "{{The ABC's of special effects}}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "15--18", + month = apr, + year = "1988", + acknowledgement = ack-nhfb, +} + +@Article{Tobin:TB9-2-126-128, + author = "Georgia K. M. Tobin", + title = "{{Designing for low-res devices}}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "126--128", + month = aug, + year = "1988", + acknowledgement = ack-nhfb, +} + +@Book{Tufte:VDQ83, + author = "Edward R. Tufte", + title = "The Visual Display of Quantitative Information", + publisher = pub-GP, + address = pub-GP:adr, + pages = "197", + year = "1983", + ISBN = "0-9613921-0-X", + ISBN-13 = "978-0-9613921-0-9", + LCCN = "K27.S8 T84", + bibdate = "Wed Dec 15 10:58:53 1993", + price = "US\$34.00", + acknowledgement = ack-nhfb, +} + +@Book{Ulichney:DH87, + author = "Robert Ulichney", + title = "Digital Halftoning", + publisher = pub-MIT, + address = pub-MIT:adr, + pages = "xiv + 362", + year = "1987", + ISBN = "0-262-21009-6", + ISBN-13 = "978-0-262-21009-6", + LCCN = "T385 .U451 1987", + bibdate = "Wed Dec 15 10:58:55 1993", + acknowledgement = ack-nhfb, +} + +@Article{Vanderburg:TB8-3-291-300, + author = "Glenn L. Vanderburg and Thomas J. Reid", + title = "{{{\tt\bs special} issues}}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "291--300", + month = nov, + year = "1987", + acknowledgement = ack-spqr, +} + +@Article{vanderLaan:TB10-1-113-116, + author = "C. G. van der Laan", + title = "{{Typesetting bridge via \LaTeX}}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "113--116", + month = apr, + year = "1989", + acknowledgement = ack-spqr, +} + +@Article{vanHaagen:TB9-2-189-192, + author = "A. J. Van Haagen", + title = "{{Box plots and scatter plots with \TeX\ macros}}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "189--192", + month = aug, + year = "1988", + acknowledgement = ack-spqr, +} + +@Article{VanWyk:awk, + author = "Christopher J. Van Wyk", + title = "{AWK} as Glue for Programs", + journal = j-SPE, + volume = "16", + number = "4", + pages = "369--388", + month = apr, + year = "1986", + acknowledgement = ack-nhfb, +} + +@Article{VanWyk:ideal, + author = "Christopher J. Van Wyk", + title = "A High-Level Language for Specifying Pictures", + journal = j-TOG, + volume = "1", + number = "2", + pages = "163--182", + month = apr, + year = "1982", + bibdate = "Fri Aug 26 08:57:19 1994", + acknowledgement = ack-nhfb, +} + +@Article{Waldschmidt:1988, + author = "H. Waldschmidt", + title = "An editor for constructing graphics with {\TeX}", + journal = j-CGF, + volume = "6", + number = "4", + pages = "359--364", + year = "1988", + acknowledgement = ack-spqr, +} + +@Article{Weiss:TB13-3-330, + author = "Neil A. Weiss", + title = "{{Creation and incorporation of {\PS} graphics with + {\TeX}-formatted labels into {\TeX} documents}}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "330--334", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Feb 20 18:54:33 MST 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Book{Wichura:PM87, + author = "Michael J. Wichura", + title = "The {\PiCTeX} manual", + number = "6", + publisher = pub-TUG, + address = pub-TUG:adr, + year = "1987", + series = "{\TeX}niques: publications for the {\TeX} community", + acknowledgement = ack-spqr, +} + +@Article{Wichura:TB9-2-193-197, + author = "Michael J. Wichura", + title = "{{\PiCTeX: Macros for drawing \PiC tures}}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "193--197", + month = aug, + year = "1988", + acknowledgement = ack-spqr, +} + +@Article{Wilcox:TB10-2-179-187, + author = "Patricia Wilcox", + title = "{{{\small METAPLOT}: Machine-independent line graphics + for \TeX}}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "179--187", + month = jul, + year = "1989", + bibdate = "Wed Apr 7 10:22:30 1999", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + abstract = "METAPLOT is a program which translates files + describing vector graphics (HPGL) into {\MF} code; this + code is used to generate a figure as a single character + in a special font, using {\MF}.", + acknowledgement = ack-bnb # " and " # ack-nhfb # " and " # ack-spqr, +} + +@Manual{Williams:gnuplot, + author = "Thomas Williams and Colin Kelley and John Campbell and + David Kotz and Russell Lang", + title = "{GNUPLOT}\emdash An Interactive Plotting Program", + month = "31 " # aug, + note = "Available in several Internet archives, including the + Free Software Foundation collection on + \path|prep.ai.mit.edu|. GNUPLOT can produce output for + many different devices, including {\LaTeX} picture + mode, {\PS}, and the X Window System. See also + \cite{Kotz:gnuplot}.", + year = "1990", + acknowledgement = ack-nhfb, +} + +@InCollection{Winckler:1990:TFI, + author = "{J\"org} Winckler", + title = "{\TeX} fonts in image generation software", + crossref = "Clark:TAU90", + year = "1990", + acknowledgement = ack-spqr, +} + +@TechReport{Wolcott:1976:CCT, + author = "Norman M. Wolcott and Joseph Hilsenrath", + title = "A Contribution to Computer Typesetting Techniques. + {Tables} of Coordinates for {Hershey}'s Repertoire of + Occidental Type Fonts and Graphics Symbols", + number = "PB-251 845", + institution = "U. S. National Bureau of Standards", + month = apr, + year = "1976", + note = "NBS Special Publication 424", + acknowledgement = ack-nhfb, +} + +@Misc{Wood:plj, + author = "Patrick {Wood, editor}", + title = "{\POSTSCRIPT Language Journal}", + howpublished = "Pipeline Associates, Inc., P. O. Box 5763, Parsippany, + NJ 07054", + acknowledgement = ack-nhfb, +} + +@Article{Wujastyk:TB9-3-246-251, + author = "Dominik Wujastyk", + title = "{{Further faces}}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "246--251", + month = nov, + year = "1988", + acknowledgement = ack-spqr, +} + +@TechReport{Xerox:color, + author = "Xerox Corporation", + title = "The {Xerox Color Encoding Standard}", + number = "XNSS 288811", + institution = "Xerox Systems Institute", + month = mar, + year = "1989", + acknowledgement = ack-nhfb, +} + +%%% ==================================================================== +%%% The following entries are cross-referenced by preceding entries. +%%% BibTeX requires that they follow all references to them, so we put +%%% them at the end of the .bib file. +%%% ==================================================================== + +@Book{Clark:TAU90, + editor = "Malcolm Clark", + booktitle = "{\TeX} Applications, Uses, Methods", + title = "{\TeX} Applications, Uses, Methods", + publisher = pub-ELLIS-HORWOOD, + address = pub-ELLIS-HORWOOD:adr, + year = "1990", + ISBN = "0-13-912296-6", + ISBN-13 = "978-0-13-912296-5", + abstract = "Papers from the 1988 {\TeX}eter conference.", + acknowledgement = ack-spqr, +} + +@Proceedings{Syropoulos:2004:TXD, + editor = "Apostolos Syropoulos and Karl Berry and Yannis + Haralambous and Baden Hughes and Steven Peter and John + Plaice", + booktitle = "{\TeX}, {XML}, and Digital Typography: International + Conference on {\TeX}, XML, and Digital Typography, held + jointly with the 25th Annual Meeting of the TeX Users + Group, TUG 2004, Xanthi, Greece, August 30--September + 3, 2004: Proceedings", + title = "{\TeX}, {XML}, and Digital Typography: International + Conference on {\TeX}, {XML}, and Digital Typography, + held jointly with the 25th Annual Meeting of the Te{X} + Users Group, {TUG 2004}, Xanthi, Greece, August + 30--September 3, 2004: Proceedings", + volume = "3130", + publisher = pub-SV, + address = pub-SV:adr, + pages = "viii + 263", + year = "2004", + CODEN = "LNCSD9", + DOI = "10.1007/b99374", + ISBN = "3-540-22801-2", + ISBN-13 = "978-3-540-22801-1", + ISSN = "0302-9743", + LCCN = "Z253.3 I58 2004", + bibdate = "Tue Nov 16 08:40:30 2004", + series = ser-LNCS, + URL = "http://link.springer-ny.com/link/service/series/0558/tocs/t3130.htm; + http://www.springerlink.com/openurl.asp?genre=issue&issn=0302-9743&volume=3130; + http://www.springerlink.com/openurl.asp?genre=volume&id=doi:10.1007/b99374", + acknowledgement = ack-nhfb, +} + +@Proceedings{USENIX:1997:PCD, + editor = "{USENIX}", + booktitle = "Proceedings of the Conference on Domain-Specific + Languages, October 15--17, 1997, Santa Barbara, + California", + title = "Proceedings of the Conference on Domain-Specific + Languages, October 15--17, 1997, Santa Barbara, + California", + publisher = pub-USENIX, + address = pub-USENIX:adr, + pages = "310", + year = "1997", + ISBN = "1-880446-89-8", + ISBN-13 = "978-1-880446-89-8", + LCCN = "QA76.7 .C663 1997", + bibdate = "Wed Jan 20 14:49:05 1999", + acknowledgement = ack-nhfb, +} + +@Proceedings{Zlatuska:1992:EPE, + editor = "Ji{\v{r}}{\'\i} Zlatu{\v{s}}ka", + booktitle = "{Euro{\TeX}} 92: Proceedings of the 7th European + {\TeX} Conference", + title = "{Euro{\TeX}} 92: Proceedings of the 7th European + {\TeX} Conference", + publisher = pub-MASARYKOVA, + address = pub-MASARYKOVA:adr, + pages = "viii + 330", + month = sep, + year = "1992", + ISBN = "80-210-0480-0", + ISBN-13 = "978-80-210-0480-1", + bibdate = "Sat Aug 27 11:11:50 1994", + acknowledgement = ack-nhfb, +} + +%%% From TEX-EURO at DHDURZ1.Berkeley.EDU Mon Jul 8 04:27:58 1991 +%%% Flags: 000000000001 +%%% Return-Path: +%%% Received: from cc.utah.edu by math.utah.edu (4.1/SMI-4.1-utah-csc-server) +%%% id AA15473; Mon, 8 Jul 91 04:27:55 MDT +%%% Received: from UCBCMSA.BITNET (MAILER at UCBCMSA) by CC.UTAH.EDU with PMDF#10043; +%%% Mon, 8 Jul 1991 04:27 MST +%%% Received: by UCBCMSA (Mailer R2.04) id 2047; Mon, 08 Jul 91 03:27:01 PDT +%%% Date: Mon, 8 Jul 91 12:03:43 MES +%%% From: Jens Pirnay +%%% Subject: Re: texcad or similar thing for sun? +%%% In-Reply-To: Message of Sun, 7 Jul 91 22:16:53 CET from +%%% +%%% Sender: TeX-Euro Distribution List for European TeX Users +%%% +%%% To: "Nelson H. F. Beebe" +%%% Reply-To: TeX-Euro Distribution List for European TeX Users +%%% +%%% Message-Id: <6497F39770002161 at CC.UTAH.EDU> +%%% X-Envelope-To: beebe at MATH.UTAH.EDU +%%% +%% +%%% Date: Mon, 08 Jul 91 11:53:48 MES +%%% From: Jens Pirnay +%%% Subject: Re: texcad or similar thing for sun? +%%% To: TeX-Euro Distribution List for European TeX Users +%%% +%%% In-Reply-To: Message of Sun, 7 Jul 91 22:16:53 CET from +%%% +%%% ======================================================================== +%%% The question: "Is there anything like TEXCAD, TEXDRAW for Suns?" +%%% The answer: Yes, indeed, it is called FIG (Facility for Interactive Gene- +%%% ration if figures) an d runs under Sunview (fig) or X11 (xfig). +%%% +%%% The source code is available via ftp on nearly any better unix-server, +%%% e.g. Passau (forwiss.uni-passau.de) or Stuttgart +%%% (rusmv1.rus.uni-stuttgart.de). +%%% +%%% A short note about the features of the three most popular TeX-drawing +%%% aids (= this means, the three I know :-) ) +%%% Name Machine Features +%%% -------------------------------------------------------------- +%%% TeXCAD IBM-PC 45 % (most of LaTeX's abilities, +%%% no beziers; translates to LaTeX) +%%% TeXDraw 1.79 Atari-ST 80 % (LaTeX's abilities plus epics, +%%% beziers: translates to LaTeX, PiCTeX, +%%% Metafont; plus conversion of bitmap- +%%% graphics to LaTeX or Metafont; imports +%%% LaTeX, HPGL) +%%% TeXDraw 2.00 Atari-ST(+) 100% (like 1.79 plus splines, ellipses, +%%% IBM-PC (++) arcs; plus import of FIG, GEM, CSG; +%%% plus translates FIG; plus support of +%%% \special-packages (em, cs, tpic)) +%%% fig / xfig sun / X11 100 % (most of LaTeX's abilities plus +%%% arcs, ellipses, splines; translates to +%%% PostScript, LaTeX, tpic, HPGL, PicTeX) +%%% +%%% (+) betatest-stadium +%%% (++) just started, to convert +%%% +%%% This rating is *VERY* subjective (remember I wrote TeXDraw ;-) ) +%%% +%%% Jens Pirnay, Institut f. Physik III, Uni Regensburg, Germany +%%% X400 : pirnay at vax1.rz.uni-regensburg.dbp.de +%%% BITNET: hru003 at djukfa11 diff --git a/Master/texmf-dist/bibtex/bib/beebe/texjourn.bib b/Master/texmf-dist/bibtex/bib/beebe/texjourn.bib new file mode 100644 index 00000000000..792e3c8d759 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/beebe/texjourn.bib @@ -0,0 +1,1378 @@ +%%% -*-BibTeX-*- +%%% /u/sy/beebe/tex/bib/texjourn.bib, Fri Oct 19 12:52:17 1990 +%%% Edit by Nelson H. F. Beebe +%%% ==================================================================== +%%% BibTeX-file{ +%%% author = "Nelson H. F. Beebe", +%%% version = "1.45", +%%% date = "05 August 2004", +%%% time = "11:09:56 MDT", +%%% filename = "texjourn.bib", +%%% address = "University of Utah +%%% Department of Mathematics, 110 LCB +%%% 155 S 1400 E RM 233 +%%% Salt Lake City, UT 84112-0090 +%%% USA", +%%% telephone = "+1 801 581 5254", +%%% FAX = "+1 801 585 1640, +1 801 581 4148", +%%% checksum = "35113 1378 5955 54698", +%%% email = "beebe at math.utah.edu, beebe at acm.org, +%%% beebe at computer.org, beebe at ieee.org +%%% (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "bibliography", +%%% supported = "yes", +%%% docstring = "This file contains a bibliography of +%%% journals that are known to accept papers +%%% for publication in TeX format, and actually +%%% use that format for publishing. It does +%%% NOT include journals that reproduce +%%% author-supplied hardcopy, or that rekey the +%%% text for typesetting by another system. +%%% +%%% At version 1.44, the year coverage looked +%%% like this: +%%% +%%% 1985 ( 1) 1991 ( 1) 1997 ( 1) +%%% 1986 ( 0) 1992 ( 2) 1998 ( 0) +%%% 1987 ( 1) 1993 ( 0) 1999 ( 0) +%%% 1988 ( 1) 1994 ( 2) 2000 ( 0) +%%% 1990 ( 0) 1996 ( 0) 2002 ( 1) +%%% +%%% Periodical: 65 +%%% +%%% Total entries: 65 +%%% +%%% The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== + +@Preamble{"\input bibnames.sty " + # "\input path.sty "} + +%% NB: Elsevier at present does not provide authors with the actual +%% journal production styles, but instead with a compatible preprint +%% style. + +@String{ack-bnb = "Barbara N. Beeton + e-mail: \path|bnb@math.ams.org|"} + +@String{ack-bz = "Borut Znidar, + DALCOM d.o.o., + Stegne 27, + 61000 Ljubljana, Slovenia"} + +@String{ack-dl = "Dave Love, + e-mail: \path|FX%nnga.daresbury.ac.uk@NSFnet-Relay.AC.UK|"} + +@String{ack-eg = "Edgar Goodaire, + e-mail: \path|edgar%munucs.mun.ca@uwavm.acs.washington.edu|"} + +@String{ack-glg = "Gary L. Gray, + Engineering Mechanics \& Astronautics, + University of Wisconsin-Madison, + Madison, WI, USA, + Tel: +1 608 262-7418, + FAX: +1 608 262-3735, + e-mail: \path|gray@cmgroup.engr.wisc.edu|"} + +@String{ack-md = "Michael Doob, + Department of Mathematics and Astronomy, + University of Manitoba, + 341 Machray Hall, + Winnipeg R3T 2N2, Manitoba, Canada, + Tel: (204) 474-9796, + e-mail: \path|mdoob@ccu.umanitoba.ca|"} + +@String{ack-ms = "Mark Steinberger, + The University at Albany, State University of New York, + Albany, NY, USA, + e-mail: \path|mark@csc.albany.edu|"} + +@String{ack-mz = "Mona Zeftel, + Addison-Wesley Publishing Company, + Reading, MA, USA, + e-mail: \path|crw@wjh12.harvard.edu|"} + +@String{ack-nhfb = "Nelson H. F. Beebe, + University of Utah, + Department of Mathematics, 110 LCB, + 155 S 1400 E RM 233, + Salt Lake City, UT 84112-0090, USA, + Tel: +1 801 581 5254, + FAX: +1 801 585 1640, +1 801 581 4148, + e-mail: \path|beebe@math.utah.edu|, + \path|beebe@acm.org|, + \path|beebe@computer.org|, + \path|beebe@ieee.org| (Internet), + URL: \path|http://www.math.utah.edu/~beebe/|"} + +@String{ack-np = "Nico A. F. M. Poppelier, + TeXnique, + Schiermonnikoog 7, + 3524 AH Utrecht, + The Netherlands, + e-mail: BITnet: \path|Poppelier@Hutruu53| or + Internet: \path|N.Poppelier@elsevier.NL|"} + +@String{ack-pj = "Peter Jansson, + Department of Geology and Geophysics, + University of Minnesota, + Pillsbury Hall \#108, + 310 Pillsbury Drive S.E., + Minneapolis, MN 55455, + Tel: (612) 624-6860, + e-mail: \path|fvm6215@ux.acs.umn.edu|"} + +@String{ack-ts = "Tom Schneider, + National Cancer Institute, + Laboratory of Mathematical Biology, + Frederick, Maryland 21702-1201, + e-mail: \path|toms@ncifcrf.gov|"} + +@String{ack-wk = "Werner Krandick, + e-mail: \path=Werner.Krandick@risc.uni-linz.ac.at="} + +%% ===================================================================== +%% Journal abbreviations: + +@String{j-TEXLINE = "{\TeX}line"} + +%% ===================================================================== +%% Publisher abbreviations: + +@String{pub-AMS = "American Mathematical Society"} + +@String{pub-AMS:adr = "Providence, RI, USA"} + +@String{pub-AP = "Academic Press"} + +@String{pub-AP:adr = "New York, NY, USA"} + +@String{pub-APS = "American Physical Society"} + +@String{pub-APS:adr = "Ridge, NY 11961, USA"} + +@String{pub-BIRKHAUSER = "Birkh{\"{a}}user"} + +@String{pub-BIRKHAUSER:adr = "Cambridge, MA, USA; Berlin, Germany; Basel, + Switzerland"} + +@String{pub-ESP = "Elsevier Science Publishers"} + +@String{pub-ESP:adr = "Amsterdam, The Netherlands"} + +@String{pub-IOS = "IOS Press"} + +@String{pub-IOS:adr = "Amsterdam, The Netherlands"} + +@String{pub-NH = "North-Holland Publishing Company"} + +@String{pub-NH:adr = "Amsterdam, The Netherlands"} + +@String{pub-SV = "Spring{\-}er-Ver{\-}lag"} + +@String{pub-SV:adr = "Berlin, Germany~/ Heidelberg, + Germany~/ London, UK~/ etc."} + +@String{pub-WILEY = "Wiley"} + +@String{pub-WILEY:adr = "New York, NY, USA"} + +%% ===================================================================== +%% Periodical entries: + +@Periodical{MAPLETECH, + editor = "Tony Scott", + key = "MAPLETECH", + title = "The Maple Technical Newsletter", + organization = "Mathematical Institute, University of Oxford", + publisher = pub-BIRKHAUSER, + address = pub-BIRKHAUSER:adr, + ISSN = "1061-5733", + bibdate = "Fri Apr 1 18:55:48 1994", + note = "Published twice annually.", + acknowledgement = ack-nhfb, +} + +@Periodical{tj-appl-math-comp, + key = "APPL-MATH-COMP", + title = "Applied Mathematics and Computation", + publisher = pub-NH, + address = pub-NH:adr, + CODEN = "AMHCBQ", + ISSN = "0096-3003", + bibdate = "Sat Sep 24 12:36:50 1994", + note = "From volume 59, number 1, November 1993, the journal + cover proclaims in a fancy logo ``Now accepting + \LaTeX{} manuscripts''. Contact Victor van Beuren, + Editor, Physical Sciences Journals Group, Elsevier + Science Inc., 655 Avenue of the Americas, New York, NY + 10010, e-mail: \path=vvb@panix.com=, for further + details.", +} + +@Periodical{tj-acp, + key = "ACP", + title = "{Atmospheric Chemistry and Physics}", + publisher = "European Geophysical Society", + year = "2002", + ISSN = "1680-7316", + bibdate = "Thu Jan 17 11:20:58 2002", + note = "Typeset with pdf\LaTeX. Authors are strongly + encouraged to submit manuscripts in \LaTeX{} using the + egs.cls style file. As a reward, page charges will be + lower than for submission in other formats. In the + first step, a pdf file will be produced suitable for + on-line viewing. After an Internet-based discussion of + the scientific contents the paper will (if accepted) be + formatted in the traditional two-column layout using + the same \LaTeX{} source.", + URL = "http://www.atmos-chem-phys.org/technical-tex.htm", + acknowledgement = ack-nhfb, +} + +@Periodical{tj-bull-ams, + key = "BAMS", + title = "{Bulletin of the American Mathematical Society}", + publisher = pub-AMS, + address = pub-AMS:adr, + CODEN = "BAMOAD", + ISSN = "0273-0979", + LCCN = "QA1 .B84", + bibdate = "Sat Sep 24 13:00:25 1994", + note = "Use of \AmSTeX{} began in 1983; completely in + \AmSTeX{} and \AmS-\LaTeX{} since late 1986; style + files available at \path|e-math.ams.org|.", + acknowledgement = ack-bnb # " and " # ack-eg, +} + +@Periodical{tj-can-j-math, + key = "CJM", + title = "{Canadian Journal of Mathematics}", + CODEN = "CJMAAB", + ISSN = "0008-414X", + LCCN = "QA1 .C36", + bibdate = "Sat Sep 24 13:00:23 1994", + note = "Completely done in {\TeX} since about 1988, including + covers and index. The Bulletin consists of four issues + of 144 pages each per year, while the Journal consists + of six issues of 224 pages each. The final output is + produced from PostScript files, so the particular + variation of {\TeX} ({\LaTeX}, {\AMSTeX}, plain) isn't + important, as long as the source document can be + adapted to conform to the style of each journal. A + CMS{\TeX} style file for plain {\TeX} is used + internally, and a {\LaTeX} style file is nearly + complete.", + acknowledgement = ack-eg # " and " # ack-md, +} + +@Periodical{tj-can-math-bull, + key = "CMB", + title = "{Canadian Mathematical Bulletin}", + CODEN = "CMBUA3", + ISSN = "0008-4395", + bibdate = "Thu Aug 05 11:09:53 2004", + note = "The Canadian Mathematical Society employs \TeX{} for + their typesetting, and encourages authors to submit + that way. See also the note under + \cite{tj-can-j-math}.", + acknowledgement = ack-eg # " and " # ack-md, +} + +@Periodical{tj-cgf, + key = "CGF", + title = "{Computer Graphics Forum}", + publisher = pub-NH, + address = pub-NH:adr, + CODEN = "CGFODY", + ISSN = "0167-7055", + LCCN = "T385 .C5746", + bibdate = "Sat Sep 24 13:02:30 1994", + note = "Publication switched from troff to {\TeX} in summer + 1992.", + acknowledgement = ack-bnb, +} + +@Periodical{tj-cmp, + key = "CMP", + title = "{Current Mathematical Publications}", + publisher = pub-AMS, + address = pub-AMS:adr, + CODEN = "CUMPBW", + ISSN = "0361-4794", + LCCN = "Z6653 .C85", + bibdate = "Sat Sep 24 13:41:02 1994", + note = "Prepared completely with \TeX{} since 1985; issue + indexes prepared with \TeX{} from 1983.", + acknowledgement = ack-bnb, +} + +@Periodical{tj-comment-math, + key = "COMMENTMATH", + title = "{Commentationes Mathematicae Universitatis + Carolinae}", + publisher = "Charles University", + address = "Praha, Czechoslovakia", + CODEN = "CMUCAA", + ISSN = "0010-2628", + LCCN = "QA1 .C715", + bibdate = "Sat Sep 24 13:04:01 1994", + note = "Published with \AmSTeX{} since 1990. Articles using + \verb|amsppt.sty| are accepted.", + acknowledgement = ack-bnb, +} + +@Periodical{tj-cpc, + key = "CPC", + title = "{Computer Physics Communications}", + publisher = pub-ESP, + address = pub-ESP:adr, + CODEN = "CPHCBZ", + ISSN = "0010-4655", + LCCN = "QC52 .C65", + note = "\LaTeX{} format accepted for special proceedings + issues.", + acknowledgement = ack-np, +} + +@Periodical{tj-dokl-math, + key = "DOKLMATH", + title = "{Russian Academy of Sciences. Doklady. Mathematics}", + publisher = pub-AMS, + address = pub-AMS:adr, + ISSN = "1064-5624", + bibdate = "Sat Feb 9 07:32:51 2002", + note = "Translation into English of the entire pure + mathematics section of the ``Doklady + Rossi\u\i{}sko\u\i{} Akademi\u\i{} Nauk''. (Formerly + ``Soviet Mathematics---Doklady''.) Prepared with + \AmSTeX{} beginning in 1983.", + acknowledgement = ack-bnb, +} + +@Periodical{tj-epodd, + editor = "David F. Brailsford and Richard K. Furuta", + key = "EPODD", + title = "Electronic Pub\-lish\-ing\emdash{}Orig\-i\-na\-tion, + Dissemination, and Design", + publisher = pub-WILEY, + address = pub-WILEY:adr, + year = "1988" # "\unskip--", + CODEN = "EPODEU", + ISSN = "0894-3982", + bibdate = "Sat Sep 24 13:41:11 1994", + note = "The publisher provides style files for {\TeX}, + {\LaTeX}, and {\tt troff} article formats.", + acknowledgement = ack-bnb, +} + +@Periodical{tj-informatica, + key = "INFORMATICA", + title = "Informatica", + publisher = "The Slovene Society Informatika", + address = "Ljubljana, Slovenia", + CODEN = "INFOFF", + ISSN = "0350-5596", + bibdate = "Sat Feb 9 07:33:41 2002", + note = "Typeset with {\LaTeX}. Authors can submit articles + using the {\tt informat} style option, which is printed + in its entirety in the back of each issue.", + acknowledgement = ack-bz, + subtitle = "An International Journal of Computing and + Informatics", +} + +@Periodical{tj-info-sci, + key = "INFO-SCI", + title = "Information Sciences", + publisher = pub-NH, + address = pub-NH:adr, + CODEN = "ISIJBC", + ISSN = "0020-0255", + LCCN = "Z699.A1 I59", + bibdate = "Sat Sep 24 12:40:33 1994", + note = "Contact Victor van Beuren, Editor, Physical Sciences + Journals Group, Elsevier Science Inc., 655 Avenue of + the Americas, New York, NY 10010, e-mail: + \path=vvb@panix.com=, for further details.", +} + +@Periodical{tj-int-j-approx-reasoning, + key = "INT-J-APPROX-REASONING", + title = "International Journal of Approximate Reasoning", + publisher = pub-NH, + address = pub-NH:adr, + CODEN = "IJARE4", + ISSN = "0888-613X", + LCCN = "QA76.76.E95 I577", + bibdate = "Sat Sep 24 12:40:33 1994", + note = "Official publication of the North American Fuzzy + Information Processing Society. Vol. 1, no. 1 (January + 1987) --. Contact Victor van Beuren, Editor, Physical + Sciences Journals Group, Elsevier Science Inc., 655 + Avenue of the Americas, New York, NY 10010, e-mail: + \path=vvb@panix.com=, for further details.", +} + +@Periodical{tj-intcom, + editor = "Vyacheslav M. Nesterov", + key = "INTCOM", + title = "{Interval Computations}", + address = "Box 52, St.Petersburg 195256, Russia, E-mail: + \path=nest@nit.spb.su= (Internet)", + year = "1991", + ISSN = "0135-4868", + note = "A refereed international journal, {\em Interval + Computations\/} is the only periodical in the world + devoted specifically to various aspects of reliable + numerical computations based on the interval approach. + It is managed by an international editorial board from + Bulgaria, Germany, Japan, Russia, and the United + States, and printed in Russia. The journal includes + various items in the fields of theoretical research, + computer tools, applications, interdisciplinary + research and other relevant areas. + + The IC has been prepared with {\TeX} since 1992. + Recently a new style has been designed based on + standard {\LaTeX} {\tt article} style with changes in + fonts, headings layout, running heads etc. It uses + 10.8pt Baskerville for body text (the unusual font size + is selected for better wedding with CM math) and + horizontally-squeezed Palatino for headings. For + mathematical formulae, standard Computer Modern is + preserved. Proofs are made using em{\TeX} DVIHPLJ on a + Hewlett-Packard LaserJet IIIp, and final pages are + printed at 600dpi. Using V{\TeX} is now under + consideration. + + Papers are accepted in any {\TeX} variety; {\LaTeX} + {\tt article.sty} preferred.", + xxCODEN = "none", +} + +@Periodical{tj-izv-math, + key = "IZVMATH", + title = "{Russian Academy of Sciences. Izvestiya. + Mathematics}", + publisher = pub-AMS, + address = pub-AMS:adr, + note = "Translation into English of ``Izvestiya + Rossi\u\i{}sko\u\i{} Akademi\u\i{} Nauk Seriya + Matematicheskaya''. (Formerly ``Mathematics of the + USSR---Izvestiya''.) Prepared with \AmSTeX{} since + 1986.", + acknowledgement = ack-bnb, +} + +@Periodical{tj-j-app-mech, + key = "JAMECH", + title = "{Journal of Applied Mechanics}", + CODEN = "JAMCAV", + ISSN = "0021-8936", + LCCN = "TA1 .J6", + bibdate = "Sat Sep 24 13:10:31 1994", + note = "{\TeX} macros available from Charles Beardsley, + Managing Director of Publications, ASME, Tel: +1 212 + 705-7722.", + acknowledgement = ack-glg, +} + +@Periodical{tj-j-comput-biol, + key = "J-COMPUT-BIOL", + title = "Journal of Computational Biology", + publisher = "Mary Ann Liebert Inc.,", + address = "2 Madison Avenue, Larchmont, NY 10538-1962, USA", + year = "1994", + CODEN = "JCOBEM", + ISSN = "1066-5277", + bibdate = "Sat Feb 09 07:22:07 2002", + note = "\TeX{} is the preferred form for manuscript + submission.", + URL = "http://www.catchword.com/rpsv/cw/mal/10665277/contp1.htm", + acknowledgement = ack-nhfb, +} + +@Periodical{tj-j-logic-prog, + key = "J-LOGIC-PROG", + title = "The Journal of Logic Programming", + publisher = pub-NH, + address = pub-NH:adr, + CODEN = "JLPRE2", + ISSN = "0743-1066", + bibdate = "Sat Sep 24 12:55:11 1994", + note = "Vol. 1, no. 1 (June 1984) --. Contact Victor van + Beuren, Editor, Physical Sciences Journals Group, + Elsevier Science Inc., 655 Avenue of the Americas, New + York, NY 10010, e-mail: \path=vvb@panix.com=, for + further details.", +} + +@Periodical{tj-j-phys, + key = "JP", + title = "{Journal of Physics}", + note = "Plain \TeX{} macros available.", + acknowledgement = ack-dl, +} + +@Periodical{tj-jclt, + editor = "Rex Jaeschke", + key = "JCLT", + title = "{Journal of C Language Translation}", + ISSN = "1042-5721", + bibdate = "Sat Sep 24 13:12:59 1994", + note = "Vol. 1, no. 1 (June 1989)--. Ceased with vol. 3, no. + 4, published in 1992.", + acknowledgement = ack-nhfb, +} + +@Periodical{tj-jcs, + key = "JCompSecurity", + title = "Journal of Computer Security", + publisher = pub-IOS, + address = pub-IOS:adr, + year = "1992", + note = "Style files are available from the journal editors.", + acknowledgement = ack-bnb, +} + +@Periodical{tj-jg, + key = "JG", + title = "{Journal of Glaciology}", + publisher = "British Glaciological Society", + address = "Cambridge, UK", + CODEN = "JOGLAO", + ISSN = "0022-1430", + LCCN = "GB2401 .J68", + bibdate = "Sat Sep 24 13:15:01 1994", + note = "First issue typeset by {\TeX} in 1991.", + acknowledgement = ack-pj, +} + +@Periodical{tj-j-lin-alg-appl, + key = "J-LIN-ALG-APPL", + title = "Linear Algebra and Its Applications", + publisher = pub-NH, + address = pub-NH:adr, + CODEN = "LAAPAW", + ISSN = "0024-3795", + bibdate = "Sat Sep 24 12:47:06 1994", + note = "Vol. 1 (January 1968) --. Contact Victor van Beuren, + Editor, Physical Sciences Journals Group, Elsevier + Science Inc., 655 Avenue of the Americas, New York, NY + 10010, e-mail: \path=vvb@panix.com=, for further + details.", +} + +@Periodical{tj-jhep, + key = "JHEP", + title = "Journal of High Energy Physics", + howpublished = "Online journal.", + publisher = "Societa italiana di fisica", + address = "Bologna, Italy", + year = "1997", + CODEN = "JHEPFG, JHEPAB (paper archive)", + ISSN = "1029-8479", + LCCN = "QC793 .J68", + bibdate = "Sat Feb 09 07:07:34 2002", + note = "The paper version of the journal was discontinued at + the end of 2000, but publication continues in + electronic form. The master archive is hosted at the + ``Florence National Library, which is the Italian body + officially in charge of keeping the legal archive of + all editorial products published in Italy, both + electronic and paper, thereby ensuring their legal + validity.'' See + \path=http://jhep.mse.jhu.edu/JOURNAL/IoPP_SISSA.html= + for details. Articles are marked up exclusively in + \TeX{}, with PostScript for figures, and are available + in DVI, PDF, and PostScript formats.", + URL = "http://jhep.mse.jhu.edu/", + acknowledgement = ack-nhfb, +} + +@Periodical{tj-jmb, + key = "JMB", + title = "{Journal of Molecular Biology}", + publisher = pub-AP, + address = pub-AP:adr, + CODEN = "JMOBAK", + ISSN = "0022-2836", + LCCN = "QH301 .J73", + bibdate = "Sat Sep 24 13:41:40 1994", + note = "{\LaTeX} and {\BibTeX} style files \path|jmb.sty| and + \path|jmb.bst| have been provided by Tom Schneider + (e-mail \path|toms@ncifcrf.gov|).", + acknowledgement = ack-ts, +} + +@Periodical{tj-jnl-alg-geom, + key = "JALGGEOM", + title = "{Journal of Algebraic Geometry}", + publisher = "University Press, Inc.", + address = "Naperville, IL, USA", + ISSN = "1056-3911", + bibdate = "Sat Sep 24 13:18:32 1994", + acknowledgement = ack-bnb, +} + +@Periodical{tj-jnl-ams, + key = "JAMS", + title = "{Journal of the American Mathematical Society}", + publisher = pub-AMS, + address = pub-AMS:adr, + ISSN = "0894-0347", + LCCN = "QA1 .J9763", + bibdate = "Sat Sep 24 13:18:30 1994", + note = "Prepared with \AmSTeX{} and \AmS-\LaTeX{}; style files + available at \path|e-math.ams.org|.", + acknowledgement = ack-bnb, + xxCODEN = "none", +} + +@Periodical{tj-jnl-diff-geom, + key = "JDIFFGEOM", + title = "{Journal of Differential Geometry}", + publisher = "Lehigh University", + address = "Bethlehem, PA, USA", + CODEN = "JDGEAS", + ISSN = "0022-040X", + LCCN = "QA641 .J67", + bibdate = "Sat Sep 24 13:18:26 1994", + note = "Prepared with \TeX{} since 1988.", + acknowledgement = ack-bnb, +} + +@Periodical{tj-jsc, + editor = "Bruno Buchberger", + key = "JSYMBOLCOMP", + title = "{Journal of Symbolic Computation}", + publisher = pub-AP, + address = pub-AP:adr, + year = "1985", + ISSN = "0747-7171", + LCCN = "QA76.95 .J68", + bibdate = "Sat Sep 24 13:18:36 1994", + note = "A {\LaTeX} style file for the journal is available + from the publisher, and from + \path=ftp.risc.uni-linz.ac.at= in the directory + \path=/pub/jsc= in the files \path=jsc.sty= and + \path=jscguide.tex=. The resolution is 600 dpi. The + software used is PCTEX.", + acknowledgement = ack-wk, + xxCODEN = "none", +} + +@Periodical{tj-jtb, + key = "JTB", + title = "{Journal of Theoretical Biology}", + CODEN = "JTBIAP", + ISSN = "0022-5193", + LCCN = "QH301 .J75", + bibdate = "Sat Sep 24 13:19:42 1994", + note = "{\LaTeX} and {\BibTeX} style files \path|jmb.sty| and + \path|jmb.bst| have been provided by Tom Schneider + (e-mail \path|toms@ncifcrf.gov|).", + acknowledgement = ack-ts, +} + +@Periodical{tj-math-comp, + key = "MATHCOMP", + title = "{Mathematics of Computation}", + publisher = pub-AMS, + address = pub-AMS:adr, + CODEN = "MCMPAF", + ISSN = "0025-5718", + LCCN = "QA47 .M29", + bibdate = "Sat Sep 24 13:21:32 1994", + note = "Use of \AmSTeX{} began in 1983; completely in + \AmSTeX{} and \AmS-\LaTeX{} since 1988; style files + available at \path|e-math.ams.org|.", + acknowledgement = ack-bnb, +} + +@Periodical{tj-math-rev, + key = "MATHREV", + title = "{Mathematical Reviews}", + publisher = pub-AMS, + address = pub-AMS:adr, + CODEN = "MAREAR", + ISSN = "0025-5629", + LCCN = "QA1 .M76", + bibdate = "Sat Sep 24 13:21:25 1994", + note = "Beginning in November 1979, \TeX{} has been used for + issue indexes; since January 1985, the entire journal + has been prepared in \TeX{}. The data for this journal + is archived with several database services and is also + available on CD-ROM as MathSci.", + acknowledgement = ack-bnb, +} + +@Periodical{tj-mathematica-j, + editor = "Stephen Wolfram", + key = "MJ", + title = "{Mathematica Journal}", + address = "Advanced Book Program, Addison-Wesley Publishing + Company, 350 Bridge Parkway, Redwood City, CA 94065", + ISSN = "1047-5974", + LCCN = "QA76.95 .M387", + bibdate = "Sat Sep 24 13:22:07 1994", + note = "Published both electronically and in print using + {\TeX}.", + acknowledgement = ack-mz, + xxCODEN = "none", +} + +@Periodical{tj-memo-ams, + key = "MEMO", + title = "{Memoirs of the American Mathematical Society}", + publisher = pub-AMS, + address = pub-AMS:adr, + CODEN = "MAMCAU", + ISSN = "0065-9266", + LCCN = "QA3 .A57", + bibdate = "Sat Sep 24 13:22:08 1994", + note = "Copy is author prepared; \AmSTeX{} and \AmS-\LaTeX{} + style files available at \path|e-math.ams.org|.", + acknowledgement = ack-bnb, +} + +@Periodical{tj-nar, + key = "NAR", + title = "{Nucleic Acids Research}", + CODEN = "NARHAD", + ISSN = "0305-1048", + LCCN = "QP620 .N8", + bibdate = "Sat Sep 24 13:23:22 1994", + note = "{\LaTeX} and {\BibTeX} style files \path|nar.sty| and + \path|nar.bst| have been provided by Tom Schneider + (e-mail: \path|toms@ncifcrf.gov|).", + acknowledgement = ack-ts, +} + +@Periodical{tj-noti-ams, + key = "NOTIAMS", + title = "{Notices of the American Mathematical Society}", + publisher = pub-AMS, + address = pub-AMS:adr, + CODEN = "AMNOAN", + ISSN = "0002-9920", + bibdate = "Wed Apr 7 08:41:02 1999", + note = "Use of \TeX{} began in 1982 with selected sections; + completely in \TeX{} from 1988 to 1994. Since 1995, the + journal has been typeset by Quark Express, although + author manuscripts in TeX are accepted, and + automatically converted to Quark format at the + publisher.", + acknowledgement = ack-bnb, +} + +@Periodical{tj-np-a, + key = "NPa", + title = "{Nuclear Physics A}", + publisher = pub-ESP, + address = pub-ESP:adr, + CODEN = "NUPABL", + ISSN = "0375-9474", + LCCN = "QC173 .N8838", + bibdate = "Sat Sep 24 13:25:21 1994", + note = "\LaTeX{} format accepted.", + acknowledgement = ack-dl # " and " # ack-np, +} + +@Periodical{tj-np-b, + key = "NPB", + title = "{Nuclear Physics B}", + publisher = pub-ESP, + address = pub-ESP:adr, + CODEN = "NUPBBO", + ISSN = "0550-3213", + LCCN = "QC173 .N8839", + bibdate = "Sat Sep 24 13:25:21 1994", + note = "\LaTeX{} format accepted.", + acknowledgement = ack-dl # " and " # ack-np, +} + +@Periodical{tj-nyjm, + editor = "Mark Steinberger", + key = "NYJMATH", + title = "The New York Journal of Mathematics", + howpublished = "Electronic submission and publication only.", + organization = "University at Albany, State University of New York", + publisher = "University at Albany, State University of New York", + address = "Albany, NY, USA", + year = "1994", + ISSN = "1076-9803", + bibdate = "Tue Feb 22 10:10:29 1994", + note = "The New York Journal of Mathematics is a refereed + mathematics journal being launched by the University at + Albany, State University of New York.\par + + The journal is broadly based in subject matter, + covering algebra, modern analysis, and + geometry/topology.\par + + The papers will be presented via the \TeX{} + mathematical typesetting language, developed by Donald + Knuth. \TeX{} has become the standard for computer + typesetting of mathematical publications.\par + + Access will be provided through a variety of electronic + means, including \path|listserv|, anonymous \path|ftp| + and \path|gopher|. In particular, access will be much + more convenient than that provided by a conventional + print journal. Because papers will be published as they + are accepted by the editorial board, publication delays + will be minimal.\par + + The articles will be archived, date stamped, and + maintained by the University at Albany, State + University of New York. The University takes + responsibility for insuring the integrity of the + journal's archive in perpetuity.\par + + The journal will have an ISSN number and will be + accessed by the major bibliographic publications in the + field.\par + + The development of this journal is being underwritten + by the Office of Information Systems of the University + at Albany, State University of New York.\par + + The New York Journal will be accessible by a + combination of \path|listserv| and \path|gopher|\slash + \path|ftp|.\par + + By \path|listserv|, we will distribute abstracts of the + papers, together with instructions for retrieving them + via \path|ftp| and \path|gopher|.\par + + The abstracts will be available on four separate + \path|listserv| lists: one will distribute abstracts + for every paper. The other three are specialty lists, + giving abstracts for papers in algebra, analysis and + geometry\slash topology, respectively. The reader may, + of course, subscribe to any combination of these + lists.", + acknowledgement = ack-ms, + note2 = "To subscribe, send a note to + \path|listserv@albnyvm1.bitnet|: + + If you want to receive the abstracts for all the + papers, the body of your note should read\par + + subscribe NYJMTH-A \par + + For the specialized lists, the body of your note should + read\par + + Algebra: subscribe NYJM-ALG \par + + Analysis: subscribe NYJM-AN \par + + Geometry/Topology: subscribe NYJM-TOP \par + + To avoid duplication, we will only be archiving the + postings on NYJMTH-A, the list carrying all the + abstracts. The archive for NYJMTH-A will also contain + the style specifications for submissions and the + templates for frontmatter.\par + + The \path|gopher|\slash \path|ftp| archive will contain + both the abstract and a \path|.dvi| file for each + paper. Both abstract and \path|.dvi| will remain + unchanged from the official date of publication, as may + be verified by checking the date stamps.\par + + The gopher archive may be accessed by typing + \path|gopher+ \path|nyjm.albany.edu=. It is also + available under the ``Academic Offerings, Departments + and Programs'' selection of the main gopher menu of the + State University of New York at Albany.\par + + The same archive will be accessible by anonymous + \path|ftp| on the machine \path|ftp_nyjm.albany.edu| in + the directory \path|/pub/nyjm|. (This feature has not + yet been enabled.)\par + + The reader must have access to a printer driver for + \TeX{} in order to print out the \path|.dvi| files. + Such a driver is present in most mathematics + departments. Math departments, libraries, and other + institutional subscribers are welcome to consult with + the Editor in Chief.", + xxCODEN = "none", +} + +@Periodical{tj-phys-letters-a, + key = "PLA", + title = "{Physics Letters A}", + publisher = pub-ESP, + address = pub-ESP:adr, + CODEN = "PYLAAG", + ISSN = "0375-9601", + LCCN = "QC1 .P45", + bibdate = "Sat Sep 24 13:27:26 1994", + note = "\LaTeX{} format accepted.", + acknowledgement = ack-np, +} + +@Periodical{tj-phys-letters-b, + key = "PLB", + title = "{Physics Letters A and B}", + publisher = pub-ESP, + address = pub-ESP:adr, + CODEN = "PYLBAJ", + ISSN = "0370-2693", + LCCN = "QC1 .P6562", + bibdate = "Sat Sep 24 13:27:26 1994", + note = "\LaTeX{} format accepted.", + acknowledgement = ack-np, +} + +@Periodical{tj-phys-repd, + key = "PRep", + title = "{Physics Reports}", + publisher = pub-ESP, + address = pub-ESP:adr, + CODEN = "PRPLCM", + ISSN = "0370-1573", + LCCN = "QC1 .P6563", + bibdate = "Sat Sep 24 13:27:56 1994", + note = "\LaTeX{} format accepted on an experimental basis.", + acknowledgement = ack-np, +} + +@Periodical{tj-phys-rev-a, + key = "PRA", + title = "{Physical Review A}", + publisher = pub-APS, + address = pub-APS:adr, + CODEN = "PLRAAN", + ISSN = "1050-2947", + LCCN = "QC1 .P42", + bibdate = "Sat Sep 24 13:33:58 1994", + note = "\LaTeX{} format accepted.", + acknowledgement = ack-dl, +} + +@Periodical{tj-phys-rev-b, + key = "PRB", + title = "{Physical Review B}", + publisher = pub-APS, + address = pub-APS:adr, + CODEN = "PRBMDO", + ISSN = "0163-1829", + LCCN = "QC176.A1 P513", + bibdate = "Sat Sep 24 13:33:58 1994", + note = "\LaTeX{} format accepted.", + acknowledgement = ack-dl, +} + +@Periodical{tj-phys-rev-c, + key = "PRC", + title = "{Physical Review C}", + publisher = pub-APS, + address = pub-APS:adr, + CODEN = "PRVCAN, PRDOF8", + ISSN = "0556-2813, 1089-4918", + LCCN = "QC770 .P45", + bibdate = "Sat Sep 24 13:33:58 1994", + note = "\LaTeX{} format accepted.", + acknowledgement = ack-dl, +} + +@Periodical{tj-phys-rev-d, + key = "PRD", + title = "{Physical Review D}", + publisher = pub-APS, + address = pub-APS:adr, + CODEN = "PRVDAQ", + ISSN = "0556-2821", + LCCN = "QC721 .P457", + bibdate = "Sat Sep 24 13:33:58 1994", + note = "\LaTeX{} format accepted.", + acknowledgement = ack-dl, +} + +@Periodical{tj-phys-rev-e1, + key = "PRE", + title = "{Physical Review E, Statistical physics, plasmas, + fluids, and related interdisciplinary topics}", + publisher = pub-APS, + address = pub-APS:adr, + CODEN = "PLEEE8", + ISSN = "1063-651X", + LCCN = "QC174.7 .P48 (E)", + bibdate = "Sat Sep 24 13:33:58 1994", + note = "\LaTeX{} format accepted.", + acknowledgement = ack-dl, +} + +@Periodical{tj-phys-rev-e2, + key = "PRE", + title = "{Physical Review E, Statistical, nonlinear, and soft + matter physics}", + publisher = pub-APS, + address = pub-APS:adr, + CODEN = "PRESCM", + ISSN = "1063-651X", + LCCN = "QC1 .P4292", + bibdate = "Sat Feb 09 07:52:28 2002", + note = "\LaTeX{} format accepted.", + URL = "http://pre.aps.org", + acknowledgement = ack-dl, +} + +@Periodical{tj-physica-d, + key = "P-D", + title = "{Physica D}", + publisher = pub-ESP, + address = pub-ESP:adr, + CODEN = "PDNPDT", + ISSN = "0167-2789", + LCCN = "QC1 .P3834", + bibdate = "Sat Sep 24 13:33:57 1994", + note = "\LaTeX{} format accepted for special proceedings + issues.", + acknowledgement = ack-np, +} + +@Periodical{tj-proc-ams, + key = "PAMS", + title = "{Proceedings of the American Mathematical Society}", + publisher = pub-AMS, + address = pub-AMS:adr, + CODEN = "PAMYAR", + ISSN = "0002-9939", + LCCN = "QA1 .A5215", + bibdate = "Sat Sep 24 13:36:35 1994", + note = "Use of \AmSTeX{} began in 1983; completely in + \AmSTeX{} and \AmS-\LaTeX{} since late 1986; style + files available at \path|e-math.ams.org|.", + acknowledgement = ack-bnb # " and " # ack-eg, +} + +@Periodical{tj-proc-steklo, + key = "PROCSTEKLO", + title = "{Proceedings of the Steklov Institute of + Mathematics}", + publisher = pub-AMS, + address = pub-AMS:adr, + ISSN = "0081-5438", + LCCN = "QA1 .A413", + bibdate = "Sat Sep 24 13:36:33 1994", + note = "Translation into English of the ``Trudy ordena Lenina + Matematicheskogo instuta imeni V. A. Steklova''. + Prepared with \AmSTeX{} began since 1987.", + acknowledgement = ack-bnb, + xxCODEN = "none", +} + +@Periodical{tj-quart-app-math, + key = "QAM", + title = "{Quarterly of Applied Mathematics}", + publisher = "Brown University", + address = "Providence, RI, USA", + CODEN = "QAMAAY", + ISSN = "0033-569X", + LCCN = "QA1 .Q25", + bibdate = "Sat Sep 24 13:36:30 1994", + acknowledgement = ack-bnb, +} + +@Periodical{tj-sbor-math, + key = "SBORMATH", + title = "{Russian Academy of Sciences. Sbornik. Mathematics}", + publisher = pub-AMS, + address = pub-AMS:adr, + ISSN = "1064-5616", + LCCN = "QA1 .M4112", + bibdate = "Sat Sep 24 13:36:27 1994", + note = "Translation into English of ``Matematicheski\u\i{} + Sbornik''. (Formerly ``Mathematics of the + USSR---Sbornik''.) Prepared with \AmSTeX{} since + 1987.", + acknowledgement = ack-bnb, + xxCODEN = "none", +} + +@Periodical{tj-solstice, + key = "Solstice", + title = "Solstice: An Electronic Journal of Geography and + Mathematics", + publisher = "Institute of Mathematical Geography", + address = "2790 Briarcliff, Ann Arbor, MI 48105-1429, USA", + year = "1992", + ISBN = "1-877751-44-8; 1-877751-52-9; 1-877751-53-7", + ISSN = "1059-5325", + bibdate = "Sat Aug 27 11:16:20 1994", + acknowledgement = ack-bnb, + note-1 = "[These remarks are supplied by the Editor-in-Chief, + Sandra L. Arlinghaus:] + + Printer: Digicopy, Corp., 858 Phoenix Dr., Ann Arbor, + MI 48108. + + Frequency: Twice yearly, issued on astronomical + solstices (late June and late December). An effort is + made to have the transmission carry the time and date + stamp of the exact minute of the astronomical solstice + (sort like a first day cover marking for a stamp + collector). + + The ISSN number was assigned by the Library of Congress + beginning with the winter issue, 1991.", + note-2 = "The rationale behind the ISBN assignment is as + follows. {\em Solstice\/} is also available in hard + copy (\$15.95) a year for those wishing it. The book + containing the full year's issues is given an ISBN. The + first number in the list is the number for the 1990 + volume. The third number is the number for the 1991 + volume. In addition, in the summer, single issues are + available. The second ISBN is the number for the single + summer 1991 issue. + + Copyright: copyright is taken out on the hard copy. + Electronic files can be compared to the hard copy in a + library should a reader question whether or not a + document has been altered. + + Here is some additional information.", + note-3 = "1. Reason for the name. Because geography and + mathematics have a history of mutual research + stimulation (Konigsberg bridge problem, four color + problem, \ldots), material from one discipline can shed + light on the other. Astronomical solstices are extreme + positions at which time northern and southern + hemispheres receive maximum and minimum daylight or + night. Between the solstices there is varying dominance + of day and night; so too, there is varying dominance of + mathematical and geographical interaction in articles + in Solstice. Of course, the extreme of a purely + geographical or a purely mathematical article is also + suitable for submission. + + 2. Articles are refereed; the journal is + peer-reviewed.", + note-4 = "3. Members of the Editorial Board are listed below + (along with a brief notation of their affiliation): + Sandra L. Arlinghaus--Editor-in-Chief, Director, IMaGe. + William C. Arlinghaus, Professor and Chair, Dep't. of + Math. and C.S., Lawrence Technological University, + Southfield, MI Neal Brand, Professor, Dep't. of Math. + Univ. of North Texas. Kenneth H. Rosen, Mathematician, + Bell Labs. Michael Goodchild, Professor of Geography, + Univ. of California, Santa Barbara Daniel A. Griffith, + Professor of Geography, Syracuse University. Jonathan + D. Mayer, Professor of Geography, University of + Washington. John D. Nystuen, Professor of Geography and + Planning, Univ. of Michigan. + + 4. List of content: [omitted]", + note-5 = "5. The journal is typeset using TeX. To gain + experience in publishing matters using TeX, it was very + helpful to me to be hired by the University of Chicago + Press to typeset, using TeX, a volume in their + ``Lecture Notes in Physics''--(Walter Welford's {\em + Useful Optics\/}--quite suitable, I think!). Generally, + {\em The TeXbook\/} is all that I need; once I + encountered a difficulty with some sort of `bold' + notation invented by an author. For that, a combination + of advice from a colleague in mathematics and from the + University of Michigan's Computing Center, helped me to + figure out a way to solve the problem.", + note-6 = "6. A number of the volumes in the IMaGe monograph + series are typeset using TeX. Monographs 9, 11, 12, 13 + (Solstice hard copy for 1990), 14, and 15 (Solstice + hard copy for 1991) are TeX-ed. I typeset documents + using Plain TeX; the hard copy is obtained by uploading + the ASCII file into the University of Michigan's + mainframe and printing it out on their Xerox 9700 + (series) machine. They have a number of them at various + sites across campus. The print quality is only 200 dpi, + so in that regard TeX-ed documents don't look as good + as they should--hence, difficulty in convincing + non-TeXers of its value. Every effort is made to get + hard copy right after a periodic maintenance of the + machines. Then photos are inserted (pasted + electronically) onto this hardcopy using a Xerox + DocuTech with its high resolution scanner.", + note-7 = "Copies are made from the master document stored, + temporarily at least, on one of the three 280 meg hard + drives in the DocuTech. We await the day when the files + can be downloaded from DocuTech hard drive onto a + floppy! What would be great of course is if Xerox would + make it so that a TeX file on a floppy could be + directly fed into the DocuTech--by-passing the + intermediate (conventional mainframe -- the DocuTech + functions as a mainframe) step.", + note-8 = "7. Copies of {\em Solstice\/} have been sent to {\em + Math. Reviews}. A letter was sent to the AMS, following + their statement in the September 1991 {\em Notices\/} + that there was no peer-reviewed online journal of + mathematics, informing them of {\em Solstice\/}'s + existence. There appears to be a great deal of + difficulty in archiving this sort of publication. The + earliest one I have found is Richard Zander's {\em + Flora Online\/}--he is Curator of Botany and the + Buffalo Museum of Science--this journal dates from + 1987. It is not a TeX-ed journal; it is peer-reviewed. + No doubt, though, you are aware of Michael + Strangelove's directory of electronic journals--think + he lists a subset that are TeX-ed. He's at the + University of Ottawa in the Department of Religious + Studies, I believe.", + note-9 = "8. Environmental issue--we see this as a sound manner + of document production; when hard copy is produced (to + suit demand--``just-in-time'' publishing) it is printed + on 100\% recycled paper with a large percentage of + fiber from post-consumer (20\% to 40\%, depending on + the lot) products. Obviously, the electronic + distribution of {\em Solstice}, free, across Bitnet and + Internet, is cheap and environmentally sensitive. + + 9. Other media exposure of {\em Solstice\/}: {\sl + Science}, AAAS, 29 November, 1991, p. 1291; {\sl + Science News}, Jan. 25, 1992, p. 61. Contributed talk, + AMS, Baltimore, 1992--Abstract \#871-99-73, p. 145 {\sl + Abstracts of Papers Presented to The American + Mathematical Society\/} January 1992, Issue 79, Volume + 13, Number 1. {\sl Newsletter\/} of the Association of + American Geographers, June, 1992.", + xxCODEN = "none", +} + +@Periodical{tj-stp-math-j, + key = "STPMATHJ", + title = "{St. Petersburg Mathematical Journal}", + publisher = pub-AMS, + address = pub-AMS:adr, + ISSN = "1061-0022", + LCCN = "QA150 .A42", + bibdate = "Sat Sep 24 13:37:12 1994", + note = "Translation into English of ``Algebra i Analiz''. + (Formerly ``Leningrad Mathematical Journal''.) Prepared + with \AmSTeX{}.", + acknowledgement = ack-bnb, + xxCODEN = "none", +} + +@Periodical{tj-sugaku, + key = "SUGAKU", + title = "{Sugaku Expositions}", + publisher = pub-AMS, + address = pub-AMS:adr, + ISSN = "0898-9583", + LCCN = "QA1 .S855", + bibdate = "Sat Sep 24 13:42:18 1994", + note = "Translation into English of expository articles from + ``Sugaku''. Prepared with \AmSTeX{}.", + acknowledgement = ack-bnb, + xxCODEN = "none", +} + +@Periodical{tj-tcs, + key = "TCS", + title = "{Theoretical Computer Science}", + publisher = pub-ESP, + address = pub-ESP:adr, + CODEN = "TCSCDI", + ISSN = "0304-3975", + LCCN = "QA267 .T46", + bibdate = "Sat Sep 24 13:38:28 1994", + note = "\LaTeX{} format accepted.", + URL = "http://www.elsevier.com:80/inca/publications/store/5/0/5/6/", + acknowledgement = ack-np, +} + +@Periodical{tj-texline, + editor = "Malcolm Clark", + key = "TEXLINE", + title = j-TEXLINE, + year = "1987" # "\unskip--", + ISSN = "0961-3978", + note = "This is an informal newsletter of the {\TeX{}} + community.", + xxCODEN = "none", +} + +@Periodical{tj-theor-comput-fluid-dyn, + editor = "Y. M. Hussaini", + key = "THEOR-COMPUT-FLUID-DYN", + title = "Theoretical and computational fluid dynamics", + publisher = pub-SV, + address = pub-SV:adr, + CODEN = "TCFDEP", + ISSN = "0935-4964", + bibdate = "Wed Apr 07 19:06:20 1999", + note = "Volume 1, number 1, appeared in 1989, and authors are + encouraged to submit articles in \LaTeX{} form. Tables + of contents are available online for issues beginning + with volume 8, number 1, 1996.", + URL = "http://link.springer-ny.com/link/service/journals/00162/index.htm", + acknowledgement = ack-nhfb, +} + +@Periodical{tj-thy-prob-stat, + key = "TOPMS", + title = "{Theory of Probability and Mathematical Statistics}", + publisher = pub-AMS, + address = pub-AMS:adr, + CODEN = "TPMSCO", + ISSN = "0094-9000", + LCCN = "QA273.A1 T453", + bibdate = "Sat Sep 24 13:38:57 1994", + note = "Translation into English of ``Teoria Veroyatnostei i + Matematicheskaya Statistika''. Prepared with + \AmSTeX{}.", + acknowledgement = ack-bnb, +} + +@Periodical{tj-trans-ams, + key = "TAMS", + title = "{Transactions of the American Mathematical Society}", + publisher = pub-AMS, + address = pub-AMS:adr, + CODEN = "TAMTAM", + ISSN = "0002-9947", + LCCN = "QA1 .A522", + bibdate = "Sat Sep 24 13:42:24 1994", + note = "Use of \AmSTeX{} began in 1983; author submission of + \AmSTeX{} manuscripts encouraged since 1987; \AmSTeX{} + and \AmS-\LaTeX{} since late 1986; style files + available at \path|e-math.ams.org|.", + acknowledgement = ack-bnb # " and " # ack-eg, +} + +@Periodical{tj-trans-moscow, + key = "TRMOSCOW", + title = "{Transactions of the Moscow Mathematical Society}", + publisher = pub-AMS, + address = pub-AMS:adr, + CODEN = "TMMSD4", + ISSN = "0077-1554", + LCCN = "QA1 .M9883", + bibdate = "Sat Sep 24 13:40:04 1994", + note = "Translation into English of ``Trudy Moskovskogo + Matematicheskogo Obshchestva''. Prepared with \AmSTeX{} + since 1987.", + acknowledgement = ack-bnb, +} + +@Periodical{tj-z-phys, + key = "ZP", + title = "{Zeitschrift F{\"u}r Physik}", + note = "Need to confirm this.", + acknowledgement = ack-dl, +} diff --git a/Master/texmf-dist/bibtex/bib/beebe/texnique.bib b/Master/texmf-dist/bibtex/bib/beebe/texnique.bib new file mode 100644 index 00000000000..4dc3205e944 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/beebe/texnique.bib @@ -0,0 +1,546 @@ +%%% -*-BibTeX-*- +%%% /u/sy/beebe/tex/bib/texnique.bib, Sat Jul 7 15:46:01 1990 +%%% Edit by Nelson H. F. Beebe +%%% ==================================================================== +%%% BibTeX-file{ +%%% author = "Nelson H. F. Beebe", +%%% version = "1.18", +%%% date = "01 November 2000", +%%% time = "08:29:07 MDT", +%%% filename = "texnique.bib", +%%% address = "Center for Scientific Computing +%%% University of Utah +%%% Department of Mathematics, 322 INSCC +%%% 155 S 1400 E RM 233 +%%% Salt Lake City, UT 84112-0090 +%%% USA", +%%% telephone = "+1 801 581 5254", +%%% FAX = "+1 801 585 1640, +1 801 581 4148", +%%% URL = "http://www.math.utah.edu/~beebe", +%%% checksum = "40175 546 1745 15001", +%%% email = "beebe at math.utah.edu, beebe at acm.org, +%%% beebe at computer.org, beebe at ieee.org +%%% (Internet)", +%%% codetable = "ISO/ASCII", +%%% supported = "yes", +%%% docstring = "This BibTeX file contains entries for the +%%% TeX User Group TeXniques series. +%%% +%%% At version 1.18, the year coverage looked +%%% like this: +%%% +%%% 1983 ( 1) 1986 ( 2) 1989 ( 0) +%%% 1984 ( 0) 1987 ( 16) 1990 ( 2) +%%% 1985 ( 0) 1988 ( 27) +%%% +%%% Article: 48 +%%% +%%% Total entries: 48 +%%% +%%% Journal article tags look like +%%% author:abbrev-volume-number-page, where the +%%% author part is the last name of the first +%%% author: for example, Knuth:TQ13-1. +%%% +%%% The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility." +%%% } +%%% ==================================================================== + +@preamble{"\input bibnames.sty"} + +@string{j-TEXNIQUES = "{\TeX{}}{\-}niques, Publications for the {\TeX{}} + community"} + +@Article{McPherson:TQ1-1, + author = "Kent McPherson", + title = "{VAX Language-Sensitive Editor (LSEDIT) Quick Reference + Guide}", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "1", + pages = "ii, 1--9", +} + +@Article{Ferguson:TQ2-1, + author = "Michael J. Ferguson", + title = "Table Making\emdash{}the {INRS\TeX{}} Method", + journal = j-TEXNIQUES, + year = "1986", + volume = "", + number = "2", + pages = "1--14", +} + +@Article{Aurbach:TQ3-1, + author = "R. L. Aurbach", + title = "User's Guide to the {Idx\TeX{}} Program", + journal = j-TEXNIQUES, + year = "1987", + volume = "", + number = "3", + pages = "i, 1--14", +} + +@Article{Aurbach:TQ4-1, + author = "R. L. Aurbach", + title = "User's Guide to the {Glo\TeX{}} Program", + journal = j-TEXNIQUES, + year = "1986", + volume = "", + number = "4", + pages = "i, 1--10", +} + +@Article{Childs:TQ5-1, + author = "Bart Childs", + title = "We've Come a Long Way, And ?", + journal = j-TEXNIQUES, + year = "1987", + volume = "", + number = "5", + pages = "1--4", +} + +@Article{Thiele:TQ5-5, + author = "Christina Thiele", + title = "{\TeX{}}, Linguistics, and Journal Production", + journal = j-TEXNIQUES, + year = "1987", + volume = "", + number = "5", + pages = "5--26", +} + +@Article{Levy:TQ5-27, + author = "Silvio Levy", + title = "Typesetting {Greek}", + journal = j-TEXNIQUES, + year = "1987", + volume = "", + number = "5", + pages = "27--34", +} + +@Article{Andrews:TQ5-35, + author = "Walter Andrews and Pierre MacKay", + title = "The {Ottoman Texts Project}", + journal = j-TEXNIQUES, + year = "1987", + volume = "", + number = "5", + pages = "35--52", + bibdate = "Sat Aug 27 11:17:48 1994", +} + +@Article{Saito:TQ5-53, + author = "Nobuo Saito and Kazuhiro Kitagawa", + title = "What Should We Do for {Japanese} {\TeX{}}", + journal = j-TEXNIQUES, + year = "1987", + volume = "", + number = "5", + pages = "53--56", + bibdate = "Wed Aug 24 21:57:46 1994", +} + +@Article{Saito:TQ5-57, + author = "Yasuki Saito", + title = "{Japanese} {\TeX{}}: {J\TeX{}}", + journal = j-TEXNIQUES, + year = "1987", + volume = "", + number = "5", + pages = "57--68", +} + +@Article{McGaffey:TQ5-69, + author = "Robert W. McGaffey", + title = "Developing {\TeX{}} {DVI} Driver Standards", + journal = j-TEXNIQUES, + year = "1987", + volume = "", + number = "5", + pages = "69--70", + bibdate = "Wed Aug 24 21:58:21 1994", +} + +@Article{Beebe:TQ5-71, + author = "Nelson H. F. Beebe", + title = "A {\TeX{}} {DVI} Driver Family", + journal = j-TEXNIQUES, + year = "1987", + volume = "", + number = "5", + pages = "71--114", +} + +@Article{Ness:TQ5-115, + author = "David Ness", + title = "The Use of {\TeX{}} in a Commercial Environment", + journal = j-TEXNIQUES, + year = "1987", + volume = "", + number = "5", + pages = "115--124", + bibdate = "Sat Aug 27 11:17:56 1994", +} + +@Article{Levy:TQ5-125, + author = "Silvio Levy", + title = "Literate Programming in {C}", + journal = j-TEXNIQUES, + year = "1987", + volume = "", + number = "5", + pages = "125--130", +} + +@Article{Simpson:TQ5-131, + author = "Richard Simpson", + title = "Porting {\TeX{}} to the {IBM RT}", + journal = j-TEXNIQUES, + year = "1987", + volume = "", + number = "5", + pages = "131--132", +} + +@Article{Dyer:TQ5-133, + author = "Allen R. {Dyer, Esquire}", + title = "Text Formatting and the {Maryland} Lawyer", + journal = j-TEXNIQUES, + year = "1987", + volume = "", + number = "5", + pages = "133--140", +} + +@Article{Carr:TQ5-141, + author = "Leslie Carr", + title = "Of {\MF} and {\POSTSCRIPT}", + journal = j-TEXNIQUES, + year = "1987", + volume = "", + number = "5", + pages = "141--152", +} + +@Article{Wichura:TQ6-1, + author = "Michael J. Wichura", + title = "The {PiC\TeX{}} Manual", + journal = j-TEXNIQUES, + year = "1987", + volume = "", + number = "6", + pages = "v, 1--85", +} + +@Article{McCaskill:TQ7-1, + author = "Mary McCaskill", + title = "Producing {NASA} Technical Reports with {\TeX{}}", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "1--10", +} + +@Article{Renfrow:TQ7-11, + author = "J. Tom Renfrow", + title = "Use of {\TeX{}} in an Integrated System Development + Environment", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "11--24", +} + +@Article{Ness:TQ7-25, + author = "David Ness and James Slagle", + title = "{\TeX{}} and Databases", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "25--30", +} + +@Article{Mann:TQ7-31, + author = "Laurie Mann", + title = "Producing Manual Sets Using Single-Sourcing", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "31--40", +} + +@Article{Pollari:TQ7-41, + author = "Jean Pollari", + title = "Using {\TeX{}} to Produce Government Standard Documentation", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "41--52", +} + +@Article{Jul:TQ7-53, + author = "Eric Jul", + title = "Implementing {\TeX{}} in a Production Environment: A + Case Study", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "53--60", +} + +@Article{Tonkin:TQ7-61, + author = "Peter Tonkin and Alex Warman", + title = "How and Why a Trade Typesetter Chose {\TeX{}}", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "61--68", +} + +@Article{Mooney:TQ7-69, + author = "James D. Mooney", + title = "An Experience in Textbook Production", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "69--82", +} + +@Article{Harris:TQ7-83, + author = "Robert L. Harris", + title = "Using {\TeX{}} to Produce Kennel Club Yearbooks", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "83--96", +} + +@Article{Barnhart:TQ7-97, + author = "Elizabeth Barnhart and David Ness", + title = "Layout for {\TeX{}}", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "97--116", +} + +@Article{Childs:TQ7-117, + author = "Bart Childs and others", + title = "Syllabi for {\TeX{}} and {\MF{}} Courses", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "117--128", + bibdate = "Wed Nov 1 08:28:58 2000", +} + +@Article{Parks:TQ7-129, + author = "Berkeley Parks", + title = "{\TeX{}} Tips for Getting Started", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "129--148", +} + +@Article{Wittbecker:TQ7-149, + author = "Alan Wittbecker", + title = "The Art of Teaching {\TeX{}} for Production", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "149--154", +} + +@Article{Farrell:TQ7-155, + author = "Shawn Farrell", + title = "Choosing Between {\TeX{}} and {\LaTeX{}}", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "155--164", + bibdate = "Sat Sep 10 14:07:30 1994", +} + +@Article{Kitagawa:TQ7-165, + author = "Kazuhiro Kitagawa and Nobuo Saito", + title = "Mathematics Textbook Publishing with {Japanese} {\TeX{}}", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "165--170", +} + +@Article{Goldberg:TQ7-171, + author = "Jacques Goldberg", + title = "Approximate {\TeX{}} for {Semitic} Languages", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "171--178", +} + +@Article{Ferguson:TQ7-179, + author = "Michael J. Ferguson", + title = "{\TeX{}} is Multilingual", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "179--188", +} + +@Article{Saarinen:TQ7-189, + author = "Kauko Saarinen", + title = "Experiences with {\TeX{}} in {Finland}", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "189--194", +} + +@Article{vonBechtolsheim:TQ7-195, + author = "Stephan von Bechtolsheim", + title = "Using the {Emacs} Editor to Safely Edit {\TeX{}} Sources", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "195--202", +} + +@Article{Price:TQ7-203, + author = "Lynne A. Price", + title = "Using {SGML} and {\TeX{}} for User Documentation", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "203--210", +} + +@Article{Yap:TQ7-211, + author = "Ken Yap", + title = "{DVI} Previewers", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "211--218", +} + +@Article{Kruse:TQ7-219, + author = "Robert L. Kruse", + title = "{Pre\TeX{}}: Tools for Typesetting Technical Books", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "219--226", +} + +@Article{Schmidt:TQ7-227, + author = "Mike Schmidt", + title = "{Cap\TeX{}}: Industrial Strength {\TeX{}}", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "227--234", +} + +@Article{Muller:TQ7-235, + author = "Paul M. Muller", + title = "{FAS\TeX{}}: A {PC} Text Editor and Front-End for {\TeX{}}", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "7", + pages = "235--254", +} + +@Article{Huth:TQ8-1, + author = "Frances Huth", + title = "A Users' Guide for {\TeX{}}", + journal = j-TEXNIQUES, + year = "1987", + volume = "", + number = "8", + pages = "v, 1--51", +} + +@Article{Urban:TQ9-1, + author = "Michael Urban", + title = "An Introduction to {\LaTeX{}}", + journal = j-TEXNIQUES, + year = "1990", + volume = "", + number = "9", + pages = "iii, 1--56", +} + +@Article{Botway:TQ10-1, + author = "L. Botway and C. Biemesderfer", + title = "{\LaTeX{}} Command Summary", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "10", + pages = "1--14", +} + +@Article{Samuel:TQ11-1, + author = "Arthur Samuel", + title = "First Grade {\TeX{}}", + journal = j-TEXNIQUES, + year = "1983", + volume = "", + number = "11", + pages = "1--34", +} + +@Article{Doob:TQ12-1, + author = "Michael Doob", + title = "A Gentle Introduction to {\TeX{}}", + journal = j-TEXNIQUES, + year = "1988", + volume = "", + number = "12", + pages = "iv, 1--88", +} + +@Article{Knuth:TQ13-1, + author = "Donald E. Knuth and Tomas G. Rokicki and Arthur Samuel", + title = "{\MF{}}ware", + journal = j-TEXNIQUES, + year = "1990", + volume = "", + number = "13", + pages = "iv, 101--126, 201--239, 301--380, 401--441", +} diff --git a/Master/texmf-dist/bibtex/bib/beebe/tugboat.bib b/Master/texmf-dist/bibtex/bib/beebe/tugboat.bib new file mode 100644 index 00000000000..be735ed4870 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/beebe/tugboat.bib @@ -0,0 +1,39815 @@ +%%% -*-BibTeX-*- +%%% ==================================================================== +%%% BibTeX-file{ +%%% author = "Nelson H. F. Beebe", +%%% version = "1.34", +%%% date = "13 January 2004", +%%% time = "16:06:09 MST", +%%% filename = "tugboat.bib", +%%% address = "Center for Scientific Computing +%%% University of Utah +%%% Department of Mathematics, 110 LCB +%%% 155 S 1400 E RM 233 +%%% Salt Lake City, UT 84112-0090 +%%% USA", +%%% telephone = "+1 801 581 5254", +%%% FAX = "+1 801 581 4148", +%%% URL = "http://www.math.utah.edu/~beebe", +%%% checksum = "47324 39815 135563 1363401", +%%% email = "beebe at math.utah.edu, beebe at acm.org, +%%% beebe at computer.org (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "bibliography, BibTeX, TeX Users Group, +%%% TUGboat", +%%% supported = "yes", +%%% docstring = "This bibliography covers the contents of +%%% TUGboat (ISSN 0896-3207, LCCN Z253.4.T47T83), +%%% the Communications of the TeX Users Group. +%%% +%%% At version 1.34, the year coverage looked +%%% like this: +%%% +%%% 1980 ( 11) 1988 ( 125) 1996 ( 101) +%%% 1981 ( 119) 1989 ( 169) 1997 ( 95) +%%% 1982 ( 50) 1990 ( 164) 1998 ( 113) +%%% 1983 ( 66) 1991 ( 190) 1999 ( 134) +%%% 1984 ( 69) 1992 ( 136) 2000 ( 84) +%%% 1985 ( 115) 1993 ( 107) 2001 ( 97) +%%% 1986 ( 114) 1994 ( 129) +%%% 1987 ( 138) 1995 ( 86) +%%% +%%% Article: 2446 +%%% +%%% Total entries: 2446 +%%% +%%% The master files for this bibliography are +%%% maintained at +%%% +%%% ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.* +%%% http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat +%%% +%%% A brief journal table-of-contents is available at: +%%% +%%% ftp://ftp.math.utah.edu/pub/tex/bib/toc/tugboat.html +%%% http://www.math.utah.edu/pub/tex/bib/toc/tugboat.html +%%% +%%% The cross-referenced master index for the +%%% journal is available at: +%%% +%%% ftp://ftp.math.utah.edu/pub/tex/bib/idx/tugboat/* +%%% http://www.math.utah.edu/pub/tex/bib/idx/tugboat/index.html +%%% +%%% The TeX Users Group Web site is +%%% +%%% http://www.tug.org/ +%%% +%%% and the Comprehensive TeX Archive Network +%%% (CTAN) master sites are at +%%% +%%% ftp://ftp.dante.de/tex-archive +%%% ftp://ftp.tex.ac.uk/tex-archive +%%% ftp://ctan.tug.org/tex-archive +%%% +%%% The command +%%% +%%% finger ctan at tug.org +%%% +%%% will display the current list of CTAN +%%% master sites, and their many mirrors around +%%% the world. +%%% +%%% The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== + +@String{ack-bnb = "Barbara N. Beeton, + American Mathematical Society, + P.O. Box 6248, + Providence, RI 02940, + USA, + Tel: +1 401 455 4014, + e-mail: \path|bnb@math.ams.org|"} + +@String{ack-nhfb = "Nelson H. F. Beebe, + Center for Scientific Computing, + University of Utah, + Department of Mathematics, 110 LCB, + 155 S 1400 E RM 233, + Salt Lake City, UT 84112-0090, USA, + Tel: +1 801 581 5254, + FAX: +1 801 581 4148, + e-mail: \path|beebe@math.utah.edu|, + \path|beebe@acm.org|, + \path|beebe@ieee.org| (Internet), + URL: \path|http://www.math.utah.edu/~beebe/|"} + +%%% ==================================================================== +%%% BibTeX database file for TUGboat created automatically with +%%% +%%% nawk -f tugboat.awk +%%% +%%% by beebe at psi.math.utah.edu on Sat Jul 5 17:27:22 MDT 2003 +%%% +%%% Input files: +%%% tb0180.cnt +%%% tb0281.cnt +%%% tb0382.cnt +%%% tb0483.cnt +%%% tb0584.cnt +%%% tb0685.cnt +%%% tb0786.cnt +%%% tb0887.cnt +%%% tb0988.cnt +%%% tb1089.cnt +%%% tb1190.cnt +%%% tb1291.cnt +%%% tb1392.cnt +%%% tb1493.cnt +%%% tb1594.cnt +%%% tb1695.cnt +%%% tb1796.cnt +%%% tb1897.cnt +%%% tb1998.cnt +%%% tb2099.cnt +%%% tb2100.cnt +%%% tb2201.cnt +%%% tb2302.cnt +%%% +%%% ==================================================================== + +@Preamble{"\input tugboat.def"} + +@Preamble{"\input path.sty"} + +@String{j-TUGboat = "TUGboat"} + +@Article{Welland:TB1-1-2, + author = "Robert Welland", + title = "{Editor's Comments}", + journal = j-TUGboat, + volume = "1", + number = "1", + pages = "2--3", + month = oct, + year = "1980", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Palais:TB1-1-3, + author = "Richard Palais", + title = "{Message from the Chairman}", + journal = j-TUGboat, + volume = "1", + number = "1", + pages = "3--7", + month = oct, + year = "1980", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Swanson:TB1-1-7, + author = "Ellen Swanson", + title = "{Publishing \& \TeX}", + journal = j-TUGboat, + volume = "1", + number = "1", + pages = "7--9", + month = oct, + year = "1980", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Spivak:TB1-1-10, + author = "Michael Spivak", + title = "{{\AmSTeX\Dash``A very friendly product}''}", + journal = j-TUGboat, + volume = "1", + number = "1", + pages = "10--11", + month = oct, + year = "1980", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Morris:TB1-1-12, + author = "Robert Morris", + title = "{Minutes of the first TUG meeting, February 1980}", + journal = j-TUGboat, + volume = "1", + number = "1", + pages = "12--16", + month = oct, + year = "1980", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Zabala:TB1-1-16, + author = "Ignacio Zabala and Luis Trabb-Pardo", + title = "{The status of the Pascal implementation of \TeX}", + journal = j-TUGboat, + volume = "1", + number = "1", + pages = "16--17", + month = oct, + year = "1980", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fuchs:TB1-1-17, + author = "David Fuchs", + title = "{The format of {\TeX}'s {DVI} files}", + journal = j-TUGboat, + volume = "1", + number = "1", + pages = "17--19", + month = oct, + year = "1980", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hodge:TB1-1-19, + author = "Thea Hodge", + title = "{University of Minnesota CDC Cyber site report}", + journal = j-TUGboat, + volume = "1", + number = "1", + pages = "19--20", + month = oct, + year = "1980", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB1-1-20, + author = "Barbara Beeton", + title = "{Troubles with trace and Other oddities}", + journal = j-TUGboat, + volume = "1", + number = "1", + pages = "20--20", + month = oct, + year = "1980", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Winograd:TB1-1-Appendix-A, + author = "Terry Winograd and Bill Paxton", + title = "{An indexing facility for \TeX}", + journal = j-TUGboat, + volume = "1", + number = "1", + pages = "Appendix A", + month = oct, + year = "1980", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Emch:TB1-1-22, + author = "G{\'e}rard Emch and Arnold Pizer", + title = "Letters", + journal = j-TUGboat, + volume = "1", + number = "1", + pages = "22--23", + month = oct, + year = "1980", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB2-1-2, + author = "Anonymous", + title = "{Addresses of authors}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "2--2", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Welland:TB2-1-3, + author = "Robert Welland", + title = "{Site Coordinators}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "3--3", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Palais:TB2-1-3, + author = "Richard Palais", + title = "{Chairman's report}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "3--5", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Morris:TB2-1-5, + author = "Robert Morris", + title = "{Report on the January 1981 TUG Steering Committee + meeting}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "5--6", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Whidden:TB2-1-6, + author = "Samuel B. Whidden", + title = "{1980 TUG Treasurer's report}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "6--6", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Morris:TB2-1-6, + author = "Robert Morris", + title = "{Informal TUG session}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "6--7", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Morris:TB2-1-7, + author = "Robert Morris", + title = "{A position on {\TeX} maintenance}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "7--8", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Whidden:TB2-1-9, + author = "Samuel B. Whidden", + title = "{{\TeX} support}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "9--10", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kim:TB2-1-10, + author = "Scott Kim", + title = "{Update on Pascal \MF}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "10--10", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fuchs:TB2-1-11, + author = "David Fuchs", + title = "{Erratum: {The format of {\TeX}'s DVI files}}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "11--11", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Zabala:TB2-1-11, + author = "Ignacio Zabala", + title = "{\TeX-Pascal and Pascal compilers (a status report)}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "11--12", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fuchs:TB2-1-12, + author = "David Fuchs", + title = "{{{\TeX} Font Metric files}}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "12--16", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sherrod:TB2-1-17, + author = "Phil Sherrod and Alan Wright", + title = "{{\TeX} support programs}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "17--19", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lawson:TB2-1-20, + author = "C. L. Lawson and I. Zabala and M. D{\'{\i}}az", + title = "{{Brief functional characterization of the procedures + in the {\TeX}/Pascal compilation unit, {\tt SYSDEP}}}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "20--31", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lawson:TB2-1-32, + author = "C. L. Lawson and I. Zabala and M. D{\'{\i}}az", + title = "{{Detailed specifications of procedures in the + {\TeX}/Pascal compilation unit, {\tt SYSDEP}}}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "32--47", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Doherty:TB2-1-48, + author = "Barry Doherty", + title = "{Output devices: {A new column}}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "48--48", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Berns:TB2-1-48, + author = "Eagle Berns", + title = "{{Status of {\TeX} on the Stanford 370/3033 + systems}}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "48--48", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Doherty:TB2-1-48-2, + author = "Barry Doherty and Barbara Beeton", + title = "{AMS site report}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "48--49", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Incerpi:TB2-1-49, + author = "Janet Incerpi", + title = "{{The status of {\VAX}/{\TeX} at Brown}}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "49--50", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hodge:TB2-1-51, + author = "T. D. Hodge", + title = "{{Report from the North Star, or, {\TeX} at the + University of Minnesota}}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "51--51", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Stromquist:TB2-1-51, + author = "Ralph Stromquist", + title = "{{{\TeX} is available for Univac 1100 systems}}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "51--51", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Totland:TB2-1-51, + author = "Helge Totland", + title = "{{Report on the use of {\TeX} at Computas A/S, Norway; + Nord 100 computer: 16 bit ``big mini''}}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "51--52", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB2-1-53, + author = "Barbara Beeton", + title = "{Disappearing digits; {Undisciplined uppercase}}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "53--53", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB2-1-53-2, + author = "Barbara Beeton", + title = "{How to prepare a file for publication in {\TUB}}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "53--54", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Diaz:TB2-1-55, + author = "Max D{\'{\i}}az", + title = "{{\TeX} macro package}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "55--55", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Keller:TB2-1-56, + author = "Arthur M. Keller", + title = "{Anatomy of a {\TeX} macro package}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "56--86", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Price:TB2-1-87, + author = "Lynne A. Price and Patrick Milligan", + title = "{{{\tt NOFILL} program with Pascal source}}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "87--97", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Price:TB2-1-98, + author = "Lynne A. Price", + title = "{List macros}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "98--110", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Price:TB2-1-111, + author = "Lynne A. Price", + title = "{Table of contents macros}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "111--118", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Milligan:TB2-1-119, + author = "Patrick Milligan and Lynne A. Price", + title = "{Utility macros}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "119--121", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Price:TB2-1-122, + author = "Lynne A. Price", + title = "{Hebrew letter (with source)}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "122--124", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Price:TB2-1-125, + author = "Lynne A. Price", + title = "{Two slides}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "125--126", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eck:TB2-1-127, + author = "David Eck", + title = "{Report from an early {\AmSTeX} user}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "127--127", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hirst:TB2-1-127, + author = "Graeme Hirst", + title = "Letters", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "127--127", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB2-1-128, + author = "Anonymous", + title = "{Appendix A.\ \ {Output samples from a paper by David + Eck}}", + journal = j-TUGboat, + volume = "2", + number = "1", + pages = "128--135", + month = feb, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB2-2-2, + author = "Anonymous", + title = "{Addresses of officers, authors and others}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "2--2", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB2-2-3, + author = "Anonymous", + title = "{Official announcements}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "3--3", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Welland:TB2-2-3, + author = "Robert Welland", + title = "{Editor's remarks}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "3--3", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Spivak:TB2-2-3, + author = "Michael Spivak", + title = "{Chairman's report}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "3--4", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Morris:TB2-2-4, + author = "Robert Morris", + title = "{Report on the {May} 1981 {TUG Steering Committee + meeting}}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "4--5", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Whidden:TB2-2-5, + author = "Samuel B. Whidden", + title = "{TUG Treasurer's report}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "5--5", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Morris:TB2-2-5, + author = "Robert Morris", + title = "{Proposal for institutional support of TUG}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "5--6", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Doherty:TB2-2-6, + author = "Barry Doherty", + title = "{{Report: {\TeX} Implementors' Workshop, Stanford, + 14--15 May 1981}}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "6--7", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB2-2-8, + author = "Anonymous", + title = "{Workshop attendees}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "8--8", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Pierce:TB2-2-8, + author = "Tom Pierce", + title = "{Preliminary announcement: TUG meeting, Cincinnati, + January 1982}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "8--8", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Milligan:TB2-2-9, + author = "Patrick Milligan", + title = "{Ask not what TUG can do for you, ask what you can do + for TUG!}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "9--10", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Milligan:TB2-2-10, + author = "Patrick Milligan", + title = "{A proposal for a machine independent tape interchange + standard}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "10--12", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fuchs:TB2-2-12, + author = "David Fuchs", + title = "{{The format of {\TeX}'s DVI files, Version I}}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "12--16", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Zabala:TB2-2-16, + author = "Ignacio Zabala", + title = "{Some feedback from PTEX installations}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "16--19", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Liang:TB2-2-19, + author = "Frank M. Liang", + title = "{{\TeX} and hyphenation}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "19--20", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Harris:TB2-2-21, + author = "Kent S. Harris and Robert M. McClure", + title = "{{\TeX} on small machines}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "21--24", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fuchs:TB2-2-25, + author = "David Fuchs", + title = "{Output device news flash (APS-5 and Linotron 202)}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "25--25", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB2-2-25, + author = "Anonymous", + title = "{Summary of computing equipment and output devices}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "25--25", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Trabb-Pardo:TB2-2-26, + author = "Luis Trabb-Pardo", + title = "{Imagen (Canon LBP-10)}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "26--27", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hodge:TB2-2-28, + author = "Thea Hodge and Michael Frisch", + title = "{{{\TeX} under the North Star}}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "28--28", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sherrod:TB2-2-28, + author = "Phil Sherrod", + title = "{DECSystem-10/20 Implementation Workshop + announcement}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "28--29", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB2-2-29, + author = "Barbara Beeton", + title = "{AMS site report}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "29--29", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Milligan:TB2-2-29, + author = "Patrick Milligan", + title = "{{{\TeX} at the 1981 Spring DECUS U.S.\ Symposium}}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "29--29", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Schwab:TB2-2-29, + author = "Rachel Schwab", + title = "{{{\TeX} at NIH}}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "29--30", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kelly:TB2-2-30, + author = "Bill Kelly", + title = "{An implementation report for the Univac 1100}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "30--33", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Nichols:TB2-2-33, + author = "Monte Nichols", + title = "{{Availability of Oregon Software implementation of + {\TeX} for the {\VAX}/VMS}}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "33--34", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Smith:TB2-2-34, + author = "Barry Smith", + title = "{{{\TeX} for {\VAX}/VMS}}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "34--34", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Doherty:TB2-2-34, + author = "Barry C. W. Doherty", + title = "{TUG Font Committee}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "34--35", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hickey:TB2-2-35, + author = "Thomas B. Hickey", + title = "{{The status of {\MF} at OCLC}}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "35--38", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{LeVeque:TB2-2-39, + author = "William J. LeVeque", + title = "{Font development at the {\AMS}}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "39--40", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Whitney:TB2-2-40, + author = "Ronald Whitney", + title = "{\tt TPHON}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "40--40", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Doherty:TB2-2-40, + author = "Barry Doherty and Ronald Whitney", + title = "{Proofmode and magnification}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "40--42", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB2-2-42, + author = "Barbara Beeton", + title = "{Uppercase update; {Fickle fonts}}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "42--43", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Price:TB2-2-43, + author = "Lynne Price", + title = "{Greetings from the Editor}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "43--43", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB2-2-43, + author = "Anonymous", + title = "{Macros on microfiche}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "43--43", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Milligan:TB2-2-43, + author = "Patrick Milligan", + title = "{Erratum: {\tt NOFILL} program}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "43--44", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Milligan:TB2-2-44, + author = "Patrick Milligan", + title = "{{\TeX} macros for automatic font code allocation}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "44--45", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{McKay:TB2-2-46, + author = "Brendan McKay", + title = "{A macro menagerie}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "46--49", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Spivak:TB2-2-50, + author = "Michael Spivak", + title = "{Macro madness}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "50--54", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Diaz:TB2-2-Appendix-A, + author = "Max D{\'{\i}}az", + title = "{F\'acil {\TeX}}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "Appendix A", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Price:TB2-2-54, + author = "Lynne Price", + title = "{Greetings from the Editor}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "54--54", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB2-2-54, + author = "Anonymous", + title = "{Problems from the {\TeX}arcana course}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "54--56", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Stovall:TB2-2-57, + author = "Johnny Stovall", + title = "{Balancing columns of text and translation}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "57--57", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Spivak:TB2-2-57, + author = "Michael Spivak", + title = "{Input-dependent macro redefinition}", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "57--57", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Price:TB2-2-57, + author = "Lynne Price", + title = "Letters", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "57--58", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Price:TB2-2-58, + author = "Lynne Price", + title = "Dreamboat", + journal = j-TUGboat, + volume = "2", + number = "2", + pages = "58--58", + month = jul, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB2-3-2, + author = "Anonymous", + title = "{Addresses of officers, authors and others}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "2--2", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB2-3-3, + author = "Anonymous", + title = "{Official announcements}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "3--3", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Spivak:TB2-3-3, + author = "Michael Spivak", + title = "{Message from the Chairman}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "3--4", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Whidden:TB2-3-4, + author = "Samuel B. Whidden", + title = "{TUG Treasurer's report}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "4--4", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB2-3-5, + author = "Donald Knuth", + title = "{The current state of things}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "5--6", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Pierce:TB2-3-7, + author = "Tom Pierce", + title = "{{{\TUG} Winter 1982 meeting, January 11--12, 1982, + Cincinnati, Ohio}}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "7--7", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Samuel:TB2-3-7, + author = "Arthur Samuel", + title = "{Pascal-coded {\TeX} errata}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "7--8", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fuchs:TB2-3-8, + author = "David Fuchs", + title = "{The format of PXL files}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "8--12", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sauter:TB2-3-13, + author = "John Sauter", + title = "{Sample of output from an IDS-640}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "13--13", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thedford:TB2-3-14, + author = "Rilla Thedford", + title = "{Output device index}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "14--14", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mooney:TB2-3-14, + author = "Jim Mooney", + title = "{{A Varian output driver in {\VAX}/VMS Fortran}}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "14--15", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Murphy:TB2-3-15, + author = "Timothy Murphy", + title = "{Diabolic {\TeX}}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "15--21", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fuchs:TB2-3-21, + author = "David Fuchs", + title = "{News from the home front (Stanford)}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "21--22", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Frisch:TB2-3-22, + author = "Michael Frisch", + title = "{{{\TeX} under the North Star}}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "22--23", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB2-3-23, + author = "Barbara Beeton", + title = "{A {\TUB} tour: {Excerpts from the {\TeX}nician's + log}}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "23--25", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Carnes:TB2-3-25, + author = "Lance Carnes", + title = "{{{\TeX} for the HP3000}}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "25--26", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Plass:TB2-3-26, + author = "Susan Plass", + title = "{{{\TeX} for the IBM 370}}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "26--27", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rosenschein:TB2-3-27, + author = "Jeffrey S. Rosenschein", + title = "{{{\TeX} in Israel}}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "27--28", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rodgers:TB2-3-28, + author = "David Rodgers", + title = "{{{\TeX} at the University of Michigan, summary of + progress}}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "28--29", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Morris:TB2-3-29, + author = "Robert Morris", + title = "{{{\VAX} on UNIX}}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "29--29", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jackson:TB2-3-29, + author = "Calvin Jackson", + title = "{{{\TeX} at CalTech}}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "29--32", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Incerpi:TB2-3-32, + author = "Janet Incerpi", + title = "{{The status of {\VAX}/{\TeX} at Brown}}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "32--32", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Nichols:TB2-3-32, + author = "Monte C. Nichols", + title = "{{{\VAX}/VMS site report}}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "32--32", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Blair:TB2-3-32, + author = "John Blair", + title = "{{Enhancements of {\VAX}/VMS {\TeX} at Calma}}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "32--34", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sauter:TB2-3-34, + author = "John Sauter", + title = "{``Poor man's'' {\TeX}}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "34--35", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Whitney:TB2-3-35, + author = "Ronald Whitney", + title = "{Font update}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "35--35", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB2-3-35, + author = "Barbara Beeton", + title = "{Don't just {\tt\char`\\let} {\TeX} hang, + {\tt\char`\\raise} or {\tt\char`\\lower} it}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "35--35", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Price:TB2-3-36, + author = "Lynne Price", + title = "{Editor's introduction}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "36--36", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB2-3-36, + author = "Anonymous", + title = "{{\TUB} macro index}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "36--37", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Murphy:TB2-3-37, + author = "Timothy Murphy", + title = "{{Bubbles: A {\TeX}tension in search of a + {\TeX}pert}}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "37--38", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Plass:TB2-3-39, + author = "Michael F. Plass", + title = "{Charting your grammar with {\TeX}}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "39--56", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Nichols:TB2-3-57, + author = "Monte Nichols and Barbara Beeton", + title = "{Chemical notation using {\TeX}}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "57--58", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Price:TB2-3-58, + author = "Lynne Price", + title = "Problems", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "58--61", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB2-3-61, + author = "Anonymous", + title = "{Problems from the {\TeX}arcana class: {Answers}, and + another problem}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "61--65", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Cole:TB2-3-66, + author = "J. M. Cole", + title = "Letters et alia", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "66--66", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sannella:TB2-3-66, + author = "Michael Sannella", + title = "{Formatting a book with {\TeX}: {Experiences} and + observations}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "66--74", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB2-3-xx, + author = "Anonymous", + title = "{Instructions for submitting {\TUB} articles on + magnetic tape}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "??--??", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB2-3-xx-2, + author = "Anonymous", + title = "{Membership application and order form}", + journal = j-TUGboat, + volume = "2", + number = "3", + pages = "??--??", + month = nov, + year = "1981", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB3-1-2, + author = "Anonymous", + title = "{Addresses of officers, authors and others}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "2--2", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB3-1-3, + author = "Anonymous", + title = "{Official announcements}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "3--3", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB3-1-3, + author = "Barbara Beeton", + title = "{Statement of editorial policy}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "3--4", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Morris:TB3-1-4, + author = "Robert Morris", + title = "{{Report on the January 1981 TUG {\SC} meeting}}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "4--5", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB3-1-xx, + author = "Anonymous", + title = "{TUG Winter meeting, January 11--12, 1982, Cincinnati, + Ohio}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "??--??", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{McGaffey:TB3-1-7, + author = "Robert McGaffey and Keith Penny", + title = "{Open letter to TUG}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "7--9", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Price:TB3-1-10, + author = "Lynne A. Price", + title = "{Report on the ANSI X3J6 meeting}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "10--10", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB3-1-10, + author = "Donald Knuth", + title = "{{Fixed-point glue setting\Dash an example of {\tt + WEB}}}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "10--27", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Frisch:TB3-1-28, + author = "Michael J. Frisch", + title = "{{CDC {\TeX}}}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "28--28", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Carnes:TB3-1-28, + author = "Lance Carnes", + title = "{HP3000 site report}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "28--29", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Canzii:TB3-1-29, + author = "G. Canzii and D. Lucarella and A. Pilenga", + title = "{{{\TeX} at the University of Milan}}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "29--29", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Aiello:TB3-1-30, + author = "L. Aiello and S. Pavan", + title = "{{{\TeX} news from Pisa}}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "30--31", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Nichols:TB3-1-32, + author = "Monte C. Nichols", + title = "{{{\VAX}/VMS site report}}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "32--32", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Carnes:TB3-1-32, + author = "Lance Carnes", + title = "{Editor's introduction}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "32--32", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB3-1-33, + author = "Barbara Beeton", + title = "{Another hangup}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "33--33", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Price:TB3-1-33, + author = "Lynne Price", + title = "{Editor's introduction}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "33--33", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB3-1-33, + author = "Anonymous", + title = "{{\TUB} macro index}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "33--35", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeman:TB3-1-35, + author = "Roger L. Beeman", + title = "{Display of a font in table form}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "35--38", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeman:TB3-1-39, + author = "Roger L. Beeman", + title = "{Seating charts}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "39--42", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB3-1-43, + author = "Anonymous", + title = "{{Problems from the {\TeX}arcana class: Answer to the + challenge problem}}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "43--44", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Whidden:TB3-1-xx, + author = "Samuel B. Whidden", + title = "{TUG financial reports}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "??--??", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB3-1-xx-2, + author = "Anonymous", + title = "{Instructions for submitting {\TUB} articles on + magnetic tape}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "??--??", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB3-1-xx-3, + author = "Anonymous", + title = "{Membership application and order form}", + journal = j-TUGboat, + volume = "3", + number = "1", + pages = "??--??", + month = mar, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB3-2-2, + author = "Anonymous", + title = "{Addresses of officers, authors and others}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "2--2", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB3-2-3, + author = "Anonymous", + title = "{Official announcements}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "3--3", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB3-2-4, + author = "Anonymous", + title = "{{The {\TeX} logo: An important note}}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "4--4", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Plass:TB3-2-4, + author = "Susan Plass", + title = "{Report on business meetings, TUG Summer meeting, + Stanford University, July 25--27, 1982}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "4--5", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB3-2-xx, + author = "Anonymous", + title = "{{TUG Summer meeting and {\TeX}82 short course, + Stanford University, July 25--30, 1982}}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "??--??", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{MacKay:TB3-2-7, + author = "Pierre A. MacKay", + title = "{An informal interchange format for {\TeX} files}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "7--8", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Whitney:TB3-2-9, + author = "Ron Whitney", + title = "{{Introduction to {\TeX} and TUG for new users}}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "9--12", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB3-2-113, + author = "Anonymous", + title = "{{\TeX}82 memory structure}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "113", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fuchs:TB3-2-14, + author = "David Fuchs", + title = "{{The format of {\TeX}'s DVI files}}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "14--19", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thedford:TB3-2-20, + author = "Rilla J. Thedford", + title = "{Output devices}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "20--20", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fuchs:TB3-2-20, + author = "David Fuchs", + title = "{News from Stanford}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "20--21", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Plass:TB3-2-21, + author = "Susan Plass", + title = "{Fixes to known bugs in {\TeX}370}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "21--22", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Grosso:TB3-2-22, + author = "Paul Grosso", + title = "{{{\TeX} installation at the University of + Michigan}}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "22--23", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Nichols:TB3-2-23, + author = "Monte C. Nichols and David Kellerman", + title = "{{{\VAX}/VMS site report}}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "23--23", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Carnes:TB3-2-24, + author = "Lance Carnes", + title = "{Editor's introduction}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "24--24", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mong:TB3-2-25, + author = "Sao Khai Mong", + title = "{{A Fortran version of {\MF}}}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "25--25", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB3-2-25, + author = "Barbara Beeton", + title = "{Charting the generation gulf}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "25--26", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jackson:TB3-2-26, + author = "Calvin Jackson", + title = "{Font codes in popular use}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "26--26", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Price:TB3-2-27, + author = "Lynne Price", + title = "{Editor's introduction}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "27--27", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB3-2-27, + author = "Anonymous", + title = "{{\TUB} macro index}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "27--28", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB3-2-28, + author = "Barbara Beeton", + title = "{Multi-column output format}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "28--33", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lamport:TB3-2-34, + author = "Leslie Lamport", + title = "{Some {\TeX} programming hacks}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "34--36", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB3-2-36, + author = "Barbara Beeton", + title = "{Unblocking an {\AmSTeX} tape}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "36--37", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Blanford:TB3-2-38, + author = "Mark Blanford", + title = "{Paragraphs in tables}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "38--38", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB3-2-38, + author = "Anonymous", + title = "{Hanging punctuation}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "38--38", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Whidden:TB3-2-xx, + author = "Samuel B. Whidden", + title = "{TUG financial reports}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "??--??", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB3-2-xx-2, + author = "Anonymous", + title = "{Membership application and order form}", + journal = j-TUGboat, + volume = "3", + number = "2", + pages = "??--??", + month = oct, + year = "1982", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-1-2, + author = "Anonymous", + title = "{Addresses of officers, authors and others}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "2--2", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-1-3, + author = "Anonymous", + title = "{Official announcements}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "3--3", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-1-4, + author = "Anonymous", + title = "{Library subscriptions\Dash What are they?}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "4--4", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Spivak:TB4-1-4, + author = "Michael Spivak", + title = "{{Users' Course in {\AmSTeX}}}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "4--4", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Whidden:TB4-1-xx, + author = "Samuel B. Whidden", + title = "{TUG financial reports}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "??--??", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fuchs:TB4-1-6, + author = "David Fuchs", + title = "{{\TeX}hax summary}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "6--9", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-1-10, + author = "Anonymous", + title = "{Chart: Output devices and computers}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "10--10", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-1-10-2, + author = "Anonymous", + title = "{Index to sample output from various devices}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "10--10", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beebe:TB4-1-11, + author = "Nelson H. F. Beebe", + title = "{Low-cost downloadable font devices}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "11--12", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ion:TB4-1-12, + author = "Patrick Ion and Bill Hall and Rilla J. Thedford", + title = "{{{\TeX} on the OSP130}}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "12--12", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-1-13, + author = "Anonymous", + title = "{Sample output from Florida Data OSP 130}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "13--13", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fuchs:TB4-1-14, + author = "David Fuchs", + title = "{News from all over}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "14--15", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bunner:TB4-1-16, + author = "Irene J. Bunner and John D. Johnson", + title = "{{{\TeX} on the HP-1000}}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "16--16", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Furuta:TB4-1-17, + author = "Richard Furuta and Pierre MacKay", + title = "{Unix {\TeX} site report}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "17--18", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Curtis:TB4-1-18, + author = "Pavel Curtis and Howard Trickey", + title = "{{Porting {\TeX} to {\VAX}/UNIX}}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "18--20", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{MacKay:TB4-1-21, + author = "Pierre MacKay and Richard Furuta", + title = "{{{\TeX} at the University of Washington: Tops-20, + Unix, Versatec, and the Monolithic}}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "21--22", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Nichols:TB4-1-22, + author = "Monte C. Nichols", + title = "{{{\VAX}/VMS site report}}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "22--22", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Krapp:TB4-1-23, + author = "David Krapp", + title = "{{{\TeX} at Calma R\thinspace\&\thinspace D}}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "23--23", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Naugle:TB4-1-23, + author = "Norman Naugle and Bart Childs", + title = "{{{\TeX} at Texas A\thinspace\&\thinspace M + University}}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "23--23", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Carnes:TB4-1-24, + author = "Lance Carnes", + title = "{Editor's introduction}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "24--24", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Guthery:TB4-1-25, + author = "Scott Guthery", + title = "{Pictures are just big letters}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "25--25", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Tobin:TB4-1-26, + author = "Georgia K. M. Tobin", + title = "{Computer calligraphy}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "26--32", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-1-33, + author = "Anonymous", + title = "{Announcement: {\sl Fifth ATypI Working Seminar}, {The + computer and the hand in type design: The aesthetics + and technology of digital letterforms}}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "33--33", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-1-33-2, + author = "Anonymous", + title = "{{\TUB\ macro index}}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "33--35", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB4-1-35, + author = "Barbara Beeton", + title = "{How to build a {\tt\bs strut}}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "35--36", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB4-1-36, + author = "Barbara Beeton", + title = "{Determining hashtable size and other quantities}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "36--37", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mohr:TB4-1-37, + author = "August Mohr", + title = "{Some layout macros}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "37--38", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{McClure:TB4-1-38, + author = "Robert M. McClure", + title = "{Testing the widths of a font}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "38--38", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-1-39, + author = "Anonymous", + title = "{Hanging punctuation}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "39--39", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Code:TB4-1-40, + author = "Maria Code", + title = "{How to obtain {\TeX}82 on tape}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "40--40", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-1-40, + author = "Anonymous", + title = "{Announcement: {\sl Manipulation de Documents\Dash + Journ\'ees Francophones}}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "40--40", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Siegman:TB4-1-41, + author = "A. E. Siegman", + title = "{{\TeX} as a programming language?}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "41--42", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-1-43, + author = "Anonymous", + title = "{{Textset, Inc.\Dash A service for {\TeX} users}}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "43--43", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-1-44, + author = "Anonymous", + title = "{Quality Micro Systems\Dash Lasergrafix 1200}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "44--44", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-1-45, + author = "Anonymous", + title = "{{\TeX82 order form}}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "45--46", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-1-47, + author = "Anonymous", + title = "{Membership application and order form}", + journal = j-TUGboat, + volume = "4", + number = "1", + pages = "47--48", + month = apr, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-2-50, + author = "Anonymous", + title = "{Addresses of officers, authors and others}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "50--50", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-2-551, + author = "Anonymous", + title = "{Official announcements}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "551", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{MacKay:TB4-2-52, + author = "Pierre MacKay", + title = "{Message from the President}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "52--53", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-2-55, + author = "Anonymous", + title = "{Summary of the technical program, July 1983 TUG + meeting}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "55--57", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-2-57, + author = "Anonymous", + title = "{Participants, TUG meeting and {\AmSTeX}82 short + course}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "57--69", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Plass:TB4-2-59, + author = "Susan Plass", + title = "{Final report of the Bylaws Committee}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "59--59", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-2-60, + author = "Anonymous", + title = "{{\TUG}\Dash {TUG Operating Procedures}}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "60--61", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Whidden:TB4-2-62, + author = "Samuel B. Whidden", + title = "{TUG Treasurer's report}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "62--63", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Price:TB4-2-63, + author = "Lynne Price", + title = "{Report on ANSI X3J6}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "63--64", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB4-2-64, + author = "Donald Knuth", + title = "{A note on hyphenation}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "64--65", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fuchs:TB4-2-65, + author = "David Fuchs", + title = "{{{\TeX} vs.\ INI\TeX}}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "65--66", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fuchs:TB4-2-66, + author = "David Fuchs", + title = "{{\TeX}hax summary}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "66--70", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-2-71, + author = "Anonymous", + title = "{Chart: Output devices and computers}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "71--71", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fuchs:TB4-2-72, + author = "David Fuchs", + title = "{{News from the {\TeX} Project}}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "72--73", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mallett:TB4-2-73, + author = "Rick Mallett", + title = "{{{\TeX}82 on CP-6}}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "73--74", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Plass:TB4-2-74, + author = "Susan Plass", + title = "{IBM site report}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "74--74", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Furuta:TB4-2-74, + author = "Richard Furuta", + title = "{Unix {\TeX} site report}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "74--75", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Nichols:TB4-2-75, + author = "Monte C. Nichols", + title = "{{{\VAX}/VMS site report}}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "75--76", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mooney:TB4-2-76, + author = "Jim Mooney", + title = "{{Revised Varian output driver in {\VAX}/VMS + Fortran}}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "76--76", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{MacKay:TB4-2-76, + author = "Pierre MacKay", + title = "{{{\TeX} for Arabic script}}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "76--96", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Carnes:TB4-2-77, + author = "Lance Carnes", + title = "{Table of ``small'' {\TeX} implementations}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "77--7", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Price:TB4-2-78, + author = "Lynne Price", + title = "{{Problems from the TUG meeting:} {Framed slides}; + {Multiple marks}}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "78--79", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-2-79, + author = "Anonymous", + title = "{{\TUB} macro index}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "79--80", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sterken:TB4-2-80, + author = "Jim Sterken", + title = "{First line of paragraph}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "80--81", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Spivak:TB4-2-103, + author = "Michael Spivak", + title = "{Summary of {\AmSTeX}}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "103--126", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-2-127, + author = "Anonymous", + title = "{Textset, Inc.}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "127--127", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-2-127-2, + author = "Anonymous", + title = "{{\TeX} lectures on tape}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "127--127", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-2-128, + author = "Anonymous", + title = "{Imagen Corporation\Dash Intelligent page printer + systems}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "128--128", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-2-129, + author = "Anonymous", + title = "{{{\TeX}82 Order Form}}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "129--130", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB4-2-131, + author = "Anonymous", + title = "{Membership application and order form}", + journal = j-TUGboat, + volume = "4", + number = "2", + pages = "131--132", + month = sep, + year = "1983", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-1-2, + author = "Anonymous", + title = "{Addresses of officers, authors and others}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "2--2", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-1-3, + author = "Anonymous", + title = "{Official announcements}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "3--3", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{MacKay:TB5-1-4, + author = "Pierre MacKay", + title = "{Message from the {President}}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "4--4", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB5-1-4, + author = "Donald E. Knuth.", + title = "{{\TeX} incunabula}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "4--11", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Whidden:TB5-1-12, + author = "Samuel B. Whidden.", + title = "{{TUG} 1983 financial report with comparisons}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "12--13", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-1-13, + author = "Anonymous", + title = "{Preliminary program\Dash {August} 1984 {Stanford} + meeting}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "13--14", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Canzii:TB5-1-14, + author = "G. Canzii and F. Genolini and D. Lucarella", + title = "{Hyphenation of {Italian} words}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "14--15", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-1-15, + author = "Anonymous", + title = "{Hyphenation exception log}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "15--15", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-1-16, + author = "Anonymous", + title = "{Chart: {Output} devices and computers}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "16--16", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-1-17, + author = "Anonymous", + title = "{Index to sample output from various devices}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "17--17", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haus:TB5-1-17, + author = "Goffredo Haus", + title = "{How to tame your phototypesetter by {\TeX}}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "17--17", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Noot:TB5-1-18, + author = "Han Noot", + title = "{{DVI}-code to the {Harris} 7500}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "18--21", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fuchs:TB5-1-22, + author = "David Fuchs", + title = "{News from the {\TeX} {Project}}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "22--23", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lofstedt:TB5-1-23, + author = "Benedict L{\o}fstedt", + title = "{{CDC} {\TeX} at {RECAU}}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "23--23", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Guenther:TB5-1-24, + author = "Dean Guenther and Alan Hagen-Wittbecker and Janene + Winter", + title = "{{\TeX} at {Washington State} {University}}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "24--5", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB5-1-26, + author = "Bart Childs", + title = "{Data {General} site report}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "26--26", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB5-1-26-2, + author = "Bart Childs", + title = "{Prime site report}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "26--26", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Furuta:TB5-1-27, + author = "Richard Furuta", + title = "{Unix {\TeX} site report}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "27--28", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rodgers:TB5-1-28, + author = "D. L. Rodgers and J. J. Sterken and P. Grosso", + title = "{{\TeX} 1.0 on {Sun} workstations}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "28--29", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Nichols:TB5-1-29, + author = "Monte C. Nichols", + title = "{{\VAX}/{VMS} site report}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "29--30", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kellerman:TB5-1-30, + author = "David Kellerman and Barry Smith", + title = "{Notice to {\VAX}/{VMS} users}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "30--30", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-1-31, + author = "Anonymous", + title = "{Metafont {Generic Font} file format}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "31--33", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-1-34, + author = "Anonymous", + title = "{Gray fonts for {Metafont} proofs}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "34--35", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Tobin:TB5-1-36, + author = "Georgia K. M. Tobin", + title = "{The {OCLC Roman} family of fonts}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "36--46", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Carnes:TB5-1-47, + author = "Lance Carnes", + title = "{Table of ``small'' {\TeX} implementations}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "47--47", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB5-1-48, + author = "Barbara Beeton", + title = "{{\tt\bs relax} and watch the numbers}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "48--48", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Daniels:TB5-1-49, + author = "Susan Daniels", + title = "{The {HP} {\TeX} macros}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "49--66", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB5-1-67, + author = "Don Knuth", + title = "{Comments on quality in publishing}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "67--67", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-1-67, + author = "Anonymous", + title = "{Classified}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "67--67", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-1-68, + author = "Anonymous", + title = "{Textset, {Inc.}}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "68--68", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-1-69, + author = "Anonymous", + title = "{{\TeX}82 Order Form}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "69--70", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-1-71, + author = "Anonymous", + title = "{Membership application and order form}", + journal = j-TUGboat, + volume = "5", + number = "1", + pages = "71--72", + month = may, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-2-74, + author = "Anonymous", + title = "{Addresses of officers, authors and others}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "74--74", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-2-75, + author = "Anonymous", + title = "{Official announcements}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "75--75", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{MacKay:TB5-2-76, + author = "Pierre MacKay", + title = "{Message from the {President}}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "76--76", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Welland:TB5-2-77, + author = "Robert Welland", + title = "{Report of the {Publications Committee}}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "77--77", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Keller:TB5-2-77, + author = "Arthur Keller", + title = "{Report of the {Special Projects} {Committee}}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "77--78", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB5-2-78, + author = "Barbara Beeton", + title = "{Submitting items to {\TUB}}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "78--78", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Southall:TB5-2-79, + author = "Richard Southall", + title = "{First principles of typographic design for document + production}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "79--90", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jurgensen:TB5-2-91, + author = "Helmut J{\"u}rgensen", + title = "{Editor's introduction}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "91--91", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Desarmenien:TB5-2-91, + author = "Jacques D{\'e}sarm{\'e}nien", + title = "{How to run {\TeX} in a {French} environment: + {Hyphenation}, fonts, typography}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "91--102", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Schulze:TB5-2-103, + author = "Bernd Schulze", + title = "{German hyphenation and {\it Umlaut\/}s in {\TeX}}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "103--104", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB5-2-105, + author = "Donald E. Knuth", + title = "{A course on {\MF} programming}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "105--118", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hobby:TB5-2-119, + author = "John D. Hobby and Gu Guoan", + title = "{A {Chinese} meta-font}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "119--136", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-2-137, + author = "Anonymous", + title = "{Chart: {Output} devices and computers}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "137--137", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-2-138, + author = "Anonymous", + title = "{Index to sample output from various devices}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "138--138", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rokicki:TB5-2-138, + author = "Tom Rokicki", + title = "{{\tt Dvi\_QMS}: an example of a driver}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "138--139", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rokicki:TB5-2-139, + author = "Tom Rokicki", + title = "{\tt\char`\\special}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "139--140", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fuchs:TB5-2-141, + author = "David Fuchs", + title = "{News from the {\TeX} {Project}}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "141--141", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-2-141, + author = "Anonymous", + title = "{{\TeX} users' activity in {Germany}}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "141--141", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Crawford:TB5-2-141, + author = "John Crawford", + title = "{Prime site report}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "141--141", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Furuta:TB5-2-142, + author = "Richard Furuta", + title = "{Unix {\TeX} site report}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "142--142", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Smith:TB5-2-142, + author = "Barry Smith", + title = "{{\VAX}/{VMS} site report}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "142--142", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Felippa:TB5-2-143, + author = "Carlos A. Felippa", + title = "{Feedback from {\TeX} users at {Lockheed}}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "143--144", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Carnes:TB5-2-145, + author = "Lance Carnes", + title = "{Table of ``small'' {\TeX} implementations}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "145--145", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Clark:TB5-2-146, + author = "Malcolm Clark", + title = "{Mathematical communication with a deaf and blind + student using {\TeX}}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "146--146", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-2-146, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "146--146", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-2-147, + author = "Anonymous", + title = "{Call for papers: {\TeX} for scientific documentation, + {Varenna}, {Italy}, {May} 16--17, 1985}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "147--147", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Whidden:TB5-2-148, + author = "Samuel B. Whidden", + title = "{{\TUG} 1984 financial report with comparisons}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "148--149", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Dupree:TB5-2-149, + author = "Chuck Dupree", + title = "{Report of the {August} 1984 {\SC} meeting}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "149--152", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-2-153, + author = "Anonymous", + title = "{Profile of {\TeX} installations available to {TUG} + members}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "153--155", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-2-156, + author = "Anonymous", + title = "{Talaris talks {\TeX}}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "156--157", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-2-158, + author = "Anonymous", + title = "{Quality {Micro Systems}, {Inc.}}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "158--158", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-2-159, + author = "Anonymous", + title = "{Textset, {Inc.}}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "159--159", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-2-160, + author = "Anonymous", + title = "{The {Metafoundry}}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "160--160", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-2-160-2, + author = "Anonymous", + title = "{Instructors wanted for {TUG} courses}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "160--160", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-2-161, + author = "Anonymous", + title = "{Membership application and order form}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "161--164", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-2-165, + author = "Anonymous", + title = "{Order form for {\AMS} publications}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "165--166", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB5-2-167, + author = "Anonymous", + title = "{{\TeX}82 order form}", + journal = j-TUGboat, + volume = "5", + number = "2", + pages = "167--168", + month = nov, + year = "1984", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-1-2, + author = "Anonymous", + title = "{Addresses of Officers, Authors and Others}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "2--2", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-1-3, + author = "Anonymous", + title = "{Official Announcements}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "3--3", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{MacKay:TB6-1-4, + author = "Pierre MacKay", + title = "{Message from the President}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "4--4", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beck:TB6-1-4, + author = "Lawrence A. Beck", + title = "{ANSI X3V1.8 Liaison Report to the {\TUG}}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "4--5", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-1-5, + author = "Anonymous", + title = "{Acknowledgement of Contributions}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "5--5", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Southall:TB6-1-6, + author = "Richard Southall", + title = "{First principles of typographic design for document + production: Corrigenda}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "6--6", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eppstein:TB6-1-7, + author = "Maureen Eppstein", + title = "{Editor's introduction}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "7--7", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-1-8, + author = "Anonymous", + title = "{Generic font file format}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "8--12", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Tobin:TB6-1-12, + author = "G. K. M. Tobin", + title = "{A bit of doggerel}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "12--12", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-1-13, + author = "Anonymous", + title = "{Chart: Output devices and computers}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "13--15", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Furuta:TB6-1-15, + author = "Richard Furuta", + title = "{Device drivers included on the UNIX {\TeX} + distribution tape}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "15--15", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-1-15, + author = "Anonymous", + title = "{Index to sample output from various devices}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "15--15", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Luvisetto:TB6-1-15, + author = "M. L. Luvisetto and E. Ugolini", + title = "{A {\TeX}82 spooler for VT and dot matrix printers}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "15--16", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-1-16, + author = "Anonymous", + title = "{How to get the latest news via {\TeX}hax}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "16--17", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Crawford:TB6-1-17, + author = "John Crawford", + title = "{Prime site report}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "17--17", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Furuta:TB6-1-18, + author = "Richard Furuta", + title = "{Unix {\TeX} site report}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "18--20", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Smith:TB6-1-20, + author = "Barry Smith", + title = "{{\VAX/VMS site report}}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "20--20", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Cumiskey:TB6-1-21, + author = "James A. Cumiskey", + title = "{{\TeX} for tourists}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "21--25", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Carnes:TB6-1-26, + author = "Lance Carnes", + title = "{Table of ``small'' {\TeX} implementations}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "26--26", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Company:TB6-1-27, + author = "Addison-Wesley Publishing Company", + title = "{{\TeX} now on microcomputers}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "27--28", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Carnes:TB6-1-28, + author = "Lance Carnes", + title = "{PC\thinspace\TeX}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "28--29", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Platt:TB6-1-29, + author = "Craig Platt", + title = "{Macros for two-column format}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "29--30", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eppstein:TB6-1-31, + author = "David Eppstein", + title = "{Trees in {\TeX}}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "31--35", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB6-1-36, + author = "Donald E. Knuth", + title = "{Recipes and fractions}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "36--38", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-1-38, + author = "Anonymous", + title = "{{\TeX}, the program}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "38--38", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-1-39, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "39--39", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-1-39-2, + author = "Anonymous", + title = "{Conference: {\TeX} for scientific documentation, + Como, Italy, May 16--17, 1985}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "39--39", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-1-39-3, + author = "Anonymous", + title = "{TUG Annual Meeting, Stanford University, August + 14--16, 1985}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "39--39", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-1-40, + author = "Anonymous", + title = "{{\TeX} and {\MF} reports available from Stanford + Computer Science Department}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "40--40", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-1-41, + author = "Anonymous", + title = "{Textset, Inc.\Dash {\TeX} and the IBM PC, + \TeX-to-PostScript}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "41--41", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-1-42, + author = "Anonymous", + title = "{Addison-Wesley\Dash Micro{\TeX}}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "42--42", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-1-43, + author = "Anonymous", + title = "{TUG\Dash {\TeX} Lectures on Tape}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "43--43", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-1-44, + author = "Anonymous", + title = "{Textset, Inc.\Dash Professional {\TeX}ware}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "44--44", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-1-445, + author = "Anonymous", + title = "{Talaris}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "445", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-1-446, + author = "Anonymous", + title = "{Personal {\TeX}, Inc.\Dash PC\thinspace{\TeX}}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "446", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-1-cover-3, + author = "Anonymous", + title = "{Intergraph Corporation}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "Cover 3", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-1-47, + author = "Anonymous", + title = "{Membership application and order form}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "47--48", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-1-49, + author = "Anonymous", + title = "{Order form for {\AMS} publications}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "49--50", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-1-51, + author = "Anonymous", + title = "{{\TeX}82 order form}", + journal = j-TUGboat, + volume = "6", + number = "1", + pages = "51--52", + month = mar, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-2-54, + author = "Anonymous", + title = "{Addresses of Officers, Authors and Others}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "54--54", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-2-55, + author = "Anonymous", + title = "{Official Announcements}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "55--55", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-2-56, + author = "Anonymous", + title = "{TUG 1985 Annual Meeting, Stanford University, August + 12--14, 1985}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "56--56", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jurgensen:TB6-2-56, + author = "Helmut J{\"u}rgensen", + title = "{Editor's message}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "56--56", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ferguson:TB6-2-57, + author = "Michael J. Ferguson", + title = "{A multilingual {\mtex}}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "57--58", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB6-2-59, + author = "Barbara Beeton", + title = "{Mathematical symbols and cyrillic fonts ready for + distribution}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "59--63", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-2-64, + author = "Anonymous", + title = "{Chart: Output devices and computers}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "64--66", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-2-66, + author = "Anonymous", + title = "{Index to sample output from various devices}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "66--66", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Spragens:TB6-2-66, + author = "Alan Spragens", + title = "{Graphics commands for {\TeX}\Dash Discussion in + {\TeX}hax conference}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "66--68", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Naugle:TB6-2-69, + author = "Norman W. Naugle and Tomas G. Rokicki", + title = "{Miscellaneous activity at Texas A\&M}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "69--72", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-2-73, + author = "Anonymous", + title = "{{\TeX}hax activity at Spring DECUS}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "73--73", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Spragens:TB6-2-73, + author = "Alan Spragens", + title = "{CMS {\TeX} site report}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "73--75", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Riesel:TB6-2-76, + author = "Hans Riesel", + title = "{Report on experience with {\TeX}80}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "76--79", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Marriott:TB6-2-80, + author = "Gregory Marriott", + title = "{A {\TeX}82 implementation on the HP9000 series 500}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "80--80", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Furuta:TB6-2-81, + author = "Richard Furuta", + title = "{Unix {\TeX} site report}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "81--81", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Smith:TB6-2-81, + author = "Barry Smith", + title = "{{\VAX}/VMS site report}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "81--81", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Carnes:TB6-2-82, + author = "Lance Carnes", + title = "{Table of ``small'' {\TeX} implementations}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "82--82", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hendrickson:TB6-2-83, + author = "Amy Hendrickson", + title = "{Some diagonal line hacks}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "83--86", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hendrickson:TB6-2-86, + author = "Amy Hendrickson", + title = "{A (possibly) totally useless macro}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "86--86", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mohr:TB6-2-87, + author = "August Mohr", + title = "{Multi-column layout in {\TeX}80}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "87--95", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bonnetain:TB6-2-96, + author = "Jean-Luc Bonnetain", + title = "{Author vs.\ proofreader}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "96--96", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Greene:TB6-2-96, + author = "John Greene", + title = "{Transatlantic {\TeX}}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "96--96", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-2-97, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "97--97", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-2-98, + author = "Anonymous", + title = "{International Conference on Text Processing and + Document Manipulation, Nottingham, England, April + 14--16, 1986}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "98--98", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-2-98-2, + author = "Anonymous", + title = "{PROTEXT II, Dublin, Ireland, October 21--25, 1985}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "98--98", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Whidden:TB6-2-99, + author = "Samuel B. Whidden", + title = "{TUG 1984 financial report with comparisons}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "99--100", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-2-100, + author = "Anonymous", + title = "{The Metafoundry\Dash Introducing {\smc mf medley}}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "100--100", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-2-101, + author = "Anonymous", + title = "{{\TeX} and {\MF} reports available from the Stanford + Computer Science Department}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "101--101", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-2-102, + author = "Anonymous", + title = "{Addison-Wesley\Dash Micro{\TeX}}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "102--102", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-2-103, + author = "Anonymous", + title = "{Textset, Inc.}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "103--103", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-2-104, + author = "Anonymous", + title = "{Personal {\TeX}, Inc.\Dash PC\thinspace{\TeX} is + here}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "104--104", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-2-cover-3, + author = "Anonymous", + title = "{{\TeX} lectures on tape}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "Cover 3", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-2-105, + author = "Anonymous", + title = "{Membership application and order form}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "105--106", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-2-107, + author = "Anonymous", + title = "{{\TeX}82 order form}", + journal = j-TUGboat, + volume = "6", + number = "2", + pages = "107--108", + month = jul, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-3-110, + author = "Anonymous", + title = "{Addresses of officers, authors and others}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "110--110", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-3-111, + author = "Anonymous", + title = "{Official announcements}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "111--111", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{MacKay:TB6-3-112, + author = "Pierre MacKay", + title = "{Message from the outgoing President}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "112--113", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB6-3-113, + author = "Bart Childs", + title = "{From the President}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "113--114", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-3-114, + author = "Anonymous", + title = "{Statement of principles}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "114--114", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rokicki:TB6-3-115, + author = "Tomas Rokicki", + title = "{Packed ({\tt PK}) font file format}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "115--120", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-3-121, + author = "Anonymous", + title = "{Hyphenation exception log}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "121--121", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Tobin:TB6-3-122, + author = "Georgia K. M. Tobin", + title = "{Editor's introduction}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "122--123", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB6-3-124, + author = "Barbara Beeton", + title = "{Mathematical symbols and cyrillic fonts ready for + distribution (revised)}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "124--128", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-3-129, + author = "Anonymous", + title = "{Charts: Output devices and computers}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "129--131", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-3-131, + author = "Anonymous", + title = "{Index to sample output from various devices}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "131--131", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-3-131-2, + author = "Anonymous", + title = "{The {\TeX} directories at the ``source''\Dash + Stanford}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "131--132", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-3-132, + author = "Anonymous", + title = "{{\TeX} in the UK and Ireland: \TeX line}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "132--132", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB6-3-132, + author = "Bart Childs", + title = "{Data General distribution news}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "132--133", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Platt:TB6-3-133, + author = "Craig Platt", + title = "{MVS {\TeX} site report}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "133--134", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Guenther:TB6-3-134, + author = "Dean Guenther", + title = "{{\TeX} at Washington State University}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "134--134", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hayashi:TB6-3-135, + author = "Tsunetoshi Hayashi", + title = "{Reports on {\TeX} implementation at HUCC}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "135--136", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Furuta:TB6-3-137, + author = "Richard Furuta", + title = "{Unix {\TeX} site report}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "137--138", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Smith:TB6-3-139, + author = "Barry Smith", + title = "{{\VAX/VMS site report}}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "139--139", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-3-139, + author = "Anonymous", + title = "{Table of ``small'' {\TeX} implementations}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "139--139", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Pfeffer:TB6-3-140, + author = "Mitch Pfeffer and Alan Hoenig", + title = "{Assembling a moderately-priced, high-performance + clone of the IBM PC for running \TeX}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "140--145", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB6-3-146, + author = "Barbara Beeton", + title = "{Review: The Boston Computer Society's IBM PC \& + compatibles technical word processor review}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "146--149", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB6-3-150, + author = "Barbara Beeton", + title = "{The {\tt PLAIN} truth: {\tt\bs buildrel}}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "150--150", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lamport:TB6-3-150, + author = "Leslie Lamport", + title = "{Announcement of {\LaTeX} Version 2.09}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "150--151", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Leban:TB6-3-151, + author = "Bruce Leban", + title = "{A solution to the tower of Hanoi problem using + {\TeX}}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "151--154", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Cameron:TB6-3-155, + author = "A. G. W. Cameron", + title = "{Wiggly lines}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "155--155", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wonneberger:TB6-3-156, + author = "Reinhard Wonneberger", + title = "{Stream lists and related list types for {\LaTeX}}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "156--157", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-3-158, + author = "Anonymous", + title = "{{\LaTeX} command summary (Version 2.05) available + from TUG}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "158--158", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hendricks:TB6-3-158, + author = "Rick Hendricks", + title = "{Inquiry: Historical compilations}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "158--158", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hornbach:TB6-3-158, + author = "Kathy Hornbach", + title = "{Inquiry: 35mm slides with Sli{\TeX}}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "158--158", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-3-159, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "159--159", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-3-159-2, + author = "Anonymous", + title = "{Acknowledgement of contributions}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "159--159", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-3-160, + author = "Anonymous", + title = "{{\TeX} for Scientific Documentation, Strasbourg, + France, June 19--21, 1986}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "160--160", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-3-cover-3, + author = "Anonymous", + title = "{TUG Annual Meeting, Tufts University, July 28--31, + 1986}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "Cover 3", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Whidden:TB6-3-161, + author = "Samuel B. Whidden", + title = "{Proposed TUG 1986 budget}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "161--161", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-3-162, + author = "Anonymous", + title = "{Addison-Wesley\Dash Micro{\TeX}}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "162--162", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-3-163, + author = "Anonymous", + title = "{Textset, Inc.}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "163--163", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-3-164, + author = "Anonymous", + title = "{TUG\Dash {\TeX} lectures on videotape}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "164--165", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-3-166, + author = "Anonymous", + title = "{Personal {\TeX}, Inc.\Dash PC\thinspace{\TeX}}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "166--166", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-3-167, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "167--168", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-3-169, + author = "Anonymous", + title = "{TUG order form}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "169--172", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB6-3-173, + author = "Anonymous", + title = "{{\TeX}82 order form}", + journal = j-TUGboat, + volume = "6", + number = "3", + pages = "173--174", + month = nov, + year = "1985", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-1-4, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "4--5", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-1-6, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "6--6", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB7-1-7, + author = "Bart Childs", + title = "{From the President}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "7--7", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-1-7, + author = "Anonymous", + title = "{Acknowledgment of contributions}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "7--7", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-1-7-2, + author = "Anonymous", + title = "{Donald E. Knuth Scholarship}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "7--7", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-1-8, + author = "Anonymous", + title = "{Special credits for this issue}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "8--8", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-1-8-2, + author = "Anonymous", + title = "{Conference: \TeX\ for Scientific Documentation}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "8--8", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-1-8-3, + author = "Anonymous", + title = "{{\TeX\ Courses}}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "8--9", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-1-9, + author = "Anonymous", + title = "{Software Column: Call for Papers}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "9--10", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-1-10, + author = "Anonymous", + title = "{Addenda: The BCS Word Processor Review}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "10--10", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lamport:TB7-1-11, + author = "Leslie Lamport", + title = "{{\LaTeX\ input to ACM journals}}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "11--11", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Howell:TB7-1-11, + author = "Gordon Howell", + title = "{Translators to generate \TeX\ files}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "11--11", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fuchs:TB7-1-12, + author = "David Fuchs", + title = "{News from the \TeX\ Project}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "12--12", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fox:TB7-1-12, + author = "Jim Fox", + title = "{CDC Cyber Site Report}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "12--12", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB7-1-12, + author = "Bart Childs", + title = "{Data General Site Report}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "12--12", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Smith:TB7-1-13, + author = "Barry Smith", + title = "{Macintosh Site Report}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "13--13", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{MacKay:TB7-1-13, + author = "Pierre MacKay", + title = "{UNIX\ Site Report}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "13--14", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Smith:TB7-1-15, + author = "Barry Smith", + title = "{VAX/VMS Site Report}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "15--15", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lamport:TB7-1-15, + author = "Leslie Lamport", + title = "{{\LaTeX\ News}}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "15--16", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ferguson:TB7-1-16, + author = "Michael Ferguson", + title = "{Multilingual \mtex\ update}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "16--16", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Auerbach:TB7-1-17, + author = "Alan Auerbach", + title = "{Automatic page sizing}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "17--17", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-1-17, + author = "Anonymous", + title = "{Where to find \TeX\ file descriptions}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "17--17", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB7-1-18, + author = "B. Beeton", + title = "{The PLAIN truth: {\tt\bs displaylines}, {\tt\bs + ialign}}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "18--19", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Appelt:TB7-1-20, + author = "W. Appelt and K. Horn", + title = "{Multiple changefiles in {\tt WEB}}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "20--21", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Damerell:TB7-1-22, + author = "R. M. Damerell", + title = "{Error detecting changes to TANGLE}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "22--24", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Trevorrow:TB7-1-25, + author = "A. Trevorrow", + title = "{DVIto\kern-.15em VDU: A \TeX\ page previewer}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "25--36", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Varian:TB7-1-37, + author = "H. Varian and J. Sterken", + title = "{MacDraw pictures in \TeX\ documents}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "37--40", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Maus:TB7-1-41, + author = "D. Maus and B. Baker", + title = "{DVILASER/PS extensions to \LaTeX}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "41--47", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fina:TB7-1-48, + author = "P. Fina", + title = "{Results of the 1985 TUG Questionnaire}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "48--50", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB7-1-51, + author = "A. Hoenig and M. Pfeffer", + title = "{{\TeX\ text editors for the IBM PC}}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "51--54", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Senn:TB7-1-55, + author = "M. Senn", + title = "{{\TeX\ output previewers}}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "55--56", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB7-1-57, + author = "B. Beeton", + title = "{{\TeX\ output devices}}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "57--66", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB7-1-67, + author = "B. Beeton", + title = "{Memory Sizes in Various Implementations of \TeX}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "67--70", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Carnes:TB7-1-71, + author = "L. Carnes", + title = "{``Small'' \TeX\ implementations}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "71--72", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-1-73, + author = "Anonymous", + title = "{Institutional Members}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "73--74", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-1-88, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "7", + number = "1", + pages = "88--88", + month = mar, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-2-91, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "91--92", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB7-2-93, + author = "Barbara Beeton", + title = "{Comments on the format of this issue}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "93--93", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB7-2-93-2, + author = "Barbara Beeton", + title = "{{\sl Computers \& Typesetting\/} coming out party}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "93--93", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gordon:TB7-2-93, + author = "Peter Gordon", + title = "{Introducing Donald Knuth and {\sl Computers \& + Typesetting}}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "93--95", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB7-2-95, + author = "Donald Knuth", + title = "{Remarks to celebrate the publication of {\sl + Computers \& Typesetting}}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "95--98", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jackson:TB7-2-98, + author = "Cal Jackson", + title = "{Comments on document design prompted by the new \TUB\ + format}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "98--99", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hornbach:TB7-2-99, + author = "Kathy Hornbach", + title = "{{\VAX\ Language Sensitive Editor Templates and Guide + for use with \LaTeX}}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "99--99", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Tobin:TB7-2-100, + author = "Georgia K. M. Tobin", + title = "Font Forum", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "100--101", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB7-2-101, + author = "Donald E. Knuth", + title = "{The \TeX\ logo in various fonts}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "101--102", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB7-2-102, + author = "Alan Hoenig", + title = "{Meta-\MF: An exhibit at the Cooper Union, NYC}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "102--102", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-2-102, + author = "Anonymous", + title = "{Addenda to the output device charts}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "102--102", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rokicki:TB7-2-103, + author = "Tomas Rokicki", + title = "{{\TeX\ on the Amiga}}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "103--103", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fox:TB7-2-103, + author = "Jim Fox", + title = "{CDC Cyber site report}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "103--103", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Crawford:TB7-2-103, + author = "John Crawford", + title = "{Prime 50 Series site report}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "103--103", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Pfeffer:TB7-2-104, + author = "Mitch Pfeffer and Alan Hoenig", + title = "{The Sperry IT: An IBM AT compatible}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "104--105", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ferguson:TB7-2-106, + author = "Michael J. Ferguson", + title = "{Table Making with INRS\TeX}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "106--109", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Becker:TB7-2-109, + author = "Helmut Becker", + title = "{WEB system extensions}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "109--109", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kennedy:TB7-2-109, + author = "John Kennedy", + title = "{Drama scripts}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "109--109", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fernandez:TB7-2-110, + author = "Sylvester Fernandez", + title = "{Marking changes in revised documents}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "110--110", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Alexander:TB7-2-110, + author = "James Alexander", + title = "{Side-by-side source/output samples; First-line + special handling}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "110--110", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kleine:TB7-2-111, + author = "Karl Kleine", + title = "{Customized editors for \TeX}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "111--111", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ludden:TB7-2-111, + author = "Jim Ludden", + title = "{Post-\LaTeX\ Index Formatting}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "111--111", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Spivak:TB7-2-111, + author = "Mike Spivak", + title = "Letters", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "111--111", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-2-112, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "112--112", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-2-113, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "113--114", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-2-115, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "115--116", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-2-117, + author = "Anonymous", + title = "{{\TeX82 order form}}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "117--118", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-2-119, + author = "Anonymous", + title = "{Addison-Wesley\Dash Computers \& Typesetting}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "119--119", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-2-120, + author = "Anonymous", + title = "{Personal \TeX, Inc.\Dash\TeX\ for the PC}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "120--120", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-2-121, + author = "Anonymous", + title = "{Talaris\Dash Talaris 810}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "121--121", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-2-122, + author = "Anonymous", + title = "{Computer Composition Corporation\Dash Typesetting + services}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "122--122", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-2-123, + author = "Anonymous", + title = "{Textset, Inc.\Dash New directions}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "123--123", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-2-124, + author = "Anonymous", + title = "{FTL systems Inc.\Dash \TeX\ for the Macintosh}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "124--124", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-2-cover-3, + author = "Anonymous", + title = "{Addison-Wesley\Dash \TeX\ news}", + journal = j-TUGboat, + volume = "7", + number = "2", + pages = "Cover 3", + month = jun, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-3-127, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "127--128", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB7-3-129, + author = "Bart Childs", + title = "{Message from the President}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "129--130", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-3-130, + author = "Anonymous", + title = "{Donald E. Knuth Scholarship}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "130--130", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{MacKay:TB7-3-131, + author = "Pierre MacKay", + title = "{1987 Annual Meeting, Call for papers: \TeX\ for the + Humanities}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "131--131", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beck:TB7-3-132, + author = "Lawrence A. Beck", + title = "{Report from ANSI X3V1}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "132--132", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wonneberger:TB7-3-132, + author = "Reinhard Wonneberger", + title = "{Towards a \TeX\ philology group}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "132--133", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mann:TB7-3-133, + author = "Laurie Mann", + title = "{An idea exchange on \TeX\ training}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "133--133", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Guntermann:TB7-3-134, + author = "Klaus Guntermann and Wolfgang R{\"u}lling", + title = "{Another approach to multiple changefiles}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "134--134", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Guntermann:TB7-3-134-2, + author = "Klaus Guntermann and Joachim Schrod", + title = "{{\WEB\ adapted to C}}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "134--137", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Alexander:TB7-3-138, + author = "James Alexander", + title = "{{\Tib: a reference setting package for \TeX}}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "138--140", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rokicki:TB7-3-140, + author = "Tomas Rokicki", + title = "{Packed file format update}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "140--144", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-3-145, + author = "Anonymous", + title = "{Hyphenation exception log}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "145--145", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bigelow:TB7-3-146, + author = "Charles Bigelow", + title = "{Notes on typeface protection}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "146--151", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sauter:TB7-3-151, + author = "John Sauter", + title = "{Building Computer Modern Fonts}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "151--152", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jansen:TB7-3-152, + author = "Rick Jansen", + title = "{{\TeX\ and Macintosh\dash new directions in + Preview}}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "152--158", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Damerell:TB7-3-159, + author = "R. M. Damerell", + title = "{{\tt Crudetype}: An adaptable device driver}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "159--163", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Brown:TB7-3-164, + author = "Malcolm Brown", + title = "{{\TeX hax returns}}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "164--164", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Guntermann:TB7-3-164, + author = "Klaus Guntermann", + title = "{Porting \TeX\ to the Atari ST}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "164--164", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fox:TB7-3-164, + author = "Jim Fox", + title = "{CDC Cyber site report}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "164--165", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Platt:TB7-3-165, + author = "Craig Platt", + title = "{MVS \TeX\ site report}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "165--166", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Spragens:TB7-3-167, + author = "Alan Spragens", + title = "{CMS \TeX\ site report}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "167--167", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB7-3-167, + author = "Alan Hoenig and Mitch Pfeffer", + title = "{Real typesetting from your personal computer}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "167--168", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thull:TB7-3-169, + author = "Klaus Thull", + title = "{Harnessing \TeX\ to compute third root of unity + primes}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "169--170", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ehrbar:TB7-3-171, + author = "Hans Ehrbar", + title = "{Statistical graphics with \TeX}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "171--175", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Damrau:TB7-3-176, + author = "Jackie Damrau and Ken Yap", + title = "{Call for participation}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "176--176", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lamport:TB7-3-176, + author = "Leslie Lamport", + title = "{{\LaTeX\ bugs}}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "176--176", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wonneberger:TB7-3-177, + author = "Reinhard Wonneberger", + title = "{Chapter mottos and optional semi-parameters}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "177--185", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hofmann:TB7-3-186, + author = "Thomas Hofmann", + title = "{A \LaTeX\ addition for formatting indexes}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "186--186", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Aurbach:TB7-3-187, + author = "Richard L. Aurbach", + title = "{Idx\TeX\ and Glo\TeX\dash indexes and glossaries}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "187--187", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lee:TB7-3-187, + author = "John Lee", + title = "{Form letters}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "187--187", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fox:TB7-3-187, + author = "Jim Fox", + title = "{Change bars}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "187--188", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sewell:TB7-3-188, + author = "Wayne Sewell", + title = "{Bugs in \MF ware}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "188--189", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-3-190, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "190--190", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-3-191, + author = "Anonymous", + title = "{INRIA course: Structures for Documents, Aussois, + France, January 19--23, 1987}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "191--191", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-3-191-2, + author = "Anonymous", + title = "{{\MF, \TeX\ and the Humanities, Rennes, France}}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "191--191", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ohno:TB7-3-191, + author = "Yoshio Ohno", + title = "{Japanese \TeX\ Users Group}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "191--192", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB7-3-192, + author = "Barbara Beeton", + title = "{{\TeX\ in Europe, Summer 1986}}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "192--193", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-3-193, + author = "Anonymous", + title = "{Contents: Proceedings of ``\TeX\ for Scientific + Documentation'', Strasbourg, France, June 19--21, + 1986}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "193--194", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-3-196, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "196--197", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lachmann:TB7-3-194, + author = "Susanne Lachmann", + title = "{The Tiger-\TeX\ Workstation}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "194--195", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-3-199, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "199--200", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-3-201, + author = "Anonymous", + title = "{{\TeX\ order form}}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "201--202", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-3-198, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "198--198", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB7-3-cover-3, + author = "Anonymous", + title = "{TUG\Dash Job opening, Technical assistant}", + journal = j-TUGboat, + volume = "7", + number = "3", + pages = "Cover 3", + month = oct, + year = "1986", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-1-3, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "3--4", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB8-1-5, + author = "Bart Childs", + title = "{President's message}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "5--5", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-1-5, + author = "Anonymous", + title = "{Acknowledgement of contributions}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "5--5", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-1-6, + author = "Anonymous", + title = "{Donald E. Knuth Scholarship}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "6--6", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB8-1-6, + author = "Donald Knuth", + title = "{It happened: announcement of \TeX\ 2.1}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "6--6", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wolf:TB8-1-7, + author = "Kurt Bernardo Wolf", + title = "{News of \TeX\ users in Mexico}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "7--7", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Krick:TB8-1-7, + author = "Linda Krick", + title = "{Attention, Australian TUG members}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "7--7", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Siegman:TB8-1-8, + author = "Tony Siegman", + title = "{Book publishing using \TeX}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "8--11", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lamport:TB8-1-12, + author = "Leslie Lamport", + title = "{{\TeX\ Output for the Future}}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "12--12", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Levy:TB8-1-12, + author = "Silvio Levy", + title = "{{\tt WEB} adapted to C, another approach}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "12--13", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB8-1-14, + author = "Donald Knuth and Pierre MacKay", + title = "{Mixing right-to-left texts with left-to-right + texts}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "14--25", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Tobin:TB8-1-26, + author = "Georgia K. M. Tobin", + title = "{Some empirical observations on \MF\ design}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "26--28", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Billawala:TB8-1-29, + author = "Neenie Billawala", + title = "{Write-white printing engines and tuning fonts with + \MF}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "29--32", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB8-1-33, + author = "Barbara Beeton", + title = "{{\MF\ mode\_def\/ settings for various \TeX\ output + devices}}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "33--33", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-1-34, + author = "Anonymous", + title = "{A new \TeX-based book typesetting package for the + Macintosh}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "34--34", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-1-34-2, + author = "Anonymous", + title = "{Charts: \TeX\ output devices}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "34--40", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beebe:TB8-1-41, + author = "Nelson H. F. Beebe", + title = "{Public domain \TeX\ DVI driver family}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "41--42", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Trevorrow:TB8-1-42, + author = "Andrew Trevorrow", + title = "{DVIto\kern-.1emVDU 1.7 and PSPRINT 1.1}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "42--45", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-1-45, + author = "Anonymous", + title = "{Benson-Varian 9211 looking for a home}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "45--45", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Brown:TB8-1-46, + author = "Malcolm Brown", + title = "{Notes from \TeX hax}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "46--46", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fuss:TB8-1-46, + author = "Edgar Fu{\ss}", + title = "{{\TeX\&Co.\ on the ST, Part 2}}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "46--47", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB8-1-47, + author = "Bart Childs", + title = "{Data General distribution news}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "47--47", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lillqvist:TB8-1-47, + author = "Tor Lillqvist", + title = "{{\TeX82 and \MF84 for the HP1000 A-series}}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "47--48", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Crawford:TB8-1-48, + author = "John Crawford", + title = "{Prime 50 series site report}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "48", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fox:TB8-1-49, + author = "Jim Fox", + title = "{Multiple, independent marks}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "49--53", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Garavelli:TB8-1-53, + author = "John S. Garavelli", + title = "{Form letter macros}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "53--53", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bell:TB8-1-54, + author = "Edwin V. {Bell, II}", + title = "{AutoLetter: A \TeX\ form letter procedure}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "54--57", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Yap:TB8-1-58, + author = "Ken Yap", + title = "{Contents of \LaTeX\ style collection as of 15th + February 1987}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "58--59", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{McKinstry:TB8-1-60, + author = "Graeme McKinstry", + title = "{Form letters}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "60--61", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Zocchi:TB8-1-62, + author = "Maurizio Zocchi", + title = "{{\LaTeX's Index Processing}}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "62--62", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wonneberger:TB8-1-63, + author = "Reinhard Wonneberger", + title = "{Typesetting `Normaltext'}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "63--72", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB8-1-73, + author = "Alan Hoenig", + title = "{{\TeX\ does windows}}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "73--73", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB8-1-73, + author = "Donald Knuth", + title = "{Problem for a Saturday afternoon}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "73--73", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Dyck:TB8-1-74, + author = "Jennifer Dyck", + title = "{APA style in \LaTeX}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "74--74", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hawkins:TB8-1-74, + author = "Judy Hawkins", + title = "{Chemical formulae}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "74--74", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Celoni:TB8-1-74, + author = "James R. {Celoni, S. J.}", + title = "{Ancient non-Roman languages}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "74--74", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Michailovsky:TB8-1-74, + author = "Boyd Michailovsky", + title = "{International Phonetic Alphabet}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "74--74", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Cutter:TB8-1-74, + author = "Lawrence D. Cutter", + title = "{Line numbering}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "74--74", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Nash:TB8-1-75, + author = "David Nash", + title = "{Dictionary formatting}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "75--75", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Horstman:TB8-1-75, + author = "Helen S. Horstman", + title = "{Printing out selected pages}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "75--75", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ryan:TB8-1-75, + author = "Raymond A. Ryan", + title = "{Wanted: Help for beginners}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "75--75", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thulin:TB8-1-76, + author = "Anders Thulin", + title = "{More hyphenation exceptions}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "76--76", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{McWorter:TB8-1-76, + author = "William A. McWorter", + title = "{New fonts for mathematics?}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "76--77", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Wed Jul 09 12:06:16 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-1-77, + author = "Anonymous", + title = "{Workshop on Font Design Systems (Sophia-Antipolis, + France, 18--19 May 1987)}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "77--77", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-1-77-2, + author = "Anonymous", + title = "{Special Spring Quarter course (Stanford, Donald + Knuth): \TeX: The Program: A case study in software + design}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "77--77", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-1-78, + author = "Anonymous", + title = "{Call for Papers: Electronic Publishing, Document + Manipulation and Typography (Nice, France, 20--22 April + 1988)}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "78--87", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-1-79, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "79--80", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-1-81, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "81--82", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-1-83, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "83--84", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-1-85, + author = "Anonymous", + title = "{{\TeX\ order form}}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "85--86", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-1-cover-3, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "Cover 3", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-1-cover-3-2, + author = "Anonymous", + title = "{TUG\Dash Job opening, Technical assistant}", + journal = j-TUGboat, + volume = "8", + number = "1", + pages = "Cover 3", + month = apr, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-2-99, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "99--100", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB8-2-101, + author = "Bart Childs", + title = "{From the President}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "101--101", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Koren:TB8-2-101, + author = "Gideon Koren", + title = "{How to improve the chances for acceptance of your + scientific paper}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "101--102", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Alexander:TB8-2-102, + author = "James Alexander", + title = "{{\Tib: a reference setting package, update}}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "102--102", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rezende:TB8-2-102, + author = "Pedro de Rezende", + title = "{Portuguese hyphenation table for \TeX}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "102--102", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ferguson:TB8-2-102, + author = "Michael Ferguson", + title = "{A (hopefully) final extension of multilingual + \mtex}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "102--103", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Saito:TB8-2-103, + author = "Yasuki Saito", + title = "{Report on \JTeX: A Japanese \TeX}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "103--116", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sewell:TB8-2-117, + author = "E. Wayne Sewell", + title = "{Multiple changefiles: the adventure continues}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "117--118", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sewell:TB8-2-118, + author = "E. Wayne Sewell", + title = "{How to {\tt MANGLE} your software: the \WEB\ system + for Modula-2}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "118--122", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sewell:TB8-2-123, + author = "E. Wayne Sewell", + title = "{The {\tt SCANTEX} processor}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "123--128", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gourlay:TB8-2-128, + author = "John S. Gourlay", + title = "{Blacker Thoughts}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "128--129", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sauter:TB8-2-129, + author = "John Sauter", + title = "{Updated Computer Modern fonts for the LN03}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "129--130", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Crawford:TB8-2-131, + author = "John Crawford", + title = "{MFtool: A \MF\ script-driven processing facility}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "131--131", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB8-2-132, + author = "Barbara Beeton", + title = "{Update: \MF\ {\bf mode\_def\/} settings for \TeX\ + output devices}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "132--134", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB8-2-135, + author = "Donald E. Knuth", + title = "{Fonts for digital halftones}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "135--160", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{McGaffey:TB8-2-161, + author = "Robert W. McGaffey", + title = "{The ideal \TeX\ driver}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "161--163", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hosek:TB8-2-163, + author = "Don Hosek", + title = "{{\TeX\ output devices (with charts)}}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "163--170", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Dunn:TB8-2-171, + author = "Alec Dunn", + title = "{Using PostScript with \TeX}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "171--173", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-2-237, + author = "Anonymous", + title = "{Index to sample output from various devices}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "237--237", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Vanderburg:TB8-2-174, + author = "Glenn L. Vanderburg", + title = "{TEX-L access for Bitnet users}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "174--174", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mann:TB8-2-174, + author = "Laurie Mann", + title = "{{\TeX\ and training: A case study}}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "174--176", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB8-2-176, + author = "Bart Childs", + title = "{Data General site report}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "176--177", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Guenther:TB8-2-178, + author = "Dean Guenther", + title = "{IBM VM/CMS site report}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "178--178", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Pierson:TB8-2-178, + author = "Gil Pierson", + title = "{SAS merged with \TeX}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "178--179", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{MacKay:TB8-2-179, + author = "Pierre MacKay", + title = "{Unix \TeX\ site report}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "179--181", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Clark:TB8-2-177, + author = "Adrian F. Clark", + title = "{Enhancements to \TeX\ on the \VAX}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "177--177", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kohlmayr:TB8-2-181, + author = "Gerhard F. Kohlmayr", + title = "{A bug in \TeXtures\ v0.95 prerelease}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "181--181", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Smith:TB8-2-181, + author = "Barry Smith", + title = "{Work-around for an ImageWriter problem affecting + \TeXtures\ output}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "181--181", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB8-2-182, + author = "Alan Hoenig and Mitch Pfeffer", + title = "{Update: Real typesetting from your PC}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "182--182", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Appelt:TB8-2-182, + author = "Wolfgang Appelt", + title = "{Macros with keyword parameters}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "182--184", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kabelschacht:TB8-2-184, + author = "Alois Kabelschacht", + title = "{{\tt\bs expandafter} in conditionals; a + generalization of PLAIN's {\tt\bs loop}}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "184--185", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Barnhart:TB8-2-185, + author = "Elizabeth Barnhart", + title = "{{\TeX\ in the commercial environment\Dash + multi-column output}}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "185--189", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{LeHardy:TB8-2-190, + author = "Charles LeHardy", + title = "{Diglot typesetting}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "190--192", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bruggemann-Klein:TB8-2-193, + author = "Anne Br{\"u}ggemann-Klein", + title = "{First line special handling with \TeX}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "193--197", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Yap:TB8-2-198, + author = "Ken Yap", + title = "{Contents of \LaTeX\ style collection as of 15th May + 1987}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "198--200", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Aurbach:TB8-2-201, + author = "Richard Aurbach", + title = "{Automated index generation for \LaTeX}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "201--209", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB8-2-210, + author = "Donald Knuth", + title = "{Saturday morning problem\Dash solution}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "210--210", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB8-2-211, + author = "Alan Hoenig", + title = "{{\TeX\ does windows\Dash conclusion}}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "211--215", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fox:TB8-2-216, + author = "Jim Fox", + title = "{Comment on ``\TeX\ does windows''}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "216--216", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Alexander:TB8-2-216, + author = "James Alexander", + title = "{Time line macro}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "216--216", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB8-2-217, + author = "Donald Knuth", + title = "{Reply: Printing out selected pages}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "217--217", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Black:TB8-2-217, + author = "Mike Black", + title = "{Using the Windows environment}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "217--217", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-2-218, + author = "Anonymous", + title = "{TUG Annual Meeting, University of Washington, August + 24--26, 1987}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "218--218", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-2-219, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "219--220", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Boston:TB8-2-220, + author = "Boston and Mass. and 22--24 October 1987", + title = "{PROTEXT IV}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "220--220", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Munster:TB8-2-221, + author = "University of M{\"u}nster and 8--9 October 1987", + title = "{6th German \TeX\ meeting}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "221--221", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Price:TB8-2-221, + author = "Lynne A. Price", + title = "{SGML and \TeX}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "221--225", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Whidden:TB8-2-225, + author = "Samuel B. Whidden", + title = "{Treasurer's report}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "225--227", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-2-228, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "228--230", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-2-231, + author = "Anonymous", + title = "{TUG membership application; \TeX\ order form}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "231--232", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-2-252, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "8", + number = "2", + pages = "252--252", + month = jul, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-3-255, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "255--256", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB8-3-257, + author = "Bart Childs", + title = "{From the President}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "257--257", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thedford:TB8-3-258, + author = "Rilla Thedford", + title = "{The Volunteer Tree}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "258--258", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Marle:TB8-3-259, + author = "Charles-Michel Marle", + title = "{Book publishing using \TeX}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "259--260", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mann:TB8-3-260, + author = "Laurie Mann", + title = "{{\TeX\ training, etc.\Dash A TUG meeting trip + report}}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "260--262", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB8-3-262, + author = "Barbara Beeton", + title = "{From the Editor}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "262--262", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB8-3-262, + author = "Bart Childs", + title = "{Proposed minimum standards for \TeX\ distributions}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "262--263", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Reid:TB8-3-264, + author = "Thomas J. Reid", + title = "{{\tt TANGLE} modification causes problems in \MF\ and + PK files}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "264--265", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-3-266, + author = "Anonymous", + title = "{Hyphenation exception log}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "266--267", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Henderson:TB8-3-268, + author = "Doug Henderson", + title = "{Update: \MF\ {\bf mode\_def\/} settings for \TeX\ + output devices}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "268--270", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Clark:TB8-3-270, + author = "Adrian F. Clark", + title = "{Halftone output from \TeX}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "270--274", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hohti:TB8-3-275, + author = "Aarno Hohti and Okko Kanerva", + title = "{Generating an {\sl APL\/} font}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "275--278", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hosek:TB8-3-279, + author = "Don Hosek", + title = "{{\TeX\ output devices (with charts)}}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "279--286", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Reid:TB8-3-287, + author = "Thomas J. Reid", + title = "{DVI driver considerations for high-volume printing + systems}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "287--291", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Vanderburg:TB8-3-291, + author = "Glenn L. Vanderburg and Thomas J. Reid", + title = "{{\tt\bs special} issues}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "291--300", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Toal:TB8-3-301, + author = "Graham Toal", + title = "{{\TeX\ information for users in the U.K.}}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "301--301", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Brown:TB8-3-301, + author = "Malcolm Brown", + title = "{{\TeX hax Notes}}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "301--303", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lammarsch:TB8-3-304, + author = "Joachim Lammarsch", + title = "{6th Meeting of the ``\TeX-Interessenten'' in + Germany}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "304--304", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Guntermann:TB8-3-304, + author = "Klaus Guntermann", + title = "{Atari ST site report}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "304--304", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB8-3-304, + author = "Bart Childs", + title = "{Data General site report}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "304--304", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Pfeffer:TB8-3-305, + author = "Mitch Pfeffer and Alan Hoenig", + title = "{Running \TeX\ on a 386-based computer: Twice as fast + as an AT}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "305--306", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thiele:TB8-3-307, + author = "Christina Thiele", + title = "{What constitutes a well-documented macro?}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "307--308", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB8-3-309, + author = "Donald E. Knuth", + title = "{Macros for Jill}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "309--314", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Reid:TB8-3-315, + author = "Thomas J. Reid", + title = "{Floating figures at the right, and Some random text + for testing}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "315--320", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Yap:TB8-3-320, + author = "Ken Yap", + title = "{Contents of \LaTeX\ style collection as of 15th + September 1987}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "320--323", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Damrau:TB8-3-323, + author = "Jackie Damrau", + title = "{The \LaTeX\ user's column}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "323--326", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Flynn:TB8-3-306, + author = "Peter Flynn", + title = "{Request for contributions to a new publication}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "306--306", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Boes:TB8-3-326, + author = "Jeffery Boes", + title = "{Reply: Printing out selected pages}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "326--326", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lipp:TB8-3-326, + author = "Stephen C. Lipp", + title = "{Title formatting macro wanted}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "326--327", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-3-328, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "328--328", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-3-329, + author = "Anonymous", + title = "{Exeter University: \TeX88, 18--20 July 1988}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "329--330", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-3-cover-3, + author = "Anonymous", + title = "{Call for papers: TUG Annual Meeting, Montr\'eal, + 22--24 August 1988}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "Cover 3", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-3-331, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "331--332", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-3-333, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "333--334", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB8-3-352, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "8", + number = "3", + pages = "352--352", + month = nov, + year = "1987", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-1-3, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "3--4", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB9-1-5, + author = "Bart Childs", + title = "{From the President}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "5--5", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wittbecker:TB9-1-5, + author = "Alan Wittbecker", + title = "{{\TUB{} docks at fire station}}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "5--5", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-1-6, + author = "Anonymous", + title = "{Donald E. Knuth Scholarship}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "6--6", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB9-1-6, + author = "Barbara Beeton", + title = "{Notes from the Editor}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "6--7", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lamport:TB9-1-8, + author = "Leslie Lamport", + title = "{Document Production: Visual or Logical?}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "8--10", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Breitenlohner:TB9-1-11, + author = "Peter Breitenlohner", + title = "{Still another aspect of multiple change files: The + PATCH processor}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "11--12", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{MacKay:TB9-1-12, + author = "Pierre A. MacKay", + title = "{Turkish hyphenations for \TeX}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "12--14", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Tobin:TB9-1-15, + author = "Georgia K. M. Tobin", + title = "{The ABC's of special effects}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "15--18", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Messer:TB9-1-19, + author = "Robert Messer", + title = "{Blackboard Bold}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "19--20", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Levy:TB9-1-20, + author = "Silvio Levy", + title = "{Using Greek fonts with \TeX}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "20--24", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hosek:TB9-1-25, + author = "Don Hosek", + title = "{{\TeX{} output devices (with charts)}}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "25--33", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Brown:TB9-1-34, + author = "Marcus Brown", + title = "{An ASCII previewer for \TeX}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "34--36", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hosek:TB9-1-37, + author = "Don Hosek", + title = "{A screen previewer for VM/CMS}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "37--37", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Dunne:TB9-1-37, + author = "Shane Dunne", + title = "{Why \TeX{} should NOT output \PS{}\Dash yet}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "37--39", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-1-39, + author = "Anonymous", + title = "{Index to sample output from various devices}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "39--39", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rokicki:TB9-1-40, + author = "Tom Rokicki", + title = "{The Commodore Amiga: A magic \TeX{} machine}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "40--41", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB9-1-41, + author = "Bart Childs", + title = "{Data General site report}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "41--41", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-1-42, + author = "Anonymous", + title = "{Fujitsu ports \TeX{} 1.0 onto M-series}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "42--42", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Guenther:TB9-1-42, + author = "Dean Guenther", + title = "{IBM VM/CMS site report}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "42--42", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{MacKay:TB9-1-42, + author = "Pierre MacKay", + title = "{Unix \TeX{} site report}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "42--44", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Morgan:TB9-1-44, + author = "Tim Morgan", + title = "{{\TeX{} to C converter}}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "44--45", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kellerman:TB9-1-45, + author = "David Kellerman", + title = "{{\VAX/VMS site report}}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "45--45", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB9-1-46, + author = "Alan Hoenig and Mitch Pfeffer", + title = "{Writers' tools I: PC spelling and grammar checkers}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "46--47", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB9-1-47, + author = "Alan Hoenig and Mitch Pfeffer", + title = "{Grapevine reports of inexpensive versions of \TeX}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "47--48", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kinch:TB9-1-48, + author = "Richard J. Kinch and Jennifer L. Vollbrecht", + title = "{Turbo\TeX: A new port in C for Unix and MS-DOS}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "48--52", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Crisanti:TB9-1-52, + author = "Ester Crisanti and Alberto Formigoni and Paco La + Bruna", + title = "{easy\TeX}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "52--56", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bechtolsheim:TB9-1-57, + author = "Stephan v. Bechtolsheim", + title = "{A tutorial on {\tt\bs expandafter}}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "57--61", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Walker:TB9-1-61, + author = "James W. Walker", + title = "{Macros for outlining}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "61--64", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hendrickson:TB9-1-64, + author = "Amy Hendrickson", + title = "{A macro writing tool: Generating new definitions}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "64--64", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gariepy:TB9-1-65, + author = "Alonzo Gariepy", + title = "{French in \TeX}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "65--69", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Partl:TB9-1-70, + author = "Hubert Partl", + title = "{German \TeX}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "70--72", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Yap:TB9-1-73, + author = "Ken Yap", + title = "{Contents of \LaTeX{} style collection as of 4th + February 1988}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "73--75", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Damrau:TB9-1-76, + author = "Jackie Damrau", + title = "{The \LaTeX{} user's column}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "76--77", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{McPherson:TB9-1-78, + author = "Kent McPherson", + title = "{Page layout in \LaTeX}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "78--82", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bartlett:TB9-1-83, + author = "Frederick H. Bartlett", + title = "{Automatic page balancing macros wanted; Replies: + Inverted pyramidal titles; Logarithmic time scales}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "83--85", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-1-86, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "86--86", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-1-87, + author = "Anonymous", + title = "{TUG 1988 Annual Meeting, Montr\'eal, August 22--24}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "87--87", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-1-87-2, + author = "Anonymous", + title = "{Videotapes of Knuth's software course based on \TeX: + The Program}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "87--87", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-1-88, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "88--90", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-1-91, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "91--93", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-1-95, + author = "Anonymous", + title = "{{\TeX{} order form}}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "95--96", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-1-112, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "9", + number = "1", + pages = "112--112", + month = apr, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-2-115, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "115--116", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB9-2-117, + author = "Bart Childs", + title = "{From the President}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "117--117", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Goucher:TB9-2-117, + author = "Ray Goucher", + title = "{Los Alamos sets new membership record}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "117--117", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-2-117, + author = "Anonymous", + title = "{Donald Knuth awarded Franklin Medal}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "117--117", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Barnhart:TB9-2-118, + author = "Elizabeth Barnhart", + title = "{{\TeX{} in the publishing environment: A survey of + production/commercial users}}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "118--120", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB9-2-121, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "121--121", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB9-2-121-2, + author = "Barbara Beeton", + title = "{New version(s) of \TeX{} and \MF}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "121--122", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB9-2-122, + author = "Bart Childs", + title = "{64-bit \TeX}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "122--122", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lichtenwalder:TB9-2-123, + author = "Klaus Lichtenwalder", + title = "{Porting \TeX{} to C}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "123--124", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kennedy:TB9-2-124, + author = "David Kennedy", + title = "{{\TeX{} adapted to CWEB}}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "124--125", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Vanderburg:TB9-2-125, + author = "Glenn Vanderburg", + title = "{Some useful variations of standard fonts}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "125--125", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Tobin:TB9-2-126, + author = "Georgia K. M. Tobin", + title = "{Designing for low-res devices}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "126--128", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB9-2-129, + author = "Bart Childs", + title = "{{\TeX{} fonts and suggested magnifications}}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "129--131", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wujastyk:TB9-2-131, + author = "Dominik Wujastyk", + title = "{The many faces of \TeX: A survey of digital {\manual + META}fonts}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "131--151", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB9-2-152, + author = "Donald E. Knuth", + title = "{A Punk Meta-Font}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "152--168", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hosek:TB9-2-169, + author = "Don Hosek", + title = "{{\TeX{} output devices (with charts)}}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "169--177", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Dunne:TB9-2-178, + author = "Shane Dunne", + title = "{Why \TeX{} should NOT output \PS{}\Dash yet: + Addendum}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "178--178", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wolfe:TB9-2-178, + author = "Warren Wolfe", + title = "{ASCII Preview with vu\TeX}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "178--180", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-2-151, + author = "Anonymous", + title = "{Index to sample output from various devices}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "151--151", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB9-2-181, + author = "Bart Childs", + title = "{{\TeX{} on the Cray}}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "181--181", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB9-2-181-2, + author = "Bart Childs", + title = "{Data General site report}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "181--181", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Smith:TB9-2-181, + author = "Barry Smith", + title = "{Macintosh site report}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "181--181", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB9-2-182, + author = "Barbara Beeton", + title = "{Controlling {\tt}; Ruling the depths}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "182--183", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Breitenlohner:TB9-2-183, + author = "Peter Breitenlohner", + title = "{German \TeX, a next step}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "183--185", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wichura:TB9-2-186, + author = "Michael J. Wichura", + title = "{Some problems with the INRS\TeX{} table making + macros}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "186--188", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haagen:TB9-2-189, + author = "A. J. Van Haagen", + title = "{Box plots and scatter plots with \TeX{} macros}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "189--192", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wichura:TB9-2-193, + author = "Michael J. Wichura", + title = "{{\PiCTeX: Macros for drawing \PiC tures}}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "193--197", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Damrau:TB9-2-198, + author = "Jackie Damrau", + title = "{The \LaTeX{} user's column}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "198--199", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Yap:TB9-2-200, + author = "Ken Yap", + title = "{Contents of \LaTeX{} style collection as of 19th June + 1988}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "200--203", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bechtolsheim:TB9-2-203, + author = "Stephan v. Bechtolsheim", + title = "{A note on processing parts with \LaTeX}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "203--204", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{McPherson:TB9-2-204, + author = "Kent McPherson", + title = "{Page layout in \LaTeX: Erratum}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "204--204", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-2-205, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "205--205", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gaulle:TB9-2-206, + author = "Bernard Gaulle", + title = "{GUTenberg meeting report}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "206--207", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-2-207, + author = "Anonymous", + title = "{Knuth Scholarship winner}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "207--207", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-2-208, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "208--210", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-2-211, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "211--212", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-2-226, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "226--226", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-2-M, + author = "Anonymous", + title = "{TUG Membership List Supplement}", + journal = j-TUGboat, + volume = "9", + number = "2", + pages = "M-1--M-14", + month = aug, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-3-229, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "229--230", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB9-3-231, + author = "Bart Childs", + title = "{From the President}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "231--232", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-3-232, + author = "Anonymous", + title = "{Extra! Extra! \TUB{} becomes a quarterly}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "232--232", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-3-232-2, + author = "Anonymous", + title = "{Donald Knuth awarded Oxford degree}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "232--233", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB9-3-233, + author = "Barbara Beeton", + title = "{{\TeX{} and TUG go international\Dash A trip + report}}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "233--235", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{McKinstry:TB9-3-236, + author = "Graeme McKinstry", + title = "{Some typesetting conventions}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "236--238", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Heidrich:TB9-3-238, + author = "Klaus Heidrich", + title = "{Software-ergonomics on the Atari ST}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "238--238", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-3-239, + author = "Anonymous", + title = "{Hyphenation exception log}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "239--241", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Schrod:TB9-3-241, + author = "Joachim Schrod", + title = "{{\LaTeX{} fonts and suggested magnifications}}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "241--243", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Henderson:TB9-3-244, + author = "Doug Henderson", + title = "{Mode\_def's please}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "244--245", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wujastyk:TB9-3-246, + author = "Dominik Wujastyk", + title = "{Further faces}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "246--251", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hosek:TB9-3-251, + author = "Don Hosek", + title = "{{\TeX{} output devices (with charts)}}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "251--260", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Abbott:TB9-3-261, + author = "Peter Abbott and Andrew Trevorrow", + title = "{{\DVItoVDU{} 3.0 and PSPRINT 3.0}}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "261--262", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Abbott:TB9-3-263, + author = "Peter Abbott", + title = "{A UK-based \TeX{} mail archive server}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "263--264", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Guntermann:TB9-3-264, + author = "Klaus Guntermann", + title = "{Atari ST site report}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "264--265", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB9-3-265, + author = "Bart Childs", + title = "{Data General site report}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "265--265", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Guenther:TB9-3-265, + author = "Dean Guenther", + title = "{IBM VM/CMS site report}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "265--265", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Platt:TB9-3-266, + author = "Craig Platt", + title = "{MVS site report}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "266--267", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{MacKay:TB9-3-267, + author = "Pierre MacKay", + title = "{Unix \TeX{} site report}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "267--269", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Pfeffer:TB9-3-269, + author = "Mitch Pfeffer and Alan Hoenig", + title = "{Recovering from a hard-disk failure}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "269--271", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Laan:TB9-3-271, + author = "C. G. van der Laan and J. R. Luyten", + title = "{Evaluation of K-talk}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "271--272", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wittbecker:TB9-3-272, + author = "Alan Wittbecker", + title = "{Making paragraphs}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "272--276", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bechtolsheim:TB9-3-276, + author = "Stephan v. Bechtolsheim", + title = "{A tutorial on {\tt\bs futurelet}}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "276--278", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kneser:TB9-3-279, + author = "Thomas Kneser", + title = "{Compact matrix display}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "279--284", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Appelt:TB9-3-284, + author = "Wolfgang Appelt", + title = "{Typesetting chess}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "284--287", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Pittman:TB9-3-287, + author = "J. E. Pittman", + title = "{Equation numbering in plain \TeX}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "287--288", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Pittman:TB9-3-289, + author = "J. E. Pittman", + title = "{\tt Loopy.TeX}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "289--291", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rogers:TB9-3-292, + author = "David F. Rogers", + title = "{A page make-up challenge}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "292--293", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{DeCorte:TB9-3-294, + author = "Michael DeCorte", + title = "{Contents of \LaTeX{} style collection as of 24 + September 1988}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "294--297", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Damrau:TB9-3-297, + author = "Jackie Damrau", + title = "{The \LaTeX{} column}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "297--297", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB9-3-298, + author = "Frank Mittelbach", + title = "{A new implementation of the array-- and + tabular--environments}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "298--314", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-3-315, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "315--315", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Laan:TB9-3-316, + author = "C. G. van der Laan", + title = "{Dutch \TeX{} Users Group}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "316--316", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-3-cover-3, + author = "Anonymous", + title = "{Call for papers: {\bf TUG Tenth Annual Meeting}, + Stanford University, 21--23 August 1989}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "Cover 3", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-3-316, + author = "Anonymous", + title = "{Call for papers: RIDT'89\Dash International Workshop + on Raster Imagining and Digital Typography, Lausanne, + Switzerland, 12--13 October 1989}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "316--317", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{MacKay:TB9-3-317, + author = "Pierre MacKay", + title = "{{\TeX hax moves north}}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "317--317", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB9-3-317, + author = "Barbara Beeton", + title = "{Production notes}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "317--318", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-3-318, + author = "Anonymous", + title = "{A thank you note}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "318--318", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-3-324, + author = "Anonymous", + title = "{TUG's Tenth}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "324--324", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-3-318-2, + author = "Anonymous", + title = "{Accountant's review of TUG financial records, years + ended December 31, 1987 and 1986}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "318--321", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-3-322, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "322--324", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-3-325, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "325--325", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-3-342, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "342--342", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB9-3-M, + author = "Anonymous", + title = "{TUG Membership List Supplement}", + journal = j-TUGboat, + volume = "9", + number = "3", + pages = "M-1--M-12", + month = nov, + year = "1988", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-1-3, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "3--4", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-1-5, + author = "Anonymous", + title = "{Donald E. Knuth Scholarship}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "5--5", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB10-1-5, + author = "Bart Childs", + title = "{From the President}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "5--5", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-1-5-2, + author = "Anonymous", + title = "{Announcing a TUG dingbat competition}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "5--6", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB10-1-6, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "6--7", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB10-1-8, + author = "Donald Knuth", + title = "{{\TeX} would find it difficult {\dots}}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "8--8", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB10-1-8, + author = "Barbara Beeton", + title = "{A {\TeX} encounter in Japan}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "8--10", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Harrison:TB10-1-11, + author = "Michael Harrison", + title = "{News from the {\VorTeX} project}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "11--14", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Clark:TB10-1-14, + author = "Adrian Clark", + title = "{An enhanced {\TeX}-editor interface for VMS}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "14--15", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thull:TB10-1-15, + author = "Klaus Thull", + title = "{The virtual memory management of PubliC {\TeX}}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "15--22", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kinch:TB10-1-23, + author = "Richard Kinch", + title = "{Turbo{\MF}: A new port in C for {\UNIX} and MS-DOS}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "23--24", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bechtolsheim:TB10-1-25, + author = "Stephan v. Bechtolsheim", + title = "{The {\TeX} {\PS} software package}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "25--27", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Tobin:TB10-1-28, + author = "Georgia K. M. Tobin", + title = "{A handy little font}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "28--30", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB10-1-31, + author = "Donald Knuth", + title = "{Typesetting {\sl Concrete Mathematics\/}}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "31--36", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Henderson:TB10-1-36, + author = "Doug Henderson", + title = "{Outline fonts with {\MF}}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "36--38", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wujastyk:TB10-1-39, + author = "Dominik Wujastyk", + title = "{Font news}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "39--39", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rogers:TB10-1-39, + author = "David F. Rogers", + title = "{Computer graphics and {\TeX}\Dash a challenge}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "39--44", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB10-1-44, + author = "Bart Childs and Alan Stolleis and Don Berryman", + title = "{A portable graphics inclusion}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "44--46", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hosek:TB10-1-46, + author = "Don Hosek", + title = "{{\TeX} output devices (with charts)}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "46--55", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hosek:TB10-1-56, + author = "Don Hosek", + title = "{Report from the {\tt DVI} driver standards + committee}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "56--56", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Broeren:TB10-1-56, + author = "Marius Broeren and Jan van Knippenberg", + title = "{High quality printing of {\TeX} DVI output files in + the {\VAX/VMS} environment}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "56--58", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Puente:TB10-1-58, + author = "Arturo Puente", + title = "{Output driver for Xerox 4045 on IBM 3090}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "58--58", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Abbott:TB10-1-59, + author = "Peter Abbott", + title = "{{UK\TeX} and the Aston archive}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "59--60", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB10-1-60, + author = "Bart Childs", + title = "{DG site report}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "60--60", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{MacKay:TB10-1-60, + author = "Pierre MacKay", + title = "{Unix{\TeX} site report}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "60--61", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kellerman:TB10-1-62, + author = "David Kellerman", + title = "{{\VAX/VMS} site report}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "62--62", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB10-1-62, + author = "Alan Hoenig", + title = "{The land of the free and the near free}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "62--64", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kubik:TB10-1-65, + author = "Kim Kubik", + title = "{Amiga{\TeX}\dots or How envy was resisted and + knowledge found on the road to \"O\"o\c c}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "65--67", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Modest:TB10-1-67, + author = "Michael Modest", + title = "{Using {\TeX} and {\LaTeX} with WordPerfect 5.0}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "67--72", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Zalmstra:TB10-1-73, + author = "Joost Zalmstra and David F. Rogers", + title = "{A page make-up macro}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "73--81", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Nearing:TB10-1-82, + author = "James Nearing", + title = "{Extended equation numbering in Plain {\TeX}}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "82--88", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sankar:TB10-1-89, + author = "Sriram Sankar", + title = "{APE\Dash A set of {\TeX} macros to format Ada + programs}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "89--97", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{DeCorte:TB10-1-97, + author = "Michael DeCorte", + title = "{Contents of {\LaTeX} style collection as of 16 + January 1989}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "97--102", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB10-1-103, + author = "Frank Mittelbach", + title = "{``A new implementation of the array-- and + tabular--environments of {\LaTeX}'' ({\TUB} 9\#3)\Dash + addenda}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "103--104", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Schopf:TB10-1-105, + author = "Rainer Sch{\"o}pf", + title = "{Drawing histogram bars inside the {\LaTeX} + picture--environment}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "105--107", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Nagy:TB10-1-108, + author = "Dezs\H o Nagy", + title = "{Vertical centering for transparencies}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "108--112", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Laan:TB10-1-113, + author = "C. G. van der Laan", + title = "{Typesetting bridge via {\LaTeX}}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "113--116", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-1-116, + author = "Anonymous", + title = "{WOODMAN '89: Workshop on Object Oriented Document + Manipulation, Rennes, France, 29--31 May 1989}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "116--116", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-1-117, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "117--117", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-1-118, + author = "Anonymous", + title = "{GUTenberg Congr\`es:\ {\TeX} et les graphiques, + Paris, 16--17 May 1989}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "118--118", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-1-118-2, + author = "Anonymous", + title = "{{\TeX89: Karlsruhe University, 11--13 September + 1989}}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "118--118", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Osborne:TB10-1-119, + author = "David Osborne", + title = "{A UK {\TeX} users' group\Dash Report of a preliminary + meeting}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "119--120", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB10-1-120, + author = "Barbara Beeton", + title = "{Production notes}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "120--121", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-1-121, + author = "Anonymous", + title = "{Coming next issue}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "121--121", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-1-122, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "122--124", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-1-125, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "125--125", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-1-142, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "10", + number = "1", + pages = "142--142", + month = apr, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-2-145, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "145--146", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB10-2-147, + author = "Bart Childs", + title = "{From the President}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "147--147", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB10-2-147, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "147--150", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Clark:TB10-2-150, + author = "Malcolm Clark", + title = "{R\'eflexions sur le Congr\`es GUTenberg}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "150--153", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Clark:TB10-2-153, + author = "Malcolm Clark", + title = "{International Standards and {\TeX}}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "153--156", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB10-2-156, + author = "Bart Childs", + title = "{Teaching {\TeX}}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "156--163", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Spivak:TB10-2-164, + author = "Michael Spivak and Michael Ballantyne and Yoke Lee", + title = "{HI-{\TeX} cutting \& pasting}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "164--165", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Tobin:TB10-2-166, + author = "Georgia K. M. Tobin", + title = "{Another dingbat idea}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "166--169", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rubinstein:TB10-2-170, + author = "Zalman Rubinstein", + title = "{Chess printing via {\MF} and {\TeX}}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "170--172", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hosek:TB10-2-173, + author = "Don Hosek", + title = "{Guidelines for creating portable {\MF} code}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "173--176", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Andrews:TB10-2-177, + author = "Phil Andrews", + title = "{Integration of {\TeX} and graphics at the Pittsburgh + Supercomputing Center}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "177--178", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wilcox:TB10-2-179, + author = "Patricia Wilcox", + title = "{{\eightrm METAPLOT}: Machine-independent line + graphics for {\TeX}}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "179--187", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hosek:TB10-2-188, + author = "Don Hosek", + title = "{{\TeX} output devices}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "188--188", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Reid:TB10-2-188, + author = "Tom Reid and Don Hosek", + title = "{Report from the {\tt DVI} driver standards + committee}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "188--191", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hosek:TB10-2-192, + author = "Don Hosek", + title = "{Announcing (belatedly) \TeXMaG}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "192--192", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Clark:TB10-2-193, + author = "Malcolm Clark", + title = "{{\TeX}line: A newsletter of the {\TeX} community}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "193--194", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Abbott:TB10-2-194, + author = "Peter Abbott", + title = "{{UK\TeX} and the Aston archive}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "194--195", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Nieland:TB10-2-195, + author = "M. Edward Nieland", + title = "{The DECUS {\TeX} collection}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "195--196", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{DeCorte:TB10-2-196, + author = "Michael DeCorte", + title = "{The Clarkson archive server\Dash Update as of 1 May + 1989}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "196--201", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB10-2-201, + author = "Bart Childs", + title = "{Data General site report}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "201--201", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Crawford:TB10-2-201, + author = "John Crawford", + title = "{Prime 50 series site report}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "201--201", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Radel:TB10-2-202, + author = "Jon Radel", + title = "{``Free'' {\TeX} software for IBM PCs}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "202--202", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Trevorrow:TB10-2-202, + author = "Andrew Trevorrow", + title = "{Public domain {\TeX} for the Mac}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "202--203", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bechtolsheim:TB10-2-203, + author = "Stephan v. Bechtolsheim", + title = "{{\tt\bs csname} and {\tt\bs string}}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "203--206", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Salomon:TB10-2-207, + author = "David Salomon", + title = "{DDA methods in {\TeX}}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "207--216", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Vogel:TB10-2-217, + author = "Brother Eric Vogel", + title = "{Printing Vietnamese characters by adding diacritical + marks}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "217--221", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB10-2-222, + author = "Frank Mittelbach and Rainer Sch{\"o}pf", + title = "{A new font selection scheme for {\TeX} macro + packages\Dash the basic macros}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "222--238", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Nagy:TB10-2-239, + author = "Dezs\H o Nagy", + title = "{A bar chart in {\LaTeX}}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "239--240", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Partl:TB10-2-241, + author = "Hubert Partl", + title = "{Producing on-line information files with {\LaTeX}}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "241--244", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB10-2-245, + author = "Frank Mittelbach", + title = "{The {\tt doc}--option}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "245--273", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kelly:TB10-2-274, + author = "B. Hamilton Kelly", + title = "{The {\tt autodoc}--option}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "274--284", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-2-285, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "285--286", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-2-287, + author = "Anonymous", + title = "{Nordic {\TeX} meeting, 12 June 1989, Royal Institute + of Technology, Stockholm}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "287--287", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-2-287-2, + author = "Anonymous", + title = "{{\LaTeX} course book in Dutch}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "287--287", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lammarsch:TB10-2-287, + author = "Joachim Lammarsch", + title = "{DANTE\Dash Deutschsprachige Anwendervereinigung + {\TeX}}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "287--288", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Osborne:TB10-2-288, + author = "David Osborne", + title = "{Notes on first meeting of UK {\TeX} Users' Group, 15 + March 1989}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "288--289", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB10-2-289, + author = "Barbara Beeton", + title = "{Production notes}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "289--289", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-2-290, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "290--290", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-2-M, + author = "Anonymous", + title = "{TUG Membership List Supplement}", + journal = j-TUGboat, + volume = "10", + number = "2", + pages = "M-1--M-11", + month = jul, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-3-309, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "309--310", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB10-3-311, + author = "Bart Childs", + title = "{From the President}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "311--312", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beebe:TB10-3-312, + author = "Nelson H. F. Beebe", + title = "{Message from the new President}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "312--314", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB10-3-314, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "314--316", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB10-3-316, + author = "Victor Eijkhout and Nico Poppelier", + title = "{The first Dutch {\TeX} days}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "316--318", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB10-3-319, + author = "Bart Childs", + title = "{Answers to the {\TeX}tests}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "319--323", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Technites:TB10-3-324, + author = "Technites", + title = "{Crossword}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "324--324", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB10-3-325, + author = "Donald E. Knuth", + title = "{The new versions of {\TeX} and {\MF}}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "325--328", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thull:TB10-3-328, + author = "Klaus Thull", + title = "{PubliC {\MF} available}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "328--328", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bechtolsheim:TB10-3-329, + author = "Stephan von Bechtolsheim", + title = "{A {\tt .dvi} file processing program}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "329--332", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Vulis:TB10-3-332, + author = "Dimitri Vulis", + title = "{Notes on Russian {\TeX}}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "332--336", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB10-3-336, + author = "Barbara Beeton", + title = "{Hyphenation exception log}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "336--341", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-3-342, + author = "Anonymous", + title = "{Erratum: Typesetting Concrete Mathematics, {\TUB} + Vol. 10, No. 1}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "342--342", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haralambous:TB10-3-342, + author = "Yannis Haralambous", + title = "{{\TeX} and latin alphabet languages}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "342--345", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Parker:TB10-3-346, + author = "Mike Parker", + title = "{Fonts and {\PS}}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "346--350", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Larsson:TB10-3-351, + author = "Jan Eric Larsson", + title = "{A chess font for {\TeX}}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "351--351", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Andulem:TB10-3-352, + author = "Abass Andulem", + title = "{The road to Ethiopic {\TeX}}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "352--354", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haralambous:TB10-3-354, + author = "Yannis Haralambous and Klaus Thull", + title = "{Typesetting modern Greek with 128 character codes}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "354--359", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-3-359, + author = "Anonymous", + title = "{Erratum: Chess printing via {\MF} and {\TeX}, {\TUB} + Vol. 10, No. 2}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "359--359", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hailperin:TB10-3-360, + author = "Max Hailperin", + title = "{Users' guide to {\tt LaTeX-help}}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "360--360", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kean:TB10-3-360, + author = "Yin Kean", + title = "{{\TeX-Ed}}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "360--361", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{DeCorte:TB10-3-362, + author = "Michael DeCorte", + title = "{The Clarkson archive server\Dash Update as of 22 + September 1989}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "362--365", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-3-365, + author = "Anonymous", + title = "{Coming in January from the {\AMS}}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "365--366", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lammarsch:TB10-3-366, + author = "Joachim Lammarsch", + title = "{TEX EURO}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "366--367", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gaulle:TB10-3-367, + author = "Bernard Gaulle", + title = "{GUTenberg will distribute {ML\TeX}}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "367--367", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Glendown:TB10-3-367, + author = "Garry Glendown", + title = "{A {\TeX} mailbox in Germany}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "367--368", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lindner:TB10-3-368, + author = "Stephan Lindner and \rlap{Lutz Birkhahn}", + title = "{Towards a complete and comfortable {\TeX} System}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "368--372", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kellerman:TB10-3-372, + author = "David Kellerman", + title = "{VMS site coordinator's report}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "372--372", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB10-3-373, + author = "Alan Hoenig and Mitch Pfeffer", + title = "{{\TeX}-{\PS} output on non-{\PS} devices}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "373--375", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Glendown:TB10-3-376, + author = "Garry Glendown", + title = "{Controlling Amiga{\TeX} from CygnusEd}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "376--377", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Whitney:TB10-3-378, + author = "Ron Whitney and Barbara Beeton", + title = "{{\TUB} authors' guide}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "378--385", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Glendown:TB10-3-385, + author = "Garry Glendown", + title = "{Round boxes for {\plain} {\TeX}}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "385--387", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rubinstein:TB10-3-387, + author = "Zalman Rubinstein", + title = "{Printing annotated chess literature in natural + notation}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "387--390", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Durst:TB10-3-390, + author = "Lincoln Durst", + title = "{Bibliographic citations; or variations on the old + shell game}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "390--394", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Salomon:TB10-3-394, + author = "David Salomon", + title = "{Macros for indexing and table-of-contents + preparation}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "394--400", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bush:TB10-3-400, + author = "Terry Bush", + title = "{Scribe-to-\TeX}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "400--400", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB10-3-400, + author = "Frank Mittelbach and Rainer Sch{\"o}pf", + title = "{Towards {\LaTeX} 2.10}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "400--401", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Braams:TB10-3-401, + author = "Johannes Braams and Victor Eijkhout and Nico + Poppelier", + title = "{The development of national {\LaTeX} styles}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "401--406", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB10-3-407, + author = "Frank Mittelbach", + title = "{An environment for multicolumn output}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "407--415", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB10-3-416, + author = "Frank Mittelbach", + title = "{An extension of the {\LaTeX} theorem environment}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "416--426", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Dietsche:TB10-3-427, + author = "Luzia Dietsche", + title = "{Deutsche Kurzfassungen der \TUB-Artikel}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "427--428", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-3-429, + author = "Anonymous", + title = "{Calendar and Calls for Papers}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "429--431", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-3-432, + author = "Anonymous", + title = "{Programs of the recent TUG and Euro{\TeX} + Conferences}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "432--436", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB10-3-437, + author = "Barbara Beeton", + title = "{Production notes}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "437--437", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-3-438, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "438--440", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ness:TB10-3-440, + author = "David Ness", + title = "{Treasurer's report}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "440--443", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-3-444, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "444--444", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-3-461, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "461--461", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-3-M, + author = "Anonymous", + title = "{TUG Membership List Supplement}", + journal = j-TUGboat, + volume = "10", + number = "3", + pages = "M-1--M-12", + month = nov, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thiele:TB10-4-465, + author = "Christina Thiele", + title = "{Editor's introduction}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "465--465", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Henderson:TB10-4-467, + author = "Doug Henderson", + title = "{Introduction to {\MF}}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "467--479", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Billawala:TB10-4-481, + author = "Neenie Billawala", + title = "{Opening Pandora's box}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "481--489", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB10-4-491, + author = "Alan Hoenig", + title = "{Fractal images with {\TeX}}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "491--498", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hosek:TB10-4-499, + author = "Don Hosek", + title = "{Design of Oriental characters with {\MF}}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "499--502", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Batzinger:TB10-4-503, + author = "Bob Batzinger", + title = "{Thai languages and {\MF}}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "503--503", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hobby:TB10-4-505, + author = "John D. Hobby", + title = "{A {\MF}-like system with {\PS} output}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "505--512", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Youngen:TB10-4-513, + author = "R. E. Youngen and W. B. Woolf and D. C. Latterner", + title = "{Migration from Computer Modern fonts to Times + fonts}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "513--519", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Conrad:TB10-4-521, + author = "Arvin C. Conrad", + title = "{Fine typesetting with {\TeX} using native Autologic + fonts}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "521--528", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB10-4-529, + author = "Donald E. Knuth", + title = "{The errors of {\TeX}}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "529--531", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Doob:TB10-4-533, + author = "Michael Doob", + title = "{Of the computer scientist, by the computer scientist, + for the computer scientist}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "533--539", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hamilton:TB10-4-541, + author = "Hope Hamilton", + title = "{Mastering {\TeX} with templates}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "541--548", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoover:TB10-4-549, + author = "Anita Z. Hoover", + title = "{Using WordPerfect 5.0 to create {\TeX} and {\LaTeX} + documents}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "549--559", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kubek:TB10-4-561, + author = "Robin L. Kubek", + title = "{{\TeX} for the word processing operator}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "561--566", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rattey-Hicks:TB10-4-567, + author = "Jo Ann Rattey-Hicks", + title = "{{\TeX} and its versatility in office production}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "567--577", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Diaz:TB10-4-579, + author = "Max D{\'{\i}}az", + title = "{{\TeX} in M\'exico}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "579--593", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haskell:TB10-4-595, + author = "James Haskell and Wally Deschene and Alan Stolleis", + title = "{{\TeX} for 30,000}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "595--602", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wittbecker:TB10-4-603, + author = "Alan E. Wittbecker", + title = "{{\TeX} enslaved}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "603--606", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Renfrow:TB10-4-607, + author = "J. T. Renfrow", + title = "{Methodologies for preparing and integrating {\PS} + graphics}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "607--626", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Olejniczak-Burkert:TB10-4-627, + author = "Rolf Olejniczak-Burkert", + title = "{{\it texpic\/}\Dash Design and implementation of a + picture graphics language in {\TeX}\ \`a la {\it + pic\/}}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "627--637", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Latterner:TB10-4-639, + author = "D. C. Latterner and W. B. Woolf", + title = "{{\TeX} at {\it Mathematical Reviews\/}}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "639--654", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Pind:TB10-4-655, + author = "J{\"o}rgen L. Pind", + title = "{Lexicography with {\TeX}}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "655--665", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Clark:TB10-4-667, + author = "Malcolm Clark", + title = "{Olde worlde {\TeX}}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "667--674", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Abbott:TB10-4-675, + author = "Peter Abbott", + title = "{The {UK\TeX} archive at the University of Aston}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "675--680", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB10-4-681, + author = "Frank Mittelbach and Rainer Sch{\"o}pf", + title = "{With {\LaTeX} into the nineties}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "681--690", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Greene:TB10-4-691, + author = "Andrew Marc Greene", + title = "{{\TeX}reation\Dash playing games with {\TeX}'s + mind}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "691--705", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Cheswick:TB10-4-707, + author = "Bill Cheswick", + title = "{A permuted index for {\TeX} and {\LaTeX}}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "707--713", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sydoriak:TB10-4-715, + author = "Steve Sydoriak", + title = "{{\LaTeX} memos and letters}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "715--726", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Benson:TB10-4-727, + author = "Gary Benson and Debi Erpenbeck and Janet Holmes", + title = "{Inserts in a multiple-column format}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "727--742", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{McClure:TB10-4-743, + author = "Mary McClure", + title = "{{\TeX} Macros for COBOL syntax diagrams}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "743--750", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Riley:TB10-4-751, + author = "Don L. Riley and Brad L. Halverson", + title = "{Creating an efficient and workable PC interface for + {\TeX}}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "751--759", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-4-760, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "760--760", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-4-761, + author = "Anonymous", + title = "{List of participants at the Stanford meeting (August + 20--23, 1989)}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "761--765", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB10-4-765, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "10", + number = "4", + pages = "765--765", + month = dec, + year = "1989", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-1-3, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "3--4", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beebe:TB11-1-5, + author = "Nelson H. F. Beebe", + title = "{From the President}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "5--6", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB11-1-6, + author = "Bart Childs", + title = "{From the past President and Annual Meeting host}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "6--7", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-1-7, + author = "Anonymous", + title = "{Donald E. Knuth Scholarship}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "7--8", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ferguson:TB11-1-8, + author = "Michael Ferguson", + title = "{Coordination of non-English use of {\TeX}}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "8--9", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Breitenlohner:TB11-1-9, + author = "Peter Breitenlohner", + title = "{Using {\TeX} 3 in a multilingual environment\Dash + Some ideas}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "9--12", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-1-56, + author = "Anonymous", + title = "{Solution to crossword of {\TUB} vol. 10, no. 3}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "56--56", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-1-12, + author = "Anonymous", + title = "{Erratum: The new versions of {\TeX} and {\MF}, {\TUB} + vol. 10, no. 3}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "12--12", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB11-1-13, + author = "Donald Knuth", + title = "{Virtual Fonts: More Fun for Grand Wizards}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "13--23", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kuiken:TB11-1-24, + author = "Gerard Kuiken", + title = "{Additional Hyphenation Patterns}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "24--25", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haralambous:TB11-1-26, + author = "Yannis Haralambous", + title = "{Typesetting modern Greek\Dash An update}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "26--26", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Pickrell:TB11-1-26, + author = "Lee S. Pickrell", + title = "{Combining graphics with {\TeX} on IBM PC-compatible + systems and LaserJet printers}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "26--31", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB11-1-32, + author = "Barbara Beeton and Ron Whitney", + title = "{Summary of resources available to {\TeX} users}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "32--36", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB11-1-36, + author = "Barbara Beeton", + title = "{A proto-TUG bibliography}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "36--37", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{DeCorte:TB11-1-38, + author = "Michael DeCorte", + title = "{The Clarkson archive server\Dash Update as of 26 + January 1990}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "38--45", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Guenther:TB11-1-45, + author = "Dean Guenther", + title = "{IBM VM/CMS site report}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "45--45", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Brouard:TB11-1-46, + author = "Nicolas Brouard", + title = "{Une version compl\`ete de {\TeX} du domaine public + pour compatibles PC : les ``deux disquettes GUT''}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "46--51", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB11-1-51, + author = "Victor Eijkhout", + title = "{Unusual Paragraph Shapes}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "51--53", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Guenther:TB11-1-54, + author = "Dean Guenther", + title = "{{\sl{\TeX}T1} goes public domain}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "54--56", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wichura:TB11-1-57, + author = "Michael J. Wichura", + title = "{Showing-off math macros}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "57--61", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Breitenlohner:TB11-1-62, + author = "Peter Breitenlohner", + title = "{How to avoid writing long records to {\TeX}'s {\tt\bs + write} streams}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "62--62", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Durst:TB11-1-62, + author = "Lincoln Durst", + title = "{Forward references and the ultimate dirty trick}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "62--68", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Salomon:TB11-1-69, + author = "David Salomon", + title = "{Output routines: Examples and techniques. Part I: + Introduction and examples}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "69--85", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Damrau:TB11-1-85, + author = "Jackie Damrau", + title = "{The {\LaTeX} column}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "85--86", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Laan:TB11-1-86, + author = "C. G. van der Laan", + title = "{Announcing two reports: SGML-{\LaTeX} and Journal + style guidelines}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "86--86", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Schrod:TB11-1-87, + author = "Joachim Schrod", + title = "{International {\LaTeX} is ready to use}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "87--90", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB11-1-91, + author = "Frank Mittelbach and Rainer Sch{\"o}pf", + title = "{The new font family selection\Dash User interface to + standard {\LaTeX}}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "91--97", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Poppelier:TB11-1-98, + author = "Nico Poppelier and Johannes Braams", + title = "{A style option to adapt the standard {\LaTeX} + document styles to A4 paper}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "98--103", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kelly:TB11-1-103, + author = "B Hamilton Kelly", + title = "{Some macros to draw crosswords}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "103--119", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Dietsche:TB11-1-120, + author = "Luzia Dietsche", + title = "{Deutsche Kurzfassungen der {\TUB}-Artikel}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "120--122", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Partl:TB11-1-122, + author = "Hubert Partl", + title = "{{\TeX}, TUG, and Eastern Europe}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "122--123", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-1-123, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "123--124", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-1-125, + author = "Anonymous", + title = "{GUTenberg'90, 15--17 May 1990, Toulouse, France}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "125--126", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-1-126, + author = "Anonymous", + title = "{Call for papers: SGML \& {\TeX} conference, 31 August + 1990, Groningen, The Netherlands}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "126--126", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB11-1-127, + author = "Barbara Beeton", + title = "{Production notes}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "127--127", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-1-128, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "128--130", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-1-131, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "131--131", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-1-148, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "11", + number = "1", + pages = "148--148", + month = apr, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-2-151, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "151--152", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB11-2-153, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "153--153", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Barnhart:TB11-2-154, + author = "Elizabeth Barnhart", + title = "{{\TeX} in the production environment\Dash + questionnaire responses}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "154--164", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB11-2-165, + author = "Donald Knuth", + title = "{Exercises for {\sl\TeX\/{\rm:} The Program}}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "165--170", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beebe:TB11-2-171, + author = "Nelson Beebe", + title = "{Character set encoding}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "171--175", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bien:TB11-2-175, + author = "Janusz S. Bie{\'n}", + title = "{On standards for computer modern font extensions}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "175--183", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB11-2-183, + author = "Alan Hoenig", + title = "{Circular reasoning: typesetting on a circle, and + related issues}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "183--190", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Berendt:TB11-2-190, + author = "Gerhard Berendt", + title = "{On the implementation of graphics into {\TeX}}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "190--194", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Schwer:TB11-2-194, + author = "Len Schwer", + title = "{Including Macintosh graphics in {\LaTeX} documents}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "194--200", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Pickrell:TB11-2-200, + author = "Lee S. Pickrell", + title = "{Combining graphics with {\TeX} on PC systems with + laser printers, part II}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "200--206", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB11-2-206, + author = "Bart Childs", + title = "{Data General site report}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "206--206", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lammarsch:TB11-2-207, + author = "Joachim Lammarsch", + title = "{IBM VM/CMS site report}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "207--207", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB11-2-207, + author = "Barbara Beeton", + title = "{Resources available to {\TeX} users}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "207--208", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB11-2-208, + author = "Barbara Beeton", + title = "{A proto-TUG bibliography: Installment two}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "208--209", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB11-2-210, + author = "Victor Eijkhout", + title = "{New books on {\TeX}}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "210--211", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Nieland:TB11-2-211, + author = "Ted Nieland", + title = "{DECUS {\TeX} collection\Dash submissions wanted}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "211--211", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB11-2-212, + author = "Alan Hoenig", + title = "{{\tt Just plain} Q\&A}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "212--212", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Salomon:TB11-2-212, + author = "David Salomon", + title = "{Output routines: Examples and techniques. Part II: + \otr{} techniques}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "212--236", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jeffrey:TB11-2-237, + author = "Alan Jeffrey", + title = "{Lists in {\TeX}'s mouth}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "237--245", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taylor:TB11-2-245, + author = "Philip Taylor", + title = "{A nestable verbatim mode}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "245--249", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ha:TB11-2-250, + author = "Khanh Ha", + title = "{Easy Table}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "250--264", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Laan:TB11-2-265, + author = "Kees van der Laan", + title = "{Typesetting bridge via {\TeX}}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "265--276", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Damrau:TB11-2-276, + author = "Jackie Damrau", + title = "{The {\LaTeX} column}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "276--278", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Yap:TB11-2-279, + author = "Ken Yap", + title = "{Making 35mm colour slides with {\SliTeX}}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "279--280", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Denk:TB11-2-280, + author = "Georg Denk", + title = "{An easy way to make slides with {\LaTeX}}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "280--283", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Schopf:TB11-2-284, + author = "Rainer Sch{\"o}pf", + title = "{A new implementation of the {\LaTeX} {\tt verbatim} + and {\tt verbatim*} environments}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "284--296", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB11-2-297, + author = "Frank Mittelbach and Rainer Sch{\"o}pf", + title = "{Reprint: The new font family selection\Dash User + interface to standard {\LaTeX}}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "297--305", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Dietsche:TB11-2-305, + author = "Luzia Dietsche", + title = "{Deutsche Kurzfassungen der {\TUB}-Artikel}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "305--307", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-2-308, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "308--309", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB11-2-309, + author = "Barbara Beeton", + title = "{Production notes}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "309--310", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-2-310, + author = "Anonymous", + title = "{New publications and software available through + TUG}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "310--313", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-2-313, + author = "Anonymous", + title = "{Russians visit TUG headquarters}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "313--313", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-2-314, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "314--316", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-2-317, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "317--317", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-2-M, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "M-10--M-10", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-2-M-2, + author = "Anonymous", + title = "{TUG Membership List Supplement}", + journal = j-TUGboat, + volume = "11", + number = "2", + pages = "M-1--M-9", + month = jun, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beebe:TB11-3-335, + author = "Nelson Beebe", + title = "{President's introduction}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "335--336", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB11-3-337, + author = "Frank Mittelbach", + title = "{E-{\TeX}: Guidelines for future {\TeX}}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "337--345", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hamano:TB11-3-346, + author = "Hisato Hamano", + title = "{Vertical typesetting with {\TeX}}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "346--352", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Miyabe:TB11-3-353, + author = "Yoshiyuki Miyabe and H. Ohta and K. Tsuga", + title = "{Structured document preparation system {\sl + AutoLayouter}}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "353--358", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hendrickson:TB11-3-359, + author = "Amy Hendrickson", + title = "{Getting {\TeX}nical: Insights into {\TeX} macro + writing techniques}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "359--370", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fulling:TB11-3-371, + author = "Stephen Alex Fulling", + title = "{Where's the Greek shift key?}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "371--372", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beck:TB11-3-373, + author = "Micah Beck and A. Siegel", + title = "{TransFig: Portable graphics for {\TeX}}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "373--380", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Greene:TB11-3-381, + author = "Andrew Marc Greene", + title = "{{\BaSiX: An interpreter written in {\TeX}}}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "381--392", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gibson:TB11-3-393, + author = "Helen Gibson", + title = "{A noddy's guide to high quality {\TeX} production}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "393--402", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Adams:TB11-3-403, + author = "Robert A. Adams", + title = "{Problems on the {\TeX}/{\PS}/graphics interface}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "403--408", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bechtolsheim:TB11-3-409, + author = "Stephan von Bechtolsheim", + title = "{{\TeX} in practice: Comments on a 4-volume, 1400-page + series on {\TeX}}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "409--412", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{LaFrenz:TB11-3-413, + author = "Mimi L. LaFrenz", + title = "{Textbook publishing\Dash 1990 and beyond}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "413--416", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ness:TB11-3-417, + author = "David Ness", + title = "{Diagnosing {\TeX} errors with a preprocessor}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "417--420", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Williams:TB11-3-421, + author = "Linda Williams and Linda Hall", + title = "{Increased efficiency using advanced EDT editing + features}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "421--424", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Martin:TB11-3-425, + author = "Charles R. Martin", + title = "{{\TeX} for {\TeX}nical typists}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "425--428", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Vulis:TB11-3-429, + author = "Michael Vulis", + title = "{V{\TeX} enhancements to the {\TeX} language}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "429--434", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB11-3-435, + author = "Alan Hoenig", + title = "{A constructed D\"urer alphabet}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "435--438", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Dietsche:TB11-3-439, + author = "Luzia Dietsche", + title = "{Deutsche Kurzfassungen der {\TUB}-Artikel}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "439--442", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beebe:TB11-3-442, + author = "Nelson Beebe", + title = "{{\TeX} 3.0 and {\MF} 2.0}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "442--443", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB11-3-444, + author = "Frank Mittelbach", + title = "{{\LaTeX} 2.10}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "444--444", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lammarsch:TB11-3-444, + author = "Joachim Lammarsch", + title = "{{\smc dante}, Deutschsprachige Anwendervereinigung + {\TeX} e.V.}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "444--444", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gaulle:TB11-3-445, + author = "Bernard Gaulle", + title = "{News from and about GUTenberg}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "445--445", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Laan:TB11-3-446, + author = "Kees van der Laan", + title = "{NTG's second year}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "446--447", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Graham:TB11-3-447, + author = "Roswitha Graham and Jan Michael Rynning", + title = "{Report from the Nordic {\TeX} Users Group}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "447--448", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Clark:TB11-3-448, + author = "Malcolm Clark", + title = "{{\TeX} in the UK}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "448--449", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Clark:TB11-3-450, + author = "Malcolm Clark", + title = "{{\TeX} in Europe}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "450--451", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Platt:TB11-3-451, + author = "Craig Platt", + title = "{MVS site report}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "451--451", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kellerman:TB11-3-451, + author = "David Kellerman", + title = "{VMS site report}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "451--452", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB11-3-452, + author = "Bart Childs", + title = "{Data General site report}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "452--452", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Crawford:TB11-3-453, + author = "John Crawford", + title = "{Prime 50 series site report}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "453--453", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{MacKay:TB11-3-453, + author = "Pierre A. MacKay", + title = "{{\UNIX{\TeX} site report}}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "453--454", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lammarsch:TB11-3-454, + author = "Joachim Lammarsch", + title = "{VM/CMS site report}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "454--455", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB11-3-455, + author = "Barbara Beeton", + title = "{Report from the question and answer session}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "455--458", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-3-458, + author = "Anonymous", + title = "{List of participants at the Texas A\&M meeting (June + 17--20, 1990)}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "458--461", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-3-462, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "462--462", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-3-463, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "463--465", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-3-466, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "466--466", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-3-479, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "11", + number = "3", + pages = "479--479", + month = sep, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-4-483, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "483--484", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beebe:TB11-4-485, + author = "Nelson H. F. Beebe", + title = "{From the President}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "485--487", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-4-488, + author = "Anonymous", + title = "{The future of {\TeX}}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "488--488", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB11-4-489, + author = "Donald E. Knuth", + title = "{The future of {\TeX} and {\MF}}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "489--489", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beebe:TB11-4-490, + author = "Nelson H. F. Beebe", + title = "{Comments on the future of {\TeX} and {\MF}}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "490--494", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB11-4-494, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "494--496", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB11-4-497, + author = "Donald Knuth", + title = "{Arthur Lee Samuel, 1901--1990}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "497--498", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB11-4-499, + author = "Donald Knuth", + title = "{Answers to Exercises for {\sl\TeX\/{\rm:} The + Program}}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "499--511", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fox:TB11-4-511, + author = "Jim Fox", + title = "{Webless literate programming}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "511--513", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Stokes:TB11-4-513, + author = "Harold T. Stokes", + title = "{A {\TeX} previewer for ``slow'' terminals}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "513--514", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ferguson:TB11-4-514, + author = "Michael Ferguson", + title = "{Report on multilingual activities}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "514--515", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-4-516, + author = "Anonymous", + title = "{Extended \TeX{} font encoding scheme\Dash Latin, + Cork, September 12, 1990}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "516--516", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Berry:TB11-4-517, + author = "Karl Berry", + title = "{Filenames for fonts}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "517--520", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haralambous:TB11-4-520, + author = "Yannis Haralambous", + title = "{Arabic, Persian and Ottoman {\TeX} for Mac and PC}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "520--524", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Yanai:TB11-4-525, + author = "Shimon Yanai and Daniel M. Berry", + title = "{Environment for translating {\MF} to {\PS}}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "525--541", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Tofsted:TB11-4-542, + author = "David Tofsted", + title = "{An improved chess font}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "542--544", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hosek:TB11-4-545, + author = "Don Hosek", + title = "{{\TeX} output devices (with charts)}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "545--569", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hosek:TB11-4-570, + author = "Don Hosek", + title = "{Report from the {\tt DVI} Driver Standards + Committee}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "570--570", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB11-4-570, + author = "Barbara Beeton", + title = "{Updates from all over}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "570--571", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Berry:TB11-4-571, + author = "Karl Berry", + title = "{\tt eplain}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "571--572", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB11-4-572, + author = "Victor Eijkhout", + title = "{New Books on {\TeX}}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "572--573", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB11-4-573, + author = "Barbara Beeton", + title = "{A proto-TUG bibliography: Installment three}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "573--576", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Nieland:TB11-4-576, + author = "Ted Nieland", + title = "{The 1990 DECUS {\TeX} collection}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "576--577", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hosek:TB11-4-578, + author = "Don Hosek", + title = "{The {\tt IVRITEX} Mailing List}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "578--578", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lammarsch:TB11-4-578, + author = "Joachim Lammarsch", + title = "{IBM VM/CMS site report}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "578--578", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Neuwirth:TB11-4-578, + author = "Erich Neuwirth", + title = "{{\TeX} implementations for IBM PCs: comparative + timings}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "578--580", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Durst:TB11-4-580, + author = "Lincoln Durst", + title = "{Long-winded endnotes and exercises with hints or + solutions}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "580--588", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Salomon:TB11-4-588, + author = "David Salomon", + title = "{Output routines: Examples and techniques. Part III: + insertions}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "588--605", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB11-4-605, + author = "Victor Eijkhout", + title = "{A new editor}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "605--605", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Downes:TB11-4-605, + author = "Michael Downes", + title = "{Line breaking in {\tt\bs unhbox}ed text}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "605--612", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Maus:TB11-4-612, + author = "Sonja Maus", + title = "{Looking ahead for a \}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "612--613", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB11-4-613, + author = "Victor Eijkhout", + title = "{An indentation scheme}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "613--616", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB11-4-616, + author = "Victor Eijkhout", + title = "{A {\tt\char`\\parskip} scheme}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "616--619", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Whitney:TB11-4-620, + author = "Ron Whitney", + title = "{Sanitizing control sequences under {\tt\bs write}}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "620--622", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lavagnino:TB11-4-623, + author = "John Lavagnino and Dominik Wujastyk", + title = "{An Overview of {\tt EDMAC:} A {\plain} {\TeX} format + for critical editions}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "623--643", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Damrau:TB11-4-644, + author = "Jackie Damrau", + title = "{The {\LaTeX} column}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "644--644", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Geyer-Schulz:TB11-4-644, + author = "Andreas Geyer-Schulz and Josef Matulka and Gustaf + Neumann", + title = "{A {\LaTeX} document style option for typesetting + APL}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "644--651", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Love:TB11-4-652, + author = "David Love", + title = "{Experiments in {\TeX}nicolour\Dash A {\SliTeX} + sub-style for Colour Printers}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "652--656", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB11-4-657, + author = "Frank Mittelbach", + title = "{Footnotes in a multi-column layout}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "657--662", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Dietsche:TB11-4-663, + author = "Luzia Dietsche", + title = "{Deutsche Kurzfassungen der {\TUB}-Artikel}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "663--665", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Akwai:TB11-4-665, + author = "Peter C. Akwai", + title = "{{\TeX} drug bug}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "665--665", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-4-666, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "666--666", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-4-cover-3, + author = "Anonymous", + title = "{Call for papers: {\bf TUG Twelfth Annual Meeting}, + suburban Boston, 15--18 July 1991}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "Cover 3", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-4-667, + author = "Anonymous", + title = "{Call for papers: Tenth meeting, DANTE, Vienna, 20--22 + February 1991}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "667--667", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-4-667-2, + author = "Anonymous", + title = "{{\TeX}91/Congres GUTenberg'91, Paris, 23--26 + September 1991}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "667--667", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-4-668, + author = "Anonymous", + title = "{Call for papers: RIDT 91 (raster imaging/digital + typography), Boston, \rlap{15--16 October 1991}}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "668--668", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-4-669, + author = "Anonymous", + title = "{TUG Bylaws}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "669--676", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-4-676, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "676--678", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB11-4-679, + author = "Barbara Beeton", + title = "{Production notes}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "679--679", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-4-679, + author = "Anonymous", + title = "{Coming next issue}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "679--679", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-4-681, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "681--681", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB11-4-693, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "11", + number = "4", + pages = "693--693", + month = nov, + year = "1990", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB12-1-3, + author = "Barbara Beeton", + title = "{Introduction}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "3--4", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Neuwirth:TB12-1-5, + author = "Erich Neuwirth", + title = "{Quick and dirty databases with nice output: AWK and + {\TeX}}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "5--7", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Detig:TB12-1-8, + author = "Christine Detig", + title = "{{\TeX} \& hypertext\Dash The future of electronic + publishing?}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "8--12", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Carr:TB12-1-13, + author = "Les Carr and Sebastian Rahtz and Wendy Hall", + title = "{Experiments with {\TeX} and hyperactivity}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "13--20", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Braams:TB12-1-21, + author = "Johannes Braams and Victor Eijkhout and Nico + Poppelier", + title = "{The Dutch national {\LaTeX} effort}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "21--24", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Clark:TB12-1-25, + author = "Adrian Clark", + title = "{Documenting a {\TeX} archive}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "25--27", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kneser:TB12-1-28, + author = "Thomas Kneser", + title = "{{\LaTeX}-paragraphs floating around figures}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "28--30", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB12-1-31, + author = "Victor Eijkhout", + title = "{The document style designer as a separate entity}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "31--34", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taylor:TB12-1-35, + author = "Philip Taylor", + title = "{Improving the {\ae}sthetics of mixed-font + documents}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "35--44", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wittbecker:TB12-1-45, + author = "Alan Wittbecker", + title = "{{\archiTeX}, a preliminary international page pattern + maker}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "45--57", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sowa:TB12-1-58, + author = "Friedhelm Sowa", + title = "{Integration of graphics into {\TeX}}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "58--63", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Murphy:TB12-1-64, + author = "Timothy Murphy", + title = "{PostScript, QuickDraw, {\TeX}}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "64--65", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Maclenan:TB12-1-66, + author = "M. P. Maclenan and G. M. Burns", + title = "{An approach to drawing circuit diagrams for text + books}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "66--69", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Nicole:TB12-1-70, + author = "Olivier Nicole", + title = "{A graphic driver to interface statistical software S + and {\PiCTeX}}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "70--73", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB12-1-74, + author = "Frank Mittelbach and Rainer Sch{\"o}pf", + title = "{Towards {\LaTeX} 3.0}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "74--79", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kelly:TB12-1-80, + author = "Brian Hamilton Kelly", + title = "{Public-domain, documented implementations of {\TeX} + and {\MF} for VAX/VMS}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "80--83", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Clark:TB12-1-84, + author = "Malcolm Clark", + title = "{Post congress tristesse}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "84--89", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Laan:TB12-1-90, + author = "Kees van der Laan", + title = "{SGML (, {\TeX} and \dots)}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "90--104", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Poppelier:TB12-1-105, + author = "N. A. F. M. Poppelier", + title = "{SGML and {\TeX} in scientific publishing}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "105--109", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hendrickson:TB12-1-110, + author = "Amy Hendrickson", + title = "{Getting {\TeX}nical: Insights into {\TeX} macro + writing techniques}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "110--110", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wonneberger:TB12-1-111, + author = "Reinhard Wonneberger and Frank Mittelbach", + title = "{{\BibTeX{} reconsidered}}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "111--124", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB12-1-125, + author = "Alan Hoenig", + title = "{Labelling figures in {\TeX} documents}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "125--128", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haralambous:TB12-1-129, + author = "Yannis Haralambous", + title = "{Typesetting old german: Fraktur, Schwabacher, Gotisch + and initials}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "129--138", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Searcoid:TB12-1-139, + author = "M/iche/al /O Searc/oid", + title = "{The Irish alphabet}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "139--148", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Guenther:TB12-1-149, + author = "Dean Guenther and Janene Winter", + title = "{An international phonetic alphabet}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "149--156", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Clark:TB12-1-157, + author = "Adrian F. Clark", + title = "{Practical halftoning with {\TeX}}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "157--165", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Barden:TB12-1-166, + author = "Angela Barden", + title = "{Some {\TeX} manuals}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "166--170", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Neuwirth:TB12-1-171, + author = "Konrad Neuwirth", + title = "{{\TeX} in schools: Just say no}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "171--174", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-1-175, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "175--175", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-1-176, + author = "Anonymous", + title = "{Nominations}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "176--176", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Vesely:TB12-1-176, + author = "Ji\v{r}{\'\i} Vesel{\'y}", + title = "{{\TeX} in Czechoslovakia}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "176--177", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sullivan:TB12-1-177, + author = "Wayne Sullivan", + title = "{sb{\TeX} and sbMF}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "177--177", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Raman:TB12-1-178, + author = "T. V. Raman", + title = "{{\TeX} TALK}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "178--178", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-1-179, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "179--181", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-1-182, + author = "Anonymous", + title = "{TUG membership applications}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "182--183", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-1-200, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "12", + number = "1", + pages = "200--200", + month = mar, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-203, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "203--204", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beebe:TB12-2-205, + author = "Nelson H. F. Beebe", + title = "{President's introduction}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "205--208", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB12-2-208, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "208--211", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Obermiller:TB12-2-211, + author = "Walter Obermiller", + title = "{{\TeX} in Germany}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "211--212", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Malyshev:TB12-2-212, + author = "Basil Malyshev and Alexander Samarin and Dimitri + Vulis", + title = "{Russian {\TeX}}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "212--214", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Krstev:TB12-2-215, + author = "Cvetana Krstev", + title = "{Serbo-Croatian hyphenation: a {\TeX} point of view}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "215--223", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haralambous:TB12-2-224, + author = "Yannis Haralambous", + title = "{On {\TeX} and Greek\dots}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "224--226", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jalbert:TB12-2-227, + author = "Fran\c{c}ois Jalbert", + title = "{{\JemTeX} 2.00 available for Japanese}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "227--227", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jeffrey:TB12-2-227, + author = "Alan Jeffrey", + title = "{Labelled diagrams in {\MF}}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "227--229", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fossmeier:TB12-2-229, + author = "Reinhard F{\"o}{\ss}meier", + title = "{X bitmaps in {\TeX}}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "229--232", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Schrod:TB12-2-232, + author = "Joachim Schrod", + title = "{Report on the {\tt DVI} Driver Standard}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "232--233", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Berry:TB12-2-233, + author = "Karl Berry and Kathy Hargreaves", + title = "{Review of {\it 3\thinspace:\thinspace16 Bible Texts + Illuminated}}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "233--235", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Poppelier:TB12-2-235, + author = "Nico Poppelier", + title = "{Review of {\it {\LaTeX} for engineers and + scientists}}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "235--236", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB12-2-237, + author = "Alan Hoenig", + title = "{{\tt Just plain} Q\&A}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "237--238", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Salomon:TB12-2-238, + author = "David Salomon", + title = "{The {\tt\bs if}, {\tt\bs fx} and {\tt\bs ifcat} + comparisons}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "238--247", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Durst:TB12-2-248, + author = "Lincoln Durst", + title = "{Some tools for making indexes: Part I}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "248--252", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB12-2-253, + author = "Victor Eijkhout", + title = "{The structure of the {\TeX} processor}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "253--256", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB12-2-257, + author = "Barbara Beeton", + title = "{Initiation rites}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "257--258", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB12-2-259, + author = "Frank Mittelbach", + title = "{Solution to the riddle from \tubissue 11(4)}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "259--259", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB12-2-260, + author = "Victor Eijkhout", + title = "{The bag of tricks}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "260--260", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Smet:TB12-2-261, + author = "Don De Smet", + title = "{{\TeX} macros for producing multiple-choice tests}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "261--269", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hefferon:TB12-2-270, + author = "Jim Hefferon", + title = "{Getting {\tt\bs answer}s in {\TeX}}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "270--272", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB12-2-272, + author = "Victor Eijkhout", + title = "{Oral {\TeX}}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "272--276", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Maus:TB12-2-277, + author = "Sonja Maus", + title = "{An expansion power lemma}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "277--277", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Russell:TB12-2-278, + author = "George Russell", + title = "{Generating {\tt\bs n} asterisks}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "278--279", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Vulis:TB12-2-279, + author = "Dimitri Vulis", + title = "{{\TeX} and envelopes}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "279--284", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Damrau:TB12-2-284, + author = "Jackie Damrau", + title = "{The {\LaTeX} column}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "284--285", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Poppelier:TB12-2-285, + author = "Nico Poppelier", + title = "{A comment on The {\LaTeX} column}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "285--286", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Swonk:TB12-2-286, + author = "Glenn L. Swonk", + title = "{{\LaTeX} tree drawer}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "286--289", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thimbleby:TB12-2-290, + author = "Harold Thimbleby", + title = "{``See also'' indexing with Makeindex}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "290--290", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Braams:TB12-2-291, + author = "Johannes Braams", + title = "{Babel, a multilingual style-option system for use + with {\LaTeX}'s standard document styles}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "291--301", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lankford:TB12-2-302, + author = "Jeff Lankford", + title = "{Public domain SGML tools wanted}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "302--302", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Vesely:TB12-2-302, + author = "Ji\v{r}\'{\i} Vesel{\'y}", + title = "{Reporting {\TeX}'s hyphenations}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "302--302", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Abrahams:TB12-2-302, + author = "Paul Abrahams", + title = "{Response to Victor Eijkhout}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "302--303", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB12-2-303, + author = "Victor Eijkhout", + title = "{Response to Paul Abrahams}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "303--303", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Cuoco:TB12-2-303, + author = "Al Cuoco", + title = "{{\TeX} in schools: Why not?}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "303--304", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-305, + author = "Anonymous", + title = "{Cahiers GUTenberg \#7 and \#8}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "305--306", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-307, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "307--308", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-309, + author = "Anonymous", + title = "{{\TeX}91/Congres GUTenberg'91, Paris, 23--26 + September 1991}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "309--310", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-311, + author = "Anonymous", + title = "{Desktop Publishing in astronomy and space sciences, + Strasbourg, 1--3 October 1991}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "311--311", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-311-2, + author = "Anonymous", + title = "{Call for papers: EP92: International conference on + electronic publishing, document manipulation, and + typography, Lausanne, Switzerland, 7--10 April 1992}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "311--312", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB12-2-313, + author = "Donald Knuth", + title = "{Fixed-point glue setting: Errata}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "313--313", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB12-2-313, + author = "Barbara Beeton", + title = "{Production notes}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "313--314", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-315, + author = "Anonymous", + title = "{Coming next issue}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "315--315", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-315-2, + author = "Anonymous", + title = "{TUG financial statements}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "315--318", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-319, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "319--320", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-321, + author = "Anonymous", + title = "{TUG Bylaws}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "321--328", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-331, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "331--331", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-348, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "348--348", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-3, + author = "Anonymous", + title = "{TUG Membership List}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "3--117", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-118, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "118", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-119, + author = "Anonymous", + title = "{General comments}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "119--119", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-119-2, + author = "Anonymous", + title = "{\TUG}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "119--120", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-120, + author = "Anonymous", + title = "{{\CSTUG{}}}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "120--120", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-120-2, + author = "Anonymous", + title = "{CyrTUG}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "120--120", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-120-3, + author = "Anonymous", + title = "{DANTE e.V.}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "120--121", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-121, + author = "Anonymous", + title = "{GUTenberg}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "121--122", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-122, + author = "Anonymous", + title = "{ITALIC}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "122--122", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-122-2, + author = "Anonymous", + title = "{JTUG\Dash TUG Japan}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "122--122", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-123, + author = "Anonymous", + title = "{Nordic {\TeX} Group}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "123--123", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-123-2, + author = "Anonymous", + title = "{NTG}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "123--124", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-124, + author = "Anonymous", + title = "{\uktug}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "124--124", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-125, + author = "Anonymous", + title = "{YUNUS -- Turkish {\TeX} users}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "125--125", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-125-2, + author = "Anonymous", + title = "{Other international contacts}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "125--125", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Barnhart:TB12-2-126, + author = "Elizabeth M. Barnhart", + title = "{{\TeX} L.U.G.s}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "126", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-127, + author = "Anonymous", + title = "{Generic format}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "127--128", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-128, + author = "Anonymous", + title = "{Acorn Archimedes}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "128--128", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-128-2, + author = "Anonymous", + title = "{Amiga}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "128--128", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-128-3, + author = "Anonymous", + title = "{Atari ST}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "128--128", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-128-4, + author = "Anonymous", + title = "{Data General}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "128--128", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-128-5, + author = "Anonymous", + title = "{DEC-20\Dash TOPS-20}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "128--128", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-128-6, + author = "Anonymous", + title = "{IBM mainframes\dash MVS}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "128--129", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-129, + author = "Anonymous", + title = "{IBM mainframes\dash VM/CMS}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "129--129", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-129-2, + author = "Anonymous", + title = "{IBM PC and compatibles\Dash MS-DOS}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "129--129", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-130, + author = "Anonymous", + title = "{Macintosh}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "130--130", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-130-2, + author = "Anonymous", + title = "{Prime}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "130--130", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-130-3, + author = "Anonymous", + title = "{Unix}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "130--130", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-130-4, + author = "Anonymous", + title = "{{\VAX/VMS}}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "130--131", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Nieland:TB12-2-131, + author = "Ted Nieland", + title = "{Announcing the DECUS {\TeX} Collection, February + 1991}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "131--132", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hosek:TB12-2-133, + author = "Don Hosek", + title = "{{\TeX} Output Devices}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "133--158", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-159, + author = "Anonymous", + title = "{General observations}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "159--159", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-160, + author = "Anonymous", + title = "{Aston \ ({\tt uk.ac.tex})}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "160--160", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-160-2, + author = "Anonymous", + title = "{Clarkson ({\LaTeX} styles)}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "160--160", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-160-3, + author = "Anonymous", + title = "{{{\tt e-math.ams.com}}}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "160--160", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-161, + author = "Anonymous", + title = "{Heidelberg \ ({\tt DHDURZ1.Bitnet})}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "161--161", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-161-2, + author = "Anonymous", + title = "{{{\tt june.cs.washington.edu}}}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "161--161", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-161-3, + author = "Anonymous", + title = "{{{\tt labrea.stanford.edu}}}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "161--161", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-161-4, + author = "Anonymous", + title = "{Nijmegen \ ({\tt HEARN.Bitnet})}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "161--161", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-162, + author = "Anonymous", + title = "{SHSU \ ({\tt niord.shsu.edu}\,, {\tt SHSU.bitnet})}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "162--162", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-162-2, + author = "Anonymous", + title = "{SPAN/DECnet (Italy)}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "162--162", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-162-3, + author = "Anonymous", + title = "{Stuttgart \ ({\tt rusmv1.rus.uni-stuttgart.de})}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "162--163", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-163, + author = "Anonymous", + title = "{Utrecht \ ({\tt archive.cs.ruu.nl})}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "163--163", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-163-2, + author = "Anonymous", + title = "{{{\tt ymir.claremont.edu}}}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "163--163", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-163-3, + author = "Anonymous", + title = "{Other archives containing {\TeX} material}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "163--164", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Damerell:TB12-2-164, + author = "R. M. Damerell", + title = "{Fetching files from the Aston archive}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "164--169", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-170, + author = "Anonymous", + title = "{General comments}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "170--171", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-171, + author = "Anonymous", + title = "{{{\tt comp.text.tex}}}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "171--171", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-171-2, + author = "Anonymous", + title = "{{{\tt ELLHNIKA}} (Greek)}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "171--171", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-172, + author = "Anonymous", + title = "{{{\tt GUT}} (GUTenberg)}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "172--172", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-172-2, + author = "Anonymous", + title = "{{{\tt INFO-TeX}}}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "172--172", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-172-3, + author = "Anonymous", + title = "{{{\tt IVRITEX}} (Semitic languages)}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "172--172", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-172-4, + author = "Anonymous", + title = "{{{\tt LaTeX-help}}}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "172--172", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-173, + author = "Anonymous", + title = "{{{\tt RUSTeX-L}} (Russian)}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "173--173", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-173-2, + author = "Anonymous", + title = "{{{\tt TeX-D-L}} (German)}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "173--173", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-173-3, + author = "Anonymous", + title = "{{{\tt TeX-EURO}}}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "173--173", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-173-4, + author = "Anonymous", + title = "{{{\tt TeXhax}}}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "173--174", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-174, + author = "Anonymous", + title = "{{\TeX}MaG}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "174--174", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-174-2, + author = "Anonymous", + title = "{{{\tt TeX-Pubs}}}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "174--174", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-174-3, + author = "Anonymous", + title = "{{{\tt UKTeX}}}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "174--175", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-175, + author = "Anonymous", + title = "{{{\tt TeX-NL}} (Dutch)}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "175--175", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-175-2, + author = "Anonymous", + title = "{{{\tt YUNUS}} (Turkish)}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "175--175", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-176, + author = "Anonymous", + title = "{Publications about {\TeX} and typography}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "176--183", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-2-183, + author = "Anonymous", + title = "{Publications prepared with {\TeX}}", + journal = j-TUGboat, + volume = "12", + number = "2", + pages = "183--194", + month = jun, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beebe:TB12-3-351, + author = "Nelson H. F. Beebe", + title = "{President's introduction}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "351--352", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Poppelier:TB12-3-353, + author = "Nico A. F. M. Poppelier", + title = "{Two sides of the fence}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "353--358", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Petrycki:TB12-3-359, + author = "Laurie J. Petrycki", + title = "{Comparing {\TeX} and traditional typesetting for the + composition of a textbook}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "359--366", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bartlett:TB12-3-367, + author = "Frederick H. Bartlett", + title = "{Contra-{\LaTeX}, or what really works in the + publishing world}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "367--371", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ratner:TB12-3-372, + author = "Howard Ratner and Kenneth Dreyhaupt", + title = "{{\TeX} in a book production department}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "372--376", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Horn:TB12-3-377, + author = "Berthold K. P. Horn", + title = "{{\tt dvi} and eps: The ideal author-to-publisher + interface?}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "377--381", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Weiss:TB12-3-382, + author = "Neil A. Weiss", + title = "{Producing a book using {\TeX}: How the process + works}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "382--386", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rhoads:TB12-3-387, + author = "Samuel E. Rhoads", + title = "{Authors new to {\TeX} publish a textbook with a + publisher new to {\TeX}}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "387--392", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Brosnan:TB12-3-393, + author = "Colleen Brosnan", + title = "{The ``Five Cs'': A guide to successful publication + using {\TeX}}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "393--396", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoover:TB12-3-397, + author = "Anita Z. Hoover", + title = "{{\LaTeX}/{\TeX} user: A typist, or typesetter?}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "397--400", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lavagnino:TB12-3-401, + author = "John Lavagnino", + title = "{Simultaneous electronic and paper publication}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "401--405", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gaffey:TB12-3-406, + author = "Robert W. \Mc Gaf\/fey", + title = "{SGML versus/and {\TeX}}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "406--408", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Dobrowolski:TB12-3-409, + author = "Andrew E. Dobrowolski", + title = "{Typesetting SGML documents using {\TeX}}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "409--414", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sperberg-McQueen:TB12-3-415, + author = "C. M. Sperberg-McQueen", + title = "{Specifying document structure: Differences in + {\LaTeX} and TEI markup}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "415--421", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kakiuchi:TB12-3-422, + author = "Takashi Kakiuchi and Yuki Kusumi and Yoshiyuki Miyabe + and Kazu Tsuga", + title = "{A structured document preparation system\Dash {\sl + Autolayouter version 2.0}\Dash an enhancement for + handling multiple document types}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "422--429", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Williams:TB12-3-430, + author = "Linda Williams", + title = "{Refining a process}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "430--433", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Semenzato:TB12-3-434, + author = "Luigi Semenzato and Edward Wang", + title = "{A text processing language should be first a + programming language}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "434--441", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Vulis:TB12-3-442, + author = "Michael Vulis", + title = "{Should {\TeX} be extended?}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "442--447", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-3-448, + author = "Anonymous", + title = "{TUG 1992 annual meeting, Portland, Oregon}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "448--448", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-3-449, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "449--450", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-3-451, + author = "Anonymous", + title = "{TUG membership applications}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "451--452", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-3-453, + author = "Anonymous", + title = "{{\TeX} consultants}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "453--453", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-3-468, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "12", + number = "3", + pages = "468--468", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Horstmann:TB12-4-471, + author = "Cay S. Horstmann", + title = "{Automatic conversion from a scientific word processor + to {\TeX}}", + journal = j-TUGboat, + volume = "12", + number = "4", + pages = "471--478", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Arnon:TB12-4-479, + author = "Dennis S. Arnon and Sandra A. Mamrak", + title = "{On the logical structure of mathematical notation}", + journal = j-TUGboat, + volume = "12", + number = "4", + pages = "479--484", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Laan:TB12-4-485, + author = "Kees van der Laan", + title = "{Math into BLUes}", + journal = j-TUGboat, + volume = "12", + number = "4", + pages = "485--501", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Downes:TB12-4-502, + author = "Michael J. Downes", + title = "{Dialog with {\TeX}}", + journal = j-TUGboat, + volume = "12", + number = "4", + pages = "502--509", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Damrau:TB12-4-510, + author = "Jackie Damrau and Michael Wester", + title = "{Form letters with 3-across labels capability}", + journal = j-TUGboat, + volume = "12", + number = "4", + pages = "510--516", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Roth:TB12-4-517, + author = "Mark A. Roth", + title = "{Typesetting forms with {\LaTeX}}", + journal = j-TUGboat, + volume = "12", + number = "4", + pages = "517--522", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Flynn:TB12-4-523, + author = "Peter Flynn", + title = "{Developing a pop-up help facility for {\TeX} on + PCs}", + journal = j-TUGboat, + volume = "12", + number = "4", + pages = "523--527", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Clark:TB12-4-528, + author = "Malcolm Clark and Brian Hamilton Kelly and Niel + Kempson", + title = "{7 bits good, 8 bits bad {\sl or\/} ``The eight-bit + blight''}", + journal = j-TUGboat, + volume = "12", + number = "4", + pages = "528--533", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sowa:TB12-4-534, + author = "Friedhelm Sowa", + title = "{Bitmaps and halftones with {\ssf BM2FONT}}", + journal = j-TUGboat, + volume = "12", + number = "4", + pages = "534--538", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haralambous:TB12-4-539, + author = "Yannis Haralambous", + title = "{{\TeX} and those other languages}", + journal = j-TUGboat, + volume = "12", + number = "4", + pages = "539--548", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hosek:TB12-4-549, + author = "Don Hosek", + title = "{Siamese {\TeX}: Joining dvi files at the hip and + other novel applications of vf files}", + journal = j-TUGboat, + volume = "12", + number = "4", + pages = "549--553", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB12-4-554, + author = "Alan Hoenig", + title = "{When {\TeX} and {\MF} talk: Typesetting on curved + paths and other special effects}", + journal = j-TUGboat, + volume = "12", + number = "4", + pages = "554--557", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-4-558, + author = "Anonymous", + title = "{Participants at TUG'91}", + journal = j-TUGboat, + volume = "12", + number = "4", + pages = "558--561", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-4-562, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "12", + number = "4", + pages = "562--563", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-4-563, + author = "Anonymous", + title = "{The Donald E. Knuth Scholarship for 1992}", + journal = j-TUGboat, + volume = "12", + number = "4", + pages = "563--564", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-4-564, + author = "Anonymous", + title = "{GUTenberg'92, Les Diablarets, Switzerland}", + journal = j-TUGboat, + volume = "12", + number = "4", + pages = "564--565", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-4-570, + author = "Anonymous", + title = "{TUG 1992 annual meeting, Portland, Oregon}", + journal = j-TUGboat, + volume = "12", + number = "4", + pages = "570--570", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB12-4-588, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "12", + number = "4", + pages = "588--588", + month = nov, + year = "1991", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-1-3, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "3--4", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Clark:TB13-1-5, + author = "Malcolm Clark", + title = "{Prez says}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "5--5", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beebe:TB13-1-6, + author = "Nelson H. F. Beebe", + title = "{President's introduction}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "6--10", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB13-1-10, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "10--11", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-1-11, + author = "Anonymous", + title = "{Samuel B. Whidden, 1930--1991}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "11--12", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Asher:TB13-1-13, + author = "Graham Asher", + title = "{Inside Type \& Set}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "13--22", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beccari:TB13-1-23, + author = "Claudio Beccari", + title = "{Computer Aided Hyphenation for Italian and Modern + Latin}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "23--33", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rahtz:TB13-1-34, + author = "Sebastian Rahtz", + title = "{Invisibility using virtual fonts}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "34--36", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thain:TB13-1-36, + author = "Toby Thain", + title = "{Packing {\MF}s into {\PS}}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "36--38", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mylonas:TB13-1-39, + author = "C. Mylonas and R. Whitney", + title = "{Modern Greek with adjunct fonts}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "39--50", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB13-1-51, + author = "Frank Mittelbach", + title = "{Comments on ``Filenames for Fonts'' ({\TUB} 11\#4)}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "51--53", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Committee:TB13-1-54, + author = "TUG {\sltt DVI} Driver Standards Committee", + title = "{{\tt DVI} driver standard, level 0}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "54--57", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB13-1-57, + author = "Victor Eijkhout", + title = "{New books on {\TeX}}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "57--58", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Poppelier:TB13-1-58, + author = "Nico Poppelier", + title = "{New books on {\LaTeX}}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "58--59", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB13-1-60, + author = "Alan Hoenig", + title = "{{\tt Just plain} Q\&A: Of partitioned matrices and + doublespacing}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "60--62", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Siebenmann:TB13-1-62, + author = "L. Siebenmann", + title = "{Elementary text processing and parsing in {\TeX} + {\it--- the appreciation of tokens ---}}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "62--73", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB13-1-74, + author = "Victor Eijkhout", + title = "{The bag of tricks}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "74--74", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB13-1-75, + author = "Victor Eijkhout", + title = "{Erratum: Oral {\TeX}, \tubissue 12(2), pp.\ + 272--276}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "75--75", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fine:TB13-1-75, + author = "Jonathan Fine", + title = "{Some basic control macros for {\TeX}}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "75--83", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB13-1-84, + author = "Victor Eijkhout and Ron Sommeling", + title = "{Self-replicating macros}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "84--84", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Tutelaers:TB13-1-85, + author = "Piet Tutelaers", + title = "{A font and a style for typesetting chess using + {\LaTeX} or {\TeX}}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "85--90", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Laan:TB13-1-91, + author = "Kees van der Laan", + title = "{Tower of Hanoi, revisited}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "91--94", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Damrau:TB13-1-94, + author = "Jackie Damrau", + title = "{The {\LaTeX} column}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "94--95", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thimbleby:TB13-1-95, + author = "Harold Thimbleby", + title = "{Erratum: ``See also'' indexing with Makeindex, + \tubissue 12(2), p.\ 290}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "95--95", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB13-1-96, + author = "Frank Mittelbach and Chris Rowley", + title = "{{\LaTeX} 2.09 $\hookrightarrow$ {\LaTeX}3}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "96--101", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-1-101, + author = "Anonymous", + title = "{Cahiers GUTenberg \#9 and \#10--11}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "101--105", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-1-106, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "106--107", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-1-107, + author = "Anonymous", + title = "{Euro{\TeX}\,92, Prague, 14--18 September 1992}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "107--108", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB13-1-108, + author = "Barbara Beeton", + title = "{Production notes}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "108--109", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-1-109, + author = "Anonymous", + title = "{Coming next issue}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "109--109", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-1-110, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "110--111", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-1-112, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "112--112", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-1-126, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "126--126", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-1-127, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "13", + number = "1", + pages = "127--127", + month = apr, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-2-131, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "131--132", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Clark:TB13-2-133, + author = "Malcolm Clark", + title = "{Changing {\TeX}?}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "133--134", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB13-2-134, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "134--137", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-2-137, + author = "Anonymous", + title = "{TUG seeks Executive Director}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "137--137", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taylor:TB13-2-138, + author = "Philip Taylor", + title = "{{\TeX}: The next generation}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "138--138", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Damerell:TB13-2-139, + author = "R. M. Damerell", + title = "{Knuth's profiler adapted to the VMS operating + system}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "139--145", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Salomon:TB13-2-146, + author = "David Salomon", + title = "{Arrows for Technical Drawings}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "146--149", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Levin:TB13-2-150, + author = "Daniel Levin", + title = "{A solution to the color separation problem}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "150--155", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rahtz:TB13-2-156, + author = "Sebastian Rahtz and Leonor Barroca", + title = "{A style option for rotated objects in {\TeX}}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "156--180", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Luvisetto:TB13-2-181, + author = "Marisa Luvisetto and Massimo Calvani", + title = "{Book review: An Italian guide to {\LaTeX} (by Claudio + Beccari)}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "181--182", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Poppelier:TB13-2-182, + author = "Nico Poppelier", + title = "{Book reviews: Jane Hahn, {\it {\LaTeX} for + Everyone\/}; Eric van Herwijnen, {\it Practical + SGML\/}}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "182--185", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taylor:TB13-2-185, + author = "Philip Taylor", + title = "{Book review: Victor Eijkhout, {\it {\TeX} by + Topic\/}}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "185--188", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jones:TB13-2-188, + author = "David M. Jones", + title = "{A {\TeX} macro index}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "188--189", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB13-2-189, + author = "Victor Eijkhout", + title = "{Names of control sequences}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "189--190", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB13-2-190, + author = "Frank Mittelbach", + title = "{Where does this character come from?}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "190--190", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB13-2-191, + author = "Victor Eijkhout", + title = "{The bag of tricks}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "191--191", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Huszar:TB13-2-192, + author = "P{\'e}ter Husz{\'a}r", + title = "{Over the multi-column}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "192--200", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Goossens:TB13-2-201, + author = "Michel Goossens and Eric van Herwijnen", + title = "{The elementary Particle Entity Notation (PEN) + scheme}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "201--207", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Luvisetto:TB13-2-208, + author = "Maria Luisa Luvisetto and Enzo Ugolini", + title = "{From {\TeX} to {\LaTeX}}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "208--214", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Cameron:TB13-2-215, + author = "Peter J. Cameron", + title = "{Geometric diagrams in {\LaTeX}}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "215--216", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Partl:TB13-2-217, + author = "Hubert Partl", + title = "{How to change the layout with {\LaTeX} 2.09}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "217--220", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wonneberger:TB13-2-221, + author = "Reinhard Wonneberger and Frank Mittelbach", + title = "{SGML\Dash Questions and answers}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "221--223", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Barr:TB13-2-223, + author = "Michael Barr", + title = "{{\TeX} wish list}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "223--226", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wonneberger:TB13-2-226, + author = "Reinhard Wonneberger", + title = "{Approaching SGML from {\TeX}}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "226--227", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-2-227, + author = "Anonymous", + title = "{Cahiers GUTenberg \#12}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "227--228", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-2-228, + author = "Anonymous", + title = "{Baskerville, Volume 2, Number 1, March 1992}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "228--229", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB13-2-229, + author = "Barbara Beeton", + title = "{Production notes}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "229--230", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-2-230, + author = "Anonymous", + title = "{Coming next issue}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "230--230", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-2-231, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "231--232", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-2-232, + author = "Anonymous", + title = "{Euro{\TeX}\,92, Prague, 14--18 September 1992}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "232--233", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-2-235, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "235--236", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-2-247, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "13", + number = "2", + pages = "247--247", + month = jul, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Clark:TB13-3-251, + author = "Malcolm Clark", + title = "{President's introduction}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "251--252", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Clark:TB13-3-253, + author = "Malcolm Clark", + title = "{Portable graphics in {\TeX}}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "253--260", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB13-3-261, + author = "Bart Childs", + title = "{Literate programming, a practitioner's view}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "261--268", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hampson:TB13-3-269, + author = "Steve Hampson and Barry Smith", + title = "{A high performance {\TeX} for the Motorola 68000 + processor family}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "269--271", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Baldwin:TB13-3-272, + author = "Harry L. {Baldwin, Jr.}", + title = "{Using a high-level language as an aid in writing + {\TeX} documents}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "272--280", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bennett:TB13-3-281, + author = "Larry F. Bennett", + title = "{T-EDIT, a collection of editing macros for {\TeX}}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "281--290", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gaffey:TB13-3-291, + author = "Robert \Mc Gaffey", + title = "{Automatic tables using {\SMC SGML}, {\SMC C}, and + {\TeX}}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "291--294", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Starks:TB13-3-295, + author = "Anthony J. Starks", + title = "{Dotex\Dash integrating {\TeX} into the X-window + system}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "295--303", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thorup:TB13-3-304, + author = "Kresten Krab Thorup", + title = "{GNU emacs as a front end to {\LaTeX}}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "304--308", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Laan:TB13-3-309, + author = "Walter van der Laan and Johannes Braams", + title = "{Writing reports with more than a hundred people}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "309--314", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Damrau:TB13-3-315, + author = "Jackie Damrau", + title = "{Discovering graphics in {\LaTeX} documents}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "315--321", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Harris:TB13-3-322, + author = "Robert L. Harris", + title = "{Preparing halftones for use in {\TeX}}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "322--326", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Salomon:TB13-3-327, + author = "David Salomon", + title = "{Creating shaded rectangles with {\PS}}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "327--329", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Weiss:TB13-3-330, + author = "Neil A. Weiss", + title = "{Creation and incorporation of {\PS} graphics with + {\TeX}-formatted labels into {\TeX} documents}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "330--334", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuutila:TB13-3-335, + author = "Timo Knuutila", + title = "{How to combine multiple languages, {\PS}, and + {\LaTeX}}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "335--340", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB13-3-341, + author = "Victor Eijkhout", + title = "{Just give me a lollipop (it makes my heart go + giddy-up)}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "341--346", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hafner:TB13-3-347, + author = "James L. Hafner", + title = "{Foil{\TeX}, a {\LaTeX}-like system for typesetting + foils}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "347--356", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Abbott:TB13-3-357, + author = "Peter Abbott", + title = "{Typesetting a magazine the easy way}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "357--361", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB13-3-362, + author = "Mimi Burbank and Donna Burnette", + title = "{Using {\TeX} for a publications database}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "362--371", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Raman:TB13-3-372, + author = "T. V. Raman", + title = "{An audio view of ({\La}){\TeX} documents}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "372--379", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Arnon:TB13-3-380, + author = "Dennis S. Arnon and Isabelle Attali and Paul + Franchi-Zannettacci", + title = "{Model-based conversions of {\LaTeX} documents}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "380--389", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rowley:TB13-3-390, + author = "Chris Rowley", + title = "{{\LaTeX}3 update}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "390--391", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-3-391, + author = "Anonymous", + title = "{Workshops}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "391--392", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-3-393, + author = "Anonymous", + title = "{Participants at the 1992 TUG Meeting}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "393--394", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-3-395, + author = "Anonymous", + title = "{The Donald E. Knuth Scholarship for 1992 and 1993}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "395--396", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-3-396, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "396--397", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-3-398, + author = "Anonymous", + title = "{TUG 1993 annual meeting, Aston University, UK}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "398--398", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-3-399, + author = "Anonymous", + title = "{TUG 1993 course schedule}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "399--399", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-3-400, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "400--401", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-3-402, + author = "Anonymous", + title = "{Consultants}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "402--402", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-3-411, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "13", + number = "3", + pages = "411--411", + month = oct, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-4-415, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "415--416", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Clark:TB13-4-417, + author = "Malcolm Clark", + title = "{The back benches beckon}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "417--418", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB13-4-418, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "418--419", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-4-419, + author = "Anonymous", + title = "{An interview with Donald Knuth, November 1991}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "419--425", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Palais:TB13-4-425, + author = "Richard Palais", + title = "{Moving a fixed point}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "425--432", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taylor:TB13-4-433, + author = "Philip Taylor", + title = "{The future of {\TeX}}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "433--442", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kelly:TB13-4-443, + author = "Nickolas J. Kelly and Christian H. Bischof", + title = "{XBib{\TeX} and friends}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "443--446", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Chapman:TB13-4-447, + author = "Nigel Chapman", + title = "{Searching in a DVI file}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "447--451", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-4-452, + author = "Anonymous", + title = "{Hyphenation exception log}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "452--457", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB13-4-457, + author = "Bart Childs", + title = "{Errata: Literate Programming, A Practitioner's View, + \tubissue 13(3), pp.\ 261--268}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "457--457", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haralambous:TB13-4-457, + author = "Yannis Haralambous", + title = "{Hyphenation patterns for ancient Greek and Latin}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "457--469", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Zubrinic:TB13-4-470, + author = "Darko \v{Z}ubrini{\'c}", + title = "{The exotic Croatian Glagolitic alphabet}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "470--471", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sauter:TB13-4-472, + author = "John Sauter", + title = "{Postnet codes using {\MF}}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "472--476", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haralambous:TB13-4-476, + author = "Yannis Haralambous", + title = "{A {\tt typewriter} font for the Macintosh 8-bit font + table}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "476--477", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rahtz:TB13-4-477, + author = "Sebastian Rahtz and Leonor Barroca", + title = "{Addendum: A style option for rotated objects in + {\TeX} (\tubissue 13(2), pp. 156--180)}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "477--477", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Seyfarth:TB13-4-478, + author = "Ray Seyfarth", + title = "{Diag: a drawing preprocessor for {\LaTeX}}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "478--485", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB13-4-486, + author = "Victor Eijkhout", + title = "{Wynter Snow, {\it {\TeX} for the Beginner}}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "486--487", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Greenwade:TB13-4-487, + author = "George Greenwade", + title = "{Arvind Borde, {\it {\TeX} by Example}}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "487--489", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Cameron:TB13-4-489, + author = "A. G. W. Cameron", + title = "{Andr\'e Heck, ed., {\it Desktop Publishing in + Astronomy \& Space Sciences}}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "489--490", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Neuwirth:TB13-4-490, + author = "Erich Neuwirth", + title = "{{\TeX} implementations for IBM PCs: comparative + timings}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "490--492", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB13-4-493, + author = "Frank Mittelbach", + title = "{Where does this character come from? Solution to the + puzzle, \tubissue 13(2), p.190}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "493--493", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB13-4-494, + author = "Victor Eijkhout", + title = "{The bag of tricks}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "494--495", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fine:TB13-4-495, + author = "Jonathan Fine", + title = "{Too many errors}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "495--496", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB13-4-496, + author = "Victor Eijkhout", + title = "{One error less}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "496--497", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anagnostopoulos:TB13-4-497, + author = "Paul Anagnostopoulos", + title = "{Zz{\TeX}: A macro package for books}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "497--505", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fine:TB13-4-505, + author = "Jonathan Fine", + title = "{The {\tt\char`\\noname} macros\Dash A technical + report}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "505--509", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB13-4-510, + author = "Frank Mittelbach and Chris Rowley and Michael Downes", + title = "{Volunteer work for the {\LaTeX}3 project}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "510--515", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Piff:TB13-4-516, + author = "Mike Piff", + title = "{Correction sheets in {\LaTeX}}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "516--518", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Piff:TB13-4-518, + author = "Mike Piff", + title = "{Text merges in {\TeX} and {\LaTeX}}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "518--523", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rahtz:TB13-4-524, + author = "Sebastian Rahtz", + title = "{A style file for printing sheets of labels}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "524--528", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-4-528, + author = "Anonymous", + title = "{Cahiers GUTenberg \#13}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "528--529", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-4-530, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "530--532", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-4-532, + author = "Anonymous", + title = "{Call for Papers: Special Issue of {\it Electronic + Publishing: Origination, Dissemination and Design\/} on + Active Documents}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "532--532", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB13-4-533, + author = "Barbara Beeton", + title = "{Production notes}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "533--533", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-4-534, + author = "Anonymous", + title = "{Coming next issue}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "534--534", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-4-534-2, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "534--536", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-4-537, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "537--538", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-4-536, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "536--536", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB13-4-544, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "13", + number = "4", + pages = "544--544", + month = dec, + year = "1992", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-1-3, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "3--4", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thiele:TB14-1-5, + author = "Christina Thiele", + title = "{Opening words}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "5--6", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB14-1-7, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "7--7", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wong:TB14-1-8, + author = "Wai Wong", + title = "{Typesetting Chinese {\it pinyin} using virtual + fonts}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "8--11", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Vesilo:TB14-1-12, + author = "R. A. Vesilo and A. Dunn", + title = "{A multimedia document system based on {\TeX} and DVI + documents}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "12--16", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taylor:TB14-1-17, + author = "Philip Taylor", + title = "{Arvind Borde, {\it Mathematical {\TeX} by Example}}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "17--20", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Radel:TB14-1-20, + author = "Jon Radel", + title = "{Michael Vulis, {\it Modern {\TeX} and Its + Applications}}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "20--23", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB14-1-23, + author = "Victor Eijkhout", + title = "{The bag of tricks}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "23--24", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Comenetz:TB14-1-25, + author = "Daniel Comenetz", + title = "{Anchored figures at either margin}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "25--34", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fine:TB14-1-35, + author = "Jonathan Fine", + title = "{The {\tt\char`\\CASE} and {\tt\char`\\FIND} macros}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "35--39", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Saludes:TB14-1-40, + author = "Jordi Saludes", + title = "{Doing astronomical computations with {\TeX}: Making + agendas}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "40--53", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Laan:TB14-1-54, + author = "Kees van der Laan", + title = "{FIFO and LIFO sing the BLUes}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "54--60", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Braams:TB14-1-60, + author = "Johannes Braams", + title = "{An update on the {\sf babel} system}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "60--62", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Zbikowski:1993:HGA, + author = "Rafa{\l} \.Zbikowski", + title = "{Hacker's Guide to {\AmS}Fonts and NFSS in the Context + of {\LaTeX}}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "62--69", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Heck:TB14-1-70, + author = "Andr{\'e} Heck", + title = "{Response to A.G.W. Cameron}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "70--70", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-1-71, + author = "Anonymous", + title = "{Die {\TeX}nische Kom\"odie 1992, Heft 1--4}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "71--76", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-1-77, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "77--79", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-1-79, + author = "Anonymous", + title = "{Courses to be held in conjunction with TUG\,93 (Aston + University, Birmingham, U.K., 26--30 July 1993)}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "79--79", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB14-1-81, + author = "Barbara Beeton", + title = "{Production notes}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "81--81", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-1-81, + author = "Anonymous", + title = "{Coming next issue}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "81--82", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-1-83, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "83--84", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-1-85, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "85--86", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-1-82, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "82--82", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-1-87, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "14", + number = "1", + pages = "87--87", + month = apr, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-2-95, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "14", + number = "2", + pages = "95--96", + month = jul, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thiele:TB14-2-97, + author = "Christina Thiele", + title = "{Opening words}", + journal = j-TUGboat, + volume = "14", + number = "2", + pages = "97--98", + month = jul, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB14-2-99, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "14", + number = "2", + pages = "99--101", + month = jul, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Poppelier:TB14-2-102, + author = "Nico Poppelier", + title = "{The Donald E. Knuth Scholarship: 1993 Scholar and + 1994 announcement}", + journal = j-TUGboat, + volume = "14", + number = "2", + pages = "102--103", + month = jul, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-2-103, + author = "Anonymous", + title = "{The A-in-{\LaTeX} Contest: Deadline extended}", + journal = j-TUGboat, + volume = "14", + number = "2", + pages = "103--103", + month = jul, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knappen:TB14-2-104, + author = "J{\"o}rg Knappen", + title = "{Fonts for Africa: the fc-fonts}", + journal = j-TUGboat, + volume = "14", + number = "2", + pages = "104--106", + month = jul, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rahtz:TB14-2-107, + author = "Sebastian Rahtz", + title = "{Implementing the extended {\TeX} layout using PS + fonts}", + journal = j-TUGboat, + volume = "14", + number = "2", + pages = "107--117", + month = jul, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Cohen:TB14-2-118, + author = "Michael Cohen", + title = "{Zebrackets: a pseudo-dynamic contextually adaptive + font}", + journal = j-TUGboat, + volume = "14", + number = "2", + pages = "118--122", + month = jul, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jurriens:TB14-2-123, + author = "Theo Jurriens", + title = "{From observation to publication}", + journal = j-TUGboat, + volume = "14", + number = "2", + pages = "123--126", + month = jul, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Poppelier:TB14-2-127, + author = "Nico Poppelier", + title = "{Review of recent {\LaTeX} books}", + journal = j-TUGboat, + volume = "14", + number = "2", + pages = "127--128", + month = jul, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Collins:TB14-2-128, + author = "John Collins", + title = "{ET\Dash a {\TeX}-compatible editor for MSDOS + computers}", + journal = j-TUGboat, + volume = "14", + number = "2", + pages = "128--131", + month = jul, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rahtz:TB14-2-132, + author = "Sebastian Rahtz", + title = "{Essential NFSS2}", + journal = j-TUGboat, + volume = "14", + number = "2", + pages = "132--137", + month = jul, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taylor:TB14-2-138, + author = "Philip Taylor", + title = "{A pragmatic approach to paragraphs}", + journal = j-TUGboat, + volume = "14", + number = "2", + pages = "138--140", + month = jul, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Durst:TB14-2-141, + author = "Lincoln Durst", + title = "{Truth in indexing}", + journal = j-TUGboat, + volume = "14", + number = "2", + pages = "141--141", + month = jul, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taylor:TB14-2-141, + author = "Philip Taylor", + title = "{Letterspacing in {\TeX}}", + journal = j-TUGboat, + volume = "14", + number = "2", + pages = "141--145", + month = jul, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-2-146, + author = "Anonymous", + title = "{Cahiers GUTenberg \#15}", + journal = j-TUGboat, + volume = "14", + number = "2", + pages = "146--146", + month = jul, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-2-147, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "14", + number = "2", + pages = "147--148", + month = jul, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB14-2-149, + author = "Barbara Beeton", + title = "{Production notes}", + journal = j-TUGboat, + volume = "14", + number = "2", + pages = "149--149", + month = jul, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-2-149, + author = "Anonymous", + title = "{Coming next issue}", + journal = j-TUGboat, + volume = "14", + number = "2", + pages = "149--149", + month = jul, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-2-150, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "14", + number = "2", + pages = "150--151", + month = jul, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-2-148, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "14", + number = "2", + pages = "148--148", + month = jul, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-2-152, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "14", + number = "2", + pages = "152--152", + month = jul, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thiele:TB14-3-162, + author = "Christina A. L. Thiele", + title = "{The future of {\TeX} and TUG}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "162--166", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lammarsch:TB14-3-167, + author = "Joachim Lammarsch", + title = "{A new typesetting system: is it really necessary?}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "167--170", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rycko:TB14-3-171, + author = "Marek Ry{\'c}ko and Bogus{\l}aw Jackowski", + title = "{{\TeX} from {\tt\bs indent} to {\tt\bs par}}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "171--176", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taylor:TB14-3-177, + author = "Philip Taylor", + title = "{NTS: the future of {\TeX}?}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "177--182", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hunter:TB14-3-183, + author = "Roger Hunter", + title = "{A future for {\TeX}}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "183--186", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bennett:TB14-3-187, + author = "Frank G. {Bennett, Jr.}", + title = "{{\LexiTeX}: context-sensitive legal citations for + {\LaTeX}}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "187--195", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taupin:TB14-3-196, + author = "Daniel Taupin", + title = "{Using {\TeX} and {\slMF} to build complicated maps}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "196--202", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taupin:TB14-3-203, + author = "Daniel Taupin", + title = "{Music{\TeX}: Using {\TeX} to write polyphonic or + instrumental music}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "203--211", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Siebenmann:TB14-3-212, + author = "Laurent Siebenmann", + title = "{A format compilation framework for European + languages}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "212--221", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beebe:TB14-3-222, + author = "Nelson Beebe", + title = "{Bibliography prettyprinting and syntax checking}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "222--222", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bryan:TB14-3-223, + author = "Martin Bryan", + title = "{A {\TeX} user's guide to ISO's Document Style + Semantics and Specification Language (DSSSL)}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "223--226", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Flynn:TB14-3-227, + author = "Peter Flynn", + title = "{{\TeX} and SGML: a recipe for disaster?}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "227--230", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wang:TB14-3-231, + author = "Xinxin Wang and Derick Wood", + title = "{An abstract model for tables}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "231--237", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lavaud:TB14-3-238, + author = "Michel Lavaud", + title = "{Developing a multi-windowing environment for research + based on \TeX}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "238--244", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kawaguti:TB14-3-245, + author = "Minato Kawaguti", + title = "{A versatile {\TeX} device driver}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "245--251", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Feruglio:TB14-3-252, + author = "Gabriel Valiente Feruglio and Robert Fuster", + title = "{Typesetting Catalan texts with {\TeX}}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "252--259", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haralambous:TB14-3-260, + author = "Yannis Haralambous", + title = "{The Khmer script tamed by the Lion (of {\TeX})}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "260--270", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Plaice:TB14-3-271, + author = "John Plaice", + title = "{Language-dependent ligatures}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "271--274", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Doob:TB14-3-275, + author = "Michael Doob and Craig Platt", + title = "{Virtual fonts in a production environment}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "275--281", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Horn:TB14-3-282, + author = "Berthold K. P. Horn", + title = "{Where are the math fonts?}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "282--284", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jeffrey:TB14-3-285, + author = "Alan Jeffrey", + title = "{A {\PS} font installation package written in + {\TeX}}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "285--292", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jeffrey:TB14-3-293, + author = "(edited by Alan Jeffrey)", + title = "{Math font encodings: a workshop summary}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "293--295", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bzyl:TB14-3-296, + author = "W{\l}odek Bzyl and Tomasz Przechlewski", + title = "{An application of literate programming: creating a + format for the Bulletin of the Polish TUG}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "296--299", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fine:TB14-3-300, + author = "Jonathan Fine", + title = "{Galleys, space, and automata}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "300--309", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Laan:TB14-3-310, + author = "Kees van der Laan", + title = "{Syntactic sugar}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "310--318", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Laan:TB14-3-319, + author = "Kees van der Laan", + title = "{Sorting within {\TeX}}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "319--328", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Dyson:TB14-3-329, + author = "Mary Dyson", + title = "{Teaching digital typography\Dash the Didot Project}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "329--332", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gorbunova:TB14-3-333, + author = "Irina V. Gorbunova", + title = "{Russian-speaking user: from Chi-Writer and Ventura + Publisher to {\TeX}; learning difficulties}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "333--334", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Reese:TB14-3-335, + author = "R. Allan Reese", + title = "{How to set up and maintain a {\TeX} system}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "335--341", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Greenwade:TB14-3-342, + author = "George D. Greenwade", + title = "{The Comprehensive {\TeX} Archive Network (CTAN)}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "342--351", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-3-352, + author = "Anonymous", + title = "{Participants at the 1993 TUG meeting}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "352--355", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-3-356, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "356--357", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-3-358, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "358--359", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-3-360, + author = "Anonymous", + title = "{TUG 1994 annual meeting, Santa Barbara, USA}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "360--360", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-3-361, + author = "Anonymous", + title = "{TUG individual membership application}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "361--361", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-3-362, + author = "Anonymous", + title = "{TUG institutional membership application}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "362--362", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-3-359, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "359--359", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-3-363, + author = "Anonymous", + title = "{Consultants}", + journal = j-TUGboat, + volume = "14", + number = "3", + pages = "363--363", + month = oct, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-4-369, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "369--370", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thiele:TB14-4-371, + author = "Christina Thiele", + title = "{Opening words}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "371--371", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB14-4-372, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "372--373", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-4-373, + author = "Anonymous", + title = "{{\TUB} wish list}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "373--373", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Clark:TB14-4-374, + author = "Malcolm Clark", + title = "{{\NexTeX}: A personal view}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "374--380", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taylor:TB14-4-381, + author = "Philip Taylor", + title = "{NTS update}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "381--382", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Becker:TB14-4-382, + author = "Thomas Becker", + title = "{Two extensions to GNU Emacs that are useful when + editing {\TeX} documents}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "382--386", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB14-4-387, + author = "Donald E. Knuth", + title = "{Icons for {\TeX} and {\MF}}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "387--389", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Liebl:TB14-4-390, + author = "Armin Liebl", + title = "{bibview: A graphical user interface to {\BibTeX}}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "390--395", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beebe:TB14-4-395, + author = "Nelson Beebe", + title = "{Bibliography prettyprinting and syntax checking}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "395--419", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Carmody:TB14-4-420, + author = "Kevin Carmody", + title = "{A tough table becomes easy with {\PiCTeX}}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "420--420", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beccari:TB14-4-421, + author = "Claudio Beccari", + title = "{Book Review: P. W. Abrahams, K. Berry and K. + Hargreaves, {\it {\TeX} per l'impaziente}}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "421--422", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Aslaksen:TB14-4-423, + author = "Helmer Aslaksen", + title = "{Ten {\TeX} tricks for the mathematician}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "423--424", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB14-4-424, + author = "Victor Eijkhout", + title = "{The bag of tricks}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "424--424", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rhead:TB14-4-425, + author = "David Rhead", + title = "{The ``operational requirement'' for support of + bibliographies}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "425--433", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bland:TB14-4-433, + author = "Richard Bland", + title = "{Relative moves in {\LaTeX}\ pictures}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "433--437", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-4-438, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "438--439", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB14-4-439, + author = "Barbara Beeton", + title = "{Production notes}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "439--439", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-4-440, + author = "Anonymous", + title = "{Coming next issue}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "440--440", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-4-441, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "441--442", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-4-443, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "443--444", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-4-442, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "442--442", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB14-4-445, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "14", + number = "4", + pages = "445--445", + month = dec, + year = "1993", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-1-3, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "3--4", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thiele:TB15-1-5, + author = "Christina Thiele", + title = "{Opening words}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "5--6", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB15-1-6, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "6--7", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Arseneau:TB15-1-7, + author = "Donald Arseneau and Raymond Chen and Victor Eijkhout", + title = "{The {\TeX} hierarchy}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "7--9", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beccari:TB15-1-9, + author = "Claudio Beccari", + title = "{Typesetting of ancient languages}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "9--16", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beccari:TB15-1-17, + author = "Claudio Beccari", + title = "{Comments on the paper ``{Typesetting Catalan} texts + with {\TeX}'' ({\tubissue 14(3)}, pp. 252--259)}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "17--17", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Feruglio:TB15-1-17, + author = "Gabriel Valiente Feruglio and Robert Fuster", + title = "{Comments on the comments: {Typesetting Catalan} texts + with {\TeX}}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "17--18", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Poppelier:TB15-1-18, + author = "Nico Poppelier", + title = "{{George Gr\"atzer}, {\it Math into {\TeX}}}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "18--19", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Pappas:TB15-1-19, + author = "T. L. (Frank) Pappas", + title = "{{Stephan von Bechtolsheim}, {\it {\TeX} in + Practice}}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "19--21", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beccari:TB15-1-21, + author = "Claudio Beccari", + title = "{{Gianni Gilardi}, {\it Il {\TeX}\dash {Introduzione} + al linguaggio e complementi avanzati}}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "21--22", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sawdey:TB15-1-22, + author = "Merry Obrecht Sawdey", + title = "{{Erik Spiekermann} \& {E. M. Ginger}, {\it Stop + Stealing Sheep}}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "22--24", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Poppelier:TB15-1-24, + author = "Nico Poppelier", + title = "{{Eric van Herwijnen}, {\it Practical SGML}}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "24--25", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Detig:TB15-1-25, + author = "Christine Detig and Joachim Schrod", + title = "{{Donald E. Knuth}, {\it Literate Programming}}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "25--27", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Salomon:TB15-1-28, + author = "David Salomon", + title = "{Output routines: {Examples} and techniques, {Part + IV}: {Horizontal} techniques}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "28--40", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Salomon:TB15-1-40, + author = "David Salomon", + title = "{Verbatim copying and listing}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "40--54", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB15-1-55, + author = "Victor Eijkhout", + title = "{The bag of tricks}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "55--57", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Meer:TB15-1-57, + author = "Hans van der Meer", + title = "{Random bit generator in {\TeX}}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "57--58", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Salomon:TB15-1-59, + author = "David Salomon and Matthew N. Hendryx", + title = "{Slanted lines with controlled thickness}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "59--62", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fine:TB15-1-62, + author = "Jonathan Fine", + title = "{On indexing and errors}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "62--62", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rowley:TB15-1-63, + author = "Chris Rowley", + title = "{{\LaTeXe} update, dateline: 31 {January} 1994}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "63", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rhead:TB15-1-64, + author = "David Rhead", + title = "{Addenda: {A} suggested ``operational requirement'' + for {\LaTeX}3's treatment of bibliographic references + (\tubissue 14(4), pp.\ 425-433)}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "64--65", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-1-66, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "66--67", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-1-68, + author = "Anonymous", + title = "{{TUG}\,'94\Dash {Announcement} and preliminary + program ({Santa Barbara}, {California}, 31 {July}--4 + {August} 1994)}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "68--69", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-1-69, + author = "Anonymous", + title = "{Call for papers, {Euro\TeX}\,'94 ({Gdansk}, {Poland}, + 26--30 {September} 1994)}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "69--70", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB15-1-74, + author = "Barbara Beeton", + title = "{Production notes}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "74--74", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-1-75, + author = "Anonymous", + title = "{Coming next issue}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "75--75", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-1-70, + author = "Anonymous", + title = "{Meet the {Board}, {Part I}}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "70--73", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-1-75-2, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "75--76", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-1-77, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "77--78", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-1-79, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "79--79", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-1-81, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "15", + number = "1", + pages = "81--81", + month = mar, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-2-87, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "87--88", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thiele:TB15-2-89, + author = "Christina Thiele", + title = "{Opening words}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "89--89", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB15-2-89, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "89--91", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Goossens:TB15-2-92, + author = "Michel Goossens", + title = "{{WEPT}: {A Week} on {Electronic Publishing} and + {Typography}}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "92--95", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taylor:TB15-2-96, + author = "Philip Taylor", + title = "{Report of the 2nd meeting of the {NTS} group, + {February} 1994}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "96--97", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB15-2-97, + author = "Alan Hoenig", + title = "{$\{$Meta$\}${Font Forum} redux}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "97--97", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ramasubramanian:TB15-2-98, + author = "R. Ramasubramanian and R. W. D. Nickalls and M. A. + Reed", + title = "{{ASCII.sty}: {A} new style-option and encoded font + with {IBM} graphics control characters for use with + {\TeX} and {\LaTeX}}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "98--103", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jones:TB15-2-103, + author = "David M. Jones and David E. Wald", + title = "{{Michel Goossens}, {Frank Mittelbach}, and {Alexander + Samarin}, {\it The {\LaTeX} Companion}}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "103--106", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB15-2-106, + author = "Victor Eijkhout", + title = "{{Norman Walsh}, {\it Making {\TeX} Work}}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "106--107", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Andre:TB15-2-107, + author = "Jacques Andr{\'e}", + title = "{{Christian Rolland}, {\it {\LaTeX} guide pratique}}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "107--107", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB15-2-107, + author = "Alan Hoenig", + title = "{Next{\TeX}: {\TeX} plus the {NextStep} Operating + System}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "107--109", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Downes:TB15-2-110, + author = "Michael Downes", + title = "{Interaction tools: {\tt dialog.sty} and {\tt + menus.sty}}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "110--130", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gaulle:TB15-2-131, + author = "Bernard Gaulle", + title = "{{\LaTeX} {V3}: philology \& typography, reports to + read, reports to do}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "131--131", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beccari:TB15-2-131, + author = "Claudio Beccari", + title = "{Tough table becomes easy with {\PiCTeX}, but it's + even easier with {\LaTeX}}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "131--132", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anagnostopolous:TB15-2-132, + author = "Paul Anagnostopolous", + title = "{On the review of {\it {\TeX} in Practice}}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "132--132", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-2-133, + author = "Anonymous", + title = "{Baskerville, {Volume} 4, {Nos.} 1--2}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "133--136", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-2-136, + author = "Anonymous", + title = "{Cahiers {GUTenberg} {Nos.} 16 and 17}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "136--137", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-2-138, + author = "Anonymous", + title = "{Die {\TeX}nische {Kom\"odie} 1993, {Heft} 1--4}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "138--142", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-2-143, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "143--144", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-2-160, + author = "Anonymous", + title = "{{TUG}\,'95\Dash {St. Petersburg}, {Florida}}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "160", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB15-2-148, + author = "Barbara Beeton", + title = "{Production notes}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "148--149", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-2-149, + author = "Anonymous", + title = "{Coming next issue}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "149--149", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB15-2-150, + author = "Barbara Beeton", + title = "{Change in {\TUB} policy}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "150--150", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-2-145, + author = "Anonymous", + title = "{Meet the {Board}, {Part II}}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "145--148", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-2-151, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "151--152", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-2-155, + author = "Anonymous", + title = "{{TUG} membership application}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "155--156", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-2-152, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "152--153", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-2-154, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "15", + number = "2", + pages = "154--154", + month = jun, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-3-166, + author = "Anonymous", + title = "{Editorial and production notes}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "166--166", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-3-167, + author = "Anonymous", + title = "{Acknowledgements and {Conference Program}: + {Innovation}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "167--168", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bigelow:TB15-3-169, + author = "Charles Bigelow", + title = "{Lucida and {\TeX}: lessons of logic and history}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "169--169", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB15-3-170, + author = "Frank Mittelbach and Michel Goossens", + title = "{Real life book production\Dash lessons learned from + {\it The {\LaTeX} Companion}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "170--173", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haralambous:TB15-3-174, + author = "Yannis Haralambous", + title = "{Typesetting the holy {Bible} in {Hebrew}, with + {\TeX}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "174--191", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Cohen:TB15-3-192, + author = "Michel Cohen", + title = "{Adaptive character generation and spatial + expressiveness}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "192--198", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haralambous:TB15-3-199, + author = "Yannis Haralambous", + title = "{Humanist}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "199--199", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Malyshev:TB15-3-200, + author = "Basil Malyshev", + title = "{Automatic conversion of {\MF} fonts to {Type}-1 + {\PS}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "200--200", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hafner:TB15-3-201, + author = "James Hafner", + title = "{The (pre)history of color in {Rokicki}'s {\tt + dvips}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "201--204", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rokicki:TB15-3-205, + author = "Tom Rokicki", + title = "{Advanced `special' support in a dvi driver}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "205--212", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Duggan:TB15-3-213, + author = "Angus Duggan", + title = "{Colour separation and {\PS}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "213--217", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rahtz:TB15-3-218, + author = "Sebastian Rahtz and Michel Goossens", + title = "{Simple colour design with {\LaTeXe}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "218--222", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sowa:TB15-3-223, + author = "Friedhelm Sowa", + title = "{Printing colour pictures}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "223--227", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Wed Jul 09 12:06:08 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sofka:TB15-3-228, + author = "Michael Sofka", + title = "{Color book production using {\TeX}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "228--238", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Zandt:TB15-3-239, + author = "Timothy van Zandt and Denis Girou", + title = "{Inside {PSTricks}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "239--246", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Stenerson:TB15-3-247, + author = "Jon Stenerson", + title = "{A {\LaTeX} style file generator}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "247--254", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Braams:TB15-3-255, + author = "Johannes Braams", + title = "{Document classes and packages in {\LaTeXe}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "255--262", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jeffrey:TB15-3-263, + author = "Alan Jeffrey", + title = "{{\PS} font support in {\LaTeXe}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "263--268", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Patashnik:TB15-3-269, + author = "Oren Patashnik", + title = "{{\BibTeX} 1.0}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "269--273", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{MacKay:TB15-3-274, + author = "Pierre MacKay", + title = "{A typesetter's toolkit}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "274--284", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Barnett:TB15-3-285, + author = "Michael P. Barnett and Kevin R. Perry", + title = "{Symbolic computation for electronic publishing}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "285--292", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kawaguti:TB15-3-293, + author = "Minato Kawaguti and Norio Kitajima", + title = "{Concurrent use of interactive {\TeX} previewer with + an {Emacs}-type editor}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "293--300", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haralambous:TB15-3-301, + author = "Yannis Haralambous", + title = "{An Indic {\TeX} preprocessor\Dash {Sinhalese} + {\TeX}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "301--301", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Doumont:TB15-3-302, + author = "Jean-Luc Doumont", + title = "{Pascal pretty-printing: an example of ``preprocessing + within {\TeX}''}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "302--307", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Schrod:TB15-3-309, + author = "Joachim Schrod", + title = "{Towards interactivity for {\TeX}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "309--317", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rowley:TB15-3-318, + author = "Chris Rowley and Frank Mittelbach", + title = "{The floating world}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "318--318", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hosek:TB15-3-319, + author = "Don Hosek", + title = "{Sophisticated page layout with {\TeX}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "319--319", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Plaice:TB15-3-320, + author = "John Plaice", + title = "{Progress in the {Omega} project}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "320--324", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ogawa:TB15-3-325, + author = "Arthur Ogawa", + title = "{Object-oriented programming, descriptive markup, and + {\TeX}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "325--330", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Baxter:TB15-3-331, + author = "William Erik Baxter", + title = "{An object-oriented programming system in {\TeX}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "331--338", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Walsh:TB15-3-339, + author = "Norm Walsh", + title = "{A {World Wide} {Web} interface to {\CTAN}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "339--343", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haralambous:TB15-3-344, + author = "Yannis Haralambous and John Plaice", + title = "{First applications of $\Omega$: {Adobe Poetica}, + {Arabic}, {Greek}, {Khmer}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "344--352", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taylor:TB15-3-353, + author = "Philip Taylor", + title = "{$\varepsilon$-{\TeX} \& {\NTS}: A progress report}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "353--358", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Laugier:TB15-3-359, + author = "Maurice Laugier and Yannis Haralambous", + title = "{{\TeX} innovations by the {Louis-Jean} {Printing + House}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "359--359", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Downes:TB15-3-360, + author = "Michael Downes", + title = "{Design by template in a production macro package}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "360--368", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB15-3-369, + author = "Alan Hoenig", + title = "{Less is {More}: {Restricting} {\TeX}'s scope enables + complex page layouts}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "369--380", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fine:TB15-3-381, + author = "Jonathan Fine", + title = "{Documents, compuscripts, programs and macros}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "381--385", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Grobelnik:TB15-3-386, + author = "Marko Grobelnik and Dunja Mladeni{\'c} and Darko + Zupani\v{c} and Borut \v{Z}nidar", + title = "{Integrated system for encyclopaedia typesetting based + on {\TeX}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "386--387", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Baragar:TB15-3-388, + author = "Henry Baragar and Gail E. Harris", + title = "{An example of a special purpose input language to + {\LaTeX}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "388--396", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-3-397, + author = "Anonymous", + title = "{Color pages}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "397--404", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-3-405, + author = "Anonymous", + title = "{Participants at the {Annual Meeting}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "405--407", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-3-408, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "408--409", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-3-409, + author = "Anonymous", + title = "{1995 {Knuth Scholarship}}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "409--410", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-3-411, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "411--412", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-3-415, + author = "Anonymous", + title = "{{TUG} membership application}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "415--416", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-3-412, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "412--413", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-3-417, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "15", + number = "3", + pages = "417--417", + month = sep, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-4-423, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "423--424", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thiele:TB15-4-425, + author = "Christina Thiele", + title = "{Opening words}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "425--425", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB15-4-426, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "426--427", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Goossens:TB15-4-427, + author = "Michel Goossens and Sebastian Rahz and Barbara + Beeton", + title = "{The {TUG94 Proceedings}\Dash {Apologia}}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "427--428", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bolland:TB15-4-429, + author = "Julita Bolland and Toni Walter and W{\l}odek Bzyl", + title = "{Euro{\TeX}94}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "429--433", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taylor:TB15-4-434, + author = "Philip Taylor", + title = "{Minutes of the {NTS} meeting held at {Lindau} on + {October} 11/12th 1994}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "434--437", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Laugier:TB15-4-438, + author = "Maurice Laugier and Yannis Haralambous", + title = "{{\TeX} innovations at the {Louis-Jean} printing + house}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "438--443", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{MacKay:TB15-4-444, + author = "Pierre A. MacKay", + title = "{Recycled {\MF}}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "444--446", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haralambous:TB15-4-447, + author = "Yannis Haralambous", + title = "{{\it Indica}, an {Indic} preprocessor for {\TeX}: {A + Sinhalese} {\TeX} system}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "447--458", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Olsak:TB15-4-459, + author = "Petr Ol{\v{s}}{\'a}k", + title = "{The {EAN} barcodes by {\TeX}}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "459--464", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taylor:TB15-4-464, + author = "Philip Taylor", + title = "{An open letter to the {TUG Board}}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "464--465", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Feruglio:TB15-4-466, + author = "Gabriel Valiente Feruglio", + title = "{Typesetting commutative diagrams}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "466--484", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB15-4-485, + author = "Victor Eijkhout", + title = "{The bag of tricks}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "485--405", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Richer:TB15-4-486, + author = "Jacques Richer", + title = "{A {\TeX} autostereogram generator}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "486--492", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fossmeier:TB15-4-492, + author = "Reinhard F{\"o}{\ss}meier", + title = "{Stereographic pictures using {\TeX}}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "492--495", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Braams:TB15-4-496, + author = "Johannes Braams", + title = "{To reset or not to reset}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "496--497", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-4-498, + author = "Anonymous", + title = "{Cahiers {GUTenberg} {Nos.} 18 and 19}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "498--499", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-4-500, + author = "Anonymous", + title = "{Abstracts of the {\it {Proceedings} of the {Eighth + European} {\TeX} {Conference}}, {Gda\'nsk}, {September} + 1994}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "500--503", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-4-505, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "505--504", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB15-4-505, + author = "Barbara Beeton", + title = "{Production notes}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "505--505", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-4-506, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "506--506", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-4-507, + author = "Anonymous", + title = "{{TUG} membership application}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "507--507", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB15-4-508, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "15", + number = "4", + pages = "508--508", + month = dec, + year = "1994", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-1-3, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "3--4", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bzyl:TB16-1-4, + author = "W{\l}odek Bzyl", + title = "{Euro{\TeX}94 Contest Answers}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "4--4", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thiele:TB16-1-5, + author = "Christina Thiele and Michel Goossens", + title = "{Opening words}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "5--7", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB16-1-8, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "8--8", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jaegermann:TB16-1-9, + author = "Michael Jaegermann", + title = "{Making {\tt MakeTeXPK} safer for {Unix} + installations}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "9--12", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB16-1-12, + author = "Barbara Beeton", + title = "{Hyphenation exception log}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "12--17", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beccari:TB16-1-18, + author = "Claudio Beccari", + title = "{Configuring {\TeX} or {\LaTeX} for typesetting in + several languages}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "18--30", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beccari:TB16-1-30, + author = "Claudio Beccari and Radu Oprea and Elena Tulei", + title = "{How to make a foreign language pattern file: + {Romanian}}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "30--41", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thiele:TB16-1-42, + author = "Christina Thiele", + title = "{{\TeX} and {Linguistics}}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "42--44", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB16-1-45, + author = "Alan Hoenig", + title = "{Introducing {\MP}}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "45--45", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haralambous:TB16-1-46, + author = "Yannis Haralambous", + title = "{Some {\MF} techniques}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "46--53", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Olsak:TB16-1-54, + author = "Petr Ol{\v{s}}{\'a}k", + title = "{The program {\tt a2ac}\Dash {Font} handling on the + {\PS} level}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "54--59", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Malyshev:TB16-1-60, + author = "Basil Malyshev", + title = "{Problems of the conversion of {\MF} fonts to {\PS} + {Type} 1}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "60--68", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Malyshev:TB16-1-69, + author = "Basil Malyshev and Michel Goossens", + title = "{Partial font embedding utilities for {\PS} {Type}-1 + fonts}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "69--77", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jeffrey:TB16-1-78, + author = "Alan Jeffrey", + title = "{Tight setting with {\TeX}}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "78--80", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fujita:TB16-1-80, + author = "Shinsaku Fujita", + title = "{{\XYMTeX} for drawing chemical structural formulas}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "80--88", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-1-89, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "89--90", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB16-1-90, + author = "Mimi Burbank", + title = "{Production notes}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "90--91", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-1-91, + author = "Anonymous", + title = "{Coming next issue}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "91--91", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-1-92, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "92--92", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-1-93, + author = "Anonymous", + title = "{{TUG} membership application}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "93--93", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-1-94, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "16", + number = "1", + pages = "94--94", + month = mar, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-2-99, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "16", + number = "2", + pages = "99--100", + month = jun, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Goossens:TB16-2-101, + author = "Michel Goossens", + title = "{Opening words}", + journal = j-TUGboat, + volume = "16", + number = "2", + pages = "101--101", + month = jun, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Clark:TB16-2-101, + author = "Malcolm Clark", + title = "{Introduction}", + journal = j-TUGboat, + volume = "16", + number = "2", + pages = "101--102", + month = jun, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Goossens:TB16-2-103, + author = "Michel Goossens and Janne Saarela", + title = "{A practical introduction to {\SGML}}", + journal = j-TUGboat, + volume = "16", + number = "2", + pages = "103--145", + month = jun, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Flynn:TB16-2-146, + author = "Peter Flynn", + title = "{{\HTML} \& {\TeX}: {Making} them sweat}", + journal = j-TUGboat, + volume = "16", + number = "2", + pages = "146--150", + month = jun, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Granger:TB16-2-151, + author = "Geeti Granger", + title = "{The inside story of life at {Wiley} with {\SGML}, + {\LaTeX} and {Acrobat}}", + journal = j-TUGboat, + volume = "16", + number = "2", + pages = "151--154", + month = jun, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Doyle:TB16-2-154, + author = "Mark D. Doyle", + title = "{The {Los Alamos} e-print archives: {Hyper\TeX} in + action}", + journal = j-TUGboat, + volume = "16", + number = "2", + pages = "154--159", + month = jun, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Schwarzkopf:TB16-2-159, + author = "Otfried Schwarzkopf", + title = "{The {Hyperlatex} story}", + journal = j-TUGboat, + volume = "16", + number = "2", + pages = "159--162", + month = jun, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haralambous:TB16-2-162, + author = "Yannis Haralambous and Sebastian Rahtz", + title = "{{\LaTeX}, hypertext and {\PDF}, {\it or} the entry of + {\TeX} into the world of hypertext}", + journal = j-TUGboat, + volume = "16", + number = "2", + pages = "162--173", + month = jun, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Goossens:TB16-2-174, + author = "Michel Goossens and Janne Saarela", + title = "{{\TeX} to {\HTML} and back}", + journal = j-TUGboat, + volume = "16", + number = "2", + pages = "174--214", + month = jun, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-2-215, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "16", + number = "2", + pages = "215--216", + month = jun, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB16-2-100, + author = "Mimi Burbank and Barbara Beeton", + title = "{Production notes}", + journal = j-TUGboat, + volume = "16", + number = "2", + pages = "100--100", + month = jun, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-2-217, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "16", + number = "2", + pages = "217--217", + month = jun, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-2-218, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "16", + number = "2", + pages = "218--218", + month = jun, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-2-218-2, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "16", + number = "2", + pages = "218--218", + month = jun, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fairbairns:TB16-3-222, + author = "Robin Fairbairns", + title = "{Production notes}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "222--222", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Goossens:TB16-3-223, + author = "Michel Goossens", + title = "{President's words}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "223--226", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Zlatuska:TB16-3-227, + author = "Ji\v{r}\'{\i} Zlatu{\v{s}}ka", + title = "{When {\MF} does it alone}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "227--232", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kinch:TB16-3-233, + author = "Richard J. Kinch", + title = "{{MetaFog}: converting {\MF} shapes to contours}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "233--243", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB16-3-244, + author = "Alan Hoenig", + title = "{The {Poetica} family: fancy fonts with {\TeX} and + {\LaTeX}}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "244--252", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Goossens:TB16-3-253, + author = "Michel Goossens and Sebastian Rahtz and Robin + Fairbairns", + title = "{Using {Adobe Type} 1 {Multiple Master} fonts with + {\TeX}}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "253--258", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gibbons:TB16-3-259, + author = "Jeremy Gibbons", + title = "{Dotted and dashed lines in {\MF}}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "259--264", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lesenko:TB16-3-265, + author = "Sergey Lesenko", + title = "{Printing {\TeX} documents with partial {Type} 1 + fonts}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "265--268", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Swift:TB16-3-269, + author = "Matthew Swift", + title = "{Modularity in {\LaTeX}}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "269--275", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kletzing:TB16-3-276, + author = "Dennis Kletzing", + title = "{A multienumerate package}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "276--279", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sojka:TB16-3-280, + author = "Petr Sojka and Pavel \v{S}eve\v{c}ek", + title = "{Hyphenation in {\TeX} --- {Quo Vadis}?}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "280--289", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sojka:TB16-3-290, + author = "Petr Sojka", + title = "{Notes on compound word hyphenation in {\TeX}}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "290--296", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bzyl:TB16-3-297, + author = "W{\l}odek Bzyl", + title = "{Literate {Plain} source is available!}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "297--299", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB16-3-300, + author = "Bart Childs and Deborah Dunn and William Lively", + title = "{Teaching {CS}/1 courses in a literate manner}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "300--309", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Raman:TB16-3-310, + author = "T. V. Raman", + title = "{An audio view of {(\La)\TeX} documents --- part + {II}}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "310--314", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rahtz:TB16-3-315, + author = "Sebastian Rahtz", + title = "{Another look at {\LaTeX} to {\SGML} conversion}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "315--324", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fairbairns:TB16-3-325, + author = "Robin Fairbairns", + title = "{Omega --- {Why} bother with {Unicode}?}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "325--328", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Feruglio:TB16-3-329, + author = "Gabriel Valiente Feruglio", + title = "{Modern {Catalan} typographical conventions}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "329--338", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-3-339, + author = "Anonymous", + title = "{{TUG}'96 Announcement}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "339--339", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-3-340, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "340--341", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-3-341, + author = "Anonymous", + title = "{{TUG}'95\Dash {List} of attendees}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "341--343", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-3-344, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "344--344", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-3-345, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "16", + number = "3", + pages = "345--345", + month = sep, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-4-351, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "351--352", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Goossens:TB16-4-353, + author = "Michel Goossens", + title = "{Writing the future is reading the past}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "353--354", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB16-4-355, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "355--357", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Flynn:TB16-4-357, + author = "Peter Flynn", + title = "{Upcoming {TTN} merger into {\TUB}}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "357--357", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Machi:TB16-4-358, + author = "Filip Machi and Jerrold E. Marsden and Wendy G. + McKay", + title = "{{Introduction} to {Fas\TeX}: {A} system of keyboard + shortcuts for the fast keying of {\TeX}}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "358--363", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lapko:TB16-4-364, + author = "Olga Lapko and Irina Makhovaya", + title = "{The style {\tt russianb} for {Babel}: {Problems} and + solutions}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "364--372", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Slepukhin:TB16-4-373, + author = "Andrey Slepukhin", + title = "{A package for {Church-Slavonic} typesetting}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "373--380", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knappen:TB16-4-381, + author = "J{\"o}rg Knappen", + title = "{Release 1.2 of the {{\ssf dc}}-fonts: {Improvements} + to the {European} letters and first release of text + companion symbols}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "381--387", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jackowski:TB16-4-388, + author = "Bogus{\l}aw Jackowski", + title = "{{A} {\MF}--{\acro{EPS}} interface}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "388--395", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rokicki:TB16-4-395, + author = "Tomas G. Rokicki", + title = "{A proposed standard for specials}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "395--401", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{TUGWGTDS:TB16-4-401, + author = "{TUG} {Working} {Group} on a {\TeX} {Directory} + {Structure}", + title = "{{A} directory structure for {\TeX} files ({Version} + 0.999)}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "401--413", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rahtz:TB16-4-413, + author = "Sebastian Rahtz", + title = "{Whatever is wrong with my {\LaTeX} file?}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "413--416", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fine:TB16-4-416, + author = "Jonathan Fine", + title = "{New perspectives on {\TeX} macros}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "416--418", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haralambous:TB16-4-418, + author = "Yannis Haralambous and John Plaice and Johannes + Braams", + title = "{Never again active characters! {$\Omega$}-{Babel}}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "418--427", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-4-428, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "428", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-4-429, + author = "Anonymous", + title = "{Call for papers: {TUG}\,'96}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "429--431", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-4-427, + author = "Anonymous", + title = "{{TUG}\,'97\Dash {Soliciting} bids for host site}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "427--427", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Goossens:TB16-4-432, + author = "Michel Goossens", + title = "{Euro{\TeX}\,'95, {Papendal}, {The Netherlands}, 4--8 + {September} 1995}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "432--439", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Goossens:TB16-4-379, + author = "Michel Goossens", + title = "{Production notes on the {Russian} papers}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "379--379", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB16-4-440, + author = "Mimi Burbank and Michel Goossens", + title = "{Production notes}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "440--440", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-4-440, + author = "Anonymous", + title = "{Future issues}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "440--440", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-4-441, + author = "Anonymous", + title = "{1996 {\TeX} {Users Group} election}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "441--441", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-4-441-2, + author = "Anonymous", + title = "{1996 {TUG} election\Dash nomination form}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "441--441", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-4-442, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "442--442", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-4-443, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "443--443", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB16-4-443-2, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "16", + number = "4", + pages = "443--443", + month = dec, + year = "1995", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-1-3, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "3--4", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-1-4, + author = "Anonymous", + title = "{Soliciting Bids for \acro{TUG}\,'97}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "4--4", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Goossens:TB17-1-5, + author = "Michel Goossens", + title = "{From the president}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "5--6", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB17-1-6, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "6--7", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-1-7, + author = "Anonymous", + title = "{TUG\,'95: Questions and answers with Prof. Donald E. + Knuth}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "7--22", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bennett:TB17-1-22, + author = "Frank G. {Bennett, Jr.}", + title = "{{\smc Camel}: kicking over the bibliographic traces + in {\BibTeX}}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "22--28", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Machi:TB17-1-28, + author = "Filip Machi and Jerrold E. Marsden and Wendy G. + McKay", + title = "{{Corrigendum: Introduction to {Fas\TeX}: a system of + keyboard shortcuts for the fast keying of {\TeX} + (\tubissue 16(4), pp. 358--363)}}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "28--28", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knuth:TB17-1-29, + author = "Donald E. Knuth", + title = "{Important message regarding CM fonts}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "29--29", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Zubrinic:TB17-1-29, + author = "Darko \v{Z}ubrini{\'c}", + title = "{Croatian fonts}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "29--33", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Vesely:TB17-1-34, + author = "J. Vesel{\'y}", + title = "{Two new books on {\TeX} in the {Czech Republic}}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "34--34", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Price:TB17-1-35, + author = "Lynne A. Price", + title = "{{Ronald C. Turner}, {Timothy A. Douglass}, and + {Audrey J. Turner}, {{\it\acro{README.1ST}: \acro{SGML} + for Writers and Editors}}}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "35--37", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Porrat:TB17-1-37, + author = "Rama Porrat", + title = "{There's still something missing{\dots}}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "37--37", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB17-1-37, + author = "Mimi Burbank and Michel Goossens", + title = "{Electronic news from the family}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "37--42", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Reckdahl:TB17-1-43, + author = "Keith Reckdahl", + title = "{{Using \acro{EPS} graphics in {\LaTeXe} documents, + Part 1: the {\ssf graphics} and {\ssf graphicx} + packages}}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "43--53", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hosek:TB17-1-53, + author = "Don Hosek", + title = "{That ol' devil {\tt\char`\\expandafter}}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "53--54", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hagen:TB17-1-54, + author = "J. Hagen and A. F. Otten", + title = "{{\acro{PPCH\TeX}}: typesetting chemical formulas in + {\TeX}}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "54--66", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Carlisle:TB17-1-67, + author = "David Carlisle", + title = "{{A {\LaTeX} tour, Part 1: The basic distribution}}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "67--73", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-1-73, + author = "Anonymous", + title = "{Les Cahiers GUTenberg, No. 20}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "73--74", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-1-74, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "74--75", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-1-76, + author = "Anonymous", + title = "{TUG\,'96 Preliminary schedule}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "76--77", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB17-1-78, + author = "Mimi Burbank", + title = "{Production notes}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "78--78", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-1-78, + author = "Anonymous", + title = "{Future issues}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "78--78", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-1-79, + author = "Anonymous", + title = "{TUG Bylaws}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "79--83", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-1-84, + author = "Anonymous", + title = "{1996 \acro{TUG} election cancelled}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "84--84", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-1-84-2, + author = "Anonymous", + title = "{TUG Board}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "84--84", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-1-85, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "85--85", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-1-86, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "86--86", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-1-87, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "87--87", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-1-87-2, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "17", + number = "1", + pages = "87--87", + month = mar, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Goossens:TB17-2-91, + author = "Michel Goossens", + title = "{Opening Words by the President}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "91--91", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Piska:TB17-2-92, + author = "Karel P\'{\i}{\v{s}}ka", + title = "{Cyrillic alphabets}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "92--98", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Knappen:TB17-2-99, + author = "J{{\"o}}rg Knappen", + title = "{{The {\ssf dc} fonts 1.3: Move towards stability and + completeness}}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "99--101", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rei:TB17-2-102, + author = "Fukui Rei", + title = "{{\ssf TIPA}: {A system for processing phonetic + symbols in {\LaTeX}}}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "102--114", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Berdnikov:TB17-2-115, + author = "A. S. Berdnikov", + title = "{Computer Modern Typefaces as Multiple Master Fonts}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "115--119", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Berdnikov:TB17-2-120, + author = "A. S. Berdnikov", + title = "{{\sl VFComb} 1.3\Dash the program which simplifies + virtual font management}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "120--125", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haralambous:TB17-2-126, + author = "Yannis Haralambous", + title = "{$\Omega$Times and $\Omega$Helvetica fonts under + development: Step One}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "126--146", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kinch:TB17-2-147, + author = "Richard J. Kinch", + title = "{{Extending {\TeX} for Unicode}}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "147--160", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Znamenskaya:TB17-2-161, + author = "L. N. Znamenskaya and S. V. Znamenskii", + title = "{Russian encoding plurality problem and a new Cyrillic + font set}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "161--165", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ovchenkov:TB17-2-166, + author = "Peter A. Ovchenkov", + title = "{Cyrillic {\TeX} files: interplatform portability}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "166--171", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Vinogradov:TB17-2-172, + author = "Michael M. Vinogradov", + title = "{{A user-friendly multi-function {\TeX} interface + based on Multi-Edit}}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "172--174", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lapko:TB17-2-174, + author = "Olga G. Lapko", + title = "{Full Cyrillic: How many languages?}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "174--180", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Plaice:TB17-2-181, + author = "John Plaice and Yannis Haralambous", + title = "{The latest developments in {$\Omega$}}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "181--183", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Langmyhr:TB17-2-184, + author = "Dag Langmyhr", + title = "{{Star\TeX\Dash a {\TeX} for beginners}}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "184--190", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Feruglio:TB17-2-191, + author = "Gabriel Valiente Feruglio", + title = "{Do journals honor {\LaTeX} submissions?}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "191--199", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Znamenskii:TB17-2-200, + author = "Sergei V. Znamenskii and Denis E. Leinartas", + title = "{{A new approach to the {\TeX}-related programs: A + user-friendly interface}}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "200--203", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Vsesvetsky:TB17-2-204, + author = "Ivan G. Vsesvetsky", + title = "{The strait gate to {\TeX}}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "204--205", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Siebenmann:TB17-2-206, + author = "Laurent Siebenmann", + title = "{DVI-based electronic publication}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "206--214", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Laan:TB17-2-215, + author = "Kees van der Laan", + title = "{BLUe's format\Dash the off-off alternative}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "215--221", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Laan:TB17-2-222, + author = "Kees van der Laan", + title = "{Turtle graphics and {\TeX}\Dash a child can do it}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "222--228", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Berdnikov:TB17-2-229, + author = "A. S. Berdnikov and O. A. Grineva and S. B. Turtia", + title = "{Some useful macros which extend the {\LaTeX} {\tt + picture} environment}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "229--232", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB17-2-90, + author = "Mimi Burbank", + title = "{Production notes}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "90--90", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-2-233, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "233--233", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-2-234, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "234--234", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-2-235, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "17", + number = "2", + pages = "235--235", + month = jun, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-3-239, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "239--239", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Goossens:TB17-3-241, + author = "Michel Goossens", + title = "{From the president}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "241--243", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB17-3-243, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "243--244", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sojka:TB17-3-244, + author = "Petr Sojka and Han The Thanh and + Ji\v{r}{\'{\i}}Zlatu{\v{s}}ka", + title = "{{The joy of {\TeX}2\acro{PDF}\Dash Acrobatics with an + alternative to \acro{DVI} format}}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "244--251", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lesenko:TB17-3-252, + author = "Sergey Lesenko", + title = "{{The \acro{DVIPDF} Program}}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "252--254", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fine:TB17-3-255, + author = "Jonathan Fine", + title = "{{Editing {\tt .dvi} files, or Visual {\TeX}}}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "255--259", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Makhovaya:TB17-3-259, + author = "Irina A. Makhovaya", + title = "{{{\TeX} in Russia: ab ovo, or, About the {\TeX}nical + evolution in Russia}}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "259--264", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rahtz:TB17-3-264, + author = "Sebastian Rahtz", + title = "{{{\LaTeX}, {\it dvips}, \acro{EPS} and the Web + \dots}}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "264--268", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Laan:TB17-3-269, + author = "Kees van der Laan", + title = "{{Graphics and {\TeX}\Dash A reappraisal of + {\MF}/MetaPost/{\PS}}}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "269--279", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thompson:TB17-3-280, + author = "David Thompson", + title = "{{Stanley Sawyer and Steven Krantz}, {\it A {\TeX} + Primer for Scientists}}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "280--280", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bzyl:TB17-3-281, + author = "W{\l}odek Bzyl", + title = "{{David Salomon}, {\it The Advanced {\TeX}book}}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "281--282", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fairbairns:TB17-3-282, + author = "Robin Fairbairns", + title = "{The new ({\LaTeXe}) {\TUB} macros}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "282--288", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Reckdahl:TB17-3-288, + author = "Keith Reckdahl", + title = "{{Using \acro{EPS} graphics in {\LaTeXe} documents, + Part 2: Floating figures, boxed figures, captions, and + math in figures}}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "288--310", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Saludes:TB17-3-310, + author = "Jordi Saludes", + title = "{Fast and secure multiple-option tests}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "310--319", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Schmitt:TB17-3-319, + author = "Peter Schmitt", + title = "{A puzzling {\TeX} macro}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "319--320", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Carlisle:TB17-3-321, + author = "David Carlisle", + title = "{{A {\LaTeX} tour, Part 2: The {\ssf tools} and {\ssf + graphics} distributions}}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "321--326", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-3-326, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "326--327", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB17-3-327, + author = "Mimi Burbank", + title = "{Production notes}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "327--327", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-3-327, + author = "Anonymous", + title = "{Future issues}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "327--327", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-3-328, + author = "Anonymous", + title = "{{\acro{TUG}'97 Call for Papers}}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "328--328", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-3-240, + author = "Anonymous", + title = "{{1997 \acro{TUG} Election}}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "240--240", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-3-329, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "329--329", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-3-330, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "330--330", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-3-331, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "331--331", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-3-331-2, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "17", + number = "3", + pages = "331--331", + month = sep, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-4-335, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "17", + number = "4", + pages = "335--335", + month = dec, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-4-336, + author = "Anonymous", + title = "{{\acro{TUG}'97 Update}}", + journal = j-TUGboat, + volume = "17", + number = "4", + pages = "336--336", + month = dec, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Goossens:TB17-4-337, + author = "Michel Goossens", + title = "{{The state of \acro{TUG}}}", + journal = j-TUGboat, + volume = "17", + number = "4", + pages = "337--340", + month = dec, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB17-4-340, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "17", + number = "4", + pages = "340--342", + month = dec, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-4-342, + author = "Anonymous", + title = "{{Amsterdam, 13 March 1996\Dash Knuth meets \acro{NTG} + members}}", + journal = j-TUGboat, + volume = "17", + number = "4", + pages = "342--355", + month = dec, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-4-355, + author = "Anonymous", + title = "{{{\CSTUG}, Charles University, Prague, March + 1996\Dash Questions and answers with Prof. Donald E. + Knuth}}", + journal = j-TUGboat, + volume = "17", + number = "4", + pages = "355--367", + month = dec, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taylor:TB17-4-367, + author = "Philip Taylor", + title = "{Computer typesetting or electronic publishing? New + trends in scientific publication}", + journal = j-TUGboat, + volume = "17", + number = "4", + pages = "367--381", + month = dec, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Strelkov:TB17-4-382, + author = "S. A. Strelkov and G. R. Epshtein", + title = "{{Making indices for \acro{VINITI}'s ``Mathematics'' + abstract journal}}", + journal = j-TUGboat, + volume = "17", + number = "4", + pages = "382--385", + month = dec, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Grinchuk:TB17-4-385, + author = "Mikhail Ivanovich Grinchuk", + title = "{{{\TeX} and Russian traditions of typesetting}}", + journal = j-TUGboat, + volume = "17", + number = "4", + pages = "385--388", + month = dec, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thiele:TB17-4-388, + author = "Christina Thiele", + title = "{{{\TeX} and the Humanities}}", + journal = j-TUGboat, + volume = "17", + number = "4", + pages = "388--393", + month = dec, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fine:TB17-4-393, + author = "Jonathan Fine", + title = "{{\it The Printing Revolution in Early Modern Europe}, + by {Elizabeth L. Eisenstein}}", + journal = j-TUGboat, + volume = "17", + number = "4", + pages = "393--396", + month = dec, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gratzer:TB17-4-396, + author = "George Gr{\"a}tzer", + title = "{Suggestions wanted for new edition of {\it Math into + \LaTeX}}", + journal = j-TUGboat, + volume = "17", + number = "4", + pages = "396--396", + month = dec, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kuypers:TB17-4-396, + author = "Dirk Kuypers", + title = "{{\acro{PPCHTEX} molecule templates}}", + journal = j-TUGboat, + volume = "17", + number = "4", + pages = "396--396", + month = dec, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-4-397, + author = "Anonymous", + title = "{Les Cahiers GUTenberg, Nos. 21--24}", + journal = j-TUGboat, + volume = "17", + number = "4", + pages = "397--403", + month = dec, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-4-403, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "17", + number = "4", + pages = "403--405", + month = dec, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB17-4-405, + author = "Mimi Burbank", + title = "{Production notes}", + journal = j-TUGboat, + volume = "17", + number = "4", + pages = "405--405", + month = dec, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-4-405, + author = "Anonymous", + title = "{Future issues}", + journal = j-TUGboat, + volume = "17", + number = "4", + pages = "405--405", + month = dec, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB17-4-405-2, + author = "Mimi Burbank", + title = "{Facts and Figures}", + journal = j-TUGboat, + volume = "17", + number = "4", + pages = "405--408", + month = dec, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-4-409, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "17", + number = "4", + pages = "409--409", + month = dec, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-4-410, + author = "Anonymous", + title = "{{TUG} membership application}", + journal = j-TUGboat, + volume = "17", + number = "4", + pages = "410--410", + month = dec, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-4-411, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "17", + number = "4", + pages = "411--411", + month = dec, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB17-4-411-2, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "17", + number = "4", + pages = "411--411", + month = dec, + year = "1996", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-1-3, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "18", + number = "1", + pages = "3--3", + month = mar, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-1-4, + author = "Anonymous", + title = "{Notice regarding 1997 {\TeX} {Users Group} + election}", + journal = j-TUGboat, + volume = "18", + number = "1", + pages = "4--4", + month = mar, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Goossens:TB18-1-5, + author = "Michel Goossens", + title = "{From the {President}}", + journal = j-TUGboat, + volume = "18", + number = "1", + pages = "5--5", + month = mar, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB18-1-5, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "18", + number = "1", + pages = "5--6", + month = mar, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-1-6, + author = "Anonymous", + title = "{Erratum: {Amsterdam}, 13 {March} 1996\Dash {Knuth} + meets \acro{NTG} members, \tubissue 17(4), pp. + 342--355}", + journal = j-TUGboat, + volume = "18", + number = "1", + pages = "6--6", + month = mar, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taylor:TB18-1-6, + author = "Philip Taylor", + title = "{{NTS} \& {$\varepsilon$}-{\TeX}: a status report}", + journal = j-TUGboat, + volume = "18", + number = "1", + pages = "6--12", + month = mar, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Vieth:TB18-1-12, + author = "Ulrik Vieth", + title = "{A {GNU Emacs} editing mode for {\MF} and {\MP} + sources}", + journal = j-TUGboat, + volume = "18", + number = "1", + pages = "12--16", + month = mar, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haralambous:TB18-1-17, + author = "Yannis Haralambous", + title = "{The {Traditional Arabic} {Typecase}, {Unicode}, + {\TeX} and {\MF}}", + journal = j-TUGboat, + volume = "18", + number = "1", + pages = "17--29", + month = mar, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Weenen:TB18-1-30, + author = "Andrea de Leeuw van Weenen", + title = "{A {Medieval Icelandic} manuscript: {The} making of a + diplomatic edition}", + journal = j-TUGboat, + volume = "18", + number = "1", + pages = "30--36", + month = mar, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sofka:TB18-1-37, + author = "Michael D. Sofka", + title = "{{\it Writing with \TeX{}}, and {\it \TeX\ \& \LaTeX: + Drawing \& Literate Programming}, by {Eitan M. + Gurari}}", + journal = j-TUGboat, + volume = "18", + number = "1", + pages = "37--38", + month = mar, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beccari:TB18-1-39, + author = "Claudio Beccari", + title = "{Typesetting mathematics for science and technology + according to {ISO\,31/XI}}", + journal = j-TUGboat, + volume = "18", + number = "1", + pages = "39--48", + month = mar, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Carlisle:TB18-1-48, + author = "David Carlisle", + title = "{A {\LaTeX} {Tour}, part 3: {\ssf mfnfss}, {\ssf + psnfss} and {\ssf babel}}", + journal = j-TUGboat, + volume = "18", + number = "1", + pages = "48--55", + month = mar, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-1-56, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "18", + number = "1", + pages = "56--67", + month = mar, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB18-1-57, + author = "Mimi Burbank", + title = "{Production notes}", + journal = j-TUGboat, + volume = "18", + number = "1", + pages = "57--57", + month = mar, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-1-57, + author = "Anonymous", + title = "{Future issues}", + journal = j-TUGboat, + volume = "18", + number = "1", + pages = "57--57", + month = mar, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-1-58, + author = "Anonymous", + title = "{{\acro{TUG}'97 {Update}}}", + journal = j-TUGboat, + volume = "18", + number = "1", + pages = "58--58", + month = mar, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-1-59, + author = "Anonymous", + title = "{New members of the {TUG Board}}", + journal = j-TUGboat, + volume = "18", + number = "1", + pages = "59--60", + month = mar, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-1-61, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "18", + number = "1", + pages = "61--61", + month = mar, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-1-62, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "18", + number = "1", + pages = "62--62", + month = mar, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-1-63, + author = "Anonymous", + title = "{{\TeX{} consulting and production services}}", + journal = j-TUGboat, + volume = "18", + number = "1", + pages = "63--63", + month = mar, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-1-57-2, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "18", + number = "1", + pages = "57--57", + month = mar, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-2-67, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "67--67", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kopriva:TB18-2-68, + author = "Phil Kopriva", + title = "{Letter from a member}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "68--68", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Goossens:TB18-2-69, + author = "Michel Goossens", + title = "{From the {President}}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "69--71", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB18-2-72, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "72--73", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Flynn:TB18-2-74, + author = "Peter Flynn", + title = "{{\acro{TTN}} returns: {Final} \acro{TTN} editorial}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "74--74", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gibbons:TB18-2-75, + author = "Jeremy Gibbons", + title = "{`Hey\Dash it works!'}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "75--78", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thiele:TB18-2-78, + author = "Christina Thiele", + title = "{{\TeX} and the {Humanities}}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "78--78", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Grant:TB18-2-79, + author = "Michael C. Grant", + title = "{Volunteers needed: {PSfrag} hackers}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "79--79", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Chow:TB18-2-79, + author = "Sidney Chow", + title = "{Features for a \acro{WYSIWYG} {\LaTeX} editor}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "79--79", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-2-80, + author = "Anonymous", + title = "{New publications}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "80--80", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rahtz:TB18-2-81, + author = "Sebastian Rahtz and Michel Goossens", + title = "{The {\bf{\TeXLive}} {Guide}, version 2}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "81--112", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB18-2-113, + author = "Alan Hoenig", + title = "{Virtual fonts, virtuous fonts}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "113--121", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-2-121, + author = "Anonymous", + title = "{Les {Cahiers GUTenberg}, contents of {Issue} 25}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "121--122", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-2-122, + author = "Anonymous", + title = "{Die {\TeX}nische {Kom\"odie} {\bf7}, 1995, {Heft} + 1--4; {\bf8}, 1996, {Heft} 1--4}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "122--126", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{LaTeX:TB18-2-127, + author = "{\LaTeX\ 3} Project Team", + title = "{Modifying {\LaTeX}}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "127--130", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-2-130, + author = "Anonymous", + title = "{News from the {\LaTeX\,3} {Project Team}}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "130--137", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-2-138, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "138--138", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-2-139, + author = "Anonymous", + title = "{{\acro{TUG}'97 preliminary program}}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "139--140", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB18-2-130, + author = "Mimi Burbank", + title = "{Production notes}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "130--130", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-2-130-2, + author = "Anonymous", + title = "{Future issues}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "130--130", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-2-141, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "141--141", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-2-142, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "142--142", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-2-143, + author = "Anonymous", + title = "{{\TeX{} consulting and production services}}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "143--143", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-2-138-2, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "18", + number = "2", + pages = "138--138", + month = jun, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-3-146, + author = "Anonymous", + title = "{Call for {Papers}}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "146--146", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jett:TB18-3-147, + author = "Mimi Jett", + title = "{Opening {Words} by the {President}}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "147--148", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-3-149, + author = "Anonymous", + title = "{{\acro{TUG}'97} program}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "149--149", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rose:TB18-3-151, + author = "{Kristoffer H\o{}gsbro Rose}", + title = "{{V}ery high level 2-dimensional graphics with {\TeX} + and {\Xy-pic}}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "151--158", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Moore:TB18-3-159, + author = "Ross Moore", + title = "{High quality labels on included graphics, using + {\Xy-pic}}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "159--165", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lesenko:TB18-3-166, + author = "Sergey Lesenko", + title = "{{\acro{DVIPDF}} and {Graphics}}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "166--169", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hamlin:TB18-3-170, + author = "Christopher B. Hamlin", + title = "{From {\acro{SGML}} to {\acro{HTML}} with help from + {\TeX}}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "170--174", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lovell:TB18-3-175, + author = "Douglas Lovell", + title = "{Custom legal documents for the {IBM AutoLoan} + {Exchange}}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "175--181", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Downes:TB18-3-182, + author = "Michael Downes", + title = "{Breaking equations}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "182--194", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB18-3-195, + author = "Frank Mittelbach and Chris Rowley", + title = "{The {\LaTeX3} {Project}}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "195--198", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB18-3-199, + author = "Frank Mittelbach and Chris Rowley", + title = "{Language information in structured documents: {A} + model for mark-up and rendering}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "199--205", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lemberg:TB18-3-206, + author = "Werner Lemberg", + title = "{New font tools for {\TeX}}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "206--213", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lemberg:TB18-3-214, + author = "Werner Lemberg", + title = "{The {\acro{CJK}} package: {Multilingual} support + beyond {Babel}}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "214--224", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-3-225, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "225--225", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB18-3-148, + author = "Mimi Burbank", + title = "{Production notes}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "148--148", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-3-226, + author = "Anonymous", + title = "{{\acro{TUG}'97} list of attendees}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "226--228", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-3-229, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "229--229", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-3-230, + author = "Anonymous", + title = "{{\acro{TUG}} membership form}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "230--230", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-3-231, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "231--231", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-3-232, + author = "Anonymous", + title = "{Y\&Y Inc.}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "232--232", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-3-cover3, + author = "Anonymous", + title = "{Blue Sky Research}", + journal = j-TUGboat, + volume = "18", + number = "3", + pages = "Cover 3", + month = sep, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-4-235, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "235--236", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taupin:TB18-4-236, + author = "Daniel Taupin", + title = "{{MusiX\TeX}: {How} many fonts are acceptable{?}}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "236--236", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jett:TB18-4-237, + author = "Mimi Jett", + title = "{From the {President}}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "237--237", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB18-4-238, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "238--238", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taylor:TB18-4-239, + author = "Phil Taylor", + title = "{{\eTeX} {V2}: a peek into the future}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "239--242", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Flynn:TB18-4-242, + author = "Peter Flynn", + title = "{Typographers Inn}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "242--245", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rogers:TB18-4-246, + author = "David F. Rogers", + title = "{{\it The {\LaTeX} Graphics Companion}, by {Michel + Goossens}, {Sebastian Rahtz} and {Frank Mittelbach}}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "246--246", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gibbons:TB18-4-246, + author = "Jeremy Gibbons", + title = "{`Hey\Dash it works!'}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "246--248", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thanh:TB18-4-249, + author = "H{\'a}n Th\^e\llap{\raise 0.5ex\hbox{\'{\relax}}} + Th{\'a}nh and Sebastian Rahtz", + title = "{The pdf{\TeX} user manual}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "249--254", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Finston:TB18-4-255, + author = "Laurence Finston", + title = "{{Spindex}\Dash {Indexing} with special characters}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "255--273", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Roegel:TB18-4-274, + author = "Denis Roegel", + title = "{{Creating 3D} animations with {\MP}}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "274--283", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Horn:TB18-4-284, + author = "Berthold K. P. Horn", + title = "{{`Hinting'} of scalable outline fonts}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "284--286", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Willadt:TB18-4-286, + author = "Peter Willadt", + title = "{Another approach to barcodes}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "286--290", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-4-290, + author = "Anonymous", + title = "{{Die} {\TeX}nische {Kom\"odie} {\bf6}, 1994}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "290--295", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-4-295, + author = "Anonymous", + title = "{{Les Cahiers GUTenberg}, {Contents} of {Issues} 26 + and 27}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "295--297", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Aphalo:TB18-4-297, + author = "Pedro J. Aphalo", + title = "{{A} proposal for citation commands in {\LaTeX 3}}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "297--302", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Carlisle:TB18-4-303, + author = "David Carlisle and Chris Rowley and Frank Mittelbach", + title = "{{The} {\LaTeX3 Programming Language}\Dash a proposed + system for {\TeX} macro programming}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "303--308", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB18-4-309, + author = "Frank Mittelbach", + title = "{{A} regression test suite for {\LaTeXe}}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "309--311", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-4-312, + author = "Anonymous", + title = "{{News} from the {\LaTeX3} {Project Team}}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "312--312", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-4-313, + author = "Anonymous", + title = "{A Week on Electronic Documents and Typography}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "313--313", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-4-314, + author = "Anonymous", + title = "{{TUG'98} {Call} for papers}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "314--314", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-4-315, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "315--316", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB18-4-316, + author = "Mimi Burbank", + title = "{Production notes}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "316--316", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-4-316, + author = "Anonymous", + title = "{Future issues}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "316--316", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-4-317, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "317--317", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-4-318, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "318--318", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-4-319, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "319--319", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-4-320, + author = "Anonymous", + title = "{{Y\&Y} Inc.}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "320--320", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB18-4-cover3, + author = "Anonymous", + title = "{Blue Sky Research}", + journal = j-TUGboat, + volume = "18", + number = "4", + pages = "Cover 3", + month = dec, + year = "1997", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-1-3, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "3--3", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jett:TB19-1-4, + author = "Mimi Jett", + title = "{{From} the {President}}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "4--4", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB19-1-5, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "5--5", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Radhakrishnan:TB19-1-6, + author = "C. V. Radhakrishnan", + title = "{A case for {\TeX} in {India}\Dash {The Indian {\TeX} + Users Group}}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "6--9", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rahtz:TB19-1-9, + author = "Sebastian Rahtz", + title = "{The inaugural meeting of {TUG India}}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "9--11", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Scherer:TB19-1-11, + author = "Andreas Scherer", + title = "{The future of {AmiWeb2c}}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "11--12", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beebe:TB19-1-12, + author = "Nelson H. F. Beebe", + title = "{{\acro{AUTHIDX}: {An} author/editor indexing + package}}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "12--18", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rahtz:TB19-1-19, + author = "Sebastian Rahtz and Michel Goossens", + title = "{The {\TeX{} Live} guide, 3rd edition}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "19--60", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Moore:TB19-1-61, + author = "Ross Moore", + title = "{Erratum: {High} quality labels on included graphics, + using {\Xy-pic}, {\tubissue 18(3)}, pp. 151--158}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "61--61", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Horn:TB19-1-62, + author = "Berthold K. P. Horn", + title = "{The {European Modern} fonts}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "62--63", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gibbons:TB19-1-63, + author = "Jeremy Gibbons", + title = "{`Hey\Dash it works!'}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "63--65", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taylor:TB19-1-65, + author = "Philip Taylor", + title = "{Book design for {\TeX} users, {Part} 1: {Theory}}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "65--74", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-1-75, + author = "Anonymous", + title = "{{Die} {\TeX}nische {Kom\"odie} {\bf8} (1996, {Heft} + 1--4)}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "75--80", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-1-81, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "81--82", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Schroder:TB19-1-83, + author = "Martin Schr{\"o}der", + title = "{{\TeX} {Merchandising}\Dash an announcement}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "83--83", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB19-1-82, + author = "Mimi Burbank", + title = "{Production notes}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "82--82", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-1-82, + author = "Anonymous", + title = "{Future issues}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "82--82", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-1-84, + author = "Anonymous", + title = "{New members of the {TUG Board}}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "84--85", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-1-86, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "86--86", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-1-87, + author = "Anonymous", + title = "{{TUG} membership application}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "87--87", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-1-88, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "88--88", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-1-82-2, + author = "Anonymous", + title = "{Index of advertisers}", + journal = j-TUGboat, + volume = "19", + number = "1", + pages = "82--82", + month = mar, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-2-91, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "91--91", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jett:TB19-2-93, + author = "Mimi Jett", + title = "{{From} the {President}}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "93--93", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB19-2-94, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "94--94", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-2-95, + author = "Anonymous", + title = "{{April} {Fool's} {Hoax}}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "95--96", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-2-97, + author = "Anonymous", + title = "{{\CTAN} \acro{CDROM} series, compliments of + \acro{DANTE}}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "97--98", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Flynn:TB19-2-98, + author = "Peter Flynn", + title = "{Typographers' inn}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "98--100", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Girou:TB19-2-101, + author = "Denis Girou", + title = "{{\sf pst-fill}\Dash a {PSTricks} package for filling + and tiling areas}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "101--113", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Doob:TB19-2-113, + author = "Michael Doob", + title = "{{\it \TeX{} Unbound}, by Alan Hoenig}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "113--114", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Pandey:TB19-2-115, + author = "Anshuman Pandey", + title = "{An overview of {Indic} fonts for {\TeX}}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "115--120", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bouche:TB19-2-120, + author = "Thierry Bouche", + title = "{Diversity in math fonts}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "120--134", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gibbons:TB19-2-135, + author = "Jeremy Gibbons", + title = "{`Hey\Dash it works!'}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "135--136", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{LPT:TB19-2-137, + author = "{{\LaTeX} project team}", + title = "{{D}efault docstrip headers}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "137--138", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{LPT:TB19-2-139, + author = "{{\LaTeX} project team}", + title = "{{\LaTeX} {News}, {Issue} 9, {June} 1998}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "139--139", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-2-140, + author = "Anonymous", + title = "{Conference Program}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "140--141", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hogue:TB19-2-142, + author = "Stephanie Hogue", + title = "{Final report: {\TeX Northeast}}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "142--143", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-2-144, + author = "Anonymous", + title = "{{\TeX Northeast}: {Workshops} and additional + papers}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "144--146", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Barnett:TB19-2-147, + author = "Michael P. Barnett", + title = "{{\sf mathscape}\Dash {Combining Mathematica} and + {\TeX}}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "147--156", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sutor:TB19-2-157, + author = "Robert S. Sutor and Samuel S. Dooley", + title = "{{\TeX} and {\LaTeX} on the {Web} via {IBM} {\sf + techexplorer}}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "157--161", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hendrickson:TB19-2-162, + author = "Amy Hendrickson", + title = "{Real {Life} {\LaTeX}: {Adventures} of a {\TeX} + consultant}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "162--167", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB19-2-168, + author = "Alan J. Hoenig", + title = "{Typesetting with {\TeX} and {\LaTeX}}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "168--175", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB19-2-176, + author = "Alan J. Hoenig", + title = "{Alternatives to {Computer Modern} mathematics}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "176--187", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Arthur:TB19-2-188, + author = "Jeffrey \Mc Arthur", + title = "{Developing database publishing systems using + {\TeX}}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "188--194", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Moore:TB19-2-195, + author = "Ross Moore", + title = "{Presenting mathematics and languages in {Web}-pages, + using {\LaTeX2\acro{HTML}}}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "195--203", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Patashnik:TB19-2-204, + author = "Oren Patashnik", + title = "{{\BibTeX} 101}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "204--207", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Signell:TB19-2-208, + author = "Peter Signell", + title = "{One-document scientific publishing for print and + {Web/CD}}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "208--213", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sofka:TB19-2-214, + author = "Michael D. Sofka", + title = "{{\TeX} to \acro{HTML} translation via tagged + \acro{DVI} files}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "214--222", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-2-223, + author = "Anonymous", + title = "{{Les Cahiers} {GUTenberg}, {Contents} of issue + 28--29}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "223--226", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-2-227, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "227--227", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-2-92, + author = "Anonymous", + title = "{{TUG\,98} -- {Torun, Poland, 17--21 August 1998}, + {Preliminary} program}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "92--92", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hennings:TB19-2-231, + author = "Wilfred Hennings", + title = "{Volunteers needed for {\sf LaTeX2rtf} coordination + and development}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "231--231", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-2-229, + author = "Anonymous", + title = "{{\acro{TUG}'99 {Announcement}}}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "229--229", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB19-2-228, + author = "Mimi Burbank", + title = "{Production notes}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "228--228", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-2-228, + author = "Anonymous", + title = "{Future issues}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "228--228", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-2-230, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "230--230", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-2-231, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "231--231", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-2-232, + author = "Anonymous", + title = "{Y\&Y Inc.}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "232--232", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-2-Cover-3, + author = "Anonymous", + title = "{Blue Sky Research}", + journal = j-TUGboat, + volume = "19", + number = "2", + pages = "Cover 3", + month = jun, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB19-3-234, + author = "Barbara Beeton", + title = "{{\acro{TUG} Election Notice}}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "234--234", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB19-3-235, + author = "Barbara Beeton", + title = "{Editorial Comments\Dash A TUG\,'98 trip report}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "235--236", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-3-237, + author = "Anonymous", + title = "{{\acro{TUG}'98 Attendees}}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "237--238", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Nickalls:TB19-3-239, + author = "R. W. D. Nickalls", + title = "{\TeX\ in the Operating Theatre: An anaesthesia + application}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "239--241", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Nowacki:TB19-3-242, + author = "Janusz M. Nowacki and Bogus{\l}aw Jackowski", + title = "{Antykwa Toru\'nska: An electronic replica of a Polish + traditional type}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "242--243", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kinch:TB19-3-244, + author = "Richard J. Kinch", + title = "{{Belleek: A call for \MF{} revival}}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "244--249", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Piska:TB19-3-250, + author = "Karel P{\'\i}{\v{s}}ka", + title = "{Georgian scripts}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "250--255", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoekwater:TB19-3-256, + author = "Taco Hoekwater", + title = "{{Generating Type 1 fonts from \MF{} sources}}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "256--266", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jackowski:TB19-3-267, + author = "Bogus{\l}aw Jackowski and Piotr Pianowski and + Piotr Strzelczyk", + title = "{{Threshing \acro{EPS} files}}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "267--271", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jackowski:TB19-3-272, + author = "Bogus{\l}aw Jackowski and Piotr Pianowski and + Piotr Strzelczyk", + title = "{More \TeX-PostScript links}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "272--275", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bolek:TB19-3-276, + author = "Piotr Bolek", + title = "{{\MP{} and patterns}}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "276--283", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thanh:TB19-3-284, + author = "H{\`a}n Th\^e\llap{\raise0.5ex\hbox{\'{\relax}}} + Th{\`a}nh", + title = "{Improving \TeX's Typeset Layout}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "284--288", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taupin:TB19-3-289, + author = "Daniel Taupin", + title = "{{\tt ltx2rtf}: {Exporting {\LaTeX} documents to Word + addicts}}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "289--292", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bzyl:TB19-3-293, + author = "W{\l}odek Bzyl", + title = "{{Adding native language support to the \acro{CWEB} + package and the {\TeX} program}}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "293--297", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wolinski:TB19-3-298, + author = "Marcin Woli{\'n}ski", + title = "{{{\sf Pretprin}\Dash a {\LaTeXe}} package for + pretty-printing texts in formal languages}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "298--303", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hagen:TB19-3-304, + author = "Hans Hagen", + title = "{{The Calculator Demo}, {Integrating \TeX, \MP, + JavaScript and \acro{PDF}}}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "304--310", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hagen:TB19-3-311, + author = "Hans Hagen", + title = "{Visual Debugging in \TeX, Part 1: The Story}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "311--317", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hagen:TB19-3-317, + author = "Hans Hagen", + title = "{Visual Debugging in \TeX, Part 2: The Macros}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "317--317", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Skoupy:TB19-3-318, + author = "Karel Skoup\'{y}", + title = "{\NTS: a New Typesetting System}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "318--322", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{NTGTFWG:TB19-3-323, + author = "{\NTG{} \TeX{} future working group}", + title = "{\TeX\ in 2003, Part I: Introduction and views on + current work}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "323--329", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{NTGTFWG:TB19-3-330, + author = "{\NTG{} \TeX{} future working group}", + title = "{{\TeX\ in 2003, Part II: Proposal for a + {\tt\char`\\special} standard}}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "330--337", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-3-338, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "338--338", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-3-340, + author = "Anonymous", + title = "{{\acro{TUG}'99 {Announcement}}}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "340--340", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB19-3-339, + author = "Mimi Burbank", + title = "{Production notes}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "339--339", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-3-341, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "341--341", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-3-342, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "342--342", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-3-343, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "343--343", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-3-339, + author = "Anonymous", + title = "{Hug The Lion!}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "339--339", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-3-344, + author = "Anonymous", + title = "{Y\&Y Inc.}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "344--344", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-3-Cover-3, + author = "Anonymous", + title = "{Blue Sky Research}", + journal = j-TUGboat, + volume = "19", + number = "3", + pages = "Cover 3", + month = sep, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-4-347, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "347--348", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Carlisle:TB19-4-348, + author = "David Carlisle", + title = "{A seasonal puzzle: XII}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "348--348", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jett:TB19-4-349, + author = "Mimi Jett", + title = "{{From} the {President}}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "349--350", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB19-4-351, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "351--352", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Flynn:TB19-4-353, + author = "Peter Flynn", + title = "{Typographers' inn}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "353--355", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Misakova:TB19-4-355, + author = "Miroslava Mis{\'a}kov{\'a}", + title = "{Typesetting with varying letter widths: {New hope for + your narrow columns}}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "355--365", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB19-4-366, + author = "Barbara Beeton", + title = "{{Editorial: Enc\TeX{}, by Petr Ol{\v{s}}\'ak}}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "366--366", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Olsak:TB19-4-366, + author = "Petr Ol{\v{s}}{\'a}k", + title = "{{Enc\TeX{}\Dash A little extension of \TeX{}}}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "366--371", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Finston:TB19-4-372, + author = "Laurence Finston", + title = "{{Conc{\TeX}: Generating a concordance from {\TeX} + input files}}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "372--403", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Berdnikov:TB19-4-403, + author = "A. Berdnikov and O. Lapko and M. Kolodin and A. + Janishevsky and A. Burykin", + title = "{{Cyrillic encodings for \LaTeXe{} multi-language + documents}}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "403--416", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Pandey:TB19-4-417, + author = "Anshuman Pandey", + title = "{{Romanized Indic and \LaTeX{}}}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "417--418", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beccari:TB19-4-419, + author = "Claudio Beccari and Apostolos Syropoulos", + title = "{{New Greek fonts and the {\tt greek} option of the + {\sf babel} package}}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "419--425", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gibbons:TB19-4-426, + author = "Jeremy Gibbons", + title = "{`Hey\Dash it works!'}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "426--427", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thiele:TB19-4-428, + author = "Christina Thiele", + title = "{{The Treasure Chest: A package tour from + \acro{CTAN}\Dash {\tt soul.sty}}}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "428--430", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-4-431, + author = "Anonymous", + title = "{Les Cahiers GUTenberg, Contents of issue 30}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "431--431", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-4-433, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "433--433", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-4-434, + author = "Anonymous", + title = "{{\acro{TUG}'99 {Announcement}}}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "434--436", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB19-4-432, + author = "Mimi Burbank", + title = "{Production notes}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "432--432", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-4-432, + author = "Anonymous", + title = "{Future issues}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "432--432", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-4-437, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "437--437", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-4-438, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "438--438", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-4-439, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "439--439", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-4-440, + author = "Anonymous", + title = "{Y\&Y Inc.}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "440--440", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB19-4-Cover-3, + author = "Anonymous", + title = "{Blue Sky Research}", + journal = j-TUGboat, + volume = "19", + number = "4", + pages = "Cover 3", + month = dec, + year = "1998", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-1-3, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "3--3", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rose:TB20-1-5, + author = "Kristoffer Rose", + title = "{From the Vice-President}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "5--5", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB20-1-6, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "6--7", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Andre:TB20-1-8, + author = "Jacques Andr{\'e} and Denis Girou", + title = "{{Father Truchet, the typographic point, the {\it + Romain du roi}, and tilings}}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "8--14", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Toledo:TB20-1-15, + author = "Sivan Toledo", + title = "{A simple technique for typesetting Hebrew with vowel + points}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "15--19", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rahtz:TB20-1-20, + author = "Sebastian Rahtz", + title = "{{The \TeX\ Live Guide, \nth{4} edition}}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "20--44", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB20-1-45, + author = "Barbara Beeton", + title = "{{{\TeX} and the Year 2000}}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "45--50", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB20-1-50, + author = "Barbara Beeton", + title = "{Hyphenation Exception Log\Dash Update}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "50--51", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{LPT:TB20-1-52, + author = "{{\LaTeX} project team}", + title = "{{{\LaTeX} News, Issue 10, December 1998}}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "52--52", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thiele:TB20-1-53, + author = "Christina Thiele", + title = "{{The Treasure Chest: Package tours from + \acro{CTAN}}}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "53--58", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-1-59, + author = "Anonymous", + title = "{{Die {\TeX}nische Kom\"odie} {\bf9} {(1997, Heft + 1--4)}}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "59--64", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-1-65, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "65--66", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-1-67, + author = "Anonymous", + title = "{{\acro{TUG}'99 Announcement}}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "67--69", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-1-4, + author = "Anonymous", + title = "{{\acro{TUG}'99 Poetry Contest}}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "4--4", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB20-1-70, + author = "Mimi Burbank", + title = "{Production notes}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "70--70", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-1-70, + author = "Anonymous", + title = "{{\TUB{} web pages}}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "70--70", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-1-70-2, + author = "Anonymous", + title = "{Future issues}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "70--70", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thiele:TB20-1-71, + author = "Christina Thiele and Arthur Ogawa", + title = "{Report: TUG 1999 Election}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "71--71", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-1-71, + author = "Anonymous", + title = "{Members of the TUG Board with terms ending in 2003}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "71--76", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-1-76, + author = "Anonymous", + title = "{Position of President}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "76--76", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-1-77, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "77--77", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-1-78, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "78--78", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-1-79, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "79--79", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-1-80, + author = "Anonymous", + title = "{Y\&Y Inc.}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "80--80", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-1-Cover-3, + author = "Anonymous", + title = "{Blue Sky Research}", + journal = j-TUGboat, + volume = "20", + number = "1", + pages = "Cover 3", + month = mar, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-2-83, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "83--84", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jett:TB20-2-85, + author = "Mimi Jett", + title = "{From the President}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "85--86", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB20-2-86, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "86--87", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Childs:TB20-2-87, + author = "Bart Childs", + title = "{Norman W. Naugle\dash A Remembrance}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "87--88", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Langmyhr:TB20-2-89, + author = "Dag Langmyhr", + title = "{Roswitha von den Schulenburg Graham}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "89--89", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB20-2-89, + author = "Mimi Burbank", + title = "{You meet the nicest people \dots\ Father Everett + Larguier}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "89--90", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gaulle:TB20-2-91, + author = "Bernard Gaulle", + title = "{{The {\tt french} package on and off \CTAN}}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "91--92", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-2-92, + author = "Anonymous", + title = "{{Response from the {\CTAN} team}}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "92--92", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB20-2-92, + author = "Barbara Beeton", + title = "{Editor's commentary}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "92--92", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fine:TB20-2-93, + author = "Jonathan Fine", + title = "{The good name of \TeX}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "93--93", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Olsak:TB20-2-93, + author = "Petr Ol{\v{s}}ak", + title = "{Reply}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "93--93", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Flynn:TB20-2-94, + author = "Peter Flynn", + title = "{Typographers' Inn}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "94--95", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gelderman:TB20-2-96, + author = "Maarten Gelderman", + title = "{A short introduction to font characteristics}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "96--104", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jackowski:TB20-2-104, + author = "Bogus{\l}aw Jackowski", + title = "{\MF: Practical and impractical applications}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "104--119", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Pandey:TB20-2-119, + author = "Anshuman Pandey", + title = "{Typesetting Bengali in \TeX}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "119--126", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoppner:TB20-2-127, + author = "Klaus H{\"o}ppner", + title = "{{The {\sl CTAN May 1999} \acro{CD ROM} set by + \acro{DANTE} e.V. and Lehmanns bookstore}}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "127--127", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Dobbelsteen:TB20-2-128, + author = "Gilbert van den Dobbelsteen", + title = "{{Interacting pdf\TeX{}, \acro{PERL} and \CONTEXT}}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "128--133", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Tolksdorf:TB20-2-134, + author = "Robert Tolksdorf", + title = "{{\NetBibTeX{}ing}}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "134--140", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gibbons:TB20-2-141, + author = "Jeremy Gibbons", + title = "{Hey --- it works!}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "141--142", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-2-143, + author = "Anonymous", + title = "{{{\sl Les Cahiers GUTenberg}, Contents of Issues 31 + (December 1998) and 32 (May 1999)}}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "143--145", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-2-146, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "146--147", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB20-2-147, + author = "Mimi Burbank", + title = "{Production notes}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "147--147", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-2-147, + author = "Anonymous", + title = "{Future issues}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "147--147", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Preston:TB20-2-140, + author = "Roy Preston", + title = "{Monk-ey business}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "140--140", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-2-148, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "148--148", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-2-150, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "150--150", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-2-149, + author = "Anonymous", + title = "{Cambridge University Press}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "149--149", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-2-151, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "151--151", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-2-152, + author = "Anonymous", + title = "{Y\&Y Inc.}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "152--152", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-2-Cover-3, + author = "Anonymous", + title = "{Blue Sky Research}", + journal = j-TUGboat, + volume = "20", + number = "2", + pages = "Cover 3", + month = jun, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thiele:TB20-3-155, + author = "Christina Thiele", + title = "{Vancouver in August}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "155--159", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-3-160, + author = "Anonymous", + title = "{TUG\,'99 Program}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "160--161", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fulling:TB20-3-162, + author = "Stephen A. Fulling", + title = "{{\ninesmc Keynote:} {\TeX\ and the Web in the higher + education of the future: Dreams and difficulties}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "162--166", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ion:TB20-3-167, + author = "Patrick D. F. Ion", + title = "{{Math\acro{ML}: A key to math on the Web}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "167--175", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lovell:TB20-3-176, + author = "Douglas Lovell", + title = "{{\TeXML: Typesetting {\XML} with \TeX}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "176--183", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Topping:TB20-3-184, + author = "Paul Topping", + title = "{{Using {\ssf MathType} to create {\TeX} and + Math\acro{ML} equations}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "184--188", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rowley:TB20-3-189, + author = "Chris Rowley", + title = "{Models and languages for formatted documents}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "189--195", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Story:TB20-3-196, + author = "D. P. Story", + title = "{{Acro\TeX: Acrobat and {\TeX} team up}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "196--201", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Doumont:TB20-3-202, + author = "Jean-luc Doumont", + title = "{{Doing it my way: A lone {\TeX}er in the real + world}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "202--207", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Flynn:TB20-3-208, + author = "Peter Flynn", + title = "{{The {\ssf vulcan} package: A repair patch for + \LaTeX}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "208--213", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Carlisle:TB20-3-214, + author = "David Carlisle and Frank Mittelbach and Chris Rowley", + title = "{{New interfaces for {\LaTeX} class design, Parts I + and II}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "214--216", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bazargan:TB20-3-217, + author = "Kaveh Bazargan", + title = "{Multi-use documents: The role of the publisher}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "217--220", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bartlett:TB20-3-221, + author = "Frederick H. Bartlett", + title = "{{Very like a nail: Typesetting \acro{SGML} with + \TeX}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "221--221", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Payne:TB20-3-222, + author = "Harry Payne", + title = "{Making a book from contributed papers: Print and Web + versions}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "222--226", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kruse:TB20-3-227, + author = "Robert L. Kruse", + title = "{Managing large projects with \PreTeX: A preprocessor + for \TeX}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "227--230", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ogawa:TB20-3-231, + author = "Arthur Ogawa", + title = "{{Database publishing with {\Java} and \TeX}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "231--231", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mailhot:TB20-3-232, + author = "Paul A. Mailhot", + title = "{{Implementing dynamic cross-referencing and + \acro{PDF} with \PreTeX}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "232--236", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wang:TB20-3-237, + author = "Hu Wang", + title = "{A Web-based submission system for meeting + abstracts}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "237--240", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Sojka:TB20-3-241, + author = "Petr Sojka", + title = "{Hyphenation on demand}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "241--247", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fine:TB20-3-248, + author = "Jonathan Fine", + title = "{{Active {\TeX} and the \acro{DOT} input syntax}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "248--254", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Doumont:TB20-3-255, + author = "Jean-luc Doumont", + title = "{Drawing effective (and beautiful) graphs with \TeX}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "255--261", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{McKay:TB20-3-262, + author = "Wendy McKay and Ross Moore", + title = "{{Convenient labelling of graphics, the {\WARMreader} + way}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "262--271", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lesenko:TB20-3-272, + author = "Sergey Lesenko and Laurent Siebenmann", + title = "{{Viewing \acro{DVI} files with Acrobat Reader: + \acro{DVIPDF} gives birth to Acro\acro{DVI}}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "272--281", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB20-3-282, + author = "Alan Hoenig", + title = "{{{\it MathKit\/}: Alternatives to Computer Modern + Mathematics}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "282--289", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Popineau:TB20-3-290, + author = "Fabrice Popineau", + title = "{{fp\TeX{}: A te\TeX-based distribution for + Windows}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "290--297", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Arthur:TB20-3-298, + author = "Jeffrey \Mc Arthur", + title = "{{Managing {\TeX} software development projects}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "298--306", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Murphy:TB20-3-307, + author = "Timothy Murphy", + title = "{{{\Java} and \TeX}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "307--312", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thiele:TB20-3-313, + author = "Christina Thiele", + title = "{{Barbara N. Beeton: \acro{TUG} Board member for 20 + years}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "313--315", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thiele:TB20-3-316, + author = "Christina Thiele", + title = "{{Text of \,{\rm The Apocalypse\/} as graphics, by + Prof. Alban Grimm}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "316--316", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Grimm:TB20-3-317, + author = "Prof. Alban Grimm", + title = "{{Text of \,{\rm The Apocalypse\/} as graphics}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "317--319", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gurari:TB20-3-320, + author = "Eitan Gurari and Sebastian Rahtz", + title = "{{{\LaTeX} to {\XML}/Math\acro{ML}}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "320--320", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Story:TB20-3-321, + author = "D. P. Story", + title = "{{How to create quality interactive \acro{PDF} + documents for the \acro{WWW} using \LaTeX}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "321--321", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Doob:TB20-3-322, + author = "Michael Doob", + title = "{Writing class files: First steps}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "322--322", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoover:TB20-3-323, + author = "Anita Hoover", + title = "{{Converting a {\LaTeX} 2.09 style to a {\LaTeXe} + class}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "323--323", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fulling:TB20-3-324, + author = "Stephen A. {Fulling (Moderator)}", + title = "{{{\TeX} and math on the Web}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "324--324", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bazargan:TB20-3-325, + author = "Kaveh {Bazargan (Moderator)}", + title = "{{{\TeX} in publishing}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "325--325", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ogawa:TB20-3-326, + author = "Arthur {Ogawa (Moderator)}", + title = "{The Future of \LaTeX}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "326--326", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-3-329, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "329--330", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-3-154, + author = "Anonymous", + title = "{TUG2000\Dash The \nth{21} Annual Conference}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "154--154", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-3-331, + author = "Anonymous", + title = "{{\acro{GUT}enberg\,2000\Dash{\LaTeX} and {\XML}: + Cooperating with the Internet}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "331--331", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Preston:TB20-3-330, + author = "Roy Preston", + title = "{An Analogy with Web Sites}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "330--330", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-3-327, + author = "Anonymous", + title = "{{\acro{TUG}\,'99 Attendees}}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "327--328", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-3-332, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "332--332", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-3-333, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "333--333", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-3-334, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "334--334", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-3-335, + author = "Anonymous", + title = "{Cambridge University Press}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "335--335", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-3-336, + author = "Anonymous", + title = "{Y\&Y Inc.}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "336--336", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-3-cover-3, + author = "Anonymous", + title = "{Blue Sky Research}", + journal = j-TUGboat, + volume = "20", + number = "3", + pages = "Cover 3", + month = sep, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-4-339, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "339--340", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jett:TB20-4-341, + author = "Mimi Jett", + title = "{From the President}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "341--341", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB20-4-342, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "342--343", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Flynn:TB20-4-344, + author = "Peter Flynn", + title = "{Typographers' Inn}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "344--347", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Koutny:TB20-4-347, + author = "Vladim{\'{\i}}r Koutn{\'y}", + title = "{TrueType fonts in \TeX}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "347--348", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Zyka:TB20-4-348, + author = "V{\'{\i}}t Z{\'y}ka", + title = "{The semaphore alphabet}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "348--350", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Travis:TB20-4-350, + author = "Brian E. Travis", + title = "{{The Paper Path: \acro{XML} to paper using + \TeX\acro{ML}}}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "350--356", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Strokov:TB20-4-356, + author = "Igor I. Strokov", + title = "{{A \acro{WYSIWYG} {\TeX} implementation}}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "356--359", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Casselman:TB20-4-359, + author = "Bill Casselman", + title = "{{{\it The {\LaTeX} Graphics Companion\/} and {\it + {\TeX} Unbound}\Dash A review of two books}}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "359--364", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Flynn:TB20-4-364, + author = "Peter Flynn", + title = "{{{\it Digital Typography}, by Donald Knuth}}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "364--366", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fine:TB20-4-366, + author = "Jonathan Fine", + title = "{{The good name of {\TeX} (\tubissue 20(2), p. 93)}}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "366--366", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thiele:TB20-4-366, + author = "Christina Thiele", + title = "{{\acro{TUG}\,99 (\tubissue 20(3))}}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "366--366", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hefferon:TB20-4-367, + author = "{Jim Hef{}feron}", + title = "{{A {\CTAN} search page}}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "367--367", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gibbons:TB20-4-367, + author = "Jeremy Gibbons", + title = "{Hey --- it works!}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "367--370", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thiele:TB20-4-370, + author = "Christina Thiele", + title = "{The treasure chest}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "370--374", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{LPT:TB20-4-375, + author = "{{\LaTeX} project team}", + title = "{{{\LaTeX} News, Issue 12, December 1999}}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "375--375", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Shawyer:TB20-4-376, + author = "Bruce Shawyer", + title = "{Scaled pictures in \LaTeX}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "376--377", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taylor:TB20-4-378, + author = "Philip Taylor", + title = "{{Book design for {\TeX} users: Part 2: Practice}}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "378--389", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Moore:TB20-4-389, + author = "Ross Moore", + title = "{Preparation of documents for multiple modes of + delivery\Dash Notes from TUG'99}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "389--394", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-4-394, + author = "Anonymous", + title = "{{{\sl Les Cahiers GUTenberg}, Contents of double + issue 33/34 (November 1999)}}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "394--395", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-4-395, + author = "Anonymous", + title = "{Euro\TeX\,'99 Proceedings\Dash Paperless \TeX}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "395--398", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-4-399, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "399--400", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-4-401, + author = "Anonymous", + title = "{{TUG\,2000\Dash The \nth{21} Annual Conference}}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "401--401", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB20-4-400, + author = "Mimi Burbank", + title = "{Production notes}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "400--400", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-4-400, + author = "Anonymous", + title = "{Future issues}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "400--400", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Preston:TB20-4-340, + author = "Roy Preston", + title = "{Download free fonts!}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "340--340", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-4-402, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "402--402", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-4-403, + author = "Anonymous", + title = "{Statement of ownership}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "403--403", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-4-403-2, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "403--403", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-4-404, + author = "Anonymous", + title = "{Y\&Y Inc.}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "404--404", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB20-4-Cover-3, + author = "Anonymous", + title = "{Blue Sky Research}", + journal = j-TUGboat, + volume = "20", + number = "4", + pages = "Cover 3", + month = dec, + year = "1999", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-1-3, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "21", + number = "1", + pages = "3--3", + month = mar, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jett:TB21-1-5, + author = "Mimi Jett", + title = "{From the President}", + journal = j-TUGboat, + volume = "21", + number = "1", + pages = "5--5", + month = mar, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB21-1-6, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "21", + number = "1", + pages = "6--6", + month = mar, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fujita:TB21-1-7, + author = "Shinsaku Fujita and Nobuya Tanaka", + title = "{{\XyMTeX (Version 2.00) as implementation of the + \XyM{} notation and the \XyM{} markup language}}", + journal = j-TUGboat, + volume = "21", + number = "1", + pages = "7--14", + month = mar, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hefferon:TB21-1-15, + author = "{Jim Hef{}feron}", + title = "{{The {\TUG} {\CTAN} site makes a move}}", + journal = j-TUGboat, + volume = "21", + number = "1", + pages = "15--15", + month = mar, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Team:TB21-1-16, + author = "{The \TUB{} Team}", + title = "{{\TeXLive{} 5 and the \TeX{} Catalogue}}", + journal = j-TUGboat, + volume = "21", + number = "1", + pages = "16--16", + month = mar, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-1-17, + author = "Anonymous", + title = "{{Graham Williams' \TeX{} Catalogue}}", + journal = j-TUGboat, + volume = "21", + number = "1", + pages = "17--90", + month = mar, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-1-xx, + author = "Anonymous", + title = "{Supplement: {\TeXLive} 5 CD}", + journal = j-TUGboat, + volume = "21", + number = "1", + pages = "??--??", + month = mar, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB21-1-91, + author = "Victor Eijkhout", + title = "{The bag of tricks}", + journal = j-TUGboat, + volume = "21", + number = "1", + pages = "91--91", + month = mar, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-1-92, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "21", + number = "1", + pages = "92--92", + month = mar, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-1-4, + author = "Anonymous", + title = "{{TUG2000\Dash The \nth{21} Annual Conference}}", + journal = j-TUGboat, + volume = "21", + number = "1", + pages = "4--4", + month = mar, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB21-1-93, + author = "Mimi Burbank", + title = "{Production notes}", + journal = j-TUGboat, + volume = "21", + number = "1", + pages = "93--93", + month = mar, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-1-93, + author = "Anonymous", + title = "{Future issues}", + journal = j-TUGboat, + volume = "21", + number = "1", + pages = "93--93", + month = mar, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-1-94, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "21", + number = "1", + pages = "94--94", + month = mar, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-1-95, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "21", + number = "1", + pages = "95--95", + month = mar, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Farley:TB21-1-15, + author = "David Farley", + title = "{Don Knuth finally sells out}", + journal = j-TUGboat, + volume = "21", + number = "1", + pages = "15--15", + month = mar, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-1-96, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "21", + number = "1", + pages = "96--96", + month = mar, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-1-Cover-3, + author = "Anonymous", + title = "{Blue Sky Research}", + journal = j-TUGboat, + volume = "21", + number = "1", + pages = "Cover 3", + month = mar, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-2-99, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "99--99", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jett:TB21-2-101, + author = "Mimi Jett", + title = "{From the President}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "101--101", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB21-2-102, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "102--103", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Levien:TB21-2-103, + author = "Advogato (Raph Levien)", + title = "{Interview: Donald E. Knuth}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "103--110", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gratzer:TB21-2-111, + author = "G. Gr{\"a}tzer", + title = "{Turbulent transition}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "111--113", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lemberg:TB21-2-113, + author = "Werner Lemberg", + title = "{Thai fonts}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "113--120", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Toledo:TB21-2-121, + author = "Sivan Toledo", + title = "{Exploiting rich fonts}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "121--129", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Berdnikov:TB21-2-129, + author = "Alexander Berdnikov and Hans Hagen and Taco Hoekwater + and Bogus{\l}aw Jackowski", + title = "{Even more MetaFun with \MP: A request for + permission}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "129--130", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hobby:TB21-2-131, + author = "John D. Hobby", + title = "{Extending \MP: Response to ``Even more MetaFun''}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "131--132", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB21-2-132, + author = "Barbara Beeton", + title = "{Hyphenation exception log}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "132--133", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gibbons:TB21-2-133, + author = "Jeremy Gibbons", + title = "{Hey --- it works!}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "133--135", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thiele:TB21-2-136, + author = "Christina Thiele", + title = "{The treasure chest}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "136--142", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{LPT:TB21-2-143, + author = "{{\LaTeX} project team}", + title = "{{{\LaTeX} News, Issue 13, June 2000}}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "143--143", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-2-144, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "144--145", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-2-148, + author = "Anonymous", + title = "{{TUG2000\Dash The \nth{21} Annual Conference}}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "148--148", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burbank:TB21-2-146, + author = "Mimi Burbank", + title = "{Production notes}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "146--146", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-2-146, + author = "Anonymous", + title = "{Future issues}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "146--146", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Preston:TB21-2-100, + author = "Roy Preston", + title = "{Font identification}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "100--100", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{DeLand:TB21-2-145, + author = "Donald DeLand", + title = "{Report from the TUG Treasurer}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "145--146", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-2-147, + author = "Anonymous", + title = "{{2001 {\TeX} Users Group election}}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "147--147", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-2-149, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "149--149", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-2-150, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "150--150", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-2-151, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "151--151", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-2-152, + author = "Anonymous", + title = "{{IBM {\sf techexplorer}}}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "152--152", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-2-cover-3, + author = "Anonymous", + title = "{Blue Sky Research}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "Cover 3", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-2-, + author = "Anonymous", + title = "{{\CTAN\ \acro{CD}s: A 3-disk collection}}", + journal = j-TUGboat, + volume = "21", + number = "2", + pages = "{}", + month = jun, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fairbairns:TB21-3-155, + author = "Robin Fairbairns", + title = "{Editorial Comments\Dash TUG\,'2000}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "155--156", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-3-157, + author = "Anonymous", + title = "{TUG\,'2000 Program}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "157--158", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bayart:TB21-3-159, + author = "Benjamin Bayart", + title = "{The description language chosen for {\FDNTeX}}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "159--175", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB21-3-176, + author = "Barbara Beeton", + title = "{Unicode and math, a combination whose time has + come\Dash Finally!}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "176--185", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Berdnikov:TB21-3-186, + author = "Alexander Berdnikov and Yury Yarmola and Olga Lapko + and Andrew Janishewsky", + title = "{Some experience in converting LH Fonts from {\MF} to + Type1 format {\Abstract}}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "186--186", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bzyl:TB21-3-187, + author = "W{\l}odek Bzyl", + title = "{Typesetting {\TeX} documents containing computer + code}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "187--192", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Carlisle:TB21-3-193, + author = "David Carlisle", + title = "{\smc xmltex}: {A} non validating (and not 100\% + conforming) namespace aware {{\smc XML}} parser + implemented in {\TeX}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "193--199", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{DeLand:TB21-3-200, + author = "Donald DeLand", + title = "{Developing interactive, Web-based courseware + {\Abstract}}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "200--200", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Downes:TB21-3-201, + author = "Michael Downes", + title = "{The {\tt amsrefs} {\LaTeX} package and the {\tt + amsxport} {\BibTeX} style}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "201--209", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fine:TB21-3-210, + author = "Jonathan Fine", + title = "{Line breaking and page breaking}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "210--221", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Goossens:TB21-3-222, + author = "Michel Goossens and Sebastian Rahtz", + title = "{Passive\TeX}: from {\XML} to {\PDF}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "222--234", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gostanza:TB21-3-235, + author = "Pedro Palao Gostanza", + title = "{Fast scanners and self-parsing in {\TeX}}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "235--242", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kakugawa:TB21-3-243, + author = "Hirotsugu Kakugawa", + title = "{A device-independent \acro{DVI} interpreter library + for various output devices}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "243--249", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kolodin:TB21-3-250, + author = "M. Y. Kolodin and O. V. Eterevksy and O. G. Lapko and + and I. A. Makhovaya", + title = "{``Russian style'' with {\LaTeX} and {\ssf babel}: + what does it look like and how does it work + {\Abstract}}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "250--250", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kostin:TB21-3-251, + author = "Alex Kostin and Michael Vulis", + title = "{Mixing {\TeX} \& PostScript: The {\GeX} model}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "251--264", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lavaud:TB21-3-265, + author = "Michel Lavaud", + title = "{The {As\TeX} Assistant and Navigator {\Abstract}}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "265--265", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lipkin:TB21-3-266, + author = "Bernice Sacks Lipkin", + title = "{{\LaTeX} and the personal database}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "266--277", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB21-3-278, + author = "Frank Mittelbach", + title = "{Formatting documents with floats: A new algorithm + for {\LaTeXe}}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "278--290", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Murphy:TB21-3-291, + author = "Timothy Murphy", + title = "{The {Penrose} notation: a {\LaTeX} challenge + {\Abstract}}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "291--291", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Syropoulos:TB21-3-292, + author = "Apostolos Syropoulos and Richard W. D. Nickalls", + title = "{A {Perl} port of the {\mathsPIC} graphics package}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "292--297", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Nikulina:TB21-3-298, + author = "Marina Yu. Nikulina and Alexander S. Berdnikov", + title = "{Chess macros for chess games and puzzles}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "298--302", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Plaice:TB21-3-303, + author = "John Plaice", + title = "{Omega version 2 {\Abstract}}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "303--303", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Taylor:TB21-3-304, + author = "Philip Taylor and Ji\v{r}{\'\i} Zlatu{\v{s}}ka", + title = "{The {\NTS} project: from conception to birth + {\Abstract}}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "304--304", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-3-306, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "306--307", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-3-154, + author = "Anonymous", + title = "{{\acro{TUG}'2001 {Announcement}}}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "154--154", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-3-305, + author = "Anonymous", + title = "{Miscellaneous photos}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "305--305", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-3-308, + author = "Anonymous", + title = "{{\acro{TUG}\,'2000 {Attendees}}}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "308--309", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-3-307, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "307--307", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-3-310, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "310--310", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-3-311, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "311--311", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-3-312, + author = "Anonymous", + title = "{IBM \ssf techexplorer}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "312--312", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-3-cover-3, + author = "Anonymous", + title = "{Blue Sky Research}", + journal = j-TUGboat, + volume = "21", + number = "3", + pages = "Cover 3", + month = sep, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB21-4-315, + author = "Barbara Beeton", + title = "{Editorial Comments}", + journal = j-TUGboat, + volume = "21", + number = "4", + pages = "315", + month = dec, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-4-435, + author = "Anonymous", + title = "{{\acro{TUG}\,'2001 Announcement}}", + journal = j-TUGboat, + volume = "21", + number = "4", + pages = "435", + month = dec, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-4-436, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "21", + number = "4", + pages = "436", + month = dec, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-4-437, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "21", + number = "4", + pages = "437", + month = dec, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-4-438, + author = "Anonymous", + title = "{{TUG} membership application}", + journal = j-TUGboat, + volume = "21", + number = "4", + pages = "438", + month = dec, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-4-439, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "21", + number = "4", + pages = "439", + month = dec, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-4-440, + author = "Anonymous", + title = "{IBM \ssf techexplorer}", + journal = j-TUGboat, + volume = "21", + number = "4", + pages = "440", + month = dec, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB21-4-cover-3, + author = "Anonymous", + title = "{Blue Sky Research}", + journal = j-TUGboat, + volume = "21", + number = "4", + pages = "{Cover 3}", + month = dec, + year = "2000", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-12-3, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "3--3", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jett:TB22-12-5, + author = "Mimi Jett", + title = "{From the President}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "5--5", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB22-12-6, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "6--7", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hefferon:TB22-12-8, + author = "Jim Hef{}feron", + title = "{Why \TeX?}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "8--14", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-12-15, + author = "Anonymous", + title = "{{Question \& Answer session with Donald Knuth, + \acro{U.K.\,TUG}, Oxford, Sunday, 12 September 1999}}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "15--19", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-12-20, + author = "Anonymous", + title = "{{How \AllTeX{} changed the face of mathematics: An + {\ssf E}-interview with Leslie Lamport, the author of + \LaTeX}}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "20--22", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Flynn:TB22-12-23, + author = "Peter Flynn", + title = "{Typographers' inn}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "23--23", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB22-12-24, + author = "Frank Mittelbach", + title = "{Laudatio for Professor Hermann Zapf}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "24--26", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Zapf:TB22-12-26, + author = "Hermann Zapf", + title = "{My collaboration with Don Knuth and my font design + work}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "26--30", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB22-12-31, + author = "Barbara Beeton", + title = "{Hyphenation exception log}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "31--32", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jackson:TB22-12-32, + author = "Laura Elizabeth Jackson and Herbert Vo{\ss}", + title = "{{{\LyX} --- An Open Source document processor}}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "32--41", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Lewenberg:TB22-12-42, + author = "Adam H. Lewenberg", + title = "{{\acro{DVII}: A {\TeX} dvi file information + utility}}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "42--45", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hobby:TB22-12-46, + author = "John D. Hobby", + title = "{Drawing graphs with {\MP}}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "46--58", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hagen:TB22-12-58, + author = "Hans Hagen", + title = "{The status quo of the {\NTS} project}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "58--66", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Adams:TB22-12-67, + author = "William Adams", + title = "{The treasure chest}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "67--74", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Gratzer:TB22-12-74, + author = "George Gr{\"a}tzer", + title = "{Publishing legacy documents on the {Web}}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "74--78", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Roegel:TB22-12-78, + author = "Denis Roegel", + title = "{Anatomy of a macro}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "78--82", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Eijkhout:TB22-12-83, + author = "Victor Eijkhout", + title = "{The bag of tricks}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "83--86", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mauw:TB22-12-87, + author = "Sjouke Mauw and Victor Bos", + title = "{Drawing message sequence charts with {\LaTeX}}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "87--92", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Mittelbach:TB22-12-93, + author = "Frank Mittelbach", + title = "{The {\sf trace} package}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "93--99", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-12-100, + author = "Anonymous", + title = "{{{\sl Les Cahiers GUTenberg}, Contents of issues + 35/36 (May 2000) and 37/38 (December 2000)}}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "100--102", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-12-103, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "103--104", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-12-105, + author = "Anonymous", + title = "{{\acro{TUG}\,2001 Announcement}}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "105--105", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{DeMeritt:TB22-12-106, + author = "Susan DeMeritt", + title = "{Minutes of \TeX\ Users Group Annual General Meeting, + 15 August 2000, Oxford, England}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "106--106", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{DeLand:TB22-12-107, + author = "Don DeLand", + title = "{Financial statement, 2000}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "107--107", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ogawa:TB22-12-xx, + author = "Arthur Ogawa", + title = "{{\acro{TUG} Election Notice}}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "??--??", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-12-110, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "110--110", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-12-111, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "111--111", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-12-112, + author = "Anonymous", + title = "{Just Published: \TeX\ Reference Manual by David + Bausum}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "112--112", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-12-cover-3, + author = "Anonymous", + title = "{Blue Sky Research}", + journal = j-TUGboat, + volume = "22", + number = "1/2", + pages = "Cover 3", + month = mar, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-3-115, + author = "Anonymous", + title = "{TUG\,2001 Program}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "115--116", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-3-117, + author = "Anonymous", + title = "{Participants at the 22nd Annual TUG Meeting}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "117--117", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hagen:TB22-3-118, + author = "Hans Hagen", + title = "{Where will the odyssey bring us?}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "118--118", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Jett:TB22-3-119, + author = "Mimi Jett", + title = "{Future of publishing, Part 2}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "119--119", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Richter:TB22-3-120, + author = "William Richter", + title = "{Integrating \TeX\ into a document imaging system}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "120--130", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ogawa:TB22-3-131, + author = "Arthur Ogawa", + title = "{{REV\TeX} version 4.0, an authoring package by the + {American Physical Society}}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "131--133", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Schwartz:TB22-3-134, + author = "Anita {Schwartz (Chair)}", + title = "{The \TeX\ History Panel}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "134--135", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hagen:TB22-3-136, + author = "Hans Hagen", + title = "{Using \TeX\ for high end typesetting}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "136--136", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Flynn:TB22-3-137, + author = "Peter Flynn", + title = "{{\TeX}---a mass market product? Or just an image in + need of a makeover?}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "137--139", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Tulett:TB22-3-140, + author = "David Tulett", + title = "{{\LaTeX} for Windows: a user's perspective}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "140--145", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Thanh:TB22-3-146, + author = "H{\'a}n Th\^e\llap{\raise 0.5ex\hbox{\'{\relax}}} Th{\'a}nh", + title = "{Margin kerning and font expansion with {pdf\TeX}}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "146--148", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Moore:TB22-3-149, + author = "Ross Moore", + title = "{PDF presentations using the Marslide package}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "149--159", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hagen:TB22-3-160, + author = "Hans Hagen", + title = "{Using \TeX\ to enhance your presentations}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "160--160", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Story:TB22-3-161, + author = "Donald P. Story", + title = "{Techniques of introducing document-level JavaScript + into a \acro{PDF} file from a {\LaTeX} source}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "161--167", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Moore:TB22-3-168, + author = "Ross Moore", + title = "{Online self-marking quizzes, {pdf\TeX}, exerquiz}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "168--179", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Schroder:TB22-3-180, + author = "Martin Schr{\"o}der", + title = "{Using {pdf\TeX} in a \acro{PDF}-based imposition + tool}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "180--180", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beebe:TB22-3-181, + author = "Nelson Beebe", + title = "{pdf{\TeX} Panel}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "181--187", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Moore:TB22-3-188, + author = "Ross Moore", + title = "{Adobe plugin for \acro{WARM}reader}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "188--196", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Oliver:TB22-3-197, + author = "Stephen Oliver", + title = "{The \TeX{}spec tool for computer-aided software + engineering}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "197--203", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hammond:TB22-3-204, + author = "William Hammond", + title = "{{\acro{GELLMU}: A bridge for authors from {\LaTeX} to + \acro{XML}}}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "204--207", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Caviness:TB22-3-208, + author = "Bob Caviness", + title = "{Creating Math Web Documents (Workshop)}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "208--208", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB22-3-209, + author = "Alan Hoenig", + title = "{Typesetting {Hebrew} with \TeX}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "209--215", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hoenig:TB22-3-216, + author = "Alan Hoenig", + title = "Modernizing {Computer Modern}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "216--219", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beebe:TB22-3-220, + author = "Nelson Beebe", + title = "{Fonts Panel}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "220--227", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Downes:TB22-3-228, + author = "Michael Downes", + title = "Managing multiple {\acro{TDS}} trees", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "228--237", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Doob:TB22-3-238, + author = "Michael Doob", + title = "Installing a {\acro{CTAN}} mirror on your desktop", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "238--239", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Koch:TB22-3-240, + author = "Richard Koch", + title = "Installing {{\TeX{}shop}}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "240--246", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Adams:TB22-3-247, + author = "William Adams", + title = "Font installation: {Agfa\slash Eaglefeather} to + {Linotype Zapfino}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "247--250", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-3-251, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "251--252", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-3-253, + author = "Anonymous", + title = "{{\acro{TUG}\,2003 Announcement}}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "253--253", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-3-254, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "254--254", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-3-255, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "255--255", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-3-256, + author = "Anonymous", + title = "{Just Published: \TeX\ Reference Manual by David + Bausum}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "256--256", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-3-cover-3, + author = "Anonymous", + title = "{Blue Sky Research}", + journal = j-TUGboat, + volume = "22", + number = "3", + pages = "Cover 3", + month = sep, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-4-259, + author = "Anonymous", + title = "{Addresses}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "259--260", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Ogawa:TB22-4-261, + author = "Arthur Ogawa", + title = "{From the Board of Directors}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "261--263", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Beeton:TB22-4-263, + author = "Barbara Beeton", + title = "{Editorial comments}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "263--265", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Story:TB22-4-265, + author = "D. P. Story", + title = "{{\tt execJS}: A new technique for introducing + discardable JavaScript into a \acro{PDF} file from a + {\LaTeX} source}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "265--268", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Goossens:TB22-4-269, + author = "Michel Goossens and Vesa Sivunen", + title = "{\LaTeX, \acro{SVG}, fonts}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "269--280", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Mon Aug 18 14:42:08 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Forkosh:TB22-4-280, + author = "John Forkosh", + title = "{{\sf mimeTex} announcement}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "280--281", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Berry:TB22-4-281, + author = "Karl Berry", + title = "{Making outline fonts from bitmap images}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "281--285", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fujita:TB22-4-285, + author = "Shinsaku Fujita and Nobuya Tanaka", + title = "{Size reduction of chemical structural formulas in + \XyMTeX (Version 3.00)}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "285--289", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Niepraschk:TB22-4-290, + author = "Rolf Niepraschk and Herbert Vo{\ss}", + title = "{{The package {\tt ps4pdf}: from \PS\ to + \acro{PDF}}}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "290--292", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Fine:TB22-4-292, + author = "Jonathan Fine", + title = "{{Instant Preview and the {\TeX} daemon}}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "292--298", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Roegel:TB22-4-298, + author = "Denis Roegel", + title = "{Space geometry with {\MP}}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "298--314", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Voss:TB22-4-314, + author = "Jana Vo{\ss} and Herbert Vo{\ss}", + title = "{The plot functions of {\tt pst-plot}}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "314--319", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Voss:TB22-4-319, + author = "Herbert Vo{\ss}", + title = "{Three dimensional plots with {\tt pst-3dplot}}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "319--329", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Perlis:TB22-4-330, + author = "Alexander R. Perlis", + title = "{Axis alignment in {\Xypic} diagrams}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "330--334", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Obrecht:TB22-4-334, + author = "Christian Obrecht", + title = "{Eukleides: A geometry drawing language}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "334--337", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Moye:TB22-4-338, + author = "Stephen Moye", + title = "{{\it \TeX\ Reference Manual}, by David Bausum}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "338--339", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Wilson:TB22-4-339, + author = "Peter Wilson", + title = "{Glisterings}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "339--341", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Adams:TB22-4-341, + author = "William Adams", + title = "{The treasure chest}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "341--348", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Tulett:TB22-4-349, + author = "David M. Tulett", + title = "{Highlighting in the {\LaTeX} picture environment}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "349--349", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Perlis:TB22-4-350, + author = "Alexander R. Perlis", + title = "{A complement to {\tt\char`\\smash}, + {\tt\char`\\llap}, and {\tt\char`\\rlap}}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "350--352", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Burt:TB22-4-353, + author = "John Burt", + title = "{Typesetting critical editions of poetry}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "353--360", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Verna:TB22-4-361, + author = "Didier Verna", + title = "{CV formatting with \curve}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "361--364", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-4-365, + author = "Anonymous", + title = "{{\sl Les Cahiers GUTenberg}, Contents of double + issue 39/40 (May 2001)}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "365--367", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-4-368, + author = "Anonymous", + title = "{{\acro{TUG}\,'2002 Announcement}}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "368--368", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-4-369, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "369--370", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-4-371, + author = "Anonymous", + title = "{{\acro{TUG}\,'2003 Announcement}}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "371--371", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-4-372, + author = "Anonymous", + title = "{{Euro\TeX\,'2003\Dash The \nth{14} European {\TeX} + Conference}}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "372--372", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Preston:TB22-4-260, + author = "Roy Preston", + title = "{Ya can't touch us!}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "260--260", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-4-373, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "373--373", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-4-374, + author = "Anonymous", + title = "{TUG membership application}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "374--374", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-4-375, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "375--375", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-4-376, + author = "Anonymous", + title = "{Just Published: \TeX\ Reference Manual by David + Bausum}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "376--376", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB22-4-cover-3, + author = "Anonymous", + title = "{Blue Sky Research}", + journal = j-TUGboat, + volume = "22", + number = "4", + pages = "Cover 3", + month = dec, + year = "2001", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Christiansen:TB23-1-2, + author = "Kaja Christiansen", + title = "{Editorial Comments}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "2--2", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB23-1-3, + author = "Anonymous", + title = "{TUG\,2002, Thiruvananthapuram\Dash Report and + travelogue}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "3--7", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB23-1-8, + author = "Anonymous", + title = "{TUG\,2002 Program}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "8--9", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB23-1-10, + author = "Anonymous", + title = "{{Participants at the \nth{23} Annual TUG Meeting}}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "10--12", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kumar:TB23-1-13, + author = "K. Anil Kumar", + title = "{\TeX\ and databases\Dash\TeX DBI}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "13--16", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Babu:TB23-1-17, + author = "Satish Babu", + title = "{New horizons of free software: An Indian + perspective}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "17--20", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bujdoso:TB23-1-21, + author = "Gy{\"o}ngyi Bujdos{\'o} and Ferenc Wettl", + title = "{On the localization of \TeX\ in Hungary}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "21--26", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Bzyl:TB23-1-27, + author = "W{\l}odzimierz Bzyl", + title = "{The Tao of fonts}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "27--40", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Esfahbod:TB23-1-41, + author = "Behdad Esfahbod and Roozbeh Pournader", + title = "{Farsi\TeX\ and the Iranian \TeX community}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "41--45", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Feng:TB23-1-46, + author = "Hong Feng", + title = "{{The marriage of \TeX{} and Lojban}}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "46--48", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Hagen:TB23-1-49, + author = "Hans Hagen", + title = "{{\ConTeXt, \acro{XML} and \TeX: State of the art?}}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "49--49", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Haralambous:TB23-1-50, + author = "Yannis Haralambous and John Plaice", + title = "{{Low-level Devan\=agar\=\i{} support for Omega\Dash + Adapting {\tt devnag}}}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "50--56", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Kastrup:TB23-1-57, + author = "David Kastrup", + title = "{{Revisiting \acro{WYSIWYG} paradigms for authoring + \LaTeX}}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "57--64", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Moore:TB23-1-65, + author = "Ross Moore", + title = "{{serendi\acro{PDF} with searchable math-fields in + \acro{PDF} documents}}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "65--69", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Piska:TB23-1-70, + author = "Karel P{\'\i}{\v{s}}ka", + title = "{{A conversion of public Indic fonts from {\MF} into + Type 1 format with \TeX{\smc trace}}}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "70--73", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Popineau:TB23-1-74, + author = "Fabrice Popineau", + title = "{{\TeX{}Live under Windows: What's new with the + \nth{7} edition?}}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "74--79", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Pournader:TB23-1-80, + author = "Roozbeh Pournader", + title = "{Catching up to Unicode}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "80--85", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rahtz:TB23-1-86, + author = "Sebastian Rahtz", + title = "{{Passive\TeX{}: An update}}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "86--89", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Rajkumar:TB23-1-90, + author = "S. Rajkumar", + title = "{Indic typesetting\Dash Challenges and + opportunities}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "90--92", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Roegel:TB23-1-93, + author = "Denis Roegel", + title = "{{{\manual METAOBJ}\/: Very high-level objects in + \MP}}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "93--100", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Shukla:TB23-1-101, + author = "Wagish Shukla and Amitabh Trehan", + title = "{Typesetting in Hindi, Sanskrit and Persian: A + beginner's perspective}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "101--105", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Skoupy:TB23-1-106, + author = "Karel Skoup{\'y}", + title = "{New typesetting language and system architecture}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "106--106", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Skoupy:TB23-1-107, + author = "Karel Skoup{\'y}", + title = "{\TeX\ file server}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "107--107", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Watt:TB23-1-108, + author = "Stephen M. Watt", + title = "{{Conserving implicit mathematical semantics in + conversion between {\TeX} and MathML}}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "108--108", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB23-1-109, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "109--110", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB23-1-110, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "110--110", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB23-1-111, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "111--111", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB23-1-112, + author = "Anonymous", + title = "{{Just Published: {\TeX} Reference Manual by David + Bausum}}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "112--112", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB23-1-cover-3, + author = "Anonymous", + title = "{Blue Sky Research}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "Cover 3", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB23-1-109-2, + author = "Anonymous", + title = "{Calendar}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "109--110", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB23-1-110-2, + author = "Anonymous", + title = "{Institutional members}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "110--110", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB23-1-111-2, + author = "Anonymous", + title = "{{\TeX} consulting and production services}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "111--111", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB23-1-112-2, + author = "Anonymous", + title = "{Just Published: \TeX\ Reference Manual by David + Bausum}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "112--112", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} + +@Article{Anonymous:TB23-1-cover-3-2, + author = "Anonymous", + title = "{Blue Sky Research}", + journal = j-TUGboat, + volume = "23", + number = "1", + pages = "Cover 3", + month = "", + year = "2002", + ISSN = "0896-3207", + bibdate = "Sat Jul 5 17:27:22 MDT 2003", + bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/tugboat.bib; + http://www.math.utah.edu/pub/tex/bib/index-table-t.html#tugboat", + acknowledgement = ack-bnb # " and " # ack-nhfb, +} diff --git a/Master/texmf-dist/bibtex/bib/bibhtml/bibrefs.bib b/Master/texmf-dist/bibtex/bib/bibhtml/bibrefs.bib new file mode 100644 index 00000000000..1b5bbb39edb --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/bibhtml/bibrefs.bib @@ -0,0 +1,64 @@ +% Page seems to have disappeared +@Misc{brown95, + author = "Haines Brown", + title = "Citations of Electronic Documents in an Electronic + Document", + howpublished = "World Wide Web page", + year = 1995, + note = "Once at \url{http://neal.ctstateu.edu/history/cite.html}, now disappeared" +} + +@TechReport{walker95, + author = "Janice R Walker", + title = "{MLA}-Style Citations of Electronic Sources", + institution = "Department of English, University of South Florida", + year = 1995, + number = "4/95", + month = "January", + note = "Endorsed by the {A}lliance for {C}omputers and {W}riting", + url = "http://www.columbia.edu/cu/cup/cgos/idx_basic.html", + lastchecked = {September 2005} +} + +@webpage{emory95, + author = "libsf@web.cc.emory.edu", + title = "Citation Formats", + howpublished = "World Wide Web page", + year = 1995, + url = "http://www.cc.emory.edu/WHSCL/citation.formats.html" +} + +@webpage{apa03, + author = "{American Psychological Society}", + title = "{APA} Style: Electronic References", + year = {2003}, + url = {http://www.apastyle.org/elecref.html}, + lastchecked = {September 2005} +} + +@webpage{weapas, + author = {T Land}, + title = {Web Extension to {American Psychological + Association} Style ({WEAPAS})}, + howpublished = {Web page}, + year = 1998, + url = {http://www.beadsland.com/weapas/}, + lastchecked = {September 2005}, +} + +@webpage{iso690, + key = {ISO 690-2}, + title = {{ISO 690-2}, Bibliographic references to electronic + documents (excerpts)}, + howpublished = {online}, + year = 2002, + url = {http://www.collectionscanada.ca/iso/tc46sc9/standard/690-2e.htm}, + lastchecked = {September 2005} +} + +@unpublished{test, + author = "Experimenter, A. N.", + title = "bibhtml tests -- how do we handle odd (~&) characters?", + url = "http://www.example.org/~tilde/query?arg1=%1e&arg2=one;two&moreargswhichmaketheurlquitelong", + note = "This is a test entry" +} diff --git a/Master/texmf-dist/bibtex/bib/bibtopic/articles.bib b/Master/texmf-dist/bibtex/bib/bibtopic/articles.bib new file mode 100644 index 00000000000..289cc662bf9 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/bibtopic/articles.bib @@ -0,0 +1,48 @@ +%% +%% This is file `articles.bib', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% bibtopic.dtx (with options: `articles.bib') +%% +%% ---------------------------------------- +%% Example BibTeX file for the documentation +%% of the bibtopic package +%% Copyright (C) 1998-2000 P. Basso, S. Ulrich +%% 2001-2004 S. Ulrich +%% +%% (AT sign confuses bibtex, so ...) +%% Please send bug reports to: +%% +%% See bibtopic.ins for the copyright details. +%% +The following entry is an example for what's allowed by +BibTeX syntax (see btxdoc.dvi). + +@incollection +( + RouxSmart:95 + , + author = "M. Roux and J. Smart", + title = "A Model of Medical Knowledge Representation, Application + to the Reports Analysis of Descriptive Pathology", + booktitle = "Methods of Information in Medecine", + note = {\`A para\^{\i}tre}, + publisher = "Schattauer", + address = "Holland", + year = 1995 +) + +@article{Schwind:96, + author = {Camilla B. Schwind}, + title = {Knowledge Based Language Tutoring}, + journal = {Computer Assisted Language Learning}, + publisher = {Svets}, + year = 1996, + note = {\`A para\^{\i}tre} +} + +\endinput +%% +%% End of file `articles.bib'. diff --git a/Master/texmf-dist/bibtex/bib/bibtopic/books.bib b/Master/texmf-dist/bibtex/bib/bibtopic/books.bib new file mode 100644 index 00000000000..d9bb4ad2c76 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/bibtopic/books.bib @@ -0,0 +1,38 @@ +%% +%% This is file `books.bib', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% bibtopic.dtx (with options: `books.bib') +%% +%% ---------------------------------------- +%% Example BibTeX file for the documentation +%% of the bibtopic package +%% Copyright (C) 1998-2000 P. Basso, S. Ulrich +%% 2001-2004 S. Ulrich +%% +%% (AT sign confuses bibtex, so ...) +%% Please send bug reports to: +%% +%% See bibtopic.ins for the copyright details. +%% +@book{ColBenh:93, + editor = "Fr\'ed\'eric Benhamou and Alain Colmerauer" , + title = "Constraint Logic programming, Selected Research", + publisher = "MIT Press", + year = 1993 +} + +@book{Munt:93, + author = {Tra{\"\i}an Muntean}, + title = {Puces tr\`es performantes}, + publisher = {Hatier}, + address = {Paris}, + series = {Terres du futur, Les Editions UNESCO}, + year = 1993, +} + +\endinput +%% +%% End of file `books.bib'. diff --git a/Master/texmf-dist/bibtex/bib/biocon/literature.bib b/Master/texmf-dist/bibtex/bib/biocon/literature.bib new file mode 100644 index 00000000000..3ed48ed7779 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/biocon/literature.bib @@ -0,0 +1,43 @@ +@comment{This file has been generated by Pybliographer} + + +@Misc{Plants, + Author = {{W. Greuter} and {F. R. Barrie} and {H. M. Burdet} and + {W. G. Chaloner} and {V. Demoulin} and {D. L. + Hawksworth} and {P. M. J\o{}rgensen} and {D. H. + Nicolson} and {P. C. Silva} and {P. Trehane} and {J. + McNeill}}, + Title = {International {C}ode of {B}otanical {N}omenclature}, + Note = {\url{http://www.bgbm.fu-berlin.de/iapt/nomenclature/code/tokyo-e/default.htm}}, + year = 1993, + month = aug, +} + +@Book{Goossens1994, + Author = {Goossens, Michel and Samarin, Alexander and + Mittelbach, Frank}, + Title = {The {\LaTeX} comapanion}, + Publisher = {Addison-Wesley}, + year = 1994, +} + +@Manual{Carlisle1999, + Title = {The keyval package}, + Author = {Carlisle, David}, + year = 1999, + month = {16 } # mar, +} + +@Misc{Bacteria, + Author = {{P.H.A. Sneath}}, + Title = {International {C}ode of {N}omenclature of {B}acteria}, + year = 1992, +} + +@Misc{Animals, + Title = {International {C}ode of {Z}oological {N}omenclature}, + Note = {\url{http://www.iczn.org/code.htm}}, + year = 1999, + month = aug, +} + diff --git a/Master/texmf-dist/bibtex/bib/camel/camel.bib b/Master/texmf-dist/bibtex/bib/camel/camel.bib new file mode 100644 index 00000000000..c5321a32863 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/camel/camel.bib @@ -0,0 +1,154 @@ +%% +%% This is file `camel.bib', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% camel.dtx (with options: `bib') +%% +%% This file is part of the Camel package. +%% --------------------------------------- +%% This is a generated file. +%% +%% IMPORTANT NOTICE: +%% +%% You are not allowed to change this file. You may however copy +%% this file to a file with a different name and then change the +%% copy if (a) you do not charge for the modified code, (b) you +%% acknowledge Camel and its author(s) in the new file, if it +%% is distributed to others, and (c) you attach these same +%% conditions to the new file. +%% +%% The above conditions do not apply to the demonstration +%% file test.tex. +%% +%% You are not allowed to distribute this file alone. You are not +%% allowed to take money for the distribution or use of this file +%% (or a changed version) except for a nominal charge for copying +%% etc. +%% +%% You are allowed to distribute this file under the condition that +%% it is distributed with all of its contents, intact. +%% +%% For error reports, or offers to help make Camel a more powerful, +%% friendlier, and better package, please contact me on +%% `fb' at soas.ac.uk +%% +@string{asr..="Am.~Soc.\ Rev."} +@book{bluebook, + title = {A Uniform System of Citation}, + edition = {19th}, + year = 1989 +} +@book{knuth, + title = {The {\TeX} book}, + year = 1990, + author = {D.E. Knuth} +} +@book{leunen, + author = {M.-C. van Leunen}, + title = {A Handbook for Scholars}, + year = 1979 +} +@book{latex-book, + title = {\LaTeX: a document preparation system}, + year = 1994, + author = {Leslie Lamport} +} +@inbook{companion-bibs, + title = {Bibliography Generation}, + chapter = 13, + pages = {371}, + crossref = {latex-companion} +} +@book{latex-companion, + author = {M. Goosens and Frank Mittelbach and A. Samarin}, + title = {The \LaTeX\ Companion}, + booktitle = {The \LaTeX\ Companion}, + year = 1994 +} +@techreport{oren-user, + author = {Oren Patashnik}, + title = {\BibTeX ing}, + year = 1988, + type = {CTAN document} +} +@techreport{oren-hackers, + author = {Oren Patashnik}, + title = {Designing \BibTeX\ Styles}, + type = {CTAN document}, + year = 1988 +} +@book{maki-constitution, + author = {Maki, John McGilvrey}, + title = {Court and Constitution in Japan: Selected Supreme Court Decisions, + 1948-1960}, + publisher = {Washington University Press}, + year = 1964 +} +@booklet{sansom-constitution, + author = {Sansom, {Sir} George Bailey}, + title = {The First Japanese Constitution: A Lecture}, + note = {delivered before the + Asiatic Society of Japan}, + year = 1938 +} +@article{macauley, + author = {Stuart Macauley}, + title = {Non-Contractual Relations +in Business: A Preliminary Study}, + volume = {28}, + journal = asr.., + pages = {55}, + year = {1963} +} +@mastersthesis{homma-derivative, + title = {The Derivative Suit under Japanese Law as a Measure of + Corporate Governance}, + author = {Masahiro Homma}, + institution = {School of Oriental and African Studies}, + type = {LL.M. thesis}, + year = {1994} +} +@case{bradshaw-v-us, + title = {Bradshaw v United States}, + cites = {231 Ct.Cl. 144 (1982) = 683 F.2d 365 (1982)} +} +@incollection{haley-land-lease, + title = {Japan's New Land and House Lease Law}, + author = {John Owen Haley}, + crossref = {policy-failure}, + pages = 149, +} +@book{policy-failure, + title = {Land Issues in Japan: A Policy Failure?}, + booktitle = {Land Issues in Japan: A Policy Failure?}, + year = 1992 +} +@article{appleyard-heed, + author = {Bryan Appleyard}, + title = {Why Major should heed the press}, + pages = 21, + journal = {The Independent}, + year = {7 jul 1995}, + place = {London} +} +@statute{sga, + title = {Sale of Goods Act}, + year = {1979}, + jurisdiction = {england} +} +@case{heap, + title = {Heap v Motorists' Advisory Agency Ltd}, + year = 1923, + journal = {KB}, + number = 1, + pages = 577 +} +@case{halsall-v-brizell, + title = {Halsall v Brizell}, + cites = {[1957] Ch 169 = [1957] 1 All ER 371} +} +\endinput +%% +%% End of file `camel.bib'. diff --git a/Master/texmf-dist/bibtex/bib/computational-complexity/journals.bib b/Master/texmf-dist/bibtex/bib/computational-complexity/journals.bib new file mode 100644 index 00000000000..426e89d9e64 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/computational-complexity/journals.bib @@ -0,0 +1,728 @@ +=========================================================================== +Hier zuerst einige allgemeine Strings: +=========================================================================== + +F{\"{u}}r "urltext"-Felder hier ein paar Strings: + +@String{PS = "PostScript"} + +@String{PSZ = "Gzipped PostScript"} + +@String{PDF = "PDF"} + +@String{UPBONLY = " (accessible only from uni-paderborn)"} + +@String{LOCALONLY = "Available only locally"} + +@String{OLDLITFILE = "file:/ag/aggathen/ag/litfiles/"} +@String{LITFILE = "file:litfiles/"} + +@String{PUBFILE = "http://www-math.upb.de/~aggathen/Publications/"} + +@String{LINKSERVICE = "http://link.springer.de/link/service/"} +@String{LINKOPENURL = "http://www.springerlink.com/openurl.asp?"} + +@String{GDZURLTEXT = "G{\"{o}}ttinger Digitalisierungszentrum"} +@String{GDZURL = "http://www-gdz.sub.uni-goettingen.de/"} + +@String{DOI = "http://dx.doi.org/"} + +@String{LNCSBIB = "http://link.springer.de/link/service/series/0558/bibs/"} + +@String{INPREP = "In preparation"} +@String{SM = "Submitted"} +@String{SMTO = "Submitted to "} +@String{TAIN = "To appear in "} + + +=========================================================================== +Und jetzt Strings f{\"{u}}r Zeitschriften udgl. +=========================================================================== + +@string{ECCC = "Electronic Colloquium on Computational Complexity"} +@string{FIPS = "Federal Information Processings Standards"} +@string{NIST = "National Institute of Standards and Technology"} + + +@string{BSL = "The Bulletin of Symbolic Logic"} +@string{CTM = "Contemporary Mathematics"} +@string{CTC = "Contemporary Cryptology, The Science of Information Integrity"} +@string{EMA = "Encyclopedia of Mathematics and its Applications"} +@string{GMW = "Grundlehren der mathematischen Wissenschaften"} +@string{GTM = "Graduate Texts in Mathematics"} +@string{LMSLN = "London Mathematical Society Lecture Note Series"} +@string{LNCS = "Lecture Notes in Computer Science"} +@string{LNAI = "Lecture Notes in Artificial Intelligence"} +@string{LNIM = "Lecture Notes in Mathematics"} +@string{LNPAM = "Lecture Notes in Pure and Applied Mathematics"} +@string{MCT = "Mathematical Centre Tracts"} +@string{MIA = "Mathematics and Its Applications"} +@string{PSAM = "Proceedings of Symposia in Applied Mathematics"} +@string{SYM = "Symposia Mathematica"} +@string{TMSC = "Texts and Monographs in Symbolic Computation"} +@string{UTM = "Undergraduate Texts in Mathematics"} + + +@string{AAECC3 = "Algebraic Algorithms and Error-Correcting Codes: AAECC-3"} +@string{AAECC5 = "Applied Algebra, Algebraic Algorithms and Error-Correcting Codes: AAECC-5, {\rm Menorca, Spain}"} +@string{AAECC6 = "Algebraic Algorithms and Error-Correcting Codes: AAECC-6, {\rm Rome, Italy, 1988}"} +@string{AAECC8 = "Algebraic Algorithms and Error-Correcting Codes: AAECC-8"} +@string{AAECC9 = "Algebraic Algorithms and Error-Correcting Codes: AAECC-9"} +@string{AAECC10 = "Algebraic Algorithms and Error-Correcting Codes: AAECC-10, {\rm San Juan de Puerto Rico}"} +@string{AAECC11 = "Algebraic Algorithms and Error-Correcting Codes: AAECC-11"} +@string{AAECC12 = "Applied Algebra, Algebraic Algorithms and Error-Correcting Codes: AAECC-12, {\rm Toulouse, France}"} +@string{AAECC13 = "Applied Algebra, Algebraic Algorithms and Error-Correcting Codes: AAECC-13, {\rm Hawaii}"} +@string{AAECC14 = "Applied Algebra, Algebraic Algorithms and Error-Correcting Codes: AAECC-14, {\rm Melbourne, Australia}"} + + +@string{ACO = "Algebraic Coding, First French-Israeli Workshop, {\rm Paris, France, 1993}"} + + +@string{ANTS1 = "Proceedings of the First International ANTS Symposium"} +@string{ANTS2 = "Proceedings of the Second International ANTS Symposium"} +@string{ANTS3 = "Algorithmic Number Theory, Proceedings ANTS-III, {\rm Portland~OR}"} +@string{ANTS4 = "Algorithmic Number Theory, Proceedings ANTS-IV, {\rm Leiden, The Netherlands}"} + +@string{CASC99 = "Proceedings of the Second Workshop on Computer Algebra in Scientific Computing, CASC '99, {\rm M\"unchen, Germany}"} + +@string{CCS93 = "CCS'93: Proceedings of the First ACM Conference on Computer + and Communications Security, November 1993, Fairfax, + Virginia, United States, November 03-05, 1993."} + +@string{CHES99 = "Cryptographic Hardware and Embedded Systems, First International Workshop, CHES'99, {\rm Worcester,~MA}"} +@string{CHES00 = "Cryptographic Hardware and Embedded Systems, Workshop, CHES'00, {\rm Worcester,~MA}"} +@string{CHES01 = "Cryptographic Hardware and Embedded Systems, Workshop, CHES'01, {\rm Paris,~France}"} + +@string{COCOON99 = "5th Annual International Computing and Combinatorics Conference (COCOON '99), {\rm Tokyo, Japan}, July 1999"} +@string{COCOON00 = "6th Annual International Computing and Combinatorics Conference (COCOON 2000), {\rm Sydney, Australia}, July 2000"} +@string{COCOON01 = "7th Annual International Computing and Combinatorics Conference (COCOON 2001), {\rm Guilin, China}, August 2001"} + +@string{CRYPTO83 = "Advances in Cryptology: Proceedings of CRYPTO~'83"} +@string{CRYPTO84 = "Advances in Cryptology: Proceedings of CRYPTO~'84, {\rm Santa Barbara~CA}"} +@string{CRYPTO85 = "Advances in Cryptology: Proceedings of CRYPTO~'85, {\rm Santa Barbara~CA}"} +@string{CRYPTO86 = "Advances in Cryptology: Proceedings of CRYPTO~'86, {\rm Santa Barbara~CA}"} +@string{CRYPTO87 = "Advances in Cryptology: Proceedings of CRYPTO~'87, {\rm Santa Barbara~CA}"} +@string{CRYPTO88 = "Advances in Cryptology: Proceedings of CRYPTO~'88, {\rm Santa Barbara~CA}"} +@string{CRYPTO89 = "Advances in Cryptology: Proceedings of CRYPTO~'89, {\rm Santa Barbara~CA}"} +@string{CRYPTO90 = "Advances in Cryptology: Proceedings of CRYPTO~'90, {\rm Santa Barbara~CA}"} +@string{CRYPTO91 = "Advances in Cryptology: Proceedings of CRYPTO~'91, {\rm Santa Barbara~CA}"} +@string{CRYPTO92 = "Advances in Cryptology: Proceedings of CRYPTO~'92, {\rm Santa Barbara~CA}"} +@string{CRYPTO93 = "Advances in Cryptology: Proceedings of CRYPTO~'93, {\rm Santa Barbara~CA}"} +@string{CRYPTO94 = "Advances in Cryptology: Proceedings of CRYPTO~'94, {\rm Santa Barbara~CA}"} +@string{CRYPTO95 = "Advances in Cryptology: Proceedings of CRYPTO~'95, {\rm Santa Barbara~CA}"} +@string{CRYPTO96 = "Advances in Cryptology: Proceedings of CRYPTO~'96, {\rm Santa Barbara~CA}"} +@string{CRYPTO97 = "Advances in Cryptology: Proceedings of CRYPTO~'97, {\rm Santa Barbara~CA}"} +@string{CRYPTO98 = "Advances in Cryptology: Proceedings of CRYPTO~'98, {\rm Santa Barbara~CA}"} +@string{CRYPTO99 = "Advances in Cryptology: Proceedings of CRYPTO~'99, {\rm Santa Barbara~CA}"} +@string{CRYPTO00 = "Advances in Cryptology: Proceedings of CRYPTO~'00, {\rm Santa Barbara~CA}"} +@string{CRYPTO01 = "Advances in Cryptology: Proceedings of CRYPTO~'01, {\rm Santa Barbara~CA}"} +@string{CRYPTO02 = "Advances in Cryptology: Proceedings of CRYPTO~'02, {\rm Santa Barbara~CA}"} +@String{CRYPTO03 = "Advances in Cryptology: Proceedings of CRYPTO '04: {\rm Santa Barbara, CA}"} +@String{CRYPTO04 = "Advances in Cryptology: Proceedings of CRYPTO '04: {\rm Santa Barbara, CA}"} + + +@string{EUCAL82 = "Proceedings of EUROCAL 1982"} +@string{EUCAL83 = "Proceedings of EUROCAL 1983, {\rm London,~UK}"} +@string{EUCAL85 = "Proceedings of EUROCAL 1985"} + + +@string{EUCRY84 = "Advances in Cryptology: Proceedings of EUROCRYPT 1984, {\rm Paris, France}"} +@string{EUCRY85 = "Advances in Cryptology: Proceedings of EUROCRYPT 1985"} +@string{EUCRY87 = "Advances in Cryptology: Proceedings of EUROCRYPT 1987, {\rm Amsterdam, The Netherlands}"} +@string{EUCRY88 = "Advances in Cryptology: Proceedings of EUROCRYPT 1988"} +@string{EUCRY89 = "Advances in Cryptology: Proceedings of EUROCRYPT 1989, {\rm Houthalen, Belgium}"} +@string{EUCRY90 = "Advances in Cryptology: Proceedings of EUROCRYPT 1990, {\rm Aarhus, Denmark}"} +@string{EUCRY91 = "Advances in Cryptology: Proceedings of EUROCRYPT 1991, {\rm Brighton, UK}"} +@string{EUCRY92 = "Advances in Cryptology: Proceedings of EUROCRYPT 1992, {\rm Balatonf{\"u}red, Hungary}"} +@string{EUCRY93 = "Advances in Cryptology: Proceedings of EUROCRYPT 1993, {\rm Lofthus, Norway}"} +@string{EUCRY94 = "Advances in Cryptology: Proceedings of EUROCRYPT 1994, {\rm Perugia, Italy}"} +@string{EUCRY95 = "Advances in Cryptology: Proceedings of EUROCRYPT 1995, {\rm Saint-Malo, France}"} +@string{EUCRY96 = "Advances in Cryptology: Proceedings of EUROCRYPT 1996, {\rm Saragossa}"} +@string{EUCRY97 = "Advances in Cryptology: Proceedings of EUROCRYPT 1997, {\rm Konstanz, Germany}"} +@string{EUCRY98 = "Advances in Cryptology: Proceedings of EUROCRYPT 1998, {\rm Santa Barbara, CA}"} +@string{EUCRY99 = "Advances in Cryptology: Proceedings of EUROCRYPT 1999, {\rm Prague, Czech Republic}"} +@string{EUCRY00 = "Advances in Cryptology: Proceedings of EUROCRYPT 2000, {\rm Bruges, Belgium}"} +@string{EUCRY01 = "Advances in Cryptology: Proceedings of EUROCRYPT 2001, {\rm Aarhus, Denmark}"} +@string{EUCRY02 = "Advances in Cryptology: Proceedings of EUROCRYPT 2002, {\rm Amsterdam, The Netherlands}"} + + +@string{ASCRY94 = "Advances in Cryptology: Proceedings of ASIACRYPT 1994, {\rm Wollongong, Australia}"} +@string{ASCRY96 = "Advances in Cryptology: Proceedings of ASIACRYPT 1996, {\rm +Kyongju, Korea}"} +@string{ASCRY98 = "Advances in Cryptology: Proceedings of ASIACRYPT 1998, {\rm Beijing, China}"} +@string{ASCRY00 = "Advances in Cryptology: Proceedings of ASIACRYPT 2000, {\rm Kyoto, Japan}"} +@string{ASCRY01 = "Advances in Cryptology: Proceedings of ASIACRYPT 2000, {\rm Gold Coast, Australia}"} +@string{EUSAM79 = "Proceedings of EUROSAM~'79, {\rm Marseille, France}"} +@string{EUSAM84 = "Proceedings of EUROSAM~'84, {\rm Cambridge,~UK}"} + + +@string{FCM97 = "Foundations of Computational Mathematics 1997"} + + +@string{FOCS70 = "Proceedings of the 11th Annual IEEE Symposium on Switching and Automata Theory, {\rm Santa Monica~CA}"} +@string{FOCS71 = "IEEE Conference Record of the 12th Annual Symposium on Switching and Automata Theory, {\em East Lansing~MI}"} +@string{FOCS72 = "Proceedings of the 13th Annual IEEE Symposium on Switching and Automata Theory, {\rm Yorktown Heights~NY}"} +@string{FOCS75 = "Proceedings of the 16th Annual IEEE Symposium on Foundations of Computer Science, {\rm Berkeley~CA}"} +@string{FOCS76 = "Proceedings of the 17th Annual IEEE Symposium on Foundations of Computer Science, {\rm Houston~TX}"} +@string{FOCS77 = "Proceedings of the 18th Annual IEEE Symposium on Foundations of Computer Science, {\rm Providence~RI}"} +@string{FOCS78 = "Proceedings of the 19th Annual IEEE Symposium on Foundations of Computer Science, {\rm Ann Arbor~MI}"} +@string{FOCS79 = "Proceedings of the 20th Annual IEEE Symposium on Foundations of Computer Science, {\rm San Juan~PR}"} +@string{FOCS80 = "Proceedings of the 21st Annual IEEE Symposium on Foundations of Computer Science, {\rm Syracuse~NY}"} +@string{FOCS81 = "Proceedings of the 22nd Annual IEEE Symposium on Foundations of Computer Science, {\rm Nashville~TN}"} +@string{FOCS82 = "Proceedings of the 23rd Annual IEEE Symposium on Foundations of Computer Science, {\rm Chicago~IL}"} +@string{FOCS83 = "Proceedings of the 24th Annual IEEE Symposium on Foundations of Computer Science, {\rm Tucson~AZ}"} +@string{FOCS84 = "Proceedings of the 25th Annual IEEE Symposium on Foundations of Computer Science, {\rm Singer Island~FL}"} +@string{FOCS85 = "Proceedings of the 26th Annual IEEE Symposium on Foundations of Computer Science, {\rm Portland~OR}"} +@string{FOCS86 = "Proceedings of the 27th Annual IEEE Symposium on Foundations of Computer Science, {\rm Toronto, Ontario, Canada}"} +@string{FOCS87 = "Proceedings of the 28th Annual IEEE Symposium on Foundations of Computer Science, {\rm Los Angeles~CA}"} +@string{FOCS88 = "Proceedings of the 29th Annual IEEE Symposium on Foundations of Computer Science, {\rm White Plains~NY}"} +@string{FOCS89 = "Proceedings of the 30th Annual IEEE Symposium on Foundations of Computer Science, {\rm Research Triangle Park~NC}"} +@string{FOCS90 = "Proceedings of the 31st Annual IEEE Symposium on Foundations of Computer Science, {\rm St.~Louis~MO}"} +@string{FOCS91 = "Proceedings of the 32nd Annual IEEE Symposium on Foundations of Computer Science, {\rm San Juan~PR}"} +@string{FOCS92 = "Proceedings of the 33rd Annual IEEE Symposium on Foundations of Computer Science, {\rm Pittsburgh~PA}"} +@string{FOCS93 = "Proceedings of the 34th Annual IEEE Symposium on Foundations of Computer Science, {\rm Palo Alto~CA}"} +@string{FOCS94 = "Proceedings of the 35th Annual IEEE Symposium on Foundations of Computer Science, {\rm Santa Fe~NM}"} +@string{FOCS95 = "Proceedings of the 36th Annual IEEE Symposium on Foundations of Computer Science, {\rm Milwaukee~WI}"} +@string{FOCS96 = "Proceedings of the 37th Annual IEEE Symposium on Foundations of Computer Science, {\rm Burlington~VT}"} +@string{FOCS97 = "Proceedings of the 38th Annual IEEE Symposium on Foundations of Computer Science, {\rm Miami Beach~FL}"} +@string{FOCS98 = "Proceedings of the 39th Annual IEEE Symposium on Foundations of Computer Science, {\rm Palo Alto~CA}"} +@string{FOCS99 = "Proceedings of the 40th Annual IEEE Symposium on Foundations of Computer Science, {\rm New York City~NY}"} +@string{FOCS00 = "Proceedings of the 41st Annual IEEE Symposium on Foundations of Computer Science, {\rm Redondo Beach~CA}"} +@string{FOCS01 = "Proceedings of the 42nd Annual IEEE Symposium on Foundations of Computer Science, {\rm Las Vegas~NV}"} +@string{FOCS02 = "Proceedings of the 43nd Annual IEEE Symposium on Foundations of Computer Science, {\rm Vancouver, Canada}"} + +@string{CCC99 = "Proceedings of the 14th IEEE Conference on Computational Complexity, {\rm Atlanta~GA}"} + +@string{ICCC99 = "Proceedings of the 5th International Computing and Combinatorics Conference, {\rm Tokyo~Japan}"} + +@string{FOCT85 = "Proceedings of the 5th International Conference on Fundamentals of Computation Theory 1985, {\rm Cottbus, Germany}"} +@string{FOCT87 = "Proceedings of the 6th International Conference on Fundamentals of Computation Theory 1987, {\rm Kazan, Russia}"} +@string{FOCT91 = "Proceedings of the 8th International Conference on Fundamentals of Computation Theory 1991, {\rm Gosen, Germany}"} + +@string{FSE97 = "Fast Software Encryption 1997"} + +@string{ICALP81 = "Proceedings of the 8th International Colloquium on Automata, Languages and Programming ICALP 1981, {\rm Acre (`Akko), Israel}"} +@string{ICALP82 = "Proceedings of the 9th International Colloquium on Automata, Languages and Programming ICALP 1982, {\rm Aarhus, Denmark}"} +@string{ICALP83 = "Proceedings of the 10th International Colloquium on Automata, Languages and Programming ICALP 1983, {\rm Barcelona, Spain}"} +@string{ICALP84 = "Proceedings of the 11th International Colloquium on Automata, Languages and Programming ICALP 1984, {\rm Antwerp, Belgium}"} +@string{ICALP85 = "Proceedings of the 12th International Colloquium on Automata, Languages and Programming ICALP 1985, {\rm Nafplion, Greece}"} +@string{ICALP90 = "Proceedings of the 17th International Colloquium on Automata, Languages and Programming ICALP 1990, {\rm Warwick,~UK}"} +@string{ICALP91 = "Proceedings of the 18th International Colloquium on Automata, Languages and Programming ICALP 1991, {\rm Madrid, Spain}"} +@string{ICALP92 = "Proceedings of the 19th International Colloquium on Automata, Languages and Programming ICALP 1992, {\rm Vienna, Austria}"} +@string{ICALP93 = "Proceedings of the 20th International Colloquium on Automata, Languages and Programming ICALP 1993, {\rm Lund, Sweden}"} +@string{ICALP94 = "Proceedings of the 21st International Colloquium on Automata, Languages and Programming ICALP 1994, {\rm Jerusalem, Israel}"} +@string{ICALP95 = "Proceedings of the 22nd International Colloquium on Automata, Languages and Programming ICALP 1995, {\rm Szeged, Hungary}"} +@string{ICALP96 = "Proceedings of the 23rd International Colloquium on Automata, Languages and Programming ICALP 1996, {\rm Paderborn, Germany}"} +@string{ICALP97 = "Proceedings of the 24th International Colloquium on Automata, Languages and Programming ICALP 1997, {\rm Bologna, Italy}"} +@string{ICALP98 = "Proceedings of the 25th International Colloquium on Automata, Languages and Programming ICALP 1998, {\rm Aalborg, Denmark}"} +@string{ICALP99 = "Proceedings of the 26th International Colloquium on Automata, Languages and Programming ICALP 1999, {\rm Prague, Czech Republik}"} +@string{ICALP00 = "Proceedings of the 27th International Colloquium on Automata, Languages and Programming ICALP 2000, {\rm Geneva, Switzerland}"} +@string{ICALP01 = "Proceedings of the 28th International Colloquium on Automata, Languages and Programming ICALP 2001, {\rm Crete, Greece}"} + + +@string{ICFCT = "Proceedings of the International Conference on Foundations of Computation Theory"} + +@string{ICICS97 = "Proceedings of the First International Conference on Information and Communications Security 1997, {\rm Beijing, China}"} +@string{ICICS01 = "Proceedings of the Third International Conference on Information and Communications Security 2001, {\rm Xian, China}"} + + +@string{ICM50 = "Proceedings of the International Congress of Mathematicians 1950"} +@string{ICM70 = "Proceedings of the International Congress of Mathematicians 1970, {\rm Nice, France}"} +@string{ICM74 = "Proceedings of the International Congress of Mathematicians 1974"} +@string{ICM86 = "Proceedings of the International Congress of Mathematicians 1986"} +@string{ICM90 = "Proceedings of the International Congress of Mathematicians 1990, {\rm Kyoto, Japan}"} +@string{ICM95 = "Proceedings of the International Congress of Mathematicians 1995"} + + +@string{ISAAC94 = "Proceedings of 5th International Symposium on Algorithms and Computation ISAAC~'94, {\rm Beijing, China}"} +@string{ISAAC95 = "Proceedings of 6th International Symposium on Algorithms and Computation ISAAC~'95, {\rm Cairns, Australia}"} +@string{ISAAC98 = "Proceedings of 10th International Symposium on Algorithms and Computation ISAAC~'98, {\rm Taejon, Korea}"} +@string{ISAAC99 = "Proceedings of 10th International Symposium on Algorithms and Computation ISAAC~'99, {\rm Chennai, India}"} +@string{ISAAC00 = "Proceedings of 11th International Symposium on Algorithms and Computation ISAAC~2000, {\rm Taipei, Taiwan}"} +@string{ISAAC01 = "Proceedings of 12th International Symposium on Algorithms and Computation ISAAC~2001, {\rm Chirstchurch, New Zealand}"} +@string{ISAAC03 = "Proceedings of 14th International Symposium on Algorithms and Computation ISAAC~2003, {\rm Kyoto, Japan}"} + + +@string{ISSAC71 = "Proceedings 2nd ACM Symposium on Symbolic and Algebraic Manipulation, {\rm Los Angeles~CA}"} + +@string{ISSAC76 = "Proceedings of the 1976 ACM Symposium on Symbolic and Algebraic Computation SYMSAC~'76, {\rm Yorktown Heights~NY}"} +@string{ISSAC81 = "Proceedings of the 1981 International Symposium on Symbolic and Algebraic Computation ISSAC~'81, {\rm Snowbird~UT}"} +@string{ISSAC86 = "Proceedings of the 1986 International Symposium on Symbolic and Algebraic Computation ISSAC~'86, {\rm Waterloo, Canada}"} +@string{ISSAC88 = "Proceedings of the 1988 International Symposium on Symbolic and Algebraic Computation ISSAC~'88, {\rm Rome, Italy}"} +@string{ISSAC89 = "Proceedings of the 1989 International Symposium on Symbolic and Algebraic Computation ISSAC~'89, {\rm Portland~OR}"} +@string{ISSAC90 = "Proceedings of the 1990 International Symposium on Symbolic and Algebraic Computation ISSAC~'90, {\rm Tokyo, Japan}"} +@string{ISSAC91 = "Proceedings of the 1991 International Symposium on Symbolic and Algebraic Computation ISSAC~'91, {\rm Bonn, Germany}"} +@string{ISSAC92 = "Proceedings of the 1992 International Symposium on Symbolic and Algebraic Computation ISSAC~'92, {\rm Berkeley~CA}"} +@string{ISSAC93 = "Proceedings of the 1993 International Symposium on Symbolic and Algebraic Computation ISSAC~'93, {\rm Kiev}"} +@string{ISSAC94 = "Proceedings of the 1994 International Symposium on Symbolic and Algebraic Computation ISSAC~'94, {\rm Oxford,~UK}"} +@string{ISSAC95 = "Proceedings of the 1995 International Symposium on Symbolic and Algebraic Computation ISSAC~'95, {\rm Montreal, Canada}"} +@string{ISSAC96 = "Proceedings of the 1996 International Symposium on Symbolic and Algebraic Computation ISSAC~'96, {\rm Z{\"u}rich, Switzerland}"} +@string{ISSAC97 = "Proceedings of the 1997 International Symposium on Symbolic and Algebraic Computation ISSAC~'97, {\rm Maui~HI}"} +@string{ISSAC98 = "Proceedings of the 1998 International Symposium on Symbolic and Algebraic Computation ISSAC~'98, {\rm Rostock, Germany}"} +@string{ISSAC99 = "Proceedings of the 1999 International Symposium on Symbolic and Algebraic Computation ISSAC~'99, {\rm Vancouver, Canada}"} +@string{ISSAC00 = "Proceedings of the 2000 International Symposium on Symbolic and Algebraic Computation ISSAC2000, {\rm St. Andrews, Scotland}"} +@string{ISSAC01 = "Proceedings of the 2001 International Symposium on Symbolic and Algebraic Computation ISSAC2001, {\rm London, Canada}"} +@string{ISSAC03 = "Proceedings of the 2003 International Symposium on Symbolic and Algebraic Computation ISSAC2003, {\rm Philadelphia, USA}"} + +@string{LATIN92 = "Proceedings of LATIN~'92, {\rm S\~ao Paulo, Brazil}"} +@string{LATIN95 = "Proceedings of LATIN~'95, {\rm Valpara{\'{\i}}so, Chile}"} +@string{LATIN98 = "Proceedings of LATIN~'98, {\rm Campinas, Brazil}"} +@string{LATIN00 = "Proceedings of LATIN~2000, {\rm Punta del Este, Uruguay}"} +@string{LATIN02 = "Proceedings of LATIN~2002, {\rm Cancun, Mexico}"} + +@string{MACSYMA77 = "Proceedings of the 1977 MACSYMA Users Conference, {\rm Berkeley~CA}"} + + +@string{MANITOBA72 = "Proceedings of the Second Manitoba Conference on Numerical Mathematics"} +@string{MANITOBA75 = "Proceedings of the Fifth Manitoba Conference on Numerical Mathematics"} + + +@string{MFOCS84 = "Proceedings of the 11th International Symposium Mathematical Foundations of Computer Science 1984, {\rm Praha, Czechoslovakia}"} +@string{MFOCS86 = "Proceedings of the 12th International Symposium Mathematical Foundations of Computer Science 1986, {\rm Bratislava, Czechosolvakia}"} +@string{MFOCS98 = "Proceedings of the 23rd International Symposium on Mathematical Foundations of Computer Science 1998, {\rm Brno, Czech Republic}"} +@string{MFOCS00 = "Proceedings of the 25th International Symposium on Mathematical Foundations of Computer Science 2001, {\rm Bratislava, Slovakia}"} +@string{MFOCS01 = "Proceedings of the 26th International Symposium on Mathematical Foundations of Computer Science 2001, {\rm Marianske Lazne, Czech Republic}"} + + +@string{PASCO97 = "Parallel Symbolic Computation PASCO~'97, {\rm Maui, Hawaii}"} + + +@string{STOC69 = "Proceedings of the First Annual ACM Symposium on the Theory of Computing, {\rm Marina del Rey~CA}"} +@string{STOC70 = "Proceedings of the Second Annual ACM Symposium on the Theory of Computing, {\rm Northampton~MA}"} +@string{STOC71 = "Proceedings of the Third Annual ACM Symposium on the Theory of Computing, {\rm Shaker Heights~OH}"} +@string{STOC72 = "Proceedings of the Fourth Annual ACM Symposium on the Theory of Computing, {\rm Denver~CO}"} +@string{STOC73 = "Proceedings of the Fifth Annual ACM Symposium on the Theory of Computing, {\rm Austin~TX}"} +@string{STOC74 = "Proceedings of the Sixth Annual ACM Symposium on the Theory of Computing, {\rm Seattle~WA}"} +@string{STOC75 = "Proceedings of the Seventh Annual ACM Symposium on the Theory of Computing, {\rm Albuquerque~NM}"} +@string{STOC76 = "Proceedings of the Eighth Annual ACM Symposium on the Theory of Computing, {\rm Hershey~PA}"} +@string{STOC77 = "Proceedings of the Ninth Annual ACM Symposium on the Theory of Computing, {\rm Boulder~CO}"} +@string{STOC78 = "Proceedings of the Tenth Annual ACM Symposium on the Theory of Computing, {\rm San Diego~CA}"} +@string{STOC79 = "Proceedings of the Eleventh Annual ACM Symposium on the Theory of Computing, {\rm Atlanta~GA}"} +@string{STOC80 = "Proceedings of the Twelfth Annual ACM Symposium on the Theory of Computing, {\rm Los Angeles~CA}"} +@string{STOC81 = "Proceedings of the Thirteenth Annual ACM Symposium on the Theory of Computing, {\rm Milwaukee~WI}"} +@string{STOC82 = "Proceedings of the Fourteenth Annual ACM Symposium on the Theory of Computing, {\rm San Francisco~CA}"} +@string{STOC83 = "Proceedings of the Fifteenth Annual ACM Symposium on the Theory of Computing, {\rm Boston~MA}"} +@string{STOC84 = "Proceedings of the Sixteenth Annual ACM Symposium on the Theory of Computing, {\rm Washington~DC}"} +@string{STOC85 = "Proceedings of the Seventeenth Annual ACM Symposium on the Theory of Computing, {\rm Providence~RI}"} +@string{STOC86 = "Proceedings of the Eighteenth Annual ACM Symposium on the Theory of Computing, {\rm Berkeley~CA}"} +@string{STOC87 = "Proceedings of the Nineteenth Annual ACM Symposium on the Theory of Computing, {\rm New York}"} +@string{STOC88 = "Proceedings of the Twentieth Annual ACM Symposium on the Theory of Computing, {\rm Chicago~IL}"} +@string{STOC89 = "Proceedings of the Twenty-first Annual ACM Symposium on the Theory of Computing, {\rm Seattle~WA}"} +@string{STOC90 = "Proceedings of the Twenty-second Annual ACM Symposium on the Theory of Computing, {\rm Baltimore~MD}"} +@string{STOC91 = "Proceedings of the Twenty-third Annual ACM Symposium on the Theory of Computing, {\rm New Orleans~LA}"} +@string{STOC92 = "Proceedings of the Twenty-fourth Annual ACM Symposium on the Theory of Computing, {\rm Victoria, British Columbia, Canada}"} +@string{STOC93 = "Proceedings of the Twenty-fifth Annual ACM Symposium on the Theory of Computing, {\rm San Diego~CA}"} +@string{STOC94 = "Proceedings of the Twenty-sixth Annual ACM Symposium on the Theory of Computing, {\rm Montr\'{e}al, Qu\'{e}bec, Canada}"} +@string{STOC95 = "Proceedings of the Twenty-seventh Annual ACM Symposium on the Theory of Computing, {\rm Las Vegas~NV}"} +@string{STOC96 = "Proceedings of the Twenty-eighth Annual ACM Symposium on the Theory of Computing, {\rm Philadelphia~PA}"} +@string{STOC97 = "Proceedings of the Twenty-ninth Annual ACM Symposium on the Theory of Computing, {\rm El Paso~TX}"} +@string{STOC98 = "Proceedings of the Thirtieth Annual ACM Symposium on the Theory of Computing, {\rm Dallas~TX}"} +@string{STOC99 = "Proceedings of the Thirty-first Annual ACM Symposium on the Theory of Computing, {\rm Atlanta~GA}"} +@string{STOC00 = "Proceedings of the Thirty-second Annual ACM Symposium on the Theory of Computing, {\rm Portland~OR}"} +@string{STOC01 = "Proceedings of the Thirty-third Annual ACM Symposium on the Theory of Computing, {\rm Hersonissos, Crete, Greece}"} + +@string{NY = "New York"} + + +@string{AMCT = "Mathematisch Centrum, Amsterdam"} +@String{AGJSC = "Arab Gulf Journal of Scientific Research"} +@string{AMS = "American Mathematical Society"} +@string{ACM = "ACM Press"} +@string{ADW = "Akademie der Wissenschaften"} +@string{ADWL-GSK51 = "Akademie der Wissenschaften und der Literatur, Abhandlungen der geistes- und sozialwissenschaftlichen Klasse, Jahrgang 1951"} +@string{AP = "Academic Press"} +@string{APPAMS = "Abstracts of papers presented to the American Mathematical Society"} +@string{AV = "Akademie-Verlag"} +@string{AW = "Addison-Wesley"} +@string{BB = "Birkh{\"{a}}user Verlag"} +@string{BIW = "BI Wissenschaftsverlag"} +@string{CPUC = "Chelsea Publishing Company"} +@string{CRC = "CRC Press"} +@string{CUP = "Cambridge University Press"} +@string{DP = "Dover Publications, Inc."} +@string{ELS = "Elsevier"} %"American Elsevier Publishing Company"?? +@string{FD = "Firmin Didot"} +@string{ELSSP = "Elsevier Science Publishers B.V."} +@string{FRMN = "Freeman"} +@string{FI = "Fundamenta Informaticae"} +@string{FM = "Fundamenta Mathematicae"} +@string{GV = "Gauthier-Villars"} +@string{HBJ = "Harcourt Brace Jovanovich"} +@string{IEEECSP = "IEEE Computer Society Press"} +@string{TAIEE = "Transactions of the American Institute of Electrical Engineers"} +@string{IEEEPR = "IEEE Press"} +@string{JRC = "Johnson Reprint Co"} +@string{JUS = "Julius Springer"} % Verlag von JS +@string{KAP = "Kluwer Academic Publishers"} +@string{KGW = "{K\"onigliche} Gesellschaft der Wissenschaften"} +@string{KGWG = "{K\"onigliche} Gesellschaft der Wissenschaften zu {G\"ottingen}"} +@string{MD = "Marcel Dekker, Inc."} +@string{MH = "McGraw-Hill"} +@string{MIT = "MIT Press"} +@string{MKP = "Morgan Kaufmann Publishers"} +@string{NH = "North-Holland"} +@string{OUP = "Oxford University Press"} +@string{PERG = "Pergamon Press"} +@string{PH = "Prentice-Hall, Inc."} +@string{PLNM = "Plenum Press"} +@string{PUF = "Presses Universitaires de France"} +@string{PUP = "Princeton University Press"} +@string{REI = "Reidel"} +@string{SS = "Simon \& Schuster"} +@string{SV = "Springer-Verlag"} +@string{TV = "B.~G. Teubner"} +@string{UCP = "University of Chicago Press"} +@string{UM = "Utilitas Mathematica"} +@string{VN = "Van Nostrand Reinhold"} +@string{VS = "Friedrich Vieweg \& Sohn"} +@string{WS = "John Wiley \& Sons"} + + +@string{AA = "Acta Arithmetica"} +@string{AAECC = "Applicable Algebra in Engineering, Communication and Computing"} +@string{AAM = "Advances in Applied Mathematics"} +@string{AASF = "Annales Academiae Scientiarum Fennicae"} +@string{AASFI = "Annales de l'Acad{\'e}mie des Sciences de Finlande"} +@string{AASP = "American Antiquarian Society Proceedings, Worcester, Mass."} +@string{ABWG = "Abhandlungen der Braunschweigischen Wissenschaftlichen Gesellschaft"} +@string{AC = "Ars Combinatoria"} +@string{ACB = "Australian Computer Bulletin"} % kommt nicht in der refs.bib vor !!! +@string{ACTAM = "Acta Mathematica"}% ISSN = "0001-5962", +@string{ACTAMS = "Acta Mathematica Sinica"} +@string{ADM = "Annals of Discrete Mathematics"} +@string{AFAS = "Association Fran{\c{c}}aise pour l'Avancement des Sciences; Comptes Rendus"} +@string{AGMNT = "Archiv f{\"u}r Geschichte der Mathematik, der Naturwissenschaften und der Technik"} +@string{AHC = "Annals of the History of Computing"} +@string{AHES = "Archive of the History of Exact Sciences"} +@string{AHR = "The American Historical Review"} +@string{AI = "Acta Informatica"} +@string{AIM = "Advances in Mathematics"} +@string{AIN = "Artificial Intelligence"} +@string{AIPHO = "Annuaire de l'Institut de Philologie et d'Histoires Orientales"} +@string{AJM = "American Journal of Mathematics"} +@string{AK = "Archiv f{\"u}r Kriminologie"} +@string{AKGWG = "Abhandlungen der K{\"o}niglichen Gesellschaft der + Wissenschaften zu G{\"o}ttingen"} +@string{AKK = "Archiv f{\"u}r Kriminalanthropologie und Kriminalistik"} +@string{AL = "American Literature"} +@string{ALG = "Algorithmica"} +@string{AM = "Annals of Mathematics"} +@string{AMII = "Annals of Mathematics, Series II"} +@string{AML = "Applied Mathematics Letters"} +@string{AMM = "The American Mathematical Monthly"}% ISSN = "0002-9890", +@string{AMST = "American Mathematical Society Translations"} +@string{AMST2 = "American Mathematical Society Translations, Series 2"} +@string{ANMS = "Annals of Mathematical Statistics"} +@string{AOAW = "Anzeiger der {\"{O}}sterreichischen Akademie der + Wissenschaften, mathematisch-naturwissenschaftliche Klasse"} +@string{ARAL = "Atti della Reale Accademia dei Lincei"} +@string{ARAM = "Archiv der reinen und angewandten Mathematik"} +@string{ARAST = "Atti della Reale Accademia della Scienze di Torino"} +@string{ARCHM = "Archiv der Mathematik"}% ISSN = "0003-889X", +@string{ARCP = "Annual Reviews of Computational Physics"} +@string{ARCS = "Annual Review of Computer Science"} +@string{ASAE = "Annales du Service des Antiquites de l'Egypte"} +@string{ASAU = "Analele stiintifice ale Universitatii ``Al. I. Cuza'' din Iasi"} +@string{ASB = "ACM SIGSAM Bulletin"} +@string{ASI = "Archivio Storico Italiano"} +@string{ASMS = "Acta Scientarum Mathematicarum Szegediensis"} +@string{ATMS = "ACM Transactions on Mathematical Software"} +@string{AZ = "Archivalische Zeitschrift"} +@string{BAH = "Bolet{\'i}n de la Academ{\'i}a de la Historia, Buenos Aires"} +@string{BAMS = "Bulletin of the American Mathematical Society"} +@string{BAUSMS = "Bulletin of the Australian Mathematical Society"} + +@string{BBSSMF = "Bulletin Biblio. Storia Sci. Mat. Fis."} + +@string{BIMA = "Bulletin of the Institute of Mathematics and its Applications"} +@string{BIT = "BIT"} +@string{BJNT = "Bordeaux Journal of Number Theory"} +@string{BLMS = "Bulletin of the London Mathematical Society"} +@string{BNAMS = "Bulletin (New Series) of the American Mathematical Society"} +@string{BRICS = "Basic Research in Computer Science"} + +@string{BSAF = "Bulletin de la {Soci\'et\'e} des Antiquaires de France, Paris"} +@string{BSE = "Bulletin de la {Soci\'et\'e} d'Encouragement pour L'Industrie Nationale"} +@string{BARB = "Bulletins de l'Acad{\'{e}}mie royale de Belgique, "} +@string{BSL = "Beitr{\"a}ge zur deutschen Sprache und Literatur"} +@string{BSMB = "Bulletin de la {Soci\'et\'e} {Math\'ematique} de Belgique, S{\'e}r.~A"} +@string{BSMBB = "Bulletin de la {Soci\'et\'e} {Math\'ematique} de Belgique, S{\'er}.~B"} +@string{BSMF = "Bulletin des sciences math{\'e}matiques F{\'e}russac"} +@string{BSTJ = "Bell System Technical Journal"} +@string{CA = "Communications in Algebra"} +@string{CACM = "Communications of the ACM"} +@string{CAD = "Computer-Aided Design"} +@string{CAL = "Calcolo"} +@string{CAS = "Computers \&{} Security"} +@string{CASP = "Commentarii academiae scientiarum imperalis Petropolitanae"} +@string{CASPP = "Commentarii Academiae Scientiarum Petropolitanae"} +@string{CC = "computational complexity"} +@String{CG = "Computers \&{} Graphics"} +@string{CHJM = "Chinese Journal of Mathematics"} +@string{CJ = "The Computer Journal"} +@string{CJM = "Canadian Journal of Mathematics"} +@string{CL = "Cryptologia"} +@string{CM = "Colloqium Mathematicum"} +@string{CMA = "Computers and Mathematics with Applications"} +@string{CMB = "Canadian Mathematical Bulletin"} +@string{CMH = "Commentarii Mathematici Helvetici"}% ISSN ="0010-2571" +@string{CN = "Congressus Numerantium"} +@string{COMB = "Combinatorica"} +@string{CPCOMP = "Combinatorics, Probability and Computing"} +@string{COMP = "Computing"} +@string{COS = "Cosmopolitan Magazine, New York"} +@string{CPAM = "Communications on Pure and Applied Mathematics"} +@string{CPMF = "{\v C}asopis pro p{\v e}stov{\'an\'\i} matematiky a fysiky"} +@string{CPC = "Computer Physics Commun."} % kommt nicht in der refs.bib vor !!! +@string{CRAS = "Comptes Rendus des S{\'{e}}ances de l'{Acad\'{e}mie} des Sciences"} +@string{CRASP = "Comptes Rendus de l'Acad{\'{e}}mie des Sciences Paris"} +@string{CRASPI = "Comptes Rendus de l'Acad{\'{e}}mie des Sciences Paris, s{\'{e}}rie I"} +@string{DAM = "Discrete Applied Mathematics"} +@string{DAN = "{\cyr Doklady Akademi\u\i\ Nauk SSSR}"} +@string{DANengl = "Doklady Akademii Nauk SSSR + English translation: Soviet Mathematics, Doklady"} +@string{DCC = "Designs, Codes and Cryptography"} +@String{DCG = "Discrete \&{} Computational Geometry"} +@string{DM = "Discrete Mathematics"} +@string{DIMACS = "DIMACS Series in Discrete Mathematics and Theoretical +Computer Science"} +@string{DMJ = "Duke Mathematical Journal"} +@string{DOM = "Documenta Mathematica"} +@string{DPA = "Deutsches Polizei-Archiv"} +@string{DSW = "Der Stein der Weisen"} +@string{EIK = "Elektronische Informationsverarbeitung und Kybernetik"} +@string{ELEM = "Elemente der Mathematik"}% ISSN = "0013-6018", +@string{ELETT = "Electronics Letters"} +@string{EM = "L'Enseignement Math{\'{e}}matique"} +@string{ET = "Educational Times"} +@string{EXM = "Expositiones Mathematicae"} +@string{FFA = "Finite Fields and Their Applications"} +@string{FQ = "Fibonacci Quarterly"} +@string{GC = "Le G{\`{e}}nie Civil"} +@string{GM = "The Gentleman's Magazine"} +@string{GN = "G{\"{o}}ttinger Nachrichten"}% Achtung, besser NKGWG oder NAWG! +@string{IBMJ = "IBM Journal of Research and Development"} +@string{IBMSJ = "IBM Systems Journal"} +@string{IC = "Information and Computation"} +@string{ICTRL = "Information and Control"} +@string{IEICE-TFE = "IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, Series A (UK)"} +@string{IEEE-AHC = "IEEE Annals of the History of Computing"} +@string{IEEE-EC = "IEEE Transactions on Electronic Computers"} +@string{IEEE-TSE00 = "IEEE Transactions on Software Engineering, 2000"} +@string{IEEE-IT = "IEEE Transactions on Information Theory"} +@string{IEEE-SIT = "IEEE International Symposium on Information Theory"} +@string{IEEE-JSAC = "IEEE Journal on Selected Areas in Communications"} +@string{IEEE-TC = "IEEE Transactions on Computers"} +@string{IEEE-TCS = "IEEE Transactions on Circuits Systems"} +@string{IEEP = "IEE Proceedings---Computers and Digital Techniques"} +@string{IJCM = "International Journal of Computer Mathematics"} +@string{IJMMS = "International Journal of Mathematics and Mathematical Sciences"} +@string{IMRN = "International Mathematics Research Notices"} +@string{IJM = "Illinois Journal of Mathematics"} +@string{INVM = "Inventiones mathematicae"} +@string{IM = "Indagationes Mathematicae"} +@string{IPL = "Information Processing Letters"} +@string{IAN = "{\cyr Izvestiya Akademi\u\i\ Nauk SSSR, Seriya Matematicheskaya}"} +@string{IANE = "{\cyr Izvestiya Akademi\u\i\ Nauk SSSR, Seriya Matematicheskaya} (Izvestiya Akademi\u\i\ Nauk SSSR, Mathematical Series)"} +@string{IR = "International Review, New York"} +@string{JALG = "Journal of Algebra"} % ISSN = "0021-8693", +@string{JA = "Journal of Algorithms"} +@string{JACM = "Journal of the ACM"} +@string{JAMS = "Journal of the American Mathematical Society"} +@string{JAFCM = "Journal of the Association for Computing Machinery"} +@string{JAMSA = "Journal of the Australian Mathematical Society, Ser.~A"} +@string{JAR = "Journal of Automated Reasoning"} +@string{JC = "Journal of Cryptology"} +@string{JCAM = "Journal of Computational and Applied Mathematics"} +@string{JCMPLX = "Journal of Complexity"}% ISSN = "0885-064X", +@string{JCP = "Journal of Computational Physics"} +@string{JCSS = "Journal of Computer and System Sciences"} +@string{JCTA = "Journal of Combinatorial Theory, Series~A"} +@string{JCTB = "Journal of Combinatorial Theory, Series~B"} +@string{JDMV = "Jahresberichte der DMV"} +@string{JEGP = "The Journal of English and Germanic Philology, Urbana, Illinois"} +@string{JEP = "Journal de l'{\'{E}}cole Polytechnique"} +@string{JFI = "Journal of the Franklin Institute"} +@string{JIOS = "Journal of Information and Optimization Sciences"} +@string{JIMS = {Journal of the Indian Mathematical Society}} +@string{JLMS = "Journal of the London Mathematical Society"} +@string{JMPA = "Journal de {Math\'{e}matiques} Pures et {Appliqu\'{e}es}"} +@string{JMPAI = "Journal de {Math\'{e}matiques} Pures et {Appliqu\'{e}es}, I s{\'e}rie"} +@string{JNAIE = "Journal of Nanjing Aeronautical Institute (English edition)"} +@string{JNT = "Journal of Number Theory"} +@string{JPAA = "Journal of Pure and Applied Algebra"} % ISSN = "0022-4049", +@string{JRAM = "Journal f{\"{u}}r die reine und angewandte Mathematik"}% ISSN = "0075-4102", % Crelle! +@string{JRM = "Journal of Recreational Mathematics"} +@string{JRNBS = "Journal of Research of the National Bureau of Standards"} +@string{JS = "The Journal of Supercomputing"} +@string{JSC = "Journal of Symbolic Computation"}% ISSN = "0747-7171", +@string{JSH = "The Journal of Southern History"} +@string{JSL = "Journal of Symbolic Logic"} +@string{JSM = "Journal des Sciences Militaires"} +@string{KL = "Knowledge, London"} +@string{KM = "Kriminalistische Monatshefte"} +@string{KR = "Kriminalistische Rundschau"} +@string{LAA = "Linear Algebra and its Applications"} +@string{LAC = "L'Antiquit{\'e} Classique, Bruxelles"} +@string{LD = "The Literary Digest"} +@string{LICC = "L'Interm{\'{e}}diaire des Chercheurs et Curieux"} +@string{MA = "Mathematische Annalen"}% ISSN = "0025-5831", +@string{MAA = "Mathematical Association of America"} +@String{MAMATH = "manuscripta mathematica"}% ISSN = "0025-2611", +@string{MARS = "M\'{e}moires de l'{Acad\'{e}mie} Royale des Sciences"} +@string{MASB = "{M\'{e}moires} de l'{Acad\'{e}mie} des Sciences de Berlin"} +@string{MASBB = "{M\'{e}moires} de l'{Acad\'{e}mie} des Sciences et Belles-Lettres de Berlin"} +@string{MASBD = "M{\'{e}}moires de l'Acad{\'{e}}mie des Sciences, + Arts et Belles-Lettres de Dijon"} +@string{MATH = "Mathematika"} +@string{MATHSCI = "Mathematical Scientist"} +@string{MC = "Mathematics of Computation"} +@string{MG = "Mathematical Gazette"}% ISSN = "0025-5572", +@string{MI = "The Mathematical Intelligencer"} +@string{MIOG = "Mittheilungen des Instituts f{\"{u}}r Oesterreichische Geschichtsforschung"} +@string{MJOU = "Mathematical Journal of Okayama University"} +@string{MKPAW = "Monatsberichte der {K\"oniglich} Preussischen Akademie der + Wissenschaften, Berlin"} +@string{MM = "Mathematical Magazine"} +@string{MMGH = "Mitt. Math. Ges. Hamburg"} % kommt nicht in der refs.bib vor !!! +@string{MMJ = "Michigan Mathematical Journal"} +@string{MMP = "Monatshefte fuer Mathematik und Physik"} % f{\"u}r (->bie91) +@string{MN = "Mathematical Notes"} +@string{MNACH = "Mathematische Nachrichten"}% ISSN = "0025-584X", +@string{MP = "Mathematical Papers"} +@string{MQET ="Mathematical Questions and Solutions from the + Educational Times"} +@String{MSEM = "Mathematische Semesterberichte"} +@string{MS = "Matematiceskij Sbornik"} +@string{MST = "Mathematical Systems Theory"} +@string{MTAC = "Mathematical Tables and other Aids to Computation"} +@string{MUSSRS = "Mathematics of the USSR Sbornik"} +@string{MV = "{\cyr Matematichki Vesnik} (Matematicki Vesnik)"} +@string{MW = "Milit{\"{a}}r--Wochenblatt"} +@string{MZ = "Mathematische Zeitschrift"}% ISSN = "0025-5874", +@string{NA = "Neues Archiv der Gesellschaft f{\"u}r {\"a}ltere deutsche Geschichtskunde"} +@string{NAM = "Nouvelles Annales de Mathematiques"} +@string{NAMS = "Notices of the American Mathematical Society"} +@string{NAR = "The North American Review"} +@string{NAS = "Proceedings of the National Acadamy of Sciences of the USA"} +@string{NAVW = "Nieuw Archief voor Wiskunde"} +@string{NAASP = "Nova Acta Academiae Scientiarum Imperalis Petropolitanae"} +@string{NCASP = "Novi commentarii academiae scientiarum imperalis + Petropolitanae"} +@string{NDJFL = "Notre Dame Journal of Formal Logic"} +@string{NEMBN = "Notices et Extraits des Manuscrits de la Biblioth{\`{e}}que + Nationale et Autres Biblioth{\`{e}}ques, Paris"} +@string{NAWG = "Nachrichten der Akademie der Wissenschaften in + G{\"{o}}ttingen"}% = Nachfolge von NKGWG, ISSN 0065-5295 +@string{NKGWG = "Nachrichten von der K{\"{o}}niglichen Gesellschaft der + Wissenschaften zu G{\"{o}}ttingen"} +@string{NM = "Numerische Mathematik"} +@string{NMT = "Nordisk Matemarisk Tidskrift"} +@string{NQ = "Notes and Queries"} +@string{NZMM = "New Zealand Math. Mag."} % kommt nicht in der refs.bib vor !!! +@string{PAMS = "Proceedings of the American Mathematical Society"} +@string{PAAS = "Proceedings of the American Antiquarian Society"} +@string{PC = "Parallel Computing"} +@string{PCPS = "Proceedings of the Cambridge Philosophical Society"} +@string{PAPS = "Proceedings of the American Philosophical Society"} +@string{PCSAL = "Progress in Computer Science and Applied Logic"}% ISSN = "0743-1597", +@string{PDM = "Publications du D{\'e}partement de Math{\'e}matiques. + Facult{\'e} des Sciences de Lyon"} +@string{PEMS = "Proceedings of the Edinburgh Mathematical Society"} +@string{PIT = "Problems of Information Transmission"} +@string{PJM = "Pacific Journal of Mathematics"}% ISSN = "0030-8730", +@string{PJR = "Philips Journal of Research"} +@string{PKNAW = "Proceedings of the Koninklijke Nederlandse Akademie van + Wetenschappen"} +@string{PLMS = "Proceedings of the London Mathematical Society"}% ISSN = "0024-6115", +@string{PLMS2 = "Proceedings of the London Mathematical Society, Second + Series"} +@string{PLMS3 = "Proceedings of the London Mathematical Society, Third + Series"} +@string{PM = "Progress in Mathematics"} +@string{PMAG = "Philosophical Magazine"} +@string{PMD = "Publicationes Mathematicae (Debrecen)"} +@string{PMH = "Periodica Mathematica Hungarica"} +@string{PMIM = "{\cyr Prikladnaya matematika i mekhanika}"} +@string{PMIMeng = "{\cyr Prikladnaya matematika i mekhanika} + (Prikladnaya matematika i mekhanika)"} +@string{PMLA = "Publications of the Modern Language Association"} +@string{PMM = "The Pall Mall Magazine"} +@string{PNAS = "Proceedings of the National Academy of Sciences of the USA"} +@string{PPI = "Problemy Peredachi Informatsii"} +@string{PRSE = "Proceedings of the Royal Society of Edinburgh"} +@string{PRSL = "Proceedings of the Royal Society, London"} +@string{PTRS = "Philosophical Transactions of the Royal Society of London"} +@string{QJM = "Quarterly Journal of Mathematics"} +@string{QJMOX = "Quarterly Journal of Mathematics Oxford"} +@string{QJPAM = "Quarterly Journal of Pure and Applied Mathematics"} +@string{QPPAM = "Queen's Papers in Pure and Applied Mathematics"} +@string{QR = "The Quarterly Review, London"} +@string{RA = "Radio{\'{e}}l{\'{e}}ctricit{\'{e}}"} +@string{RABM = "Revista de archivos, bibliotecas y museos"} +@string{RBAB = "Revue des Biblioth{\`e}ques et Archives de Belgique, Bruxelles"} +@string{RCMP = "Rendiconti del Circolo Matematico di Palermo"} +@string{RD = "The Reader's Digest"} +@string{RDM = "Revue des deux mondes"} +@string{RE = "Revue d'egyptologie"} +@string{RES = "The Review of English Studies"} +@string{RH = "Revue Hebdomadaire"} +@string{RIC = "Revue Internationale de Criminalistique"} +@string{RM = "Rivista Marittima"} +@string{RMC = "Revue Maritime et Coloniale"} +@string{RMS = "Russian Mathematical Surveys"} +@string{RS = "Revue Scientifique, Paris"} +@string{RNAPOLI = "Rendiconto dell' Accademia della Scienze Fisiche e Matematiche, Napoli"} +@string{RQH = "Revue des questions historiques"} +@string{SA = "Scientific American"} +@string{SAS = "Scientific American Supplement"} +@string{SAM = "Studies in Applied Mathematics"} +@string{SBMG = "Sitzungsberichte der Berliner Mathematischen Gesellschaft"} +@string{SCB = "Signal Corps Bulletin"} +@string{SCIM = "Scientific Monthly"} +@string{SCJ = "Systems and Computers in Japan"} +@string{SCP = "Science of Computer Programming"} +@string{SHM = "Shadow Magazine"} +@string{SIAMJADM = "SIAM Journal on Algebraic and Discrete Methods"} +@string{SIAMJAM = "SIAM Journal on Applied Mathematics"} +@string{SIAMJC = "SIAM Journal on Computing"} +@string{SIAMJDM = "SIAM Journal on Discrete Mathematics"} +@string{SIAMJNA = "SIAM Journal on Numerical Analysis"} +@string{SIAMR = "SIAM Review"} +@string{SIGACT = "SIGACT News"} +@string{SM = "Scripta Mathematica"} +@string{SMD = "Soviet Mathematics, Doklady"} +@string{SOE = "Sphinx-Oedipe"} +@string{SPD = "Soviet Physics - Doklady"} +@string{STT = "Suomalaisen Tiedeakatemian Toimituksia"} +@string{SW = "Spektrum der Wissenschaft"} +@string{TAMS = "Transactions of the American Mathematical Society"} +@string{TSBA="Transactions of the Society of Biblical Arch{\ae}ology"} +@string{TCS = "Theoretical Computer Science"} +@string{TJM = "Tokyo Journal of Mathematics"} +@string{TLS = "The Times Literary Supplement"} +@string{TOPLAS = "ACM Transactions on Programming Languages and Systems"} +@string{UMN = "{\cyr Uspekhi Matematicheskikh Nauk}"} +@string{UMNengl = "{\cyr Uspekhi Matematicheski Nauk} (Uspekhi Matematicheski Nauk)"} +English translation: Russian Mathematical Surveys +@string{VKCSN = "V{\v e}stn{\'i}k Kr{\'a}lovsk{\'e} {\v C}esk{\'e} + Spole{\v c}nosti Nauk, T{\v r}{\'i}da + Matematiko-P{\v r}irodov{\v e}deck{\' a}"} +@string{WW = "The World's Work"} +@string{ZDA = "Zeitschrift f{\"u}r deutsches Altertum und deutsche Litteratur"} +@string{ZMP = "Zeitschrift fuer Mathematik und Physik"} + +@string{RANMZ = "Rossi{\u{\i}}skaya Akademiya Nauk. Matematicheskie Zametki"} +@string{RANMZCYR = "{\cyr Rossi{\u{\i}}skaya Akademiya Nauk. Matematicheskie Zametki}"} +@string{ZVMIMF = "Zhurnal v{\={y}}chislitel'noi Matematiki i matematicheskoi Fiziki"} +@string{ZVMIMFCYR = "{\cyr Zhurnal vychislitel\cprime no\u\i\ Matematiki i matematichesko\u\i\ Fiziki}"} + +@string{JASIA = "Journal Asiatique"} +@string{NORSKE = "Det Kongelige Norske Videnskabers Selskab Forhandlinger"} +@string{VSFC = "Videnskabers Selskab Forhandlinger Christiana"} +@string{BEATCS = "Bulletin of the European Association for Theoretical Computer Science"} + +@string{VJS = "Virginia Journal of Science"} +@string{ZEIE = "Zeitschrift f{\"u}r elektrische Informations- und Energietechnik, Leipzig"} + +@String{DMTCS = "Discrete Mathematics and Theoretical Computer Science"} diff --git a/Master/texmf-dist/bibtex/bib/directory/business.bib b/Master/texmf-dist/bibtex/bib/directory/business.bib new file mode 100644 index 00000000000..4291252c8cd --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/directory/business.bib @@ -0,0 +1,32 @@ +## business.bib +## Copyright 1999 Christophe Geuzaine +# +# This program 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 (at your option) any later version. +# +# 'directory' package: sample bib file +# + +@Company{microknud, + name = "Microknud Corp.", + phone = "+01-(0)2-465.83.99", + fax = "005.79.00", + address = "Haight Street 513\dirbreak + 80214 Novosibirsk, Gnuland", + url = "http://microknu.com/ass/bill.html", +} + +@Company{knudsoft, + name = "The Knudsoft Company", + email = "knud@knudsoft.com", + url = "http://knudsoft.com/hole/gates.htm", +} + +@Place{knudsoft:rs.2, + name = "Knudsoft (RS.2 Computer Room)", + phone = "+01-(0)2-434.23.23", +} + + diff --git a/Master/texmf-dist/bibtex/bib/directory/family.bib b/Master/texmf-dist/bibtex/bib/directory/family.bib new file mode 100644 index 00000000000..1d4f85fa71f --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/directory/family.bib @@ -0,0 +1,70 @@ +## family.bib +## Copyright 1999-2000 Christophe Geuzaine +# +# Last Mod by Christophe on Sun Aug 27 21:22:09 2000 +# +# This program 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 (at your option) any later version. +# +# 'directory' package: sample bib file +# +# important notes: +# * 'birthday' field format: "day month" +# * For married couples, be aware that an entry of the form 'Hillary and +# Bill Clinton' will produce silly alphabetical sorting, since BibTeX +# thinks Hillary is a last name. A better (but not perfect, and a little +# bit macho) way to proceed is to introduce 'Bill Clinton and Hillary'. +# The best way is of course to introduce 'Bill Clinton and Hillary Rodham'. +# (An even better way is to introduce 'Clinton, William Jefferson +# Blythe III and Rodham, Hillary' and put 'Bill' in the nickname field.) + +@Person{c.geuzaine, + name = "Christophe Geuzaine", + birthday = "06 02", + birthyear = "1973", + p.email = "Christophe.Geuzaine@advalvas.be", + w.title = "Ir., Research Assistant", + w.name = "University of Li{\`e}ge, + Dept. of Electrical Engineering", + w.address = "Institut Montefiore (B28, P32, I21),\\ + Sart Tilman Campus, B-4000 Li{\`e}ge, Belgium", + w.phone = "+32-(0)4-366.37.10", + w.fax = "+32-(0)4-366.29.10", + w.email = "Christophe.Geuzaine@ulg.ac.be", + w.url = "http://www.geuz.org/", +} + +@Person{d.e.knu, + name = "Knudson, Donald Ernest", + birthday = "29 01", + p.phone = "+01-(0)2-234.56.78", + p.email = "duck@novosi.uni.gnu", + note = "1952 Permafrost Press Award winner", +} + +@Person{d.d.knu, + name = "Knudson, Daffy Duck and Bunny, Bugs and Pluto", + nickname = "gnat and gnu and pluto", + birthday = "10 02 and 05 11 and 01 01", + p.address = "Haight Street 512, 80214 Novosibirsk, Gnuland", + p.phone = "+01-(0)2-765.43.21", + p.cellular = "+01-(0)5-555.55.55", + p.account = "010-1234567-05", + r.address = "Manor Lane 2, 80214 Novosibirsk, Gnuland", + r.phone = "+01-(0)2-876.54.32", + w.name = "University of Novosibirsk, + Department of Octopus Parthenogenesis", + w.address = "Planck Institut (V1-V2, Park. U-67), + Hessenberg Road, 80214 Novosibirsk, Gnuland", +} + +@Person{b.b.knu, + name = "Bip B. Knudson", + nickname = "road runner", + birthday = "27 02", + p.email = "bip_bip@free.prov.gnu", +} + + diff --git a/Master/texmf-dist/bibtex/bib/directory/test.bib b/Master/texmf-dist/bibtex/bib/directory/test.bib new file mode 100644 index 00000000000..3302c2352bc --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/directory/test.bib @@ -0,0 +1,30 @@ +@Person {person, + name= "name", + nickname= "nickname", + birthday= "birthday", + birthyear= "birthyear", + p.address= "p.address", + p.phone= "p.phone", + p.cellular= "p.cellular", + p.fax= "p.fax", + p.email= "p.email", + p.url= "p.url", + p.account= "p.account", + r.address= "r.address", + r.phone= "r.phone", + r.cellular= "r.cellular", + r.fax= "r.fax", + r.email= "r.email", + r.url= "r.url", + r.account= "r.account", + w.title= "w.title", + w.name= "w.name", + w.address= "w.address", + w.phone= "w.phone", + w.cellular= "w.cellular", + w.fax= "w.fax", + w.email= "w.email", + w.url= "w.url", + w.account= "w.account", + note= "note", +} \ No newline at end of file diff --git a/Master/texmf-dist/bibtex/bib/dk-bib/litteratur.bib b/Master/texmf-dist/bibtex/bib/dk-bib/litteratur.bib new file mode 100644 index 00000000000..848cf3a6125 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/dk-bib/litteratur.bib @@ -0,0 +1,10 @@ +@Book{Mittelbach:2004, + author = {Frank Mittelbach and Michel Goosens}, + title = {The {\LaTeX} Companion}, + publisher = {Addison-Wesley}, + year = 2004, + edition = {second}, + printing = {first}, + isbn = {0-201-36299-6}, + url = {http://www.awprofessional.com/titles/0201362996} +} diff --git a/Master/texmf-dist/bibtex/bib/dtk/beispiel.bib b/Master/texmf-dist/bibtex/bib/dtk/beispiel.bib new file mode 100644 index 00000000000..f5eb82fae21 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/dtk/beispiel.bib @@ -0,0 +1,80 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% $Id: beispiel.bib,v 1.1 2000/08/06 11:18:33 gene Exp $ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +@Book{ companion, + author = {Michel Goosens and Frank Mittelbach and Alexander + Samarin}, + title = {The {\LaTeX} Companion}, + publisher = {Addison-Wesley Publishing Company}, + year = {1994}, + address = {Reading, Mass.} +} + +@Book{ knuth:mfbook, + author = {Donald E. Knuth}, + title = {The {\MF book}}, + publisher = {Addison-Wesley Publishing Company}, + year = 1990, + address = {Reading, Mass.}, + edition = 5, + volume = {C}, + series = {Computers and Typesetting} +} + +@Book{ knuth:texbook, + author = {Donald E. Knuth}, + title = {The {\TeX book}}, + publisher = {Addison-Wesley Publishing Company}, + address = {Reading, Mass.}, + year = 1989, + edition = {15}, + volume = {A}, + series = {Computers and Typesetting} +} + +@Book{ kopka:latex, + author = {Helmut Kopka}, + title = {{\LaTeX} -- Eine Einf{\"u}hrung}, + publisher = {Addison-Wesley Publishing Company}, + address = {Bonn}, + year = 1993 +} + +@Book{ kopka:latex2, + author = {Helmut Kopka}, + title = {{\LaTeX}-Erg{\"a}nzungen -- mit einer Einf{\"u}hrung in + {\MF}}, + publisher = {Addison-Wesley Publishing Company}, + address = {Bonn}, + year = 1995 +} + +@Book{ lamport:latex.2, + author = {Leslie Lamport}, + title = {{\LaTeX}: A Document Preparation System}, + publisher = {Addison-Wesley Publishing Company}, + year = {1994}, + address = {Reading, Mass.}, + edition = {2} +} + +@Article{ neugebauer:klasse, + author = {Gerd Neugebauer}, + title = {Eine Klasse f{\"u}r {\glqq}Die {\TeX}nische + Kom{\"o}die{\grqq}}, + journal = dtk, + year = 1995, + volume = {3/95}, + pages = {6-14} +} + +@Misc{ twg:tds, + author = {TUG Working Group on a \TeX{} Directory Structure}, + title = {A Directory Structure for {\TeX} Files}, + howpublished = {Draft version 0.9991}, + year = 1996, + month = nov, + note = {CTAN: + \texttt{tex-archive/""tds/""working-paper/""tds-0.9991.tar.gz}} +} diff --git a/Master/texmf-dist/bibtex/bib/dtk/dtk.bib b/Master/texmf-dist/bibtex/bib/dtk/dtk.bib new file mode 100644 index 00000000000..08a241aee5a --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/dtk/dtk.bib @@ -0,0 +1,11386 @@ +%% -*-bibtex-*- +%%% ==================================================================== +%%% BibTeX-file{ +%%% author = "Gerd Neugebauer; Jan Braun; Andreas Schlechte", +%%% version = "1.9", +%%% date = "Sun Dec 8 2002", +%%% filename = "dtk.bib", +%%% email = "DTK Redaktion ", +%%% checksum = "", +%%% codetable = "ISO/ASCII", +%%% keywords = "Die TeXnische Komoedie", +%%% docstring = "This bibliography covers the contents of +%%% ``Die \TeX nische Kom\"odie'', the +%%% Communications of the German speaking TeX +%%% users group ``DANTE e.V.''. +%%% +%%% This \BibTeX\ file uses some advanced +%%% features. Those features are provided by +%%% \texttt{german.sty} (maybe +%%% \texttt{babel.sty} suffices. In additions +%%% Logos are taken from \textt{dtk.cls}. An +%%% excerpt is enclosed as \texttt{dtk-logo.sty}. +%%% +%%% This \BibTeX\ file is also the base for the +%%% Web pages at +%%% \url{http://www.dante.de/dante/DTK}. +%%% " +%%% } +%%% ==================================================================== +@STRING{beiprogramm = {{\TeX}-Beiprogramm} } +@STRING{bretter = {Bretter, die die Welt bedeuten} } +@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} } +@STRING{editorial = {Editorial} } +@STRING{fremdebuehne = {Von fremden B{\"u}hnen} } +@STRING{fundus = {Aus dem Fundus} } +@STRING{hinterbuehne = {Hinter der B{\"u}hne} } +@STRING{leserbrief = {Leserbrief(e)} } +@STRING{magazin = {Magazin} } +@STRING{rezension = {Rezensionen} } +@STRING{schonimmer = {Was Sie schon immer {\"u}ber {\TeX} wissen wollten + \dots} } +@STRING{theaterkasse = {Von der Theaterkasse} } +@STRING{theatertage = {{\TeX}-Theatertage} } + +@Article{ dtk89.0:kruljac.burr:editorial, + author = {Gabriele Kruljac and Barbara Burr}, + title = {Editorial}, + journal = dtk, + year = 1989, + volume = {0/89}, + altvolume = 1, + altnumber = 1, + month = dec, + pages = {3--4}, + annote = editorial, + keywords = {} +} + +@Article{ dtk89.0:neubauer:protokoll, + author = {Marion Neubauer}, + title = {Protokoll der {G}r{\"u}ndungsversammlung von {DANTE} + {D}eutschsprachige {A}nwendervereinigung {\TeX}}, + journal = dtk, + year = 1989, + volume = {0/89}, + altvolume = 1, + altnumber = 1, + month = dec, + pages = {5--7}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk89.0:dietsche:protokoll, + author = {Luzia Dietsche}, + title = {Protokoll der 1.~ordentlichen {M}itgliederversammlung von + {DANTE}, {D}eutschsprachige {A}nwendervereinigung {\TeX} + e.{V}}, + journal = dtk, + year = 1989, + volume = {0/89}, + altvolume = 1, + altnumber = 1, + month = dec, + pages = {8--11}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk89.0:lammarsch:bericht, + author = {Joachim Lammarsch}, + title = {Bericht eines {USA}-{R}eisenden}, + journal = dtk, + year = 1989, + volume = {0/89}, + altvolume = 1, + altnumber = 1, + month = dec, + pages = {12--15}, + annote = rezension, + keywords = {Rezension} +} + +@Article{ dtk89.0:burr.kruljac:europaeische, + author = {Barbara Burr and Gabriele Kruljac}, + title = {4.~{E}urop{\"a}ische {\TeX}-{K}onferenz in {K}arlsruhe, + 11.--13.~{S}eptember 1989}, + journal = dtk, + year = 1989, + volume = {0/89}, + altvolume = 1, + altnumber = 1, + month = dec, + pages = {15--17}, + annote = rezension, + keywords = {Rezension} +} + +@Article{ dtk89.0:kruljac.burr:treffen, + author = {Gabriele Kruljac and Barbara Burr}, + title = {8.~{T}reffen der deutschsprachigen {{\TeX}-Anwender} in + {E}ichst{\"a}tt, 12.--13.~{O}ktober 1989}, + journal = dtk, + year = 1989, + volume = {0/89}, + altvolume = 1, + altnumber = 1, + month = dec, + pages = {18--20}, + annote = rezension, + keywords = {Rezension} +} + +@Article{ dtk89.0:dietsche:deutsche, + author = {Luzia Dietsche}, + title = {Deutsche {K}urzfassung von {A}rtikeln aus einem der + n{\"a}chsten {TUGboats}}, + journal = dtk, + year = 1989, + volume = {0/89}, + altvolume = 1, + altnumber = 1, + month = dec, + pages = {21--24}, + annote = fremdebuehne, + keywords = {} +} + +@Article{ dtk89.0:lammarsch:tex, + author = {Joachim Lammarsch}, + title = {{\TeX} f{\"u}r {IBM-PC} und {K}ompatible}, + journal = dtk, + year = 1989, + volume = {0/89}, + altvolume = 1, + altnumber = 1, + month = dec, + pages = 25, + annote = bretter, + keywords = {} +} + +@Article{ dtk89.0:lammarsch:software, + author = {Joachim Lammarsch}, + title = {Software vom {S}erver auf {D}iskette}, + journal = dtk, + year = 1989, + volume = {0/89}, + altvolume = 1, + altnumber = 1, + month = dec, + pages = 26, + annote = bretter, + keywords = {} +} + +@Article{ dtk89.0:neuwirth:metaplot, + author = {Konrad Neuwirth}, + title = {Meta{P}lot: und es geht doch!}, + journal = dtk, + year = 1989, + volume = {0/89}, + altvolume = 1, + altnumber = 1, + month = dec, + pages = 27, + annote = bretter, + keywords = {} +} + +@Article{ dtk89.0:detig:digital, + author = {Christine Detig}, + title = {Digital {T}ypography -- {A}n {I}ntroduction to {T}ype and + {C}omposition for {C}omputer {S}ystem {D}esign}, + journal = dtk, + year = 1989, + volume = {0/89}, + altvolume = 1, + altnumber = 1, + month = dec, + pages = {29--30}, + annote = magazin, + keywords = {Typographie, Rezension} +} + +@Article{ dtk89.0:jones:underfull, + author = {Frankeye Jones}, + title = {The {U}nderfull {B}adness {B}lues}, + journal = dtk, + year = 1989, + volume = {0/89}, + altvolume = 1, + altnumber = 1, + month = dec, + pages = 31, + annote = magazin, + keywords = {Humor, Satire} +} + +@Article{ dtk89.0:alighieri:goettliche, + author = {Dante Alighieri}, + title = {Die g{\"o}ttliche {K}om{\"o}die}, + journal = dtk, + year = 1989, + volume = {0/89}, + altvolume = 1, + altnumber = 1, + month = dec, + pages = 32, + annote = magazin, + keywords = {} +} + +@Article{ dtk90.1:kruljac.burr:editorial, + author = {Gabriele Kruljac and Barbara Burr}, + title = {Editorial}, + journal = dtk, + year = 1990, + volume = {1/90}, + altvolume = 2, + altnumber = 1, + month = mar, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk90.1:dietsche:protokoll, + author = {Luzia Dietsche}, + title = {Protokoll der 2.~{M}itgliederversammlung von {DANTE}, + {D}eutschsprachige {A}nwendervereinigung {\TeX} e.{V}.}, + journal = dtk, + year = 1990, + volume = {1/90}, + altvolume = 2, + altnumber = 1, + month = mar, + pages = {4--11}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk90.1:dietsche:deutsche, + author = {Luzia Dietsche}, + title = {Deutsche {K}urzfassungen: {TUG}boat-{A}rtikel {V}ol. 11, + {N}o. 1}, + journal = dtk, + year = 1990, + volume = {1/90}, + altvolume = 2, + altnumber = 1, + month = mar, + pages = {12--15}, + annote = fremdebuehne, + keywords = {} +} + +@Article{ dtk90.1:knuth:new, + author = {Donald E. Knuth}, + title = {The New Versions of {\TeX} and {\MF}}, + journal = dtk, + year = 1990, + volume = {1/90}, + altvolume = 2, + altnumber = 1, + month = mar, + pages = {16--22}, + annote = bretter, + keywords = {Knuth, \TeX-Entwicklung, Metafont-Entwicklung} +} + +@Article{ dtk90.1:kruljac:bibtex, + author = {Gabriele Kruljac}, + title = {{\BibTeX} und \texttt{MAKEINDEX}}, + journal = dtk, + year = 1990, + volume = {1/90}, + altvolume = 2, + altnumber = 1, + month = mar, + pages = {23--24}, + annote = bretter, + keywords = {\MakeIndex, BibTeX} +} + +@Article{ dtk90.1:birnthaler:setzen, + author = {Thomas Birnthaler}, + title = {Setzen von {R}egeln mit \texttt{regel.sty}}, + journal = dtk, + year = 1990, + volume = {1/90}, + altvolume = 2, + altnumber = 1, + month = mar, + pages = {24--27}, + annote = bretter, + keywords = {Regelsatz,} +} + +@Article{ dtk90.1:birnthaler:bearbeitung, + author = {Thomas Birnthaler}, + title = {Bearbeitung mehrteiliger {\LaTeX}-{D}okumente mit + \texttt{TEXPART.BAT}}, + journal = dtk, + year = 1990, + volume = {1/90}, + altvolume = 2, + altnumber = 1, + month = mar, + pages = {32--34}, + annote = bretter, + keywords = {mehrteilige Dokumente} +} + +@Article{ dtk90.1:birnthaler:struktogramme, + author = {Thomas Birnthaler}, + title = {Struktogramme setzen mit \texttt{strukto.sty}}, + journal = dtk, + year = 1990, + volume = {1/90}, + altvolume = 2, + altnumber = 1, + month = mar, + pages = {27--32}, + annote = bretter, + keywords = {Struktogramme} +} + +@Article{ dtk90.1:huelse.kaspar:expdlist, + author = {Rainer H{\"u}lse and Wolfgang Kaspar}, + title = {\texttt{EXPDLIST} -- eine {E}rweiterung der + \texttt{description}-{U}mgebung}, + journal = dtk, + year = 1990, + volume = {1/90}, + altvolume = 2, + altnumber = 1, + month = mar, + pages = {34--36}, + annote = bretter, + abstract = {Die erweiterte \texttt{description}-Umgebung soll die + {\LaTeX}-\texttt{description}-Umgebung nicht ersetzen, + sondern bietet bei Bedarf einige zus{\"a}tzliche + M{\"o}glichkeiten. Daneben steht mit \verb+\listpart+ ein + neuer, f{\"u}r alle \texttt{list}-Umgebungen g{\"u}ltiger + Befehl zur Verf{\"u}gung.}, + keywords = {Beschreibungen} +} + +@Article{ dtk90.1:lammarsch:xtex, + author = {Joachim Lammarsch}, + title = {{x\TeX}, {y\TeX}, {z\TeX}, \dots {W}ieviele {V}ersionen + wird es noch geben?}, + journal = dtk, + year = 1990, + volume = {1/90}, + altvolume = 2, + altnumber = 1, + month = mar, + pages = {37--39}, + annote = rezension, + keywords = {Rezension, \TeX-Versionen} +} + +@Article{ dtk90.1:mid:publisher, + key = {mid:publisher}, + author = {{MID/Information Logistics Group GmbH}}, + title = {Publisher}, + journal = dtk, + year = 1990, + volume = {1/90}, + altvolume = 2, + altnumber = 1, + month = mar, + pages = {40--41}, + annote = rezension, + keywords = {Rezension} +} + +@Article{ dtk90.1:neuwirth:buchbesprechung, + author = {Konrad Neuwirth}, + title = {Buchbesprechung: {D}esign for {D}esktop {P}ublishing}, + journal = dtk, + year = 1990, + volume = {1/90}, + altvolume = 2, + altnumber = 1, + month = mar, + pages = {42--43}, + annote = magazin, + keywords = {DTP} +} + +@Article{ dtk90.1:rotkaeppchen, + optauthor = {N. N.}, + title = {Rotk{\"a}ppchen, wie der {I}nformatiker es seinen + {K}indern erz{\"a}hlt}, + journal = dtk, + year = 1990, + volume = {1/90}, + altvolume = 2, + altnumber = 1, + month = mar, + pages = {44--45}, + annote = magazin, + keywords = {Humor, Satire} +} + +@Article{ dtk90.1:alighieri:goettliche, + author = {Dante Alighieri}, + title = {Die g{\"o}ttliche {K}om{\"o}die}, + journal = dtk, + year = 1990, + volume = {1/90}, + altvolume = 2, + altnumber = 1, + month = mar, + pages = 46, + annote = magazin, + keywords = {} +} + +@Article{ dtk90.2:burr:editorial, + author = {Barbara Burr}, + title = {Editorial}, + journal = dtk, + year = 1990, + volume = {2/90}, + altvolume = 2, + altnumber = 2, + month = aug, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk90.2:lammarsch:dante, + author = {Joachim Lammarsch}, + title = {Dante {L}etter}, + journal = dtk, + year = 1990, + volume = {2/90}, + altvolume = 2, + altnumber = 2, + month = aug, + pages = {4--6}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk90.2:dietsche:gutenberg90, + author = {Luzia Dietsche}, + title = {{GUT}enberg{'90} (15.5--17.5)}, + journal = dtk, + year = 1990, + volume = {2/90}, + altvolume = 2, + altnumber = 2, + month = aug, + pages = {7--9}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk90.2:dietsche:tug90, + author = {Luzia Dietsche}, + title = {{TUG}90 (17.6--20.6)}, + journal = dtk, + year = 1990, + volume = {2/90}, + altvolume = 2, + altnumber = 2, + month = aug, + pages = {9--10}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk90.2:dietsche:deutsche, + author = {Luzia Dietsche}, + title = {Deutsche {K}urzfassung {TUG}boat-{A}rtikel {V}ol.~11, + {N}o.~2}, + journal = dtk, + year = 1990, + volume = {2/90}, + altvolume = 2, + altnumber = 2, + month = aug, + pages = {11--15}, + annote = fremdebuehne, + keywords = {} +} + +@Article{ dtk90.2:dietsche:deutsche*1, + author = {Luzia Dietsche}, + title = {Deutsche {K}urzfassung {TUG}boat-{A}rtikel {V}ol.~11, + {N}o.~3}, + journal = dtk, + year = 1990, + volume = {2/90}, + altvolume = 2, + altnumber = 2, + month = aug, + pages = {15--20}, + annote = fremdebuehne, + keywords = {} +} + +@Article{ dtk90.2:schrod:komponenten, + author = {Joachim Schrod}, + title = {Die {K}omponenten von {\TeX}}, + journal = dtk, + year = 1990, + volume = {2/90}, + altvolume = 2, + altnumber = 2, + month = aug, + pages = {21--29}, + annote = bretter, + abstract = {{\TeX} ben{\"o}tigt eine gro{\ss}e Anzahl an + Hilfskomponenten (Dateien und Programme), deren Bedeutung + und gegenseitige Beziehung oft nicht bekannt ist. F{\"u}r + das Kernsystem {\TeX} werden die Komponenten und ihre + Beziehungen, die f{\"u}r den {\TeX}-Benutzer sichtbar sind, + erl{\"a}utert.}, + keywords = {\TeX-Komponenten} +} + +@Article{ dtk90.2:schrod:site-koordinator, + author = {Joachim Schrod}, + title = {Site-{K}oordinator f{\"u}r {T}reiber -- {W}as ist das?}, + journal = dtk, + year = 1990, + volume = {2/90}, + altvolume = 2, + altnumber = 2, + month = aug, + pages = {30--32}, + annote = bretter, + keywords = {} +} + +@Article{ dtk90.2:schrod:status, + author = {Joachim Schrod}, + title = {Zum {S}tatus verteilter {S}oftware}, + journal = dtk, + year = 1990, + volume = {2/90}, + altvolume = 2, + altnumber = 2, + month = aug, + pages = {32--34}, + annote = bretter, + keywords = {Shareware, Public Domain, Freeware} +} + +@Article{ dtk90.2:burr:schwierigkeiten, + author = {Barbara Burr}, + title = {Schwierigkeiten beim {S}etzen einer {T}abelle}, + journal = dtk, + year = 1990, + volume = {2/90}, + altvolume = 2, + altnumber = 2, + month = aug, + pages = {35--37}, + annote = schonimmer, + keywords = {Tabellensatz} +} + +@Article{ dtk90.2:detig:deutsche, + author = {Christine Detig}, + title = {Deutsche {\TeX}-{B}{\"u}cher}, + journal = dtk, + year = 1990, + volume = {2/90}, + altvolume = 2, + altnumber = 2, + month = aug, + pages = {38--40}, + annote = magazin, + keywords = {} +} + +@Article{ dtk90.2:alighieri:goettliche, + author = {Dante Alighieri}, + title = {Die g{\"o}ttliche {K}om{\"o}die}, + journal = dtk, + year = 1990, + volume = {2/90}, + altvolume = 2, + altnumber = 2, + month = aug, + pages = 41, + annote = magazin, + keywords = {} +} + +@Article{ dtk90.3:burr:editorial, + author = {Barbara Burr}, + title = {Editorial}, + journal = dtk, + year = 1990, + volume = {3/90}, + altvolume = 2, + altnumber = 3, + month = nov, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk90.3:dietsche:protokoll, + author = {Luzia Dietsche}, + title = {Protokoll der 3.~{M}itgliederversammlung von {DANTE}, + {D}eutschsprachige {A}nwendervereinigung {\TeX} e.{V}.}, + journal = dtk, + year = 1990, + volume = {3/90}, + altvolume = 2, + altnumber = 3, + month = nov, + pages = {4--7}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk90.3:sowa:kassenbericht, + author = {Friedhelm Sowa}, + title = {Kassenbericht f{\"u}r den {Z}eitraum 9.10.1989--4.9.1990}, + journal = dtk, + year = 1990, + volume = {3/90}, + altvolume = 2, + altnumber = 3, + month = nov, + pages = 8, + annote = hinterbuehne, + keywords = {Kasenbericht} +} + +@Article{ dtk90.3:schmidt:tagungsbericht, + author = {Jens Schmidt}, + title = {Tagungsbericht von der {\TeX}90 in {C}ork}, + journal = dtk, + year = 1990, + volume = {3/90}, + altvolume = 2, + altnumber = 3, + month = nov, + pages = {9--11}, + annote = theatertage, + keywords = {Tagungsbericht, Cork} +} + +@Article{ dtk90.3:zierke:tagungsbericht, + author = {Reinhard Zierke}, + title = {Tagungsbericht vom 9.~{T}reffen der deutschen + {\TeX}-{I}nteressenten in {G}{\"o}ttingen}, + journal = dtk, + year = 1990, + volume = {3/90}, + altvolume = 2, + altnumber = 3, + month = nov, + pages = {11--16}, + annote = theatertage, + keywords = {Tagungsbericht} +} + +@Article{ dtk90.3:dafferner:epson-kompatibilitaet, + author = {Andreas Dafferner}, + title = {Epson-{K}ompatibilit{\"a}t $\neq$ + {E}pson-{K}ompatibilit{\"a}t}, + journal = dtk, + year = 1990, + volume = {3/90}, + altvolume = 2, + altnumber = 3, + month = nov, + pages = {17--18}, + annote = bretter, + keywords = {} +} + +@Article{ dtk90.3:tolksdorf:deutschsprachige, + author = {Robert Tolksdorf}, + title = {Deutschsprachige {V}ersion des + {\BibTeX}-\texttt{alpha}-{S}tils}, + journal = dtk, + year = 1990, + volume = {3/90}, + altvolume = 2, + altnumber = 3, + month = nov, + pages = 28, + annote = bretter, + keywords = {BibTeX, Literaturverzeichnis} +} + +@Article{ dtk90.3:donath:dokumentation, + author = {Dirk Donath}, + title = {Dokumentation von {HPTOMF}}, + journal = dtk, + year = 1990, + volume = {3/90}, + altvolume = 2, + altnumber = 3, + month = nov, + pages = {19--22}, + annote = bretter, + keywords = {HPTOMF} +} + +@Article{ dtk90.3:partl:notizen, + author = {Hubert Partl}, + title = {Notizen zu {L}ayout und {\LaTeX}}, + journal = dtk, + year = 1990, + volume = {3/90}, + altvolume = 2, + altnumber = 3, + month = nov, + pages = {22--26}, + annote = bretter, + keywords = {} +} + +@Article{ dtk90.3:tolksdorf:kennzeichnung, + author = {Robert Tolksdorf}, + title = {Kennzeichnung von {V}orversionen eines {D}okumentes}, + journal = dtk, + year = 1990, + volume = {3/90}, + altvolume = 2, + altnumber = 3, + month = nov, + pages = {26--29}, + annote = bretter, + abstract = {Durch eine kleine Modifikation der Output-Routine von + {\LaTeX} werden Vorversionen eines Dokumentes durch eine + zus{\"a}tzliche Zeile am Seitenende als solche + gekennzeichnet. Die Modifikation wird als Style-Option + implementiert.}, + keywords = {} +} + +@Article{ dtk90.3:pirnay:hilfsprogramme, + author = {Jens Pirnay}, + title = {Hilfsprogramme f{\"u}r {\TeX}}, + journal = dtk, + year = 1990, + volume = {3/90}, + altvolume = 2, + altnumber = 3, + month = nov, + pages = {30--33}, + annote = bretter, + keywords = {} +} + +@Article{ dtk90.4:burr:editorial, + author = {Barbara Burr}, + title = {Editorial}, + journal = dtk, + year = 1990, + volume = {4/90}, + altvolume = 2, + altnumber = 4, + month = dec, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk90.4:lammarsch:jahresrueckblick, + author = {Joachim Lammarsch}, + title = {Jahresr{\"u}ckblick}, + journal = dtk, + year = 1990, + volume = {4/90}, + altvolume = 2, + altnumber = 4, + month = dec, + pages = {4--7}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk90.4:dietsche:deutsche, + author = {Luzia Dietsche}, + title = {Deutsche {K}urzfassungen: {TUG}boat-{A}rtikel {V}ol.~11, + {N}o.~5}, + journal = dtk, + year = 1990, + volume = {4/90}, + altvolume = 2, + altnumber = 4, + month = dec, + pages = {9--13}, + annote = fremdebuehne, + keywords = {} +} + +@Article{ dtk90.4:dafferner:nachtrag, + author = {Andreas Dafferner}, + title = {Nachtrag zum {A}rtikel: \emph{{E}pson-{K}ompatibilit{\"a}t + $\neq$ {E}pson-{K}ompatibilit{\"a}t}}, + journal = dtk, + year = 1990, + volume = {4/90}, + altvolume = 2, + altnumber = 4, + month = dec, + pages = 14, + annote = bretter, + keywords = {} +} + +@Article{ dtk90.4:schrod:bemerkungen, + author = {Joachim Schrod}, + title = {Bemerkungen zur deutschsprachigen {V}ersion des + {\BibTeX}-\texttt{alpha}-{S}tiles}, + journal = dtk, + year = 1990, + volume = {4/90}, + altvolume = 2, + altnumber = 4, + month = dec, + pages = {14--16}, + annote = bretter, + keywords = {BibTeX} +} + +@Article{ dtk90.4:zierke:vereinfachter, + author = {Reinhard Zierke}, + title = {Vereinfachter {\TeX}-{A}ufruf unter {U}nix}, + journal = dtk, + year = 1990, + volume = {4/90}, + altvolume = 2, + altnumber = 4, + month = dec, + pages = {17--22}, + annote = bretter, + keywords = {Unix, \TeX-Aufruf} +} + +@Article{ dtk90.4:pirnay:ueberblick, + author = {Jens Pirnay}, + title = {{{\"U}}berblick {\"u}ber die {M}{\"o}glichkeiten von + {\TeX}draw f{\"u}r den {A}tari}, + journal = dtk, + year = 1990, + volume = {4/90}, + altvolume = 2, + altnumber = 4, + month = dec, + pages = {22--23}, + annote = bretter, + keywords = {\TeX{}draw, Atari} +} + +@Article{ dtk90.4:knuth:future, + author = {Donald E. Knuth}, + title = {The Future of {\TeX} and {\MF}}, + journal = dtk, + year = 1990, + volume = {4/90}, + altvolume = 2, + altnumber = 4, + month = dec, + pages = {23--25}, + annote = bretter, + keywords = {Knuth, Metafont-Entwicklung, \TeX-Entwicklung} +} + +@Article{ dtk90.4:thull:gebrauch, + author = {Klaus Thull}, + title = {Der {G}ebrauch von {\MF}}, + journal = dtk, + year = 1990, + volume = {4/90}, + altvolume = 2, + altnumber = 4, + month = dec, + pages = {25--36}, + annote = bretter, + keywords = {Metafont, Fontentwurf, Schriftentwurf} +} + +@Article{ dtk90.4:lammarsch:tests, + author = {Joachim Lammarsch}, + title = {Tests von verschiedenen {PC}-{V}ersionen}, + journal = dtk, + year = 1990, + volume = {4/90}, + altvolume = 2, + altnumber = 4, + month = dec, + pages = {37--41}, + annote = bretter, + keywords = {MS-DOS, PC\TeX, Turbo\TeX, em\TeX, $\mu$\TeX, PubliC\TeX, + sb\TeX} +} + +@Article{ dtk90.4:mittelbach:brief, + author = {Frank Mittelbach}, + title = {Brief an den {E}ditor}, + journal = dtk, + year = 1990, + volume = {4/90}, + altvolume = 2, + altnumber = 4, + month = dec, + pages = 42, + annote = bretter, + keywords = {} +} + +@Article{ dtk90.4:neubauer:kalender, + author = {Marion Neubauer}, + title = {Kalender in {\TeX}}, + journal = dtk, + year = 1990, + volume = {4/90}, + altvolume = 2, + altnumber = 4, + month = dec, + pages = {43--45}, + annote = bretter, + keywords = {Kalender} +} + +@Article{ dtk90.4:alighieri:goettliche, + author = {Dante Alighieri}, + title = {Die g{\"o}ttliche {K}om{\"o}die}, + journal = dtk, + year = 1990, + volume = {4/90}, + altvolume = 2, + altnumber = 4, + month = dec, + pages = {46--47}, + annote = bretter, + keywords = {} +} + +@Article{ dtk91.1:burr:editorial, + author = {Barbara Burr}, + title = {Editorial}, + journal = dtk, + year = 1991, + volume = {1/91}, + altvolume = 3, + altnumber = 1, + month = may, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk91.1:dietsche:protokoll, + author = {Luzia Dietsche}, + title = {Protokoll der 4.~ordentlichen {M}itgliederversammlung von + {DANTE}, {D}eutschsprachigen {A}nwendervereinigung {\TeX} + e.{V}.}, + journal = dtk, + year = 1991, + volume = {1/91}, + altvolume = 3, + altnumber = 1, + month = may, + pages = {4--11}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk91.1:kruljac-dronskowski:grusswort, + author = {Gabriele Kruljac-Dronskowski}, + title = {Gru{\ss}wort zum {A}bschied}, + journal = dtk, + year = 1991, + volume = {1/91}, + altvolume = 3, + altnumber = 1, + month = may, + pages = {11--12}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk91.1:neuwirth.obermiller:bericht, + author = {Erich Neuwirth and Walter Obermiller}, + title = {Bericht {\"u}ber die 10.~{T}agung der deutschsprachigen + {\TeX} {I}nteressenten}, + journal = dtk, + year = 1991, + volume = {1/91}, + altvolume = 3, + altnumber = 1, + month = may, + pages = {13--16}, + annote = theatertage, + keywords = {Tagungsbericht} +} + +@Article{ dtk91.1:esken:bedieneroberflaeche, + author = {Thomas Esken}, + title = {Eine {B}edieneroberfl{\"a}che f{\"u}r das {em\TeX}-{S}ystem}, + journal = dtk, + year = 1991, + volume = {1/91}, + altvolume = 3, + altnumber = 1, + month = may, + pages = {17--20}, + annote = bretter, + keywords = {Oberfl{\"a}che, em\TeX} +} + +@Article{ dtk91.1:bernloehr:viewdvi, + author = {Konrad Bernl{\"o}hr}, + title = {{VIEWDVI} -- ein leistungsf{\"a}higer {P}reviewer f{\"u}r + {P}ersonal {C}omputer}, + journal = dtk, + year = 1991, + volume = {1/91}, + altvolume = 3, + altnumber = 1, + month = may, + pages = {20--23}, + annote = bretter, + keywords = {Previewer, VIEWDVI} +} + +@Article{ dtk91.1:schurr:grafikeinbindung, + author = {Oliver Schurr}, + title = {Grafikeinbindung (!) in {\TeX} mit {HPTOMF} -- {E}in + {E}rfahrungsbericht}, + journal = dtk, + year = 1991, + volume = {1/91}, + altvolume = 3, + altnumber = 1, + month = may, + pages = {23--24}, + annote = bretter, + keywords = {HPTOMF, Grafik, Bilder} +} + +@Article{ dtk91.1:meyer-lerbs:klassiker, + author = {Lothar Meyer-Lerbs}, + title = {Zwei {K}lassiker der {T}ypographie}, + journal = dtk, + year = 1991, + volume = {1/91}, + altvolume = 3, + altnumber = 1, + month = may, + pages = {25--26}, + note = {Rezension zweier B{\"u}cher von Jan Tschichold}, + annote = rezension, + keywords = {Rezension, Tschichold} +} + +@Article{ dtk91.1:meyer-lerbs:tips, + author = {Lothar Meyer-Lerbs}, + title = {Tips zum {T}abellensatz}, + journal = dtk, + year = 1991, + volume = {1/91}, + altvolume = 3, + altnumber = 1, + month = may, + pages = {27--29}, + annote = schonimmer, + keywords = {Tabellen, } +} + +@Article{ dtk91.1:alighieri:goettliche, + author = {Dante Alighieri}, + title = {Die g{\"o}ttliche {K}om{\"o}die}, + journal = dtk, + year = 1991, + volume = {1/91}, + altvolume = 3, + altnumber = 1, + month = may, + pages = {30--31}, + annote = magazin, + keywords = {} +} + +@Article{ dtk91.1:physikalisches-maerchen, + key = {physikalisches maerchen}, + title = {Ein physikalisches {M}{\"a}rchen}, + journal = dtk, + year = 1991, + volume = {1/91}, + altvolume = 3, + altnumber = 1, + month = may, + pages = {32--33}, + annote = magazin, + keywords = {} +} + +@Article{ dtk91.2:burr:editorial, + author = {Barbara Burr}, + title = {Editorial}, + journal = dtk, + year = 1991, + volume = {2/91}, + altvolume = 3, + altnumber = 2, + month = aug, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk91.2:lammarsch:dante, + author = {Joachim Lammarsch}, + title = {Neues von {DANTE}}, + journal = dtk, + year = 1991, + volume = {2/91}, + altvolume = 3, + altnumber = 2, + month = aug, + pages = {4--7}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk91.2:lammarsch:wahlen, + author = {Joachim Lammarsch}, + title = {Wahlen zum \emph{Board of Directors}}, + journal = dtk, + year = 1991, + volume = {2/91}, + altvolume = 3, + altnumber = 2, + month = aug, + pages = {7--8}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk91.2:lammarsch:ruecktritt, + author = {Joachim Lammarsch}, + title = {R{\"u}cktritt des {E}uropean {C}oordinators}, + journal = dtk, + year = 1991, + volume = {2/91}, + altvolume = 3, + altnumber = 2, + month = aug, + pages = 9, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk91.2:sowa:grafikintegration, + author = {Friedhelm Sowa}, + title = {Grafikintegration mit \textsf{BM2FONT}}, + journal = dtk, + year = 1991, + volume = {2/91}, + altvolume = 3, + altnumber = 2, + month = aug, + pages = {10--14}, + annote = bretter, + keywords = {bm2font, Grafik, Bilder} +} + +@Article{ dtk91.2:werntges:hp2xx, + author = {Heinz Werntges}, + title = {\texttt{hp2xx} -- {E}in {K}onverter f{\"u}r + {HPGL}-{D}ateien}, + journal = dtk, + year = 1991, + volume = {2/91}, + altvolume = 3, + altnumber = 2, + month = aug, + pages = {14--23}, + annote = bretter, + abstract = {HPGL ist ein Quasi-Standard f{\"u}r Vektorgrafiken. Wer + HPGL-Bilder in {\TeX}-Dokumente einbinden will, erh{\"a}lt + mit \texttt{hp2xx} ein Hilfsmittel f{\"u}r alle typischen + Vorgehensweisen: \texttt{hp2xx} kann Druckdateien erzeugen, + so da{\ss} Abbildungen in alter Weise separat gedruckt und + eingeklebt werden k{\"o}nnen, generiert aber auch + Rastergrafik (PCX), entweder f{\"u}r die direkte Einbindung + wie mit den {em\TeX}-Treibern, oder f{\"u}r + Weiterverarbeitung wie z.\,B. mit \texttt{bm2font}. Das + EPS-Format (encapsulated \textsc{PostScript}) + erm{\"o}glicht aufl{\"o}sungsunabh{\"a}ngige Bildeinbindung + und ist insbesondere f{\"u}r hochaufl{\"o}sende Drucker + oder Lichtsatzanlagen interessant. Auch \textsc{Metafont} + wird unterst{\"u}tzt. Auf DOS-Rechnern mit VGA-Grafik ist + schlie{\ss}lich ein Preview-Modus realisiert. + + Das ausf{\"u}hrbare Programm ist {\glqq}public + domain{\grqq} und wird zur Zeit auf DOS, Sun (Sparc), sowie + (mit Einschr{\"a}nkungen) auf VAX/VMS und ATARI unterst{\"u}tzt.}, + keywords = {hp2xx, Konverter, Rastergrafik, Bilder, Postscript, + bm2font, eps} +} + +@Article{ dtk91.2:strempel:latex-programm, + author = {Torsten-Karl Strempel}, + title = {{\LaTeX}-{P}rogramm zum {B}riefeschreiben}, + journal = dtk, + year = 1991, + volume = {2/91}, + altvolume = 3, + altnumber = 2, + month = aug, + pages = {22--25}, + annote = bretter, + keywords = {Briefe, \verb|tksbrief.sty|} +} + +@Article{ dtk91.2:schoepf:softwareverteilung, + author = {Rainer Sch{\"o}pf}, + title = {Softwareverteilung durch elektronische {N}etze {I} -- + {D}ie {\TeX}-{S}erver in {H}eidelberg und {S}tuttgart}, + journal = dtk, + year = 1991, + volume = {2/91}, + altvolume = 3, + altnumber = 2, + month = aug, + pages = {26--32}, + annote = beiprogramm, + keywords = {} +} + +@Article{ dtk91.2:lammarsch:qms-ps, + author = {Joachim Lammarsch}, + title = {{QMS PS} {L}aserdrucker}, + journal = dtk, + year = 1991, + volume = {2/91}, + altvolume = 3, + altnumber = 2, + month = aug, + pages = {32--33}, + annote = beiprogramm, + keywords = {} +} + +@Article{ dtk91.2:dietsche:hat, + author = {Luzia Dietsche}, + title = {\dots{} der hat was zu erz{\"a}hlen}, + journal = dtk, + year = 1991, + volume = {2/91}, + altvolume = 3, + altnumber = 2, + month = aug, + pages = {33--34}, + annote = beiprogramm, + keywords = {} +} + +@Article{ dtk91.2:schmitt:bemerkungen, + author = {Peter Schmitt}, + title = {Einige {B}emerkungen zu den {DC}-{F}onts}, + journal = dtk, + year = 1991, + volume = {2/91}, + altvolume = 3, + altnumber = 2, + month = aug, + pages = {35--37}, + annote = leserbrief, + keywords = {Leserbrief, Fonts (DC), DC-Fonts, Schriften} +} + +@Article{ dtk91.2:alighieri:goettliche, + author = {Dante Alighieri}, + title = {Die g{\"o}ttliche {K}om{\"o}die}, + journal = dtk, + year = 1991, + volume = {2/91}, + altvolume = 3, + altnumber = 2, + month = aug, + pages = 38, + annote = magazin, + keywords = {} +} + +@Article{ dtk91.3:dietsche:protokoll, + author = {Luzia Dietsche}, + title = {Protokoll der 5.~{M}itgliederversammlung von {DANTE}, + {D}eutschsprachige {A}nwendervereinigung {\TeX} e.{V}.}, + journal = dtk, + year = 1991, + volume = {3/91}, + altvolume = 3, + altnumber = 3, + month = oct, + pages = {4--16}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk91.3:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1991, + volume = {3/91}, + altvolume = 3, + altnumber = 3, + month = oct, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk91.3:lammarsch:resumee, + author = {Joachim Lammarsch}, + title = {Ein {R}esumee}, + journal = dtk, + year = 1991, + volume = {3/91}, + altvolume = 3, + altnumber = 3, + month = oct, + pages = {17--18}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk91.3:dafferner.schoepf:aufenthalt, + author = {Andreas Dafferner and Rainer Sch{\"o}pf}, + title = {Ein {A}ufenthalt in {E}lbflorenz}, + journal = dtk, + year = 1991, + volume = {3/91}, + altvolume = 3, + altnumber = 3, + month = oct, + pages = {19--21}, + annote = theatertage, + keywords = {Tagungsbericht} +} + +@Article{ dtk91.3:kisker:rumgraph, + author = {H.-W. Kisker}, + title = {rumgraph -- {E}inbindung von {P}ixel-{B}ildern in ein + {\TeX}-{D}okument, {T}eil 1}, + journal = dtk, + year = 1991, + volume = {3/91}, + altvolume = 3, + altnumber = 3, + month = oct, + pages = 22, + annote = bretter, + keywords = {Grafik, Bilder, RUMgraph} +} + +@Article{ dtk91.3:wiechern:test, + author = {Hartmut Wiechern}, + title = {Test zweier {A}tari-{V}ersionen}, + journal = dtk, + year = 1991, + volume = {3/91}, + altvolume = 3, + altnumber = 3, + month = oct, + pages = {34--37}, + annote = bretter, + keywords = {Atari, Lindner-\TeX, Strunk-\TeX} +} + +@Article{ dtk91.3:baas:briefe, + author = {Michael Baas}, + title = {Briefe mit {\LaTeX} -- {E}in {\"U}berblick}, + journal = dtk, + year = 1991, + volume = {3/91}, + altvolume = 3, + altnumber = 3, + month = oct, + pages = {37--40}, + annote = bretter, + keywords = {Briefe, Dinbriefe} +} + +@Article{ dtk91.3:schoepf:tex-benutzer, + author = {Rainer Sch{\"o}pf}, + title = {{\TeX}-{B}enutzer -- {E}in {P}ortrait}, + journal = dtk, + year = 1991, + volume = {3/91}, + altvolume = 3, + altnumber = 3, + month = oct, + pages = {41--43}, + annote = beiprogramm, + keywords = {Humor, Satire} +} + +@Article{ dtk91.3:astheimer:bemerkung, + author = {Henning Astheimer}, + title = {Bemerkung zu den {S}ervern}, + journal = dtk, + year = 1991, + volume = {3/91}, + altvolume = 3, + altnumber = 3, + month = oct, + pages = {44--45}, + annote = leserbrief, + keywords = {Leserbrief} +} + +@Article{ dtk91.4:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1991, + volume = {4/91}, + altvolume = 3, + altnumber = 4, + month = dec, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk91.4:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1991, + volume = {4/91}, + altvolume = 3, + altnumber = 4, + month = dec, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk91.4:knappen:bericht, + author = {J{\"o}rg Knappen}, + title = {Bericht von der 6.~europ{\"a}ischen {\TeX}-{K}onferenz}, + journal = dtk, + year = 1991, + volume = {4/91}, + altvolume = 3, + altnumber = 4, + month = dec, + pages = {6--11}, + annote = theatertage, + keywords = {Tagungsbericht} +} + +@Article{ dtk91.4:mittelbach.rowley:latex3, + author = {Frank Mittelbach and Chris Rowley}, + title = {Das {\LaTeX3} {P}rojekt}, + journal = dtk, + year = 1991, + volume = {4/91}, + altvolume = 3, + altnumber = 4, + month = dec, + pages = {12--15}, + annote = fremdebuehne, + keywords = {\LaTeX3, \LaTeX-Entwicklung, \LaTeX-News} +} + +@Article{ dtk91.4:kisker:rumgraph, + author = {H.-W. Kisker}, + title = {rumgraph -- {E}inbindung von {P}ixel-{B}ildern in ein + {\TeX}-{D}okument, {T}eil 2}, + journal = dtk, + year = 1991, + volume = {4/91}, + altvolume = 3, + altnumber = 4, + month = dec, + pages = {16--23}, + annote = bretter, + keywords = {Grafik, Bilder, RUMgraph} +} + +@Article{ dtk91.4:schalueck:night, + author = {Elmar Schal{\"u}ck}, + title = {A {N}ight at the {O}pera -- {Z}wei {K}onzertberichte}, + journal = dtk, + year = 1991, + volume = {4/91}, + altvolume = 3, + altnumber = 4, + month = dec, + pages = {23--26}, + annote = bretter, + keywords = {Mu\TeX, Music\TeX, Musiknotensatz} +} + +@Article{ dtk91.4:erlmeier:amiga, + author = {Markus Erlmeier}, + title = {Der {A}miga und {\TeX}}, + journal = dtk, + year = 1991, + volume = {4/91}, + altvolume = 3, + altnumber = 4, + month = dec, + pages = {26--28}, + annote = bretter, + keywords = {Amiga} +} + +@Article{ dtk91.4:meyer-lerbs:macintosh, + author = {Lothar Meyer-Lerbs}, + title = {Der {M}acintosh und {\TeX}}, + journal = dtk, + year = 1991, + volume = {4/91}, + altvolume = 3, + altnumber = 4, + month = dec, + pages = {28--40}, + annote = bretter, + keywords = {Macintosh, Oz\TeX, Direct\TeX, Textures} +} + +@Article{ dtk91.4:birkhahn.lindner:tex, + author = {Lutz Birkhahn and Stefan Lindner}, + title = {{\TeX} auf dem {A}tari {ST}}, + journal = dtk, + year = 1991, + volume = {4/91}, + altvolume = 3, + altnumber = 4, + month = dec, + pages = {40--43}, + annote = bretter, + abstract = {Das folgende ist ein stichpunktartiger Bericht {\"u}ber + den Status des {\TeX}-Systems auf dem Atari ST.}, + keywords = {Atari} +} + +@Article{ dtk91.4:wiechern:nachtrag, + author = {Hartmut Wiechern}, + title = {Nachtrag zum {A}tari-{\TeX}-{T}est}, + journal = dtk, + year = 1991, + volume = {4/91}, + altvolume = 3, + altnumber = 4, + month = dec, + pages = {43--45}, + annote = bretter, + keywords = {Atari} +} + +@Article{ dtk91.4:schoepf:tex-raetsel, + author = {Rainer Sch{\"o}pf}, + title = {Drei {\TeX}-{R}{\"a}tsel}, + journal = dtk, + year = 1991, + volume = {4/91}, + altvolume = 3, + altnumber = 4, + month = dec, + pages = 46, + annote = schonimmer, + keywords = {R{\"a}tsel} +} + +@Article{ dtk91.4:lammarsch:aktuelle, + author = {Joachim Lammarsch}, + title = {Aktuelle {A}uflage der {\TeX}-{B}{\"u}cher}, + journal = dtk, + year = 1991, + volume = {4/91}, + altvolume = 3, + altnumber = 4, + month = dec, + pages = 47, + annote = beiprogramm, + keywords = {} +} + +@Article{ dtk91.4:lammarsch:tex-buecher, + author = {Joachim Lammarsch}, + title = {Drei {\TeX}-{B}{\"u}cher im {V}ergleich}, + journal = dtk, + year = 1991, + volume = {4/91}, + altvolume = 3, + altnumber = 4, + month = dec, + pages = {48--51}, + annote = rezension, + keywords = {Rezension} +} + +@Article{ dtk91.4:lehmke:atari-tex, + author = {Stephan Lehmke}, + title = {Atari-{\TeX} und {U}mlaute}, + journal = dtk, + year = 1991, + volume = {4/91}, + altvolume = 3, + altnumber = 4, + month = dec, + pages = 52, + annote = leserbrief, + keywords = {Leserbrief, Atari, Umlaute} +} + +@Article{ dtk91.4:lehmke:grafikeinbindung, + author = {Stephan Lehmke}, + title = {Grafikeinbindung}, + journal = dtk, + year = 1991, + volume = {4/91}, + altvolume = 3, + altnumber = 4, + month = dec, + pages = {53--54}, + note = {mit Antwort von Friedhelm Sowa}, + annote = leserbrief, + keywords = {Leserbrief, Grafik, \PiCTeX} +} + +@Article{ dtk91.4:landmann:serverzugang, + author = {J{\"o}rg Landmann}, + title = {Serverzugang}, + journal = dtk, + year = 1991, + volume = {4/91}, + altvolume = 3, + altnumber = 4, + month = dec, + pages = 56, + note = {mit {A}ntwort von Joachim Lammarsch}, + annote = leserbrief, + keywords = {Leserbrief} +} + +@Article{ dtk91.4:landmann:dc-fonts, + author = {J{\"o}rg Landmann}, + title = {{DC}-{F}onts}, + journal = dtk, + year = 1991, + volume = {4/91}, + altvolume = 3, + altnumber = 4, + month = dec, + pages = 57, + note = {mit einer {A}ntwort von Rainer Sch{\"o}pf}, + annote = leserbrief, + keywords = {Leserbrief, DC-Fonts, Fonts (DC), Umlaute} +} + +@Article{ dtk91.4:joswig:bemerkungen, + author = {Michael J. Joswig}, + title = {Bemerkungen zum {A}tari-{\TeX}}, + journal = dtk, + year = 1991, + volume = {4/91}, + altvolume = 3, + altnumber = 4, + month = dec, + pages = {57--58}, + annote = leserbrief, + keywords = {Leserbrief, Atari} +} + +@Article{ dtk92.1:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1992, + volume = {1/92}, + altvolume = 4, + altnumber = 1, + month = may, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk92.1:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1992, + volume = {1/92}, + altvolume = 4, + altnumber = 1, + month = may, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk92.1:dietsche:protokoll, + author = {Luzia Dietsche}, + title = {Protokoll der 6.~{M}itgliederversammlung von {DANTE}, + {D}eutschsprachige {A}nwendervereinigung {\TeX} e.{V}.}, + journal = dtk, + year = 1992, + volume = {1/92}, + altvolume = 4, + altnumber = 1, + month = may, + pages = {5--22}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk92.1:sowa:kassenbericht, + author = {Friedhelm Sowa}, + title = {Kassenbericht f{\"u}r den {Z}eitraum 1.1.1991--31.12.1991}, + journal = dtk, + year = 1992, + volume = {1/92}, + altvolume = 4, + altnumber = 1, + month = may, + pages = {23--25}, + annote = hinterbuehne, + keywords = {Kassenbericht} +} + +@Article{ dtk92.1:zierke:stammtischbericht, + author = {Reinhard Zierke}, + title = {Stammtischbericht aus {H}amburg}, + journal = dtk, + year = 1992, + volume = {1/92}, + altvolume = 4, + altnumber = 1, + month = may, + pages = {25--26}, + annote = hinterbuehne, + keywords = {Stammtisch} +} + +@Article{ dtk92.1:erlmeier:software-verteilung, + author = {Markus Erlmeier}, + title = {Software-{V}erteilung {A}miga}, + journal = dtk, + year = 1992, + volume = {1/92}, + altvolume = 4, + altnumber = 1, + month = may, + pages = {26--28}, + annote = hinterbuehne, + keywords = {Amiga} +} + +@Article{ dtk92.1:burkhard:klassenarbeiten, + author = {Werner Burkhard}, + title = {Klassenarbeiten mit {\LaTeX}}, + journal = dtk, + year = 1992, + volume = {1/92}, + altvolume = 4, + altnumber = 1, + month = may, + pages = {29--32}, + annote = bretter, + keywords = {Aufgaben, Klassenarbeiten, Klausuren} +} + +@Article{ dtk92.1:barth.steiner:deutsche, + author = {Wilhelm Barth and Helmut Steiner}, + title = {Deutsche {S}ilbentrennung f{\"u}r {\TeX} 3.1}, + journal = dtk, + year = 1992, + volume = {1/92}, + altvolume = 4, + altnumber = 1, + month = may, + pages = {33--35}, + annote = bretter, + keywords = {Silbentrennung} +} + +@Article{ dtk92.1:wallmeier:deutsches, + author = {Markus Wallmeier}, + title = {Deutsches und internationales {\BibTeX}ing}, + journal = dtk, + year = 1992, + volume = {1/92}, + altvolume = 4, + altnumber = 1, + month = may, + pages = {35--38}, + annote = bretter, + keywords = {BibTeX} +} + +@Article{ dtk92.1:sumbeck:verwaltung, + author = {Fred Sumbeck}, + title = {Verwaltung von {L}iteraturdatenbanken}, + journal = dtk, + year = 1992, + volume = {1/92}, + altvolume = 4, + altnumber = 1, + month = may, + pages = {39--46}, + annote = bretter, + keywords = {BibTeX, Literaturverzeichnis} +} + +@Article{ dtk92.1:schmidt:metafont-spielereien, + author = {Jens Schmidt}, + title = {{\MF}-{S}pielereien}, + journal = dtk, + year = 1992, + volume = {1/92}, + altvolume = 4, + altnumber = 1, + month = may, + pages = {46--48}, + note = {Beschreibung eines ausgefallenen, + {\glqq}schwimmenden{\grqq} Fonts.}, + annote = bretter, + keywords = {Metafont, cmnerv, Fonts, Schriften} +} + +@Article{ dtk92.1:dietsche:anfaengerfragen, + author = {Luzia Dietsche}, + title = {Anf{\"a}ngerfragen gesucht}, + journal = dtk, + year = 1992, + volume = {1/92}, + altvolume = 4, + altnumber = 1, + month = may, + pages = 49, + annote = schonimmer, + keywords = {} +} + +@Article{ dtk92.1:schoepf:tex-raetsel, + author = {Rainer Sch{\"o}pf}, + title = {Drei {\TeX}-{R}{\"a}tsel -- die {A}ufl{\"o}sung}, + journal = dtk, + year = 1992, + volume = {1/92}, + altvolume = 4, + altnumber = 1, + month = may, + pages = 50, + annote = schonimmer, + keywords = {R{\"a}tsel} +} + +@Article{ dtk92.1:dietsche:bezugsquellen, + author = {Luzia Dietsche}, + title = {Bezugsquellen f{\"u}r {\TeX}}, + journal = dtk, + year = 1992, + volume = {1/92}, + altvolume = 4, + altnumber = 1, + month = may, + pages = 51, + annote = beiprogramm, + keywords = {} +} + +@Article{ dtk92.1:szillat:dc-fonts, + author = {Horst Szillat}, + title = {{DC}-{F}onts}, + journal = dtk, + year = 1992, + volume = {1/92}, + altvolume = 4, + altnumber = 1, + month = may, + pages = {52--54}, + annote = leserbrief, + keywords = {Leserbrief, Fonts (DC), DC-Fonts, Schriften} +} + +@Article{ dtk92.1:langhaus:serverzugang, + author = {Claus Langhaus}, + title = {Serverzugang}, + journal = dtk, + year = 1992, + volume = {1/92}, + altvolume = 4, + altnumber = 1, + month = may, + pages = 54, + annote = leserbrief, + keywords = {Leserbrief} +} + +@Article{ dtk92.1:woehle:geraeteunabhaengigkeit, + author = {Hartmut W{\"o}hle}, + title = {Ger{\"a}teunabh{\"a}ngigkeit}, + journal = dtk, + year = 1992, + volume = {1/92}, + altvolume = 4, + altnumber = 1, + month = may, + pages = 55, + annote = leserbrief, + keywords = {Leserbrief} +} + +@Article{ dtk92.1:pauli:wissenschaftliche, + author = {Guido F. Pauli}, + title = {Wissenschaftliche {P}ublikationen und {\TeX}}, + journal = dtk, + year = 1992, + volume = {1/92}, + altvolume = 4, + altnumber = 1, + month = may, + pages = 55, + annote = leserbrief, + keywords = {Leserbrief} +} + +@Article{ dtk92.2:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1992, + volume = {2/92}, + altvolume = 4, + altnumber = 2, + month = aug, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk92.2:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1992, + volume = {2/92}, + altvolume = 4, + altnumber = 2, + month = aug, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk92.2:sowa:stammtisch, + author = {Friedhelm Sowa}, + title = {Stammtisch in {D}uisburg}, + journal = dtk, + year = 1992, + volume = {2/92}, + altvolume = 4, + altnumber = 2, + month = aug, + pages = {5--6}, + annote = hinterbuehne, + keywords = {Stammtisch} +} + +@Article{ dtk92.2:wellssow:bericht, + author = {Arne Well{\ss}ow}, + title = {Bericht {\"u}ber {DANTE}'92 in {H}amburg}, + journal = dtk, + year = 1992, + volume = {2/92}, + altvolume = 4, + altnumber = 2, + month = aug, + pages = {7--12}, + annote = theatertage, + keywords = {Tagungsbericht} +} + +@Article{ dtk92.2:neuwirth:weiterentwicklung, + author = {Erich Neuwirth}, + title = {Die {W}eiterentwicklung von {\TeX}}, + journal = dtk, + year = 1992, + volume = {2/92}, + altvolume = 4, + altnumber = 2, + month = aug, + pages = {13-15}, + annote = bretter, + keywords = {\TeX-Entwicklung} +} + +@Article{ dtk92.2:mittelbach:latex3, + author = {Frank Mittelbach}, + title = {{\LaTeX3}}, + journal = dtk, + year = 1992, + volume = {2/92}, + altvolume = 4, + altnumber = 2, + month = aug, + pages = {15-22}, + annote = bretter, + keywords = {\LaTeX-Entwicklung, \LaTeX3} +} + +@Article{ dtk92.2:langhaus:elektronische, + author = {Claus Langhaus}, + title = {Elektronische {K}ommunikation f{\"u}r {J}edermann}, + journal = dtk, + year = 1992, + volume = {2/92}, + altvolume = 4, + altnumber = 2, + month = aug, + pages = {22--26}, + annote = bretter, + abstract = {In diesem Artikel wird der Versuch unternommen, die + M{\"o}glichkeiten der elektronischen Kommunikation f{\"u}r + Privatleute zu beleuchten, soweit sie f{\"u}r die + Mitglieder von {DANTE}, Deutschsprachige + Anwendervereinigung {\TeX} e.V., interessant sind. Es wird + dabei auch auf die verschiedenen Netze eingegangen.}, + keywords = {} +} + +@Article{ dtk92.2:szillat:ams-latex, + author = {Horst Szillat}, + title = {{\AMS-\LaTeX}}, + journal = dtk, + year = 1992, + volume = {2/92}, + altvolume = 4, + altnumber = 2, + month = aug, + pages = {26--31}, + annote = bretter, + keywords = {\AMS-\LaTeX} +} + +@Article{ dtk92.2:bode:bibtex-style-files, + author = {Hans-Hermann Bode}, + title = {Neue {\BibTeX}-{S}tyle-{F}iles: die \emph{adaptable + family}}, + journal = dtk, + year = 1992, + volume = {2/92}, + altvolume = 4, + altnumber = 2, + month = aug, + pages = {31--41}, + annote = bretter, + abstract = {Es wird eine neue Familie von \BibTeX{}-Style-Files + vorgestellt, die von den Standard-Style-Files abgeleitet + ist und sich durch nachtr{\"a}gliche Anpa{\ss}barkeit von + Layout und F{\"u}llw{\"o}rtern seitens des Benutzers oder + der Benutzerin auszeichnet. Das Paket umfa{\ss}t neben den + eigentlichen Stil-Dateien mit Definitionen, die automatisch + eine englische oder deutsche Bibliographie mit + ausgeschriebenen oder abgek{\"u}rzten F{\"u}llw{\"o}rtern + erzeugen und au{\ss}erdem die volle Kompatibilit{\"a}t + bestehender \BibTeX{}-Datenbanken zu den neuen Stilen sowie + umgekehrt die Vertr{\"a}glichkeit neuer Datenbanken zu den + alten Stilen herstellen.}, + keywords = {BibTeX} +} + +@Article{ dtk92.2:sowa:text, + author = {Friedhelm Sowa}, + title = {Text und {B}ilder}, + journal = dtk, + year = 1992, + volume = {2/92}, + altvolume = 4, + altnumber = 2, + month = aug, + pages = {41--45}, + annote = bretter, + keywords = {Bilder, Grafik, \verb|picinpar.sty|} +} + +@Article{ dtk92.2:lammarsch:aergernis, + author = {Joachim Lammarsch}, + title = {Das {\"A}rgernis}, + journal = dtk, + year = 1992, + volume = {2/92}, + altvolume = 4, + altnumber = 2, + month = aug, + pages = 47, + annote = beiprogramm, + keywords = {Public Domain, Shareware, Chip, em\TeX, TUG} +} + +@Article{ dtk92.2:lammarsch:umgebungsbereich, + author = {Joachim Lammarsch}, + title = {Umgebungsbereich zu klein?}, + journal = dtk, + year = 1992, + volume = {2/92}, + altvolume = 4, + altnumber = 2, + month = aug, + pages = 46, + annote = schonimmer, + keywords = {MS-DOS, Umgebungsbereich} +} + +@Article{ dtk92.2:zierke:vieweg, + author = {Reinhard Zierke}, + title = {Das {V}ieweg {\LaTeX}-{B}uch: {E}ine praxisorientierte + {E}inf{\"u}hrung}, + journal = dtk, + year = 1992, + volume = {2/92}, + altvolume = 4, + altnumber = 2, + month = aug, + pages = {48--49}, + annote = rezension, + keywords = {Rezension} +} + +@Article{ dtk92.2:schaenzel:druckertreiber, + author = {Roland Sch{\"a}nzel}, + title = {Druckertreiber gesucht}, + journal = dtk, + year = 1992, + volume = {2/92}, + altvolume = 4, + altnumber = 2, + month = aug, + pages = 50, + annote = leserbrief, + keywords = {Leserbrief} +} + +@Article{ dtk92.2:kalski:pictex-manual, + author = {Jens Kalski}, + title = {{\PiCTeX}-{M}anual}, + journal = dtk, + year = 1992, + volume = {2/92}, + altvolume = 4, + altnumber = 2, + month = aug, + pages = 50, + annote = leserbrief, + keywords = {Leserbrief, \PiCTeX} +} + +@Article{ dtk92.3:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1992, + volume = {3/92}, + altvolume = 4, + altnumber = 3, + month = nov, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk92.3:dietsche:protokoll, + author = {Luzia Dietsche}, + title = {Protokoll der 7.~{M}itgliederversammlung {DANTE}, + {D}eutschsprachige {A}nwendervereinigung {\TeX} e.{V}.}, + journal = dtk, + year = 1992, + volume = {3/92}, + altvolume = 4, + altnumber = 3, + month = nov, + pages = {4--17}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk92.3:bleser.lang:bilder, + author = {Joachim Bleser and Edmund Lang}, + title = {Bilder in {\LaTeX}-{D}okumenten}, + journal = dtk, + year = 1992, + volume = {3/92}, + altvolume = 4, + altnumber = 3, + month = nov, + pages = {18--24}, + annote = bretter, + keywords = {Grafik, Bilder, \verb|picins.sty|} +} + +@Article{ dtk92.3:raichle:umlaute, + author = {Bernd Raichle}, + title = {Umlaute im {\BibTeX}-{S}tylebefehl \textsc{macro}}, + journal = dtk, + year = 1992, + volume = {3/92}, + altvolume = 4, + altnumber = 3, + month = nov, + pages = {25--27}, + annote = bretter, + keywords = {Umlaute, BibTeX} +} + +@Article{ dtk92.3:schurr:documentstyle-familie, + author = {Oliver Schurr}, + title = {Die documentstyle-{F}amilie \texttt{SCRIPT}}, + journal = dtk, + year = 1992, + volume = {3/92}, + altvolume = 4, + altnumber = 3, + month = nov, + pages = {27--28}, + annote = bretter, + abstract = {Die documentsytle-Familie \texttt{SCRIPT} von Frank Neukam + erm{\"o}glicht erstmals eine deutliche Verbesserung des + Layouts von Texten, die mit {\LaTeX} gesetzt sind. Sie + erlaubt u.\,a. eine sehr komfortable Einstellung des + Satzspiegels f{\"u}r die verschiedenen DIN-Formate und + enth{\"a}lt einen Briefstil, der in der {\TeX}-Gemeinde + seines gleichen sucht.}, + keywords = {|SCRIPT|, Dokumentstyle} +} + +@Article{ dtk92.3:willadt:anregungen, + author = {Peter Willadt}, + title = {Anregungen hinsichtlich der {S}oftwareverteilung von + {DANTE} e.{V}.}, + journal = dtk, + year = 1992, + volume = {3/92}, + altvolume = 4, + altnumber = 3, + month = nov, + pages = {29--30}, + annote = bretter, + keywords = {} +} + +@Article{ dtk92.3:juritza:wandel-exe, + author = {Dieter Juritza}, + title = {\texttt{WANDEL.EXE} -- ein vielf{\"a}ltig nutzbarer + {F}ormatkonverter}, + journal = dtk, + year = 1992, + volume = {3/92}, + altvolume = 4, + altnumber = 3, + month = nov, + pages = {31--32}, + annote = bretter, + keywords = {Konverter, \verb|Wandel.exe|} +} + +@Article{ dtk92.3:esken:kurzer, + author = {Thomas Esken}, + title = {Kurzer {N}achtrag zur {\TeX}-{B}enutzungsoberfl{\"a}che + \textsf{Tx1}}, + journal = dtk, + year = 1992, + volume = {3/92}, + altvolume = 4, + altnumber = 3, + month = nov, + pages = {33--34}, + annote = bretter, + keywords = {Oberfl{\"a}che} +} + +@Article{ dtk92.3:guelicher:autoaufkleber, + author = {Christoph G{\"u}licher}, + title = {Autoaufkleber}, + journal = dtk, + year = 1992, + volume = {3/92}, + altvolume = 4, + altnumber = 3, + month = nov, + pages = {34--35}, + annote = bretter, + keywords = {Autoaufkleber} +} + +@Article{ dtk92.3:kuchel.muus:kalender, + author = {W.F. Kuchel and P.H. Muus}, + title = {Kalender}, + journal = dtk, + year = 1992, + volume = {3/92}, + altvolume = 4, + altnumber = 3, + month = dec, + pages = {35--36}, + annote = bretter, + keywords = {Kalender} +} + +@Article{ dtk92.3:dietsche:blocksatz, + author = {Luzia Dietsche}, + title = {Blocksatz beim {A}bbildungs-/{T}abellentitel}, + journal = dtk, + year = 1992, + volume = {3/92}, + altvolume = 4, + altnumber = 3, + month = dec, + pages = {37--38}, + annote = schonimmer, + keywords = {Markup, Blocksatz, Abbildungen, Tabellen} +} + +@Article{ dtk92.3:hundt:nachdrucke, + author = {Ekkehardt Hundt}, + title = {Nachdrucke der {K}nuth-{B}{\"a}nde}, + journal = dtk, + year = 1992, + volume = {3/92}, + altvolume = 4, + altnumber = 3, + month = dec, + pages = {39--40}, + annote = beiprogramm, + keywords = {Knuth} +} + +@Article{ dtk92.3:lammarsch:beginners, + author = {Joachim Lammarsch}, + title = {A {B}eginners {B}ook of {\TeX}}, + journal = dtk, + year = 1992, + volume = {3/92}, + altvolume = 4, + altnumber = 3, + month = dec, + pages = {41--43}, + annote = rezension, + keywords = {Rezension} +} + +@Article{ dtk92.3:riedel:belichter, + author = {Wolfgang Riedel}, + title = {Belichter gesucht}, + journal = dtk, + year = 1992, + volume = {3/92}, + altvolume = 4, + altnumber = 3, + month = dec, + pages = 44, + annote = leserbrief, + keywords = {Leserbrief} +} + +@Article{ dtk92.3:becker:devanangi-fonts, + author = {Joachim U. Becker}, + title = {Devanangi-{F}onts f{\"u}r {\TeX}}, + journal = dtk, + year = 1992, + volume = {3/92}, + altvolume = 4, + altnumber = 3, + month = dec, + pages = {44-45}, + annote = leserbrief, + keywords = {Leserbrief, Devangangi, Fonts, Schriften} +} + +@Article{ dtk92.3:kusznier:sprachschwierigkeiten, + author = {Heinz Kusznier}, + title = {Sprachschwierigkeiten}, + journal = dtk, + year = 1992, + volume = {3/92}, + altvolume = 4, + altnumber = 3, + month = dec, + pages = 45, + annote = leserbrief, + keywords = {Leserbrief} +} + +@Article{ dtk92.3:loew:aufgabe, + author = {Michael L{\"o}w}, + title = {Aufgabe}, + journal = dtk, + year = 1992, + volume = {3/92}, + altvolume = 4, + altnumber = 3, + month = dec, + pages = 45, + annote = leserbrief, + keywords = {Leserbrief} +} + +@Article{ dtk92.4:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1992, + volume = {4/92}, + altvolume = 4, + altnumber = 4, + month = dec, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk92.4:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1992, + volume = {4/92}, + altvolume = 4, + altnumber = 4, + month = dec, + pages = {4--6}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk92.4:meyer-lerbs:tex, + author = {Lothar Meyer-Lerbs}, + title = {{\TeX} auf dem {M}ac}, + journal = dtk, + year = 1992, + volume = {4/92}, + altvolume = 4, + altnumber = 4, + month = dec, + pages = 6, + annote = hinterbuehne, + keywords = {Macintosh} +} + +@Article{ dtk92.4:erlmeier:texnische, + author = {Markus Erlmeier}, + title = {{\TeX}nische {S}oftware auf dem {A}miga}, + journal = dtk, + year = 1992, + volume = {4/92}, + altvolume = 4, + altnumber = 4, + month = dec, + pages = {6--8}, + annote = hinterbuehne, + keywords = {Amiga} +} + +@Article{ dtk92.4:gloeckner:erzeugung, + author = {J{\"u}rgen Gl{\"o}ckner}, + title = {Erzeugung virtueller {F}onts}, + journal = dtk, + year = 1992, + volume = {4/92}, + altvolume = 4, + altnumber = 4, + month = dec, + pages = {9--16}, + annote = bretter, + abstract = {Es werden Grundlagen f{\"u}r die Herstellung virtueller + Fonts vorgestellt. {A}nhand dreier Beispiele wird das + Vorgehen bei der Definition virtueller Fonts erl{\"a}utert: + \begin{enumerate} \item Ziffern in einem Font aus einem + anderen Font nehmen; \item PostScript-{\verb+\special+} + f{\"u}r das Rastern von Zeichen; \item Anpassungen der + Zeichenbelegung eines Fonts an einen anderen, dargestellt + f{\"u}r die DVIPS-Treiber von Arbort-{\TeX} von Tomas + Rokicki. \end{enumerate}}, + keywords = {Fonts, virtuelle Fonts, Schriften, Metafont, DVIPS, } +} + +@Article{ dtk92.4:dippel:latex-seitenlayout, + author = {Joachim Dippel}, + title = {Neues zum {\LaTeX}-{S}eitenlayout: {D}er {O}urhead + {S}tyle}, + journal = dtk, + year = 1992, + volume = {4/92}, + altvolume = 4, + altnumber = 4, + month = dec, + pages = {16--20}, + annote = bretter, + keywords = {Markup, Seitenlayout, \verb|ourhead.sty|} +} + +@Article{ dtk92.4:breuer:anmerkungen, + author = {Stefan Breuer}, + title = {Anmerkungen zum \verb+\footnote+-{B}efehl}, + journal = dtk, + year = 1992, + volume = {4/92}, + altvolume = 4, + altnumber = 4, + month = dec, + pages = {20--22}, + annote = bretter, + keywords = {Fu{\ss}noten, Markup} +} + +@Article{ dtk92.4:burkhardt:schaubilder, + author = {Werner Burkhardt}, + title = {Schaubilder mathematischer {F}unktionen mit {\PiCTeX}}, + journal = dtk, + year = 1992, + volume = {4/92}, + altvolume = 4, + altnumber = 4, + month = dec, + pages = {22--27}, + annote = bretter, + keywords = {\PiCTeX, Funktionen, Grafik, Mathematik} +} + +@Article{ dtk92.4:bleser.lang:balkendiagramme, + author = {Joachim Bleser and Edmund Lang}, + title = {Balkendiagramme in {\LaTeX}-{D}okumenten}, + journal = dtk, + year = 1992, + volume = {4/92}, + altvolume = 4, + altnumber = 4, + month = dec, + pages = {28--33}, + annote = bretter, + keywords = {Balkendiagramme, Grafik, \verb|bar.sty|} +} + +@Article{ dtk92.4:jurzitza:schaltbilder, + author = {Dieter Jurzitza}, + title = {Schaltbilder mit {\LaTeX}}, + journal = dtk, + year = 1992, + volume = {4/92}, + altvolume = 4, + altnumber = 4, + month = dec, + pages = {34}, + annote = bretter, + keywords = {Schaltbilder} +} + +@Article{ dtk92.4:dietsche:fette, + author = {Luzia Dietsche}, + title = {Fette mathematische {A}kzente}, + journal = dtk, + year = 1992, + volume = {4/92}, + altvolume = 4, + altnumber = 4, + month = dec, + pages = 35, + annote = schonimmer, + keywords = {Formelsatz, Mathematik} +} + +@Article{ dtk92.4:erlmeier:pastex, + author = {Markus Erlmeier}, + title = {Pas{\TeX} in {V}orbereitung}, + journal = dtk, + year = 1992, + volume = {4/92}, + altvolume = 4, + altnumber = 4, + month = dec, + pages = 36, + annote = beiprogramm, + keywords = {Pas\TeX, Amiga} +} + +@Article{ dtk92.4:bratz:beinahe, + author = {Ernst Bratz}, + title = {Beinahe gut -- ein subjektiver {T}est von {S}cientific + {W}ord}, + journal = dtk, + year = 1992, + volume = {4/92}, + altvolume = 4, + altnumber = 4, + month = dec, + pages = {37--38}, + annote = rezension, + keywords = {Rezension, Word, Scientific Word} +} + +@Article{ dtk92.4:meyer-lerbs:ganz, + author = {Lothar Meyer-Lerbs}, + title = {Ganz un{\TeX}nische {B}{\"u}cher}, + journal = dtk, + year = 1992, + volume = {4/92}, + altvolume = 4, + altnumber = 4, + month = dec, + pages = {38--40}, + annote = rezension, + keywords = {Rezension, Tschichold} +} + +@Article{ dtk93.1:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1993, + volume = {1/93}, + altvolume = 5, + altnumber = 1, + month = may, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk93.1:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1993, + volume = {1/93}, + altvolume = 5, + altnumber = 1, + month = may, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk93.1:dietsche:protokoll, + author = {Luzia Dietsche}, + title = {Protokoll der 8.~{M}itgliederversammlung von {DANTE}, + {D}eutschsprachige {A}nwendervereinigung {\TeX} e.{V}.}, + journal = dtk, + year = 1993, + volume = {1/93}, + altvolume = 5, + altnumber = 1, + month = may, + pages = {5--23}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk93.1:dietsche:aktive, + author = {Luzia Dietsche}, + title = {Aktive {M}itglieder der letzten {J}ahre}, + journal = dtk, + year = 1993, + volume = {1/93}, + altvolume = 5, + altnumber = 1, + month = may, + pages = {23--25}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk93.1:kurdelski:stammtisch, + author = {Lutz-Peter Kurdelski}, + title = {Stammtisch in {B}remerhafen}, + journal = dtk, + year = 1993, + volume = {1/93}, + altvolume = 5, + altnumber = 1, + month = may, + pages = 26, + annote = hinterbuehne, + keywords = {Stammtisch,} +} + +@Article{ dtk93.1:engelke:dante93, + author = {Stephan Engelke}, + title = {{DANTE}'93 in {C}hemnitz}, + journal = dtk, + year = 1993, + volume = {1/93}, + altvolume = 5, + altnumber = 1, + month = may, + pages = {27--31}, + annote = theatertage, + keywords = {Tagungsbericht} +} + +@Article{ dtk93.1:latex3-projekt-team:news, + author = {\LaTeX3-Projekt-Team}, + title = {News from {\LaTeX}3}, + journal = dtk, + year = 1993, + volume = {1/93}, + altvolume = 5, + altnumber = 1, + month = may, + pages = {32--34}, + annote = fremdebuehne, + keywords = {\LaTeX3, \LaTeX-News, \LaTeX-Entwicklung} +} + +@Article{ dtk93.1:wisser:amiga, + author = {Ulrich Wisser}, + title = {Amiga und {\TeX}}, + journal = dtk, + year = 1993, + volume = {1/93}, + altvolume = 5, + altnumber = 1, + month = may, + pages = {35--41}, + annote = bretter, + keywords = {Amiga, Amiga\TeX, Pas\TeX} +} + +@Article{ dtk93.1:krebs:metafont-reparaturen, + author = {Peter Krebs}, + title = {{\MF}-{R}eparaturen -- f{\"u}r {L}aien}, + journal = dtk, + year = 1993, + volume = {1/93}, + altvolume = 5, + altnumber = 1, + month = may, + pages = {41--42}, + annote = bretter, + keywords = {Metafont, Fonts, Schriften, yswab, Fraktur} +} + +@Article{ dtk93.1:wallmeier:probleme, + author = {Martin Wallmeier}, + title = {Probleme mit langen {\"U}berschriften in {\LaTeX} und ein + {L}{\"o}sungsvorschlag}, + journal = dtk, + year = 1993, + volume = {1/93}, + altvolume = 5, + altnumber = 1, + month = may, + pages = {43--46}, + annote = bretter, + keywords = {{\"U}berschriften} +} + +@Article{ dtk93.1:steinhaeuser:serienbriefe, + author = {Steffen Steinh{\"a}user}, + title = {Serienbriefe und vieles mehr \dots}, + journal = dtk, + year = 1993, + volume = {1/93}, + altvolume = 5, + altnumber = 1, + month = may, + pages = {46--49}, + annote = bretter, + keywords = {Serienbriefe, Briefe} +} + +@Article{ dtk93.1:dietsche:fussnotenvariante, + author = {Luzia Dietsche}, + title = {Fu{\ss}notenvariante}, + journal = dtk, + year = 1993, + volume = {1/93}, + altvolume = 5, + altnumber = 1, + month = may, + pages = {50--51}, + annote = schonimmer, + keywords = {Markup, Fu{\ss}noten} +} + +@Article{ dtk93.1:meyer-lerbs:so, + author = {Lothar Meyer-Lerbs}, + title = {So kommen {S}ie an {I}hr {\TeX} auf dem {M}ac}, + journal = dtk, + year = 1993, + volume = {1/93}, + altvolume = 5, + altnumber = 1, + month = may, + pages = {52--53}, + annote = beiprogramm, + keywords = {Macintosh, Oz\TeX, Direct\TeX, Textures} +} + +@Article{ dtk93.1:erlmeier:mailbox, + author = {Markus Erlmeier}, + title = {Mailbox f{\"u}r {A}miga-{\TeX}-{S}oftware}, + journal = dtk, + year = 1993, + volume = {1/93}, + altvolume = 5, + altnumber = 1, + month = may, + pages = {53--56}, + annote = beiprogramm, + keywords = {Amiga, Mailbox} +} + +@Article{ dtk93.1:hundt:wettbewerb, + author = {Ekkehardt Hundt}, + title = {Wettbewerb}, + journal = dtk, + year = 1993, + volume = {1/93}, + altvolume = 5, + altnumber = 1, + month = may, + pages = 56, + annote = beiprogramm, + keywords = {Metafont, Addison-Wesley, Logo} +} + +@Article{ dtk93.1:hundt:vers, + author = {Ekkehardt Hundt}, + title = {Der {V}ers 3:16 -- {E}in {I}nformatiker treibt + fr{\"o}hliche {T}heologie}, + journal = dtk, + year = 1993, + volume = {1/93}, + altvolume = 5, + altnumber = 1, + month = may, + pages = {58--59}, + annote = rezension, + keywords = {Rezension, Knuth, Bibel, Theologie} +} + +@Article{ dtk93.1:kusznier:artikel, + author = {Heinz Kusznier}, + title = {Artikel und die darin beschriebene {S}oftware}, + journal = dtk, + year = 1993, + volume = {1/93}, + altvolume = 5, + altnumber = 1, + month = may, + pages = {60--61}, + annote = leserbrief, + keywords = {Leserbrief} +} + +@Article{ dtk93.1:steinhaeuser:anmerkungen, + author = {Steffen Steinh{\"a}user}, + title = {Anmerkungen zu \verb+script_l+}, + journal = dtk, + year = 1993, + volume = {1/93}, + altvolume = 5, + altnumber = 1, + month = may, + pages = {62--63}, + annote = leserbrief, + keywords = {Leserbrief, \verb|script_l|, Fonts, Schriften} +} + +@Article{ dtk93.2:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1993, + volume = {2/93}, + altvolume = 5, + altnumber = 2, + month = sep, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk93.2:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1993, + volume = {2/93}, + altvolume = 5, + altnumber = 2, + month = sep, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk93.2:lammarsch:fond, + author = {Joachim Lammarsch}, + title = {Fond zur {U}nterst{\"u}tzung von {M}itgliedern}, + journal = dtk, + year = 1993, + volume = {2/93}, + altvolume = 5, + altnumber = 2, + month = sep, + pages = 5, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk93.2:vieth:bericht, + author = {Ulrik Vieth}, + title = {Bericht von der 14.~{T}agung der {TUG}}, + journal = dtk, + year = 1993, + volume = {2/93}, + altvolume = 5, + altnumber = 2, + month = sep, + pages = {6--18}, + note = {Zusammenfassung einiger Workshops und Vortr{\"a}ge zur 14. + TUG-Tagung in Birmingham.}, + annote = theatertage, + keywords = {Tagungsbericht} +} + +@Article{ dtk93.2:taylor.obermiller:zukunft, + author = {Phil Taylor and Walter Obermiller}, + title = {Die {Z}ukunft von {\TeX}}, + journal = dtk, + year = 1993, + volume = {2/93}, + altvolume = 5, + altnumber = 2, + month = sep, + pages = {19--37}, + annote = fremdebuehne, + keywords = {\TeX-Entwicklung, NTS} +} + +@Article{ dtk93.2:werntges:grafik-import, + author = {Heinz Werntges}, + title = {Grafik-{I}mport in {\LaTeX}}, + journal = dtk, + year = 1993, + volume = {2/93}, + altvolume = 5, + altnumber = 2, + month = sep, + pages = {38--53}, + note = {Einbinden von Grafiken in {\LaTeX} mit Beispielen und + diversen Wandelprogrammen.}, + annote = bretter, + keywords = {Grafik, c't, Postscript, Rastergrafik, eps, Vektorgrafik, + Metafont, \PiCTeX, Xfig, \TeX{}cad, GhostScript, DVIPS, + em\TeX, RUMgraph, bm2font, hp2xx} +} + +@Article{ dtk93.2:dietsche:kopfzeilen, + author = {Luzia Dietsche}, + title = {Kopfzeilen mal anders}, + journal = dtk, + year = 1993, + volume = {2/93}, + altvolume = 5, + altnumber = 2, + month = sep, + pages = {54--55}, + note = {Beispiele zur Abwandlung der Kopfzeilen.}, + annote = schonimmer, + keywords = {Kopfzeilen, Markup} +} + +@Article{ dtk93.2:birkhahn:gegendarstellung, + author = {Lutz Birkhahn}, + title = {Gegendarstellung zum {A}rtikel {\glqq}{A}miga und + {\TeX}{\grqq}. 1/1993}, + journal = dtk, + year = 1993, + volume = {2/93}, + altvolume = 5, + altnumber = 2, + month = sep, + pages = {56--59}, + annote = leserbrief, + keywords = {Leserbrief, Amiga, cs\TeX, Atari, Gegendarstellung} +} + +@Article{ dtk93.2:strobel:fraktur, + author = {Franz Strobel}, + title = {Fraktur und \texttt{eqnarray}}, + journal = dtk, + year = 1993, + volume = {2/93}, + altvolume = 5, + altnumber = 2, + month = sep, + pages = {58--59}, + annote = leserbrief, + keywords = {Leserbrief, Fraktur, Formelsatz} +} + +@Article{ dtk93.2:mehl:anfaengerfragen, + author = {Albrecht Mehl}, + title = {Anf{\"a}ngerfragen}, + journal = dtk, + year = 1993, + volume = {2/93}, + altvolume = 5, + altnumber = 2, + month = sep, + pages = {59--61}, + note = {Mit einer Anmerkung der Redaktion}, + annote = leserbrief, + keywords = {Leserbrief, Promillezeichen, Umgebungen, Absatzformat, + Minimalsystem} +} + +@Article{ dtk93.3:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1993, + volume = {3/93}, + altvolume = 5, + altnumber = 3, + month = dec, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk93.3:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1993, + volume = {3/93}, + altvolume = 5, + altnumber = 3, + month = dec, + pages = {4--6}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk93.3:dietsche:protokoll, + author = {Luzia Dietsche}, + title = {Protokoll der 9.~{M}itgliederversammlung von {DANTE}, + {D}eutschsprachige {A}nwendervereinigung {\TeX} e.{V}.}, + journal = dtk, + year = 1993, + volume = {3/93}, + altvolume = 5, + altnumber = 3, + month = dec, + pages = {7--25}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk93.3:sowa:kassenbericht, + author = {Friedhelm Sowa}, + title = {Kassenbericht f{\"u}r den {Z}eitraum 1.1.1992--1.12.1992}, + journal = dtk, + year = 1993, + volume = {3/93}, + altvolume = 5, + altnumber = 3, + month = dec, + pages = {26--27}, + annote = hinterbuehne, + keywords = {Kassenbericht} +} + +@Article{ dtk93.3:steuer:cassettenhuellen, + author = {Arne W. Steuer}, + title = {Cassettenh{\"u}llen mit {\LaTeX}}, + journal = dtk, + year = 1993, + volume = {3/93}, + altvolume = 5, + altnumber = 3, + month = dec, + pages = {28--29}, + annote = bretter, + keywords = {Casettenh{\"u}llen, \verb|cassette.sty|} +} + +@Article{ dtk93.3:suchanek:mathematikaufgaben, + author = {Jan Suchanek}, + title = {Mathematikaufgaben mit {P}ascal und {\LaTeX}}, + journal = dtk, + year = 1993, + volume = {3/93}, + altvolume = 5, + altnumber = 3, + month = dec, + pages = {29--32}, + annote = bretter, + keywords = {Pascal, Aufgaben, Mathematik} +} + +@Article{ dtk93.3:goetz:asc2tex, + author = {Thomas K. G{\"o}tz}, + title = {{ASC}2{\TeX}: ein {K}onverter f{\"u}r {B}lockgrafik}, + journal = dtk, + year = 1993, + volume = {3/93}, + altvolume = 5, + altnumber = 3, + month = dec, + pages = {32--34}, + annote = bretter, + keywords = {Blockgrafik, ASC2\TeX} +} + +@Article{ dtk93.3:schleicher:kompatible, + author = {Ralph Schleicher}, + title = {Kompatible {\TeX}-{M}akros f{\"u}r erweiterte + {Z}eichens{\"a}tze}, + journal = dtk, + year = 1993, + volume = {3/93}, + altvolume = 5, + altnumber = 3, + month = dec, + pages = {34--39}, + annote = bretter, + keywords = {Schriften, Fonts, Makroprogrammierung, Makrodefinition} +} + +@Article{ dtk93.3:nitschke:markieren, + author = {Dirk Nitschke}, + title = {Markieren von {F}ormeln}, + journal = dtk, + year = 1993, + volume = {3/93}, + altvolume = 5, + altnumber = 3, + month = dec, + pages = {40--42}, + annote = bretter, + keywords = {Formelsatz} +} + +@Article{ dtk93.3:scherer:promillezeichen, + author = {Andreas Scherer}, + title = {Das {P}romillezeichen als {\TeX}-{M}akro \dots}, + journal = dtk, + year = 1993, + volume = {3/93}, + altvolume = 5, + altnumber = 3, + month = dec, + pages = {42--45}, + annote = bretter, + keywords = {Promillezeichen, Metafont} +} + +@Article{ dtk93.3:gewehr:vorsicht, + author = {Harald Gewehr}, + title = {Vorsicht {D}atenverlust!}, + journal = dtk, + year = 1993, + volume = {3/93}, + altvolume = 5, + altnumber = 3, + month = dec, + pages = {46--47}, + annote = schonimmer, + keywords = {Datenverlust, \verb|\include|} +} + +@Article{ dtk93.3:hesse:tex, + author = {Norbert Hesse}, + title = {Das {\TeX} \textsc{RunTime System} f{\"u}r {SCO} {U}nix}, + journal = dtk, + year = 1993, + volume = {3/93}, + altvolume = 5, + altnumber = 3, + month = dec, + pages = {48--52}, + annote = schonimmer, + keywords = {Unix, SCO Unix} +} + +@Article{ dtk93.3:erlmeier:amiga-news, + author = {Markus Erlmeier}, + title = {Amiga-{N}ews}, + journal = dtk, + year = 1993, + volume = {3/93}, + altvolume = 5, + altnumber = 3, + month = dec, + pages = {53--54}, + annote = schonimmer, + keywords = {Amiga, Pas\TeX, Amiga\TeX} +} + +@Article{ dtk93.3:meyer-lerbs:viel, + author = {Lothar Meyer-Lerbs}, + title = {Viel {N}eues auf dem {M}ac}, + journal = dtk, + year = 1993, + volume = {3/93}, + altvolume = 5, + altnumber = 3, + month = dec, + pages = {55--56}, + annote = schonimmer, + keywords = {Macintosh, Oz\TeX, CMac\TeX} +} + +@Article{ dtk93.3:getreu:anregungen, + author = {Jens Getreu}, + title = {Anregungen zu {NTS}}, + journal = dtk, + year = 1993, + volume = {3/93}, + altvolume = 5, + altnumber = 3, + month = dec, + pages = {57--58}, + annote = leserbrief, + keywords = {Leserbrief, NTS, \TeX-Entwicklung} +} + +@Article{ dtk93.4:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1993, + volume = {4/93}, + altvolume = 5, + altnumber = 4, + month = apr, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk93.4:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1993, + volume = {4/93}, + altvolume = 5, + altnumber = 4, + month = apr, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk93.4:dietsche:verlorengegangene, + author = {Luzia Dietsche}, + title = {Verlorengegangene {TUG}-{M}itglieder}, + journal = dtk, + year = 1993, + volume = {4/93}, + altvolume = 5, + altnumber = 4, + month = apr, + pages = {6--7}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk93.4:latex3-projekt:latex2e, + author = {{\LaTeX}3-Projekt}, + title = {{\LaTeXe} -- {A} {N}ew {V}ersion of {\LaTeX}}, + journal = dtk, + year = 1993, + volume = {4/93}, + altvolume = 5, + altnumber = 4, + month = apr, + pages = {8--10}, + annote = fremdebuehne, + keywords = {\LaTeX3, \LaTeX-Entwicklung} +} + +@Article{ dtk93.4:hassel:schachfigurensatz, + author = {Frank Hassel}, + title = {Schachfigurensatz mit {\TeX} und {\LaTeX}}, + journal = dtk, + year = 1993, + volume = {4/93}, + altvolume = 5, + altnumber = 4, + month = apr, + pages = {11--25}, + annote = bretter, + keywords = {Schachfiguren, \verb|chess.sty|, \verb|BdFchess.sty|} +} + +@Article{ dtk93.4:scherer:graphiken, + author = {Andreas Scherer}, + title = {Graphiken mit {G}nu{PLOT} und {\MF}}, + journal = dtk, + year = 1993, + volume = {4/93}, + altvolume = 5, + altnumber = 4, + month = apr, + pages = {26--30}, + annote = bretter, + keywords = {\textsc{GnuPlot}, Metafont, Graphik} +} + +@Article{ dtk93.4:brusberg:makeidx, + author = {Oliver Brusberg}, + title = {\emph{MakeIdx} -- ein (anderer) {I}ndexprozessor f{\"u}r + {\LaTeX}}, + journal = dtk, + year = 1993, + volume = {4/93}, + altvolume = 5, + altnumber = 4, + month = apr, + pages = {30--33}, + annote = bretter, + keywords = {MakeIdx, Index} +} + +@Article{ dtk93.4:lauschke:leidigen, + author = {Andreas Lauschke}, + title = {Diese leidigen {M}engenzeichen}, + journal = dtk, + year = 1993, + volume = {4/93}, + altvolume = 5, + altnumber = 4, + month = apr, + pages = {33--35}, + annote = bretter, + keywords = {Mengensymbole, Formelsatz, blackboard bold, bbold} +} + +@Article{ dtk93.4:dietsche:hokuspokus, + author = {Luzia Dietsche}, + title = {Hokuspokus}, + journal = dtk, + year = 1993, + volume = {4/93}, + altvolume = 5, + altnumber = 4, + month = apr, + pages = {30--37}, + annote = schonimmer, + keywords = {} +} + +@Article{ dtk93.4:kamlage:texstar, + author = {Michael Kamlage}, + title = {{\TeX}{S}tar -- {E}ine {O}berfl{\"a}che f{\"u}r {\TeX} und + {\LaTeX}}, + journal = dtk, + year = 1993, + volume = {4/93}, + altvolume = 5, + altnumber = 4, + month = apr, + pages = {38--39}, + annote = beiprogramm, + keywords = {\TeX{}Star, Oberfl{\"a}che} +} + +@Article{ dtk93.4:schank:tex, + author = {Michael Schank}, + title = {{\TeX} und {OS}/22.x}, + journal = dtk, + year = 1993, + volume = {4/93}, + altvolume = 5, + altnumber = 4, + month = apr, + pages = {39--40}, + annote = beiprogramm, + keywords = {OS/2, em\TeX} +} + +@Article{ dtk93.4:erlmeier:rund, + author = {Markus Erlmeier}, + title = {Rund um den {A}miga}, + journal = dtk, + year = 1993, + volume = {4/93}, + altvolume = 5, + altnumber = 4, + month = apr, + pages = {40--43}, + annote = beiprogramm, + keywords = {Amiga, Pas\TeX, Amiga\TeX} +} + +@Article{ dtk93.4:breuer:word, + author = {Stefan Breuer}, + title = {{WORD}, {\TeX} und {A}lcuin}, + journal = dtk, + year = 1993, + volume = {4/93}, + altvolume = 5, + altnumber = 4, + month = apr, + pages = {44--45}, + annote = beiprogramm, + keywords = {Word, Alcuin} +} + +@Article{ dtk93.4:zierke:latex, + author = {Reinhard Zierke}, + title = {The {\LaTeX} {C}ompanion}, + journal = dtk, + year = 1993, + volume = {4/93}, + altvolume = 5, + altnumber = 4, + month = apr, + pages = {46--48}, + annote = beiprogramm, + keywords = {} +} + +@Article{ dtk93.4:hrebabetzky:farbiger, + author = {Frank Hrebabetzky}, + title = {Farbiger {D}ruck}, + journal = dtk, + year = 1993, + volume = {4/93}, + altvolume = 5, + altnumber = 4, + month = apr, + pages = 49, + annote = leserbrief, + keywords = {Leserbrief} +} + +@Article{ dtk94.1:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1994, + volume = {1/94}, + altvolume = 6, + altnumber = 1, + month = jul, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk94.1:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1994, + volume = {1/94}, + altvolume = 6, + altnumber = 1, + month = jul, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk94.1:dietsche:protokoll, + author = {Luzia Dietsche}, + title = {Protokoll der 10.~{M}itgliederversammlung von {DANTE}, + {D}eutschsprachige {A}nwendervereinigung {\TeX} e.{V}.}, + journal = dtk, + year = 1994, + volume = {1/94}, + altvolume = 6, + altnumber = 1, + month = jul, + pages = {6--22}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk94.1:thewalt:dante94, + author = {Volker Thewalt}, + title = {{DANTE}'94 in {M}{\"u}nster -- ein kurzer + {T}agungsbericht}, + journal = dtk, + year = 1994, + volume = {1/94}, + altvolume = 6, + altnumber = 1, + month = jul, + pages = {23--27}, + annote = theatertage, + keywords = {Tagungsbericht} +} + +@Article{ dtk94.1:hosek:writers, + author = {Don Hosek}, + title = {Writers on type and typography needed}, + journal = dtk, + year = 1994, + volume = {1/94}, + altvolume = 6, + altnumber = 1, + month = jul, + pages = 28, + annote = fremdebuehne, + keywords = {Typographie} +} + +@Article{ dtk94.1:scherer:graphiken, + author = {Andreas Scherer}, + title = {Graphiken mit \textsc{GnuPlot} und {\MF} -- {K}orrektur}, + journal = dtk, + year = 1994, + volume = {1/94}, + altvolume = 6, + altnumber = 1, + month = jul, + pages = {29--33}, + annote = bretter, + keywords = {\textsc{GnuPlot}, Metafont, Graphik} +} + +@Article{ dtk94.1:baas:tex-makros, + author = {Michael Baas}, + title = {{\TeX}-{M}akros f{\"u}r {F}ortgelaufene}, + journal = dtk, + year = 1994, + volume = {1/94}, + altvolume = 6, + altnumber = 1, + month = jul, + pages = {34--40}, + annote = bretter, + abstract = {Anhand eines konkreten Beispiels, {\"u}ber dessen + praktische Zul{\"a}ssigkeit die {\glqq}Fundis{\grqq} unter + den {\TeX}-Anwendern sicherlich hei{\ss}e Diskussionen + f{\"u}hren k{\"o}nnten, wird das Problem aufgezeigt, einen + allgemeinen {\glqq}Definitionsmechanismus{\grqq} f{\"u}r + Makros zu entwickeln. Es werden schlie{\ss}lich drei Makros + entwickelt, die es in verschiedenen Varianten erlauben, + beliebige Zeichen als Makro zu definieren.}, + keywords = {Makrodefinition, Makroprogrammierung} +} + +@Article{ dtk94.1:steuer:postkarten, + author = {Arne W. Steuer}, + title = {Postkarten mit {P}as{\TeX} auf dem {A}miga}, + journal = dtk, + year = 1994, + volume = {1/94}, + altvolume = 6, + altnumber = 1, + month = jul, + pages = {40--41}, + annote = bretter, + keywords = {Amiga, Pas\TeX, Postkarten, \verb|postcard.sty|} +} + +@Article{ dtk94.1:hirsch:dezimalkomma, + author = {Richard Hirsch}, + title = {Dezimalkomma beim {\TeX}satz in deutsch}, + journal = dtk, + year = 1994, + volume = {1/94}, + altvolume = 6, + altnumber = 1, + month = jul, + pages = {42--45}, + annote = bretter, + abstract = {Wenn man in Dezimalbr{\"u}chen einfach ein Komma als + Dezimaltrennzeichen verwendet, erh{\"a}lt man unsch{\"o}ne + Abst{\"a}nde im Ausdruck. Hier wird eine Definition f{\"u}r + das Komma im mathematischen modus vorgestellt, die von + selbst erkennt, ob es sich um ein Satzzeichen oder ein + Dezimalkomma handelt, und entsprechende Abst{\"a}nde + einf{\"u}gt.}, + keywords = {Dezimalkomma, Formelsatz, Komma in Zahlen, Mathematik} +} + +@Article{ dtk94.1:dietsche:seitenzahlen, + author = {Luzia Dietsche}, + title = {Seitenzahlen}, + journal = dtk, + year = 1994, + volume = {1/94}, + altvolume = 6, + altnumber = 1, + month = jul, + pages = {46--47}, + annote = schonimmer, + keywords = {Seitenzahlen, Markup, \verb|\thepage|} +} + +@Article{ dtk94.1:lehrke:linux, + author = {J{\"o}rg Lehrke}, + title = {Linu{X} -- ein freies *nix f{\"u}r {PC}s}, + journal = dtk, + year = 1994, + volume = {1/94}, + altvolume = 6, + altnumber = 1, + month = jul, + pages = {48--51}, + annote = beiprogramm, + keywords = {Linux, Unix} +} + +@Article{ dtk94.1:hansen:mut, + author = {Oliver Hansen}, + title = {Mut zur {T}ypographie}, + journal = dtk, + year = 1994, + volume = {1/94}, + altvolume = 6, + altnumber = 1, + month = sep, + pages = {52--53}, + annote = rezension, + keywords = {Rezension, DTP, Typographie} +} + +@Article{ dtk94.1:schroeder:mehr, + author = {Martin Schr{\"o}der}, + title = {Mehr {P}romillezeichen}, + journal = dtk, + year = 1994, + volume = {1/94}, + altvolume = 6, + altnumber = 1, + month = jul, + pages = 54, + annote = leserbrief, + keywords = {Leserbrief, Promillezeichen, wasy, Waldis Symbol Font, + Fonts, Schriften} +} + +@Article{ dtk94.1:wolfrum-jr-:os2, + author = {Philipp {Wolfrum jr.}}, + title = {{OS/2} und {\TeX}}, + journal = dtk, + year = 1994, + volume = {1/94}, + altvolume = 6, + altnumber = 1, + month = jul, + pages = {54--55}, + annote = leserbrief, + keywords = {Leserbrief, OS/2} +} + +@Article{ dtk94.2:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1994, + volume = {2/94}, + altvolume = 6, + altnumber = 2, + month = sep, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk94.2:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1994, + volume = {2/94}, + altvolume = 6, + altnumber = 2, + month = sep, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk94.2:guenther:verwaltungskueche, + author = {J{\"u}rgen G{\"u}nther}, + title = {Aus der {V}erwaltungsk{\"u}che}, + journal = dtk, + year = 1994, + volume = {2/94}, + altvolume = 6, + altnumber = 2, + month = sep, + pages = {5--7}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk94.2:lammarsch:fonds, + author = {Joachim Lammarsch}, + title = {Fonds zur {U}nterst{\"u}tzung von {M}itgliedern}, + journal = dtk, + year = 1994, + volume = {2/94}, + altvolume = 6, + altnumber = 2, + month = sep, + pages = 7, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk94.2:schrell:stammtisch, + author = {Andreas Schrell}, + title = {Der {S}tammtisch in {W}uppertal}, + journal = dtk, + year = 1994, + volume = {2/94}, + altvolume = 6, + altnumber = 2, + month = sep, + pages = {8--10}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk94.2:zapf:has, + author = {Hermann Zapf}, + title = {Has type design any future}, + journal = dtk, + year = 1994, + volume = {2/94}, + altvolume = 6, + altnumber = 2, + month = sep, + pages = {11--13}, + annote = fremdebuehne, + keywords = {Stammtisch} +} + +@Article{ dtk94.2:raichle:tex3, + author = {Bernd Raichle}, + title = {{\TeX3} von {V}ersion 3.0 bis 3.1415}, + journal = dtk, + year = 1994, + volume = {2/94}, + altvolume = 6, + altnumber = 2, + month = sep, + pages = {14--26}, + annote = bretter, + keywords = {\TeX-Entwicklung} +} + +@Article{ dtk94.2:schmidt:umsteigen, + author = {Walter Schmidt}, + title = {Umsteigen auf {\LaTeXe}}, + journal = dtk, + year = 1994, + volume = {2/94}, + altvolume = 6, + altnumber = 2, + month = sep, + pages = {26--31}, + annote = bretter, + keywords = {\LaTeXe-Installation, \LaTeX~2.09} +} + +@Article{ dtk94.2:schmidt:latex, + author = {Walter Schmidt}, + title = {{\LaTeX} f{\"u}r {T}echniker}, + journal = dtk, + year = 1994, + volume = {2/94}, + altvolume = 6, + altnumber = 2, + month = sep, + pages = {32--36}, + annote = bretter, + keywords = {Formelsatz} +} + +@Article{ dtk94.2:szillat:internet-anschluss, + author = {Horst Szillat}, + title = {Internet-{A}nschlu{\ss} -- selbst gebastelt}, + journal = dtk, + year = 1994, + volume = {2/94}, + altvolume = 6, + altnumber = 2, + month = sep, + pages = {37--39}, + annote = beiprogramm, + keywords = {Internet} +} + +@Article{ dtk94.2:schank:tex, + author = {Michael Schank}, + title = {{\TeX} und {OS/2} 2.x}, + journal = dtk, + year = 1994, + volume = {2/94}, + altvolume = 6, + altnumber = 2, + month = sep, + pages = {39--42}, + annote = beiprogramm, + keywords = {OS/2, Emacs, Auc\TeX} +} + +@Article{ dtk94.2:porto:tex-service, + author = {Markus Porto}, + title = {{\TeX}-{S}ervice des {HRZ} der {U}niversit{\"a}t + {G}ie{\ss}en}, + journal = dtk, + year = 1994, + volume = {2/94}, + altvolume = 6, + altnumber = 2, + month = sep, + pages = {43--46}, + annote = beiprogramm, + keywords = {Online-Hilfe, WWW} +} + +@Article{ dtk94.2:schoepf:buecher, + author = {Rainer Sch{\"o}pf}, + title = {Zwei neue {B}{\"u}cher}, + journal = dtk, + year = 1994, + volume = {2/94}, + altvolume = 6, + altnumber = 2, + month = sep, + pages = {47--49}, + annote = rezension, + keywords = {Rezension} +} + +@Article{ dtk94.2:mittelbach:seitenzahlen, + author = {Frank Mittelbach}, + title = {Seitenzahlen}, + journal = dtk, + year = 1994, + volume = {2/94}, + altvolume = 6, + altnumber = 2, + month = sep, + pages = {50--52}, + annote = leserbrief, + keywords = {Leserbrief, Markup, Seitenzahlen, + \verb|fancyheadings|-Paket} +} + +@Article{ dtk94.3:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk94.3:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk94.3:dietsche:protokoll, + author = {Luzia Dietsche}, + title = {Protokoll der 11.~{M}itgliederversammlung von {DANTE}. + {D}eutschsprachige {A}nwendervereinigung {\TeX} e.{V}.}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = {6--17}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk94.3:team:latex, + author = {{\LaTeX} Programming Team}, + title = {{\LaTeX} {N}ews, {I}ssue2, {D}ecember 1994}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = {18--20}, + annote = fremdebuehne, + keywords = {\LaTeX-News, \LaTeX-Entwicklung} +} + +@Article{ dtk94.3:kayssner:handbuecher, + author = {Christian Kayssner}, + title = {Handb{\"u}cher}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = {21--24}, + annote = bretter, + keywords = {Handb{\"u}cher, Booklets, A4, A5, \verb|DOUBLE|} +} + +@Article{ dtk94.3:steuer:style-files, + author = {Arne W. Steuer}, + title = {Style-{F}iles -- leicht gemacht}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = {25--30}, + annote = bretter, + abstract = {Es wird geschildert, wie insbesondere {\LaTeX}-Einsteiger + einfache Stil-Optionen (Style-Files) selbst entwickeln + k{\"o}nnen. Grundsatz dabei ist: Vom Speziellen zum + Allgemeinen. Beispielhaft wird die Erstellung eines + Style-Files zum Beschriften von Aktenordnern beschrieben. + Im Vordergrund steht dabei nicht die Ber{\"u}cksichtigung + von Tricks und Feinheiten der Makroprogrammierung. Vielmehr + ist es Ziel, eine leicht nachvollziehbare Vorgehensweise + darzustellen, die zu einfachen aber funktionierenden + Ergebnissen f{\"u}hrt und zu eigenen Experimenten anregt.}, + keywords = {Makrodefinition, Makroprogrammierung, Styles erstellen, } +} + +@Article{ dtk94.3:erlmeier:bericht, + author = {Markus Erlmeier}, + title = {Bericht des technischen {B}eirates -- {A}miga}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = {31--33}, + annote = beiprogramm, + keywords = {Amiga} +} + +@Article{ dtk94.3:birkhahn.lindner:bericht, + author = {Lutz Birkhahn and Stefan Lindner}, + title = {Bericht des technischen {B}eirates -- {A}tari}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = {33--34}, + annote = beiprogramm, + keywords = {Atari} +} + +@Article{ dtk94.3:sowa:bericht, + author = {Friedhelm Sowa}, + title = {Bericht des technischen {B}eirates -- {BS}2000 {\&} + {G}raphik}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = {34--35}, + annote = beiprogramm, + keywords = {BS2000, Graphik} +} + +@Article{ dtk94.3:meyer-lerbs:bericht, + author = {Lothar Meyer-Lerbs}, + title = {Bericht des technischen {B}eirates -- {M}acintosh}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = {35--36}, + annote = beiprogramm, + keywords = {Macintosh} +} + +@Article{ dtk94.3:lammarsch:bericht, + author = {Joachim Lammarsch}, + title = {Bericht des technischen {B}eirates -- {MVS}}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = 36, + annote = beiprogramm, + keywords = {MVS} +} + +@Article{ dtk94.3:schwarz:bericht, + author = {Norbert Schwarz}, + title = {Bericht des technischen {B}eirates -- {NOS/VE} {\&} {\MF}}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = 36, + annote = beiprogramm, + keywords = {NOS/VE, Metafont} +} + +@Article{ dtk94.3:koch:bericht, + author = {Thomas Koch}, + title = {Bericht des technischen {B}eirates -- {OS/2}}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = 36, + annote = beiprogramm, + keywords = {OS/2} +} + +@Article{ dtk94.3:breitenlohner:bericht, + author = {Peter Breitenlohner}, + title = {Bericht des technischen {B}eirates -- {PC}}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = 37, + annote = beiprogramm, + keywords = {PC} +} + +@Article{ dtk94.3:braune:bericht, + author = {Klaus Braune}, + title = {Bericht des technischen {B}eirates -- {UNIX}}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = {37--38}, + annote = beiprogramm, + keywords = {UNIX} +} + +@Article{ dtk94.3:friesland-koepke:bericht, + author = {Gerhard Friesland-K{\"o}pke}, + title = {Bericht des technischen {B}eirates -- {VAX/VMS}}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = {38--39}, + annote = beiprogramm, + keywords = {VAX, VMS} +} + +@Article{ dtk94.3:bayer:bericht, + author = {Georg Bayer}, + title = {Bericht des technischen {B}eirates -- {VM}}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = 39, + annote = beiprogramm, + keywords = {VM} +} + +@Article{ dtk94.3:raichle:bericht, + author = {Bernd Raichle}, + title = {Bericht des technischen {B}eirates -- {G}erman Style}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = {39--40}, + annote = beiprogramm, + keywords = {german-Style} +} + +@Article{ dtk94.3:burkhard:bericht, + author = {Wener Burkhard}, + title = {Bericht des technischen {B}eirates -- + {L}ehrerfortbildung}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = 40, + annote = beiprogramm, + keywords = {Lehrerfortbildung} +} + +@Article{ dtk94.3:gloeckner:bericht, + author = {J{\"u}rgen Gl{\"o}ckner}, + title = {Bericht des technischen {B}eirates -- {P}ostScript}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = {40--41}, + annote = beiprogramm, + keywords = {PostScript} +} + +@Article{ dtk94.3:schoepf:bericht, + author = {Rainer Sch{\"o}pf}, + title = {Bericht des technischen {B}eirates -- + {S}erver-{K}oordination}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = 41, + annote = beiprogramm, + keywords = {Server} +} + +@Article{ dtk94.3:schrod:bericht, + author = {Joachim Schrod}, + title = {Bericht des technischen {B}eirates -- {T}reiber}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = {42--44}, + annote = beiprogramm, + keywords = {Treiber} +} + +@Article{ dtk94.3:loeser:bericht, + author = {Christa Loeser}, + title = {Bericht des technischen {B}eirates -- {V}erlag und + {B}uchhandel}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = {44-45}, + annote = beiprogramm, + keywords = {Verlag, Buchhandel} +} + +@Article{ dtk94.3:ringhandt:a4, + author = {Andreas Ringhandt}, + title = {Von {A}4 zu {A}5}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = {46--47}, + annote = leserbrief, + keywords = {Leserbrief, A4, A5} +} + +@Article{ dtk94.3:breuer:ftp-server, + author = {Stefan Breuer}, + title = {ftp-{S}erver, {CD-ROM} oder {D}isketten? {D}ie + {V}erteilermedien f{\"u}r {\TeX}}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = {47--49}, + annote = leserbrief, + keywords = {Leserbrief, ftp, CD-ROM, Disketten} +} + +@Article{ dtk94.3:kastrup:tex-makros, + author = {David Kastrup}, + title = {{\TeX}-{M}akros f{\"u}r {F}ortgelaufene}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = {49--52}, + annote = leserbrief, + keywords = {Leserbrief, Makrodefinition, Makroprogrammierung} +} + +@Article{ dtk94.3:kusznier:verwaltungskueche, + author = {Heinz Kusznier}, + title = {Aus der {V}erwaltungsk{\"u}che}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = 53, + annote = leserbrief, + keywords = {Leserbrief} +} + +@Article{ dtk94.3:schroeder:gedanken, + author = {Martin Schr{\"o}der}, + title = {Gedanken zum {G}edankenstrich}, + journal = dtk, + year = 1994, + volume = {3/94}, + altvolume = 6, + altnumber = 3, + month = sep, + pages = {53--55}, + annote = leserbrief, + keywords = {Leserbrief, Gedankenstriche} +} + +@Article{ dtk94.4:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1994, + volume = {4/94}, + altvolume = 6, + altnumber = 4, + month = feb, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk94.4:neugebauer:bibtool, + author = {Gerd Neugebauer}, + title = {\textsc{BibTool} -- {M}anipulation von {\BibTeX}-{D}ateien}, + journal = dtk, + year = 1994, + volume = {4/94}, + altvolume = 6, + altnumber = 4, + month = feb, + pages = {4--11}, + annote = bretter, + abstract = {Es war einmal, da versp{\"u}rte ich das dringende + Bed{\"u}rfnis, \BibTeX-Dateien aus verschiedenen Quellen + zusammen weiterzugeben. Da es sich dabei nicht nur um + einige wenige Eintr{\"a}ge in den \BibTeX-Dateien handelte, + ergaben sich daraus diverse Aufgaben, die gel{\"o}st werden + mu{\ss}ten. Das einfachste Problem war, da{\ss} das + Erscheinungsbild vereinheitlicht werden sollte. Das + bedeutet, da{\ss} die Dateien neu formatiert werden + m{\"u}ssen. Das n{\"a}chste Problem war, die + Vereinheitlichung der Schl{\"u}ssel, unter denen die + \BibTeX-Eintr{\"a}ge angesprochen werden sollen. + Schlie{\ss}lich und endlich ergab sich das Problem, die + Dateien zu sortieren. \par Da es damals noch keine + entsprechenden Werkzeuge gab -- insbesondere nicht f{\"u}r + den Rechner, den ich damals verwendete -- wurde das + \textsc{BibTool}-Programm geboren. Als dann einmal die + grundlegenden Funktionen geschrieben waren, kamen noch + weitere hinzu, soda{\ss} man \textsc{BibTool} heute als das + Schweizer-Armee-Messer zur \BibTeX-Vorverarbeitung bezeichnen k{\"o}nnte.}, + keywords = {BibTeX, BibTool, Literaturverzeichnis} +} + +@Article{ dtk94.4:schmidt:computer, + author = {Walter Schmidt}, + title = {Computer {M}odern {B}right}, + journal = dtk, + year = 1994, + volume = {4/94}, + altvolume = 6, + altnumber = 4, + month = feb, + pages = {11--16}, + annote = bretter, + keywords = {Schriften, Fonts, Computer Modern Bright, } +} + +@Article{ dtk94.4:raichle:orale, + author = {Bernd Raichle}, + title = {Orale {S}pielereien mit {\TeX} -- {T}eil {I}}, + journal = dtk, + year = 1994, + volume = {4/94}, + altvolume = 6, + altnumber = 4, + month = feb, + pages = {16--23}, + annote = bretter, + keywords = {Makroverarbeitung, Makrodefinition, Makroprogrammierung, + Schleifen} +} + +@Article{ dtk94.4:eckermann:paralleles, + author = {Matthias Eckermann}, + title = {Paralleles {S}etzen l{\"a}ngerer {T}exte}, + journal = dtk, + year = 1994, + volume = {4/94}, + altvolume = 6, + altnumber = 4, + month = feb, + pages = {23--27}, + annote = bretter, + keywords = {paralleles Setzen, zweisprachiges Setzen} +} + +@Article{ dtk94.4:dietsche:absatzformen, + author = {Luzia Dietsche}, + title = {Absatzformen}, + journal = dtk, + year = 1994, + volume = {4/94}, + altvolume = 6, + altnumber = 4, + month = feb, + pages = {28--30}, + annote = schonimmer, + keywords = {Absatzformat, \verb|\leftskip|, \verb|\rightskip|, + \verb|\parfillskip|, Markup} +} + +@Article{ dtk94.4:pfeiffer:winword, + author = {Horst Pfeiffer}, + title = {Win{W}ord versus {\LaTeX}}, + journal = dtk, + year = 1994, + volume = {4/94}, + altvolume = 6, + altnumber = 4, + month = feb, + pages = {31--34}, + annote = leserbrief, + keywords = {Leserbrief, WinWord} +} + +@Article{ dtk94.4:schank:texit, + author = {Michael Schank}, + title = {{\TeX}{IT}! for {OS}/2}, + journal = dtk, + year = 1994, + volume = {4/94}, + altvolume = 6, + altnumber = 4, + month = feb, + pages = {34--35}, + annote = leserbrief, + keywords = {Leserbrief, OS/2, em\TeX} +} + +@Article{ dtk94.4:dietsche:rechtschreibreform, + author = {Luzia Dietsche}, + title = {Rechtschreibreform}, + journal = dtk, + year = 1994, + volume = {4/94}, + altvolume = 6, + altnumber = 4, + month = feb, + pages = {35--36}, + annote = leserbrief, + keywords = {Leserbrief, Humor, Satire} +} + +@Article{ dtk94.4:schoppmann:tex, + author = {Harald Schoppmann}, + title = {{\TeX} f{\"u}r {H}eimwerker}, + journal = dtk, + year = 1994, + volume = {4/94}, + altvolume = 6, + altnumber = 4, + month = feb, + pages = {37--39}, + annote = rezension, + keywords = {Rezension} +} + +@Article{ dtk95.1:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = {3}, + annote = editorial, + keywords = {} +} + +@Article{ dtk95.1:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk95.1:dietsche:protokoll, + author = {Luzia Dietsche}, + title = {Protokoll der 12.~{M}itgliederversammlung von {DANTE}, + {D}eutschsprachige {A}nwendervereinigung {\TeX} e.{V}}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = {5--18}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk95.1:unger:mailbox, + author = {J{\"u}rgen Unger}, + title = {Die {M}ailbox von {DANTE} e.{V}. -- es ist vollbracht}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = {18--20}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk95.1:feuerstack:zauber, + author = {Thomas Feuerstack}, + title = {Der {Z}auber eines {L}{\"a}chelns}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = {20--25}, + annote = theatertage, + keywords = {Tagungsbericht} +} + +@Article{ dtk95.1:mittelbach:math, + author = {Frank Mittelbach}, + title = {Math {F}ont {E}ncoding}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = {26--27}, + annote = fremdebuehne, + keywords = {Fonts (math), \LaTeX3} +} + +@Article{ dtk95.1:splett:russische, + author = {Siegfried Splett}, + title = {Das russische {A}lphabet -- mit + {\glqq}{B}ordmitteln{\grqq} erstellt}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = {28--30}, + annote = bretter, + keywords = {Fonts, Schriften, Kyrillisch} +} + +@Article{ dtk95.1:porto:weiterhin, + author = {Markus Porto}, + title = {Weiterhin guten {A}ppetit!}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = {31--32}, + annote = beiprogramm, + keywords = {} +} + +@Article{ dtk95.1:erlmeier:bericht, + author = {Markus Erlmeier}, + title = {Bericht des technischen {B}eirates -- {A}miga}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = {32}, + annote = beiprogramm, + keywords = {Amiga} +} + +@Article{ dtk95.1:birkhahn.lindner:bericht, + author = {Lutz Birkhahn and Stefan Lindner}, + title = {Bericht des technischen {B}eirates -- {A}tari}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = {32--33}, + annote = beiprogramm, + keywords = {Atari} +} + +@Article{ dtk95.1:sowa:bericht, + author = {Friedhelm Sowa}, + title = {Bericht des technischen {B}eirates -- {BS}2000 {\&} + {G}raphik}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = {33--34}, + annote = beiprogramm, + keywords = {BS2000, Graphik} +} + +@Article{ dtk95.1:meyer-lerbs:bericht, + author = {Lothar Meyer-Lerbs}, + title = {Bericht des technischen {B}eirates -- {M}acintosh}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = {34}, + annote = beiprogramm, + keywords = {Macintosh} +} + +@Article{ dtk95.1:lammarsch:bericht, + author = {Joachim Lammarsch}, + title = {Bericht des technischen {B}eirates -- {MVS}}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = 34, + annote = beiprogramm, + keywords = {MVS} +} + +@Article{ dtk95.1:koch:bericht, + author = {Thomas Koch}, + title = {Bericht des technischen {B}eirates -- {OS/2}}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = {34--35}, + annote = beiprogramm, + keywords = {OS/2} +} + +@Article{ dtk95.1:braune:bericht, + author = {Klaus Braune}, + title = {Bericht des technischen {B}eirates -- {UNIX}}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = {35--36}, + annote = beiprogramm, + keywords = {UNIX} +} + +@Article{ dtk95.1:bayer:bericht, + author = {Georg Bayer}, + title = {Bericht des technischen {B}eirates -- {VM}}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = 36, + annote = beiprogramm, + keywords = {VM} +} + +@Article{ dtk95.1:raichle:bericht, + author = {Bernd Raichle}, + title = {Bericht des technischen {B}eirates -- {G}erman {S}tyle}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = {36--37}, + annote = beiprogramm, + keywords = {german-Style} +} + +@Article{ dtk95.1:burkhard:bericht, + author = {Wener Burkhard}, + title = {Bericht des technischen {B}eirates -- + {L}ehrerfortbildung}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = {37}, + annote = beiprogramm, + keywords = {Lehrerfortbildung} +} + +@Article{ dtk95.1:schoepf:bericht, + author = {Rainer Sch{\"o}pf}, + title = {Bericht des technischen {B}eirates -- + {S}erver-{K}oordination}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = {38--39}, + annote = beiprogramm, + keywords = {Server} +} + +@Article{ dtk95.1:schrod:bericht, + author = {Joachim Schrod}, + title = {Bericht des technischen {B}eirates -- + dvi-{T}reiberentwicklung und {SGML}}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = {38--41}, + annote = beiprogramm, + keywords = {Treiber, SGML} +} + +@Article{ dtk95.1:loeser:bericht, + author = {Christa Loeser}, + title = {Bericht des technischen {B}eirates -- {V}erlag und + {B}uchhandel}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = {41--42}, + annote = beiprogramm, + keywords = {Verlag, Buchhandel} +} + +@Article{ dtk95.1:dietsche:tex, + author = {Luzia Dietsche}, + title = {{\TeX}: starting from 1}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = {43--44}, + annote = rezension, + keywords = {Rezension} +} + +@Article{ dtk95.1:braun:winword, + author = {Jan Braun}, + title = {Win{W}ord versus {\LaTeX}, {H}eft 4/94}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = {45--48}, + annote = leserbrief, + keywords = {Leserbrief, WinWord} +} + +@Article{ dtk95.1:bauhaus:gedanken, + author = {Georg Bauhaus}, + title = {Gedanken zu {G}edanken zu {G}edankenstrichen}, + journal = dtk, + year = 1995, + volume = {1/95}, + altvolume = 7, + altnumber = 1, + month = may, + pages = {48--50}, + annote = leserbrief, + keywords = {Leserbrief, Gedankenstriche} +} + +@Article{ dtk95.2:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1995, + volume = {2/95}, + altvolume = 7, + altnumber = 2, + month = sep, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk95.2:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1995, + volume = {2/95}, + altvolume = 7, + altnumber = 2, + month = sep, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk95.2:team:modifying, + author = {\LaTeX3{} Project Team}, + title = {Modifying {\LaTeXe}}, + journal = dtk, + year = 1995, + volume = {2/95}, + altvolume = 7, + altnumber = 2, + month = sep, + pages = {6--10}, + annote = fremdebuehne, + keywords = {\LaTeX-Entwicklung, \LaTeX3} +} + +@Article{ dtk95.2:neugebauer:setzen, + author = {Gerd Neugebauer}, + title = {Setzen russischer {T}extteile mit {\LaTeX}}, + journal = dtk, + year = 1995, + volume = {2/95}, + altvolume = 7, + altnumber = 2, + month = sep, + pages = {11--20}, + annote = bretter, + abstract = {In diesem Beitrag werden M{\"o}glichkeiten aufgezeigt, wie + Texte mit kyrillischen Zeichen in einem normalen Text + eingebracht werden k{\"o}nnen. Dabei werden insbesondere + die kyrillischen Zeichens{\"a}tze der University of + Washington vorgestellt.}, + keywords = {Metafont, Schriften, Fonts, Kyrillisch, wncyr, cmcyr} +} + +@Article{ dtk95.2:raichle:orale, + author = {Bernd Raichle}, + title = {Orale {S}pielereien mit {\TeX} -- {T}eil {II}}, + journal = dtk, + year = 1995, + volume = {2/95}, + altvolume = 7, + altnumber = 2, + month = sep, + pages = {20--30}, + annote = bretter, + keywords = {Makroverarbeitung, Makrodefinition, Makroprogrammierung, + \verb|\relax|} +} + +@Article{ dtk95.2:malek:style-files, + author = {Matthias Malek}, + title = {Style-{F}iles -- leicht gemacht -- zum {Z}weiten}, + journal = dtk, + year = 1995, + volume = {2/95}, + altvolume = 7, + altnumber = 2, + month = sep, + pages = {31--35}, + annote = bretter, + keywords = {Styles erstellen} +} + +@Article{ dtk95.2:raichle:datumsangaben, + author = {Bernd Raichle}, + title = {Datumsangaben}, + journal = dtk, + year = 1995, + volume = {2/95}, + altvolume = 7, + altnumber = 2, + month = sep, + pages = {36--37}, + annote = schonimmer, + keywords = {Datumsangaben} +} + +@Article{ dtk95.2:hanneder:tex, + author = {J{\"u}rgen Hanneder}, + title = {{\TeX} unter {OS/2} f{\"u}r akademische {M}inderheiten}, + journal = dtk, + year = 1995, + volume = {2/95}, + altvolume = 7, + altnumber = 2, + month = sep, + pages = {38--41}, + annote = beiprogramm, + keywords = {OS/2, em\TeX, Auc\TeX, Editor, Emacs} +} + +@Article{ dtk95.2:neugebauer:kurioses, + author = {Gerd Neugebauer}, + title = {Kurioses aus dem {F}undus}, + journal = dtk, + year = 1995, + volume = {2/95}, + altvolume = 7, + altnumber = 2, + month = sep, + pages = {41--43}, + annote = beiprogramm, + keywords = {Fontumschaltbefehle, \verb|\normalsize|, \verb|\small|, + \verb|\scriptsize|}, + abstract = {In diesem Beitrag werden einige Merkw{\"u}rdigkeiten in + den Definitionen der Fontumschaltungsbefehle + \verb|\normalsize|, \verb|\small| und \verb|\scriptsize| in + \LaTeX{} ausgezeigt.} +} + +@Article{ dtk95.2:jones:underfull, + author = {Frankeye Jones}, + title = {The {U}nderfull {B}adness {B}lues}, + journal = dtk, + year = 1995, + volume = {2/95}, + altvolume = 7, + altnumber = 2, + month = sep, + pages = 44, + annote = beiprogramm, + keywords = {Humor, Satire} +} + +@Article{ dtk95.2:dietsche:fachwoerterbuch, + author = {Luzia Dietsche}, + title = {Fachw{\"o}rterbuch {K}ommunikationsdesign}, + journal = dtk, + year = 1995, + volume = {2/95}, + altvolume = 7, + altnumber = 2, + month = sep, + pages = {46--47}, + annote = rezension, + keywords = {Rezension, Kommunikationsdesign} +} + +@Article{ dtk95.3:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1995, + volume = {3/95}, + altvolume = 7, + altnumber = 3, + month = dec, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk95.3:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1995, + volume = {3/95}, + altvolume = 7, + altnumber = 3, + month = dec, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk95.3:dietsche:protokoll, + author = {Luzia Dietsche}, + title = {Protokoll der 13.~{M}itgliederversammlung von {DANTE}, + {D}eutschsprachige {A}nwendervereinigung {\TeX} e.{V}.}, + journal = dtk, + year = 1995, + volume = {3/95}, + altvolume = 7, + altnumber = 3, + month = dec, + pages = {6--20}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk95.3:lammarsch:aera, + author = {Joachim Lammarsch}, + title = {Die {\"A}ra des {P}r{\"a}sidenten geht zu {E}nde \dots}, + journal = dtk, + year = 1995, + volume = {3/95}, + altvolume = 7, + altnumber = 3, + month = dec, + pages = {20--21}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk95.3:lammarsch:fonds, + author = {Joachim Lammarsch}, + title = {Fonds zur {U}nterst{\"u}tzung von {M}itgliedern}, + journal = dtk, + year = 1995, + volume = {3/95}, + altvolume = 7, + altnumber = 3, + month = dec, + pages = 21, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk95.3:raichle:tex, + author = {Bernd Raichle}, + title = {{\TeX} {C}apacity exceeded \dots{} -- {T}eil {I}}, + journal = dtk, + year = 1995, + volume = {3/95}, + altvolume = 7, + altnumber = 3, + month = dec, + pages = {22--33}, + annote = bretter, + keywords = {\TeX Capacity exceeded, Zwischenspeicher} +} + +@Article{ dtk95.3:erlmeier:bericht, + author = {Markus Erlmeier}, + title = {Bericht des technischen {B}eirates -- {A}miga}, + journal = dtk, + year = 1995, + volume = {3/95}, + altvolume = 7, + altnumber = 3, + month = dec, + pages = {34--37}, + annote = beiprogramm, + keywords = {} +} + +@Article{ dtk95.3:raichle:bericht, + author = {Bernd Raichle}, + title = {Bericht des technischen {B}eirates -- {G}erman {S}tyle}, + journal = dtk, + year = 1995, + volume = {3/95}, + altvolume = 7, + altnumber = 3, + month = dec, + pages = {37--39}, + annote = beiprogramm, + keywords = {german-Style} +} + +@Article{ dtk95.3:knappen:bericht, + author = {J{\"o}rg Knappen}, + title = {Bericht des technischen {B}eirates -- {\MF}}, + journal = dtk, + year = 1995, + volume = {3/95}, + altvolume = 7, + altnumber = 3, + month = dec, + pages = {39--40}, + annote = beiprogramm, + keywords = {} +} + +@Article{ dtk95.3:koch:bericht, + author = {Thomas Koch}, + title = {Bericht des technischen {B}eirates -- {OS}/2}, + journal = dtk, + year = 1995, + volume = {3/95}, + altvolume = 7, + altnumber = 3, + month = dec, + pages = {40--41}, + annote = beiprogramm, + keywords = {} +} + +@Article{ dtk95.3:schrod:bericht, + author = {Joachim Schrod}, + title = {Bericht des technischen {B}eirates -- {T}reiberentwicklung + und {SGML}}, + journal = dtk, + year = 1995, + volume = {3/95}, + altvolume = 7, + altnumber = 3, + month = dec, + pages = {41--42}, + annote = beiprogramm, + keywords = {} +} + +@Article{ dtk95.3:braune:bericht, + author = {Klaus Braune}, + title = {Bericht des technischen {B}eirates -- {UNIX}}, + journal = dtk, + year = 1995, + volume = {3/95}, + altvolume = 7, + altnumber = 3, + month = dec, + pages = {42--43}, + annote = beiprogramm, + keywords = {} +} + +@Article{ dtk95.3:loeser:bericht, + author = {Christa Loeser}, + title = {Bericht des technischen {B}eirates -- {V}erlag und + {B}uchhandel}, + journal = dtk, + year = 1995, + volume = {3/95}, + altvolume = 7, + altnumber = 3, + month = dec, + pages = 43, + annote = beiprogramm, + keywords = {} +} + +@Article{ dtk95.3:schrod:tds, + author = {Joachim Schrod}, + title = {{TDS} -- {D}ie vorgeschlagene {\TeX} {D}irectory + {S}tructure}, + journal = dtk, + year = 1995, + volume = {3/95}, + altvolume = 7, + altnumber = 3, + month = dec, + pages = {44--47}, + annote = beiprogramm, + keywords = {TDS, Verzeichnisstruktur, Standard} +} + +@Article{ dtk95.3:lammarsch:beschreibung, + author = {Joachim Lammarsch}, + title = {Beschreibung der {CD-ROM} von {DANTE} e.{V}.}, + journal = dtk, + year = 1995, + volume = {3/95}, + altvolume = 7, + altnumber = 3, + month = dec, + pages = {48--50}, + annote = beiprogramm, + keywords = {CD-ROM, CTAN} +} + +@Article{ dtk95.3:hesse:erfinder, + author = {Norbert Hesse}, + title = {Erfinder von {\TeX}, {\LaTeX} und {\MF} geben zu: {A}lles + {B}etrug!!!}, + journal = dtk, + year = 1995, + volume = {3/95}, + altvolume = 7, + altnumber = 3, + month = dec, + pages = {50--51}, + annote = beiprogramm, + keywords = {Humor, Satire} +} + +@Article{ dtk95.3:neugebauer:wie, + author = {Gerd Neugebauer}, + title = {Wie verfa{\ss}t man wissenschaftliche {A}rbeiten?}, + journal = dtk, + year = 1995, + volume = {3/95}, + altvolume = 7, + altnumber = 3, + month = dec, + pages = {52--53}, + annote = rezension, + keywords = {Rezension, Duden}, + reference = {Duden: \emph{Wie verfa{\ss}t man wissenschaftliche + Arbeiten?} \emph{\em Ein Leitfaden vom 1. Studiensemester + bis zur Promotion};\\ 1988, Duden Verlag Mannheim, Wien, + Z{\"u}rich;\\ (Die Duden Taschenb{\"u}cher: Bd.~21)\\ ISBN + 3-411-02751-7\\ 216 Seiten, 12,80~DM } +} + +@Article{ dtk95.4:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1995, + volume = {4/95}, + altvolume = 7, + altnumber = 4, + month = mar, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk95.4:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1995, + volume = {4/95}, + altvolume = 7, + altnumber = 4, + month = mar, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk95.4:neugebauer:klasse, + author = {Gerd Neugebauer}, + title = {Eine {K}lasse f{\"u}r {\glqq}{Die \TeX}nische + {K}om{\"o}die{\grqq}}, + journal = dtk, + year = 1995, + volume = {4/95}, + altvolume = 7, + altnumber = 4, + month = mar, + pages = {6--15}, + annote = bretter, + abstract = {{\glqq}Die \TeX{}nische Kom{\"o}die{\grqq} wird neuerdings + mit \LaTeXe{} hergestellt. In diesem Artikel werden einige + Hintergr{\"u}nde der benutzten Dokumenten-Klasse erhellt. + Wie er entstand, welche M{\"o}glichkeiten er bietet und wie + man ihn benutzen kann. }, + keywords = {dtk, \LaTeX-Klassen} +} + +@Article{ dtk95.4:raichle:orale, + author = {Bernd Raichle}, + title = {Orale {S}pielereien mit {\TeX} -- {T}eil {III}}, + journal = dtk, + year = 1995, + volume = {4/95}, + altvolume = 7, + altnumber = 4, + month = mar, + pages = {15--29}, + annote = bretter, + keywords = {Makroverarbeitung, Makrodefinition, Makroprogrammierung, + \verb|\relax|} +} + +@Article{ dtk95.4:lemberg:cjk-paket, + author = {Werner Lemberg}, + title = {Das {CJK}-{P}aket f{\"u}r {\LaTeXe}}, + journal = dtk, + year = 1995, + volume = {4/95}, + altvolume = 7, + altnumber = 4, + month = mar, + pages = {30--40}, + annote = bretter, + abstract = {Mit MULE (multilingual Emacs) kann man Text in mehreren + Sprachen schreiben. Es ist im besonderen entwickelt worden, + um asiatische Sprachen in unterschiedlichen Kodierschemata + zu editieren. So ist es zum Beispiel m{\"o}glich, + Chinesisch in der vereinfachten Schrift + (jij{\^a}nt{\^i}z{\`i} in GB-Kodierung) und in der + traditionellen Form (f{\'a}nt{\^i}z{\`i} in + Big-5-Kodierung) gleichzeitig darzustellen, obwohl sich die + Kodierungsbereiche {\"u}berlappen. \par Das CJK-Paket + (Chinesich/Japanisch/Koreanisch) ist das Pendant f{\"u}r + {\LaTeXe}. Die meisten CJK-Kodierungen sind implemntiert, + das interne Kodierschema von MULE wird durch einen kleinen + Pr{\"a}prozessor unterst{\"u}tzt. Au{\ss}erdem enth{\"a}lt + es Module f{\"u}r Unicode und CEF (Chinese Encoding + Framework), das im Prinzip eine Eingabemethode f{\"u}r die + CNS-Kodierung (Chinesischer National Standard, zirka + 48\,000 chinesische Schriftzeichen) ist. \par CJK ist + nat{\"u}rlich nicht auf MULE beschr{\"a}nkt. Jeder Editor + der eine CJK-Sprache unterst{\"u}tzt, kann verwendet + werden. \par Im CJK-Paket sind Hilfsprogramme enthalten, + die chinesische TrueType-Fonts und + CJK-Bitmap-Zeichens{\"a}tze in \texttt{.pk}-Dateien + konvertieren. Zus{\"a}tzlich werden Sprachmodule f{\"u}r + CJK-Sprachen zur Verf{\"u}gung gestellt, die in + Zusammenarbeit mit dem Koma-Script-Paket syntaktisch + korrekte {\"U}berschriften produzieren. \par Dieser Artikel + beschreibt Version 3.0.1 des Pakets.}, + keywords = {CJK-Paket, Fonts, Chinesisch, Japanisch, Koreanisch, + MULE} +} + +@Article{ dtk95.4:raichle:kapitaelchen, + author = {Bernd Raichle}, + title = {Kapit{\"a}lchen in {{\"U}}berschriften}, + journal = dtk, + year = 1995, + volume = {4/95}, + altvolume = 7, + altnumber = 4, + month = mar, + pages = {41--42}, + annote = schonimmer, + keywords = {Kapit{\"a}lchen, Fonts} +} + +@Article{ dtk95.4:dafferner.dietsche.ea:alternative, + author = {Andreas Dafferner and Luzia Dietsche and Bernd Raichle and + Volker RW Schaa and Rainer Sch{\"o}pf}, + title = {Das alternative {\LaTeX}-{G}lossar}, + journal = dtk, + year = 1995, + volume = {4/95}, + altvolume = 7, + altnumber = 4, + month = mar, + pages = {43--47}, + annote = beiprogramm, + abstract = {Vielen Anf{\"a}ngern und Umsteigern von anderen + Textverarbeitungsprogrammen ist die gro{\ss}e Anzahl von + Befehlen in {\TeX} und {\LaTeX} der Haupthinderungsgrund + f{\"u}r eine schnelle und effiziente Einarbeitung. Das hier + abgedruckte Glossar soll einen ersten einfachen Einstieg in + die komplexe Befehlsstruktur auf eine leicht + verst{\"a}ndliche Weise erm{\"o}glichen. Bei Bedarf werden + weitere Folgen auf Schwerverst{\"a}ndliches oder + Wissenswertes eingehen.}, + keywords = {Humor, Satire} +} + +@Article{ dtk95.4:huelse:4alltex, + author = {Rainer H{\"u}lse}, + title = {4all{\TeX} -- eine {R}eady-to-{R}un-{CD} auf dem + {P}r{\"u}fstand}, + journal = dtk, + year = 1995, + volume = {4/95}, + altvolume = 7, + altnumber = 4, + month = mar, + pages = {48--51}, + annote = rezension, + keywords = {Rezension, CD-ROM} +} + +@Article{ dtk96.1:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1996, + volume = {1/96}, + altvolume = 8, + altnumber = 1, + month = jun, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk96.1:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1996, + volume = {1/96}, + altvolume = 8, + altnumber = 1, + month = jun, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk96.1:dietsche:protokoll, + author = {Luzia Dietsche}, + title = {Protokoll der 14.~{M}itgliederversammlung von {DANTE}, + {D}eutschsprachige {A}nwendervereinigung {\TeX} e.{V}.}, + journal = dtk, + year = 1996, + volume = {1/96}, + altvolume = 8, + altnumber = 1, + month = jun, + pages = {5--15}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk96.1:sowa:kassenbericht, + author = {Friedhelm Sowa}, + title = {Kassenbericht f{\"u}r den {Z}eitraum 1.1.1993--31.12.1993}, + journal = dtk, + year = 1996, + volume = {1/96}, + altvolume = 8, + altnumber = 1, + month = jun, + pages = {16--17}, + annote = hinterbuehne, + keywords = {Kassenbericht} +} + +@Article{ dtk96.1:lammarsch:brief, + author = {Joachim Lammarsch}, + title = {Ein {B}rief an die c't}, + journal = dtk, + year = 1996, + volume = {1/96}, + altvolume = 8, + altnumber = 1, + month = jun, + pages = 18, + annote = hinterbuehne, + keywords = {c't} +} + +@Article{ dtk96.1:dietsche:cjk-paket, + author = {Luzia Dietsche}, + title = {Das {CJK}-{P}aket -- {K}orrekturen}, + journal = dtk, + year = 1996, + volume = {1/96}, + altvolume = 8, + altnumber = 1, + month = jun, + pages = 19, + annote = hinterbuehne, + keywords = {Fehlerbericht, CJK-Paket, Fonts, Chinesisch, Japanisch, + Koreanisch, MULE} +} + +@Article{ dtk96.1:matthes:bericht, + author = {Henning Matthes}, + title = {Bericht von der {F}r{\"u}hjahrstagung in {A}ugsburg}, + journal = dtk, + year = 1996, + volume = {1/96}, + altvolume = 8, + altnumber = 1, + month = jun, + pages = {20--23}, + annote = theatertage, + keywords = {Tagungsbericht} +} + +@Article{ dtk96.1:ftp.shsu.edu, + key = {ftp.shsu.edu}, + title = {ftp.shsu.edu}, + journal = dtk, + year = 1996, + volume = {1/96}, + altvolume = 8, + altnumber = 1, + month = jun, + pages = 24, + annote = fremdebuehne, + keywords = {Humor, Satire} +} + +@Article{ dtk96.1:neugebauer:krakelig, + author = {Gerd Neugebauer}, + title = {Von {\glqq}krakelig{\grqq} bis {\glqq}wie gemalt{\grqq}}, + journal = dtk, + year = 1996, + volume = {1/96}, + altvolume = 8, + altnumber = 1, + month = jun, + pages = {25--42}, + annote = fundus, + abstract = {Wir alle kennen zur Gen{\"u}ge die + Computer-Modern-Schriften, die standardm{\"a}{\ss}ig von + {\TeX} verwendet werden. Sicher hat der eine oder andere + auch mit PostScript-Schriften wie Times, helvetics oder + LucidaBright seine Erfahrungen gesammelt. In diesem Artikel + habe ich mir Schreibschriften vorgenommen und die + M{\"o}glichkeiten untersucht, ein handschrift{\"a}hnliches + Aussehen mit {\LaTeX} zu produzieren.}, + keywords = {Metafont, Schriften, gftopk, Lateinische Ausgangsschrift, + lla, la, Vereinfachte Anfangsschrift, va, vacal, twcal, + calligra, script, S{\"u}tterlin, suet, schwell, Fonts} +} + +@Article{ dtk96.1:erlmeier:bericht, + author = {Markus Erlmeier}, + title = {Bericht des technischen {B}eirates -- {A}miga}, + journal = dtk, + year = 1996, + volume = {1/96}, + altvolume = 8, + altnumber = 1, + month = jun, + pages = {43--44}, + annote = beiprogramm, + keywords = {Amiga} +} + +@Article{ dtk96.1:raichle:bericht, + author = {Bernd Raichle}, + title = {Bericht des technischen {B}eirates -- {G}erman {S}tyle}, + journal = dtk, + year = 1996, + volume = {1/96}, + altvolume = 8, + altnumber = 1, + month = jun, + pages = {45--46}, + annote = beiprogramm, + keywords = {german-Style} +} + +@Article{ dtk96.1:lerbs:bericht, + author = {Lothar Meyer Lerbs}, + title = {Bericht des technischen {B}eirates -- {M}acintosh}, + journal = dtk, + year = 1996, + volume = {1/96}, + altvolume = 8, + altnumber = 1, + month = jun, + pages = {46--48}, + annote = beiprogramm, + keywords = {Macintosh} +} + +@Article{ dtk96.1:knappen:bericht, + author = {J{\"o}rg Knappen}, + title = {Bericht des technischen {B}eirates -- {\MF}}, + journal = dtk, + year = 1996, + volume = {1/96}, + altvolume = 8, + altnumber = 1, + month = jun, + pages = {48--52}, + annote = beiprogramm, + keywords = {Metafont} +} + +@Article{ dtk96.1:breitenlohner:bericht, + author = {Peter Breitenlohner}, + title = {Bericht des technischen {B}eirates -- {PubliC\TeX}}, + journal = dtk, + year = 1996, + volume = {1/96}, + altvolume = 8, + altnumber = 1, + month = jun, + pages = {52--53}, + annote = beiprogramm, + keywords = {Public\TeX} +} + +@Article{ dtk96.1:schoepf:bericht, + author = {Rainer Sch{\"o}pf}, + title = {Bericht des technischen {B}eirates -- + {S}erver-{K}oordination}, + journal = dtk, + year = 1996, + volume = {1/96}, + altvolume = 8, + altnumber = 1, + month = jun, + pages = 53, + annote = beiprogramm, + keywords = {Server} +} + +@Article{ dtk96.1:braune:bericht, + author = {Klaus Braune}, + title = {Bericht des technischen {B}eirates -- {UNIX}}, + journal = dtk, + year = 1996, + volume = {1/96}, + altvolume = 8, + altnumber = 1, + month = jun, + pages = {53--54}, + annote = beiprogramm, + keywords = {UNIX} +} + +@Article{ dtk96.1:loeser:bericht, + author = {Christa Loeser}, + title = {Bericht des technischen {B}eirates -- {V}erlag und + {B}uchhandel}, + journal = dtk, + year = 1996, + volume = {1/96}, + altvolume = 8, + altnumber = 1, + month = jun, + pages = {54--56}, + annote = beiprogramm, + keywords = {Verlag, Buchhandel} +} + +@Article{ dtk96.1:schroeder:texies, + author = {Martin Schr{\"o}der}, + title = {{\TeX}ies, fahrt nach {H}eidelberg}, + journal = dtk, + year = 1996, + volume = {1/96}, + altvolume = 8, + altnumber = 1, + month = jun, + pages = {56--57}, + annote = beiprogramm, + keywords = {} +} + +@Article{ dtk96.1:willadt:orale, + author = {Peter Willadt}, + title = {Orale {S}pielereien -- {T}eil {III}, {H}eft 4/95}, + journal = dtk, + year = 1996, + volume = {1/96}, + altvolume = 8, + altnumber = 1, + month = jun, + pages = {58--59}, + note = {mit einer Antwort von Bernd Raichle}, + annote = leserbrief, + keywords = {Makroverarbeitung, Makrodefinition, Makroprogrammierung, + Leserbrief} +} + +@Article{ dtk96.1:hoeppner:latex-vademecum, + author = {Klaus H{\"o}ppner}, + title = {{\LaTeX}-{V}ademecum -- {E}in {K}ompaktf{\"u}hrer f{\"u}r + {E}insteiger und {F}ortgeschrittene}, + journal = dtk, + year = 1996, + volume = {1/96}, + altvolume = 8, + altnumber = 1, + month = jun, + pages = {60--61}, + annote = rezension, + keywords = {Rezension} +} + +@Article{ dtk96.2:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1996, + volume = {2/96}, + altvolume = 8, + altnumber = 2, + month = aug, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk96.2:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1996, + volume = {2/96}, + altvolume = 8, + altnumber = 2, + month = aug, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk96.2:sowa:kassenbericht, + author = {Friedhelm Sowa}, + title = {Kassenbericht f{\"u}r den {Z}eitraum 1.1.1994--31.12.1994}, + journal = dtk, + year = 1996, + volume = {2/96}, + altvolume = 8, + altnumber = 2, + month = aug, + pages = {6--9}, + annote = hinterbuehne, + keywords = {Kassenbericht} +} + +@Article{ dtk96.2:knuth:important, + author = {Donald E. Knuth}, + title = {Important Message to all Users of {\TeX}}, + journal = dtk, + year = 1996, + volume = {2/96}, + altvolume = 8, + altnumber = 2, + month = aug, + pages = {10--13}, + annote = fremdebuehne, + abstract = {Auf Donald E. Knuths WWW-Seite + \texttt{http://www-cs-faculty.Stanford.EDU/~knuth/cm.html} + befindet sich seit einigen Monaten ein Aufruf an die + Benutzer des Textsatzsystemes {\TeX}. Er weist darin auf + zwei Probleme hin, die die von ihm erstellte + Computer-Modern-Schriftfamilie betreffen. Das erste + Problem, das Anfang Juni entdeckt wurde, betrifft eine + nicht von Knuth autorisierte {\"A}nderung an den + Quelldateien, die zu Inkompatibilit{\"a}ten f{\"u}hrt. + Diese ge{\"a}nderten Quelldateien werden mit der + Linux-Slackware-Distribution verteilt. Auf das zweite + Problem, da{\ss} h{\"a}ufig noch veraltete Versionen der + Computer-Modern-Schriften verwendet werden, wurde schon + mehrmals von J{\"o}rg Knappen hingewiesen; zuletzt in der + Ausgabe 1/1996, S.~52, der Mitgliederzeitung. \par Bitte + {\"u}berpr{\"u}fen Sie ihre {\TeX}-Installation und + besorgen Sie sich, falls Sie veraltete oder ver{\"a}nderte + Computer-Modern-Schriften verwenden, die offiziellen + Dateien der neuesten Version vom CTAN (Comprehensive {\TeX} + Archive Network).}, + keywords = {Knuth, Metafont, Fonts, Schriften, Fehlerbericht, Linux, + Slackware, Computer-Modern-Schriften} +} + +@Article{ dtk96.2:kohm:koma-script, + author = {Markus Kohm}, + title = {\textsc{Koma-Script} -- {E}ine {A}lternative zu den + {S}tandardklassen?}, + journal = dtk, + year = 1996, + volume = {2/96}, + altvolume = 8, + altnumber = 2, + month = aug, + pages = {14--33}, + annote = bretter, + abstract = {Wer die Newsgroups wie \texttt{de.comp.tex} aufmerksam + verfolgt, wird immer wieder Verweise auf + \textsc{Koma-Script} finden. Selbst in der + DE-{\TeX}-/DANTE-FAQ sind inzwischen mehrere Verweise auf + dieses Paket zu lesen. Auf den folgenden Seiten soll daher + die Entstehung, die Motivation, die Grundz{\"u}ge und die + Verwendung von \textsc{Koma-Script} erl{\"a}utert werden. + Um den Rahmen nicht zu sprengen, werden nur die Klassen + \texttt{scrartcl}, \texttt{scrreprt} und \texttt{scrbook} + sowie das Satzspiegelpaket \texttt{typearea} erl{\"a}utert. + Die Briefklasse \texttt{scrletter} und die erg{\"a}nzenden + Pakete \texttt{scrpage}, \texttt{scrtime}, + \texttt{scrdate}, \texttt{scraddr} und die zu + \texttt{scrlettr} geh{\"o}renden Beispieldokumente + \texttt{phone} und \texttt{dir} werden hier ausgeklammert. + F{\"u}r die Installation sei auf die Anleitungen, die zum + Paket geh{\"o}ren, verwiesen.}, + keywords = {\textsc{Koma-Script}, \LaTeX-Klassen} +} + +@Article{ dtk96.2:raichle:orale, + author = {Bernd Raichle}, + title = {Orale {S}pielereien mit {\TeX} -- {T}eil {III} + ({A}ddendum)}, + journal = dtk, + year = 1996, + volume = {2/96}, + altvolume = 8, + altnumber = 2, + month = aug, + pages = {33--37}, + annote = bretter, + keywords = {Makroverarbeitung, Makrodefinition, Makroprogrammierung, + \verb|\relax|} +} + +@Article{ dtk96.2:breymann:dokumentationen, + author = {Ullrich Breymann}, + title = {Dokumentationen}, + journal = dtk, + year = 1996, + volume = {2/96}, + altvolume = 8, + altnumber = 2, + month = aug, + pages = {37--43}, + annote = bretter, + keywords = {C-Programme, Quellcode, Dokumentationen, } +} + +@Article{ dtk96.2:neugebauer:tafel-fett, + author = {Gerd Neugebauer}, + title = {Tafel-{F}ett}, + journal = dtk, + year = 1996, + volume = {2/96}, + altvolume = 8, + altnumber = 2, + month = aug, + pages = {44--53}, + annote = fundus, + abstract = {Manchmal ist es n{\"o}tig, die mathematischen Symbole + f{\"u}r die nat{\"u}rlichen Zahlen, die ganzen Zahlen, die + komplexen Zahlen oder {\"a}hnliche Symbole zu verwenden. + Diese werden typischerweise durch einen zus{\"a}tzlichen + senkrechten Strich am Anfang der Letter dargestellt. \par + Es gibt verschiedene L{\"o}sungen f{\"u}r dieses Problem. + Einige dieser L{\"o}sungen sollen hier vorgestellt werden.}, + keywords = {Mengensymbole, blackboard bold, \AmS-Fonts, bbold, + mathbbol, doublestroke, dsfont, bbm, Mathematik} +} + +@Article{ dtk96.2:raichle:roman, + author = {Bernd Raichle}, + title = {Roman statt {I}talic in mathematischen {F}ormeln}, + journal = dtk, + year = 1996, + volume = {2/96}, + altvolume = 8, + altnumber = 2, + month = aug, + pages = {54--55}, + annote = schonimmer, + keywords = {Fonts (math), Formelsatz, \verb|\mathrm|, Mathematik} +} + +@Article{ dtk96.2:vieth:tex, + author = {Ulrik Vieth}, + title = {{\TeX} {L}ive -- {D}ie erste {TDS}-konforme ready-to-run + {\TeX}-{CD-ROM} f{\"u}r {U}nix-{S}ysteme und andere + {P}lattformen}, + journal = dtk, + year = 1996, + volume = {2/96}, + altvolume = 8, + altnumber = 2, + month = aug, + pages = {56--63}, + annote = beiprogramm, + keywords = {CD-ROM, TDS} +} + +@Article{ dtk96.2:nuechter:beschleunigung, + author = {Peter N{\"u}chter}, + title = {Beschleunigung eines {\LaTeX}-{D}urchlaufs}, + journal = dtk, + year = 1996, + volume = {2/96}, + altvolume = 8, + altnumber = 2, + month = aug, + pages = {64--66}, + annote = beiprogramm, + keywords = {Formatdatei, \verb|initex|, \verb|virtex|} +} + +@Article{ dtk96.2:lagally:alternative, + author = {Klaus Lagally}, + title = {Das alternative {\LaTeX}-{G}lossar -- {A}ddendum}, + journal = dtk, + year = 1996, + volume = {2/96}, + altvolume = 8, + altnumber = 2, + month = aug, + pages = {67--68}, + annote = beiprogramm, + keywords = {Humor, Satire} +} + +@Article{ dtk96.2:latex-raetsel, + key = {latex-raetsel}, + title = {{\LaTeXTeX}-{R}{\"a}tsel}, + journal = dtk, + year = 1996, + volume = {2/96}, + altvolume = 8, + altnumber = 2, + month = aug, + pages = 69, + annote = beiprogramm, + keywords = {Kreuzwortr{\"a}tsel} +} + +@Article{ dtk96.3:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1996, + volume = {3/96}, + altvolume = 8, + altnumber = 3, + month = dec, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk96.3:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1996, + volume = {3/96}, + altvolume = 8, + altnumber = 3, + month = dec, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk96.3:dietsche:protokoll, + author = {Luzia Dietsche}, + title = {Protokoll der 15.~{M}itgliederversammlung von {DANTE}, + {D}eutschsprachige {A}nwendervereinigung {\TeX} e.V.}, + journal = dtk, + year = 1996, + volume = {3/96}, + altvolume = 8, + altnumber = 3, + month = dec, + pages = {6--21}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk96.3:diskussionsgruppe-belichter:eigene, + author = {Diskussionsgruppe {\glqq}Belichter{\grqq}, DANTE e.V.}, + title = {Eine eigene {L}ichtsatzanlage f{\"u}r {DANTE} e.V.?}, + journal = dtk, + year = 1996, + volume = {3/96}, + altvolume = 8, + altnumber = 3, + month = dec, + pages = {21--25}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk96.3:schaa:bericht, + author = {Volker RW Schaa}, + title = {Bericht von der 17.~{T}agung der {TUG} -- {(Cyr)TUG} 96 in + {D}ubna}, + journal = dtk, + year = 1996, + volume = {3/96}, + altvolume = 8, + altnumber = 3, + month = dec, + pages = {26--30}, + annote = theatertage, + keywords = {Tagungsbericht} +} + +@Article{ dtk96.3:schlechte:-, + author = {Andreas Schlechte}, + title = {{\MakeIndex} -- {D}em {F}ehler auf der {S}pur}, + journal = dtk, + year = 1996, + volume = {3/96}, + altvolume = 8, + altnumber = 3, + month = dec, + pages = {31--35}, + annote = bretter, + keywords = {{\MakeIndex}, Fehlerbericht, Index} +} + +@Article{ dtk96.3:neugebauer:unentdeckte, + author = {Gerd Neugebauer}, + title = {Das unentdeckte {L}and}, + journal = dtk, + year = 1996, + volume = {3/96}, + altvolume = 8, + altnumber = 3, + month = dec, + pages = {36--56}, + annote = fundus, + abstract = {In diesem Beitrag wird ein Weg beschrieben, wie man + \PS-Schriften zusammen mit \TeX{} nutzen kann. Der + Schwerpunkt liegt weniger auf der Verwendung von bekannten + Schriften wie Times oder Helvetica, sondern auf der + Einbindung von einzelnen Schriften, wie man sie auf + Public-Domain-CDs oder im Internet h{\"a}ufig findet. Dabei + werden einige Schriften auch beispielhaft vorgestellt. + Diese sind Schriften nachempfunden, die in den + Fernsehserien und Filmen um das Raumschiff Enterprise zu + sehen sind. }, + keywords = {StarTrek, PostScript Fonts, Schriften, fontinst, pltotf, + tftopl, vptovf, vftovp, gpreview, t1tools, t1utils, + StarTrekTNGCrilleA, StarTrekClassicA, + StarTrekClassicMoviesA, StarTrekTNGTitleA, + TNGMonitorsPlain, klinz} +} + +@Article{ dtk96.3:erlmeier:bericht, + author = {Markus Erlmeier}, + title = {Bericht des technischen {B}eirats -- {A}miga}, + journal = dtk, + year = 1996, + volume = {3/96}, + altvolume = 8, + altnumber = 3, + month = dec, + pages = {57--58}, + annote = beiprogramm, + keywords = {Amiga} +} + +@Article{ dtk96.3:braune:bericht, + author = {Klaus Braune}, + title = {Bericht des technischen {B}eirats -- {UNIX}}, + journal = dtk, + year = 1996, + volume = {3/96}, + altvolume = 8, + altnumber = 3, + month = dec, + pages = 58, + annote = beiprogramm, + keywords = {UNIX} +} + +@Article{ dtk96.3:raichle:bericht, + author = {Bernd Raichle}, + title = {Bericht des technischen {B}eirats -- {G}erman-{S}tyle}, + journal = dtk, + year = 1996, + volume = {3/96}, + altvolume = 8, + altnumber = 3, + month = dec, + pages = {58--60}, + annote = beiprogramm, + keywords = {german-Style} +} + +@Article{ dtk96.3:schoppmann:bericht, + author = {Harald Schoppmann}, + title = {Bericht des technischen {B}eirats -- {M}ailbox von {DANTE} + e.{V}.}, + journal = dtk, + year = 1996, + volume = {3/96}, + altvolume = 8, + altnumber = 3, + month = dec, + pages = {60--61}, + annote = beiprogramm, + keywords = {Mailbox} +} + +@Article{ dtk96.3:knappen:bericht, + author = {J{\"o}rg Knappen}, + title = {Bericht des technischen {B}eirats -- {\MF}}, + journal = dtk, + year = 1996, + volume = {3/96}, + altvolume = 8, + altnumber = 3, + month = dec, + pages = {61--62}, + annote = beiprogramm, + keywords = {Metafont} +} + +@Article{ dtk96.3:breitenlohner:bericht, + author = {Peter Breitenlohner}, + title = {Bericht des technischen {B}eirats -- {PC}}, + journal = dtk, + year = 1996, + volume = {3/96}, + altvolume = 8, + altnumber = 3, + month = dec, + pages = 62, + annote = beiprogramm, + keywords = {PC} +} + +@Article{ dtk96.3:schoepf:bericht, + author = {Rainer Sch{\"o}pf}, + title = {Bericht des technischen {B}eirats -- + {S}erver-{K}oordination}, + journal = dtk, + year = 1996, + volume = {3/96}, + altvolume = 8, + altnumber = 3, + month = dec, + pages = {62--63}, + annote = beiprogramm, + keywords = {Server} +} + +@Article{ dtk96.3:preisendanz:bericht, + author = {Christa Preisendanz}, + title = {Bericht des technischen {B}eirats -- {V}erlag und + {B}uchhandel}, + journal = dtk, + year = 1996, + volume = {3/96}, + altvolume = 8, + altnumber = 3, + month = dec, + pages = {63--64}, + annote = beiprogramm, + keywords = {Verlag, Buchhandel} +} + +@Article{ dtk96.3:redaktionsteam:latex-raetsel, + author = {Redaktionsteam}, + title = {{\LaTeXTeX}-{R}{\"a}tsel: {D}ie {A}uf{\/}l{\"o}sung}, + journal = dtk, + year = 1996, + volume = {3/96}, + altvolume = 8, + altnumber = 3, + month = dec, + pages = {64--68}, + annote = beiprogramm, + keywords = {Kreuzwortr{\"a}tsel} +} + +@Article{ dtk96.3:knappen:tafel-fett, + author = {J{\"o}rg Knappen}, + title = {Tafel-{F}ett, {H}eft 2/96}, + journal = dtk, + year = 1996, + volume = {3/96}, + altvolume = 8, + altnumber = 3, + month = dec, + pages = 69, + annote = leserbrief, + keywords = {Leserbrief} +} + +@Article{ dtk96.3:wilhelms:etwas, + author = {Gerhard Wilhelms}, + title = {Eine etwas andere {B}uchrezension}, + journal = dtk, + year = 1996, + volume = {3/96}, + altvolume = 8, + altnumber = 3, + month = dec, + pages = {70--75}, + annote = rezension, + keywords = {PostScript, Acrobat, PDF, Rezension} +} + +@Article{ dtk96.4:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1997, + volume = {4/96}, + altvolume = 8, + altnumber = 4, + month = feb, + pages = {3}, + annote = editorial, + keywords = {} +} + +@Article{ dtk96.4:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1997, + volume = {4/96}, + altvolume = 8, + altnumber = 4, + month = feb, + pages = {4--7}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk96.4:knappen:ankuendigung, + author = {J{\"o}rg Knappen}, + title = {Ank{\"u}ndigung: {D}ie ec-{S}chriten 1.0 sind da!}, + journal = dtk, + year = 1997, + volume = {4/96}, + altvolume = 8, + altnumber = 4, + month = feb, + pages = {8--9}, + annote = bretter, + keywords = {Fonts (EC), Cork, textcomp, T1-encoding, EC-Fonts} +} + +@Article{ dtk96.4:schlechte:theoremverzeichnisse, + author = {Andreas Schlechte}, + title = {Theoremverzeichnisse automatisch erstellen}, + journal = dtk, + year = 1997, + volume = {4/96}, + altvolume = 8, + altnumber = 4, + month = feb, + pages = {9--16}, + annote = bretter, + abstract = {In diesem Artikel m{\"o}chte ich ein erweitertes + Theorem-Paket vorstellen, das dem Anwender die + M{\"o}glichkeit gibt, leicht und flexibel + Theoremverzeichnisse zu erstellen. Zus{\"a}tzlich werden + weitere hilfreiche Funktionen vorgestellt.}, + keywords = {Theoremverzeichnis, Verzeichnis} +} + +@Article{ dtk96.4:breger:erfahrungen, + author = {Herbert Breger}, + title = {Erfahrungen bei der {A}nwendung von plain-{\TeX} und + {E}dmac auf die {L}eibniz-{E}dition}, + journal = dtk, + year = 1997, + volume = {4/96}, + altvolume = 8, + altnumber = 4, + month = feb, + pages = {16--22}, + annote = bretter, + keywords = {Edmac, plain-{\TeX}, Leibniz} +} + +@Article{ dtk96.4:neubauer:feinheiten, + author = {Marion Neubauer}, + title = {Feinheiten bei wissenschaftlichen {P}ublikationen -- + {M}ikrotypographie-{R}egeln, {T}eil {I}}, + journal = dtk, + year = 1997, + volume = {4/96}, + altvolume = 8, + altnumber = 4, + month = feb, + pages = {23-40}, + annote = bretter, + keywords = {Mikrotypographie, Abk{\"u}rzungen, Akronyme, Einheiten, + Himmelsrichtungen, Anf{\"u}hrungszeichen, Satzzeichen, + Auslassungen, Sonderzeichen, email-Adressen, Ligaturen} +} + +@Article{ dtk96.4:neugebauer:genealogisches, + author = {Gerd Neugebauer}, + title = {Genealogisches}, + journal = dtk, + year = 1997, + volume = {4/96}, + altvolume = 8, + altnumber = 4, + month = feb, + pages = {41--53}, + annote = fundus, + abstract = {Manchmal braucht man ein spezielles Zeichen. Wenn man + nicht sofort wei{\ss}, wie man das Zeichen bekommt, mu{\ss} + man sich auf die Suche danach machen. Dieser Beitrag + beschreibt eine solche Suche nach genealogischen Zeichen.}, + keywords = {Genealogische Zeichen, Fonts, textcomp, msam, \AMS-Fonts, + msbm, Waldis Symbol Font, wasy, St Mary's Road, bbding, + Zapf-Dingbats} +} + +@Article{ dtk96.4:schoepf:seitenumbrueche, + author = {Rainer Sch{\"o}pf}, + title = {Seitenumbr{\"u}che in {L}isten}, + journal = dtk, + year = 1997, + volume = {4/96}, + altvolume = 8, + altnumber = 4, + month = feb, + pages = {54--55}, + annote = schonimmer, + keywords = {Seitenumbruch, Listen} +} + +@Article{ dtk96.4:mischke:tex-umgebung, + author = {Peter Mischke}, + title = {Eine {\TeX}-{U}mgebung f{\"u}r {OS}/2}, + journal = dtk, + year = 1997, + volume = {4/96}, + altvolume = 8, + altnumber = 4, + month = feb, + pages = {56--59}, + annote = beiprogramm, + abstract = {}, + keywords = {EPM, OS/2, Editor} +} + +@Article{ dtk97.1:dietsche:editorial, + author = {Luzia Dietsche}, + title = {{E}ditorial}, + journal = dtk, + year = 1997, + volume = {1/97}, + altvolume = 9, + altnumber = 1, + month = may, + pages = 3, + annote = editorial, + keywords = {} +} + +@Article{ dtk97.1:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1997, + volume = {1/97}, + altvolume = 9, + altnumber = 1, + month = may, + pages = {4--7}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk97.1:just:protokoll, + author = {Ehrenfried Just}, + title = {Protokoll der 16.~{M}itgliederversammlung von {DANTE}, + {D}eutschsprachige {A}nwendervereinigung {\TeX} e.V.}, + journal = dtk, + year = 1997, + volume = {1/97}, + altvolume = 9, + altnumber = 1, + month = may, + pages = {7--18}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk97.1:neubauer:software, + author = {Marion Neubauer}, + title = {Neue {S}oftware bei {DANTE} e.V.}, + journal = dtk, + year = 1997, + volume = {1/97}, + iptvloume = 9, + altnumber = 1, + month = may, + pages = {19--20}, + annote = hinterbuehne, + keywords = {Software, Verteilung} +} + +@Article{ dtk97.1:schroeder:dante97, + author = {Martin Schr{\"o}der}, + title = {{DANTE}'97 in {M}{\"u}nchen}, + journal = dtk, + year = 1997, + volume = {1/97}, + altvolume = 9, + altnumber = 1, + month = may, + pages = {21--24}, + annote = theatertage, + keywords = {Tagungsbericht} +} + +@Article{ dtk97.1:neubauer:feinheiten, + author = {Marion Neubauer}, + title = {Feinheiten bei wissenschaftlichen {P}ublikationen -- + {M}ikrotypographie-{R}egeln, {T}eil {II}}, + journal = dtk, + year = 1997, + volume = {1/97}, + altvolume = 9, + altnumber = 1, + month = may, + pages = {25--44}, + annote = bretter, + keywords = {Mikrotypographie, Zahlen, Ziffern, Nummern, Striche, + Klammern, geschachtelte Klammern, Wortzwischenr{\"a}ume, + Abst{\"a}nde, mathematischer Satz, Worttennungen, + Zeilenumbruch} +} + +@Article{ dtk97.1:raichle:abkuerzungspunkt, + author = {Bernd Raichle}, + title = {Abk{\"u}rzungspunkt am {S}atzende}, + journal = dtk, + year = 1997, + volume = {1/97}, + altvolume = 9, + altnumber = 1, + month = may, + pages = 45, + annote = schonimmer, + keywords = {\verb|xpoint.sty|, Macros, Satzzeichen} +} + +@Article{ dtk97.1:gloetzel:database-publishing, + author = {Dieter Gl{\"o}tzel}, + title = {Database-{P}ublishing mit {O}beron und {\LaTeX}}, + journal = dtk, + year = 1997, + volume = {1/97}, + altvolume = 9, + altnumber = 1, + month = may, + pages = {46--54}, + annote = beiprogramm, + keywords = {Oberon, objektorientierte Programmiersprache, + Postleitzahlenbuch}, + abstract = {Im Rahmen eines Kundenprojektes wurde mit Hilfe von + \LaTeX{} ein Nachschlagewerk aus einer Datenbank erzeugt. + Das Programm zur Generierung des \LaTeX{}-Codes wurde als + Prototyp auf einem PC in \emph{Oberon}, der neuen + Programmiersprache von Nikolaus Wirth, entwickelt. + Au{\ss}er einer Beschreibung der Auf{\/}gabe wird ein + kurzer {\"U}berblick {\"u}ber Sprache und Betriebssystem + \emph{Oberon}, {\"u}ber die Z{\"u}richer Implementierung + sowie {\"u}ber Bezugsquellen im Internet gegeben. Der + Artikel schlie{\ss}t mit einem Pl{\"a}doyer f{\"u}r den + kommerziellen Einsatz von Freeware-Tools.} +} + +@Article{ dtk97.1:erlmeier:bericht, + author = {Markus Erlmeier}, + title = {Bericht des technischen {B}eirats -- {A}miga}, + journal = dtk, + year = 1997, + volume = {1/97}, + altvolume = 9, + altnumber = 1, + month = may, + pages = 55, + annote = beiprogramm, + keywords = {Amiga} +} + +@Article{ dtk97.1:birkhahn.lindner:bericht, + author = {Lutz Birkhahn and Stefan Lindner}, + title = {Bericht des technischen {B}eirats -- {A}tari}, + journal = dtk, + year = 1997, + volume = {1/97}, + altvolume = 9, + altnumber = 1, + month = may, + pages = 55, + annote = beiprogramm, + keywords = {Atari} +} + +@Article{ dtk97.1:raichle:bericht, + author = {Bernd Raichle}, + title = {Bericht des technischen {B}eirats -- {$\varepsilon$-\TeX}, + {\NTS} und {G}erman-{S}tyle}, + journal = dtk, + year = 1997, + volume = {1/97}, + altvolume = 9, + altnumber = 1, + month = may, + pages = {56--58}, + annote = beiprogramm, + keywords = {e-\TeX, german-Style, NTS} +} + +@Article{ dtk97.1:meyer-lerbs:bericht, + author = {Lothar Meyer-Lerbs}, + title = {Bericht des technischen {B}eirats -- {M}acintosh}, + journal = dtk, + year = 1997, + volume = {1/97}, + altvolume = 9, + altnumber = 1, + month = may, + pages = {58--59}, + annote = beiprogramm, + keywords = {Macintosh} +} + +@Article{ dtk97.1:schoppmann:bericht, + author = {Harald Schoppmann}, + title = {Bericht des technischen {B}eirats -- {M}ailbox von {DANTE} + e.V.}, + journal = dtk, + year = 1997, + volume = {1/97}, + altvolume = 9, + altnumber = 1, + month = may, + pages = {59--61}, + annote = beiprogramm, + keywords = {Mailbox} +} + +@Article{ dtk97.1:koch:bericht, + author = {Thomas Koch}, + title = {Bericht des technischen {B}eirats -- {OS/2}}, + journal = dtk, + year = 1997, + volume = {1/97}, + altvolume = 9, + altnumber = 1, + month = may, + pages = 61, + annote = beiprogramm, + keywords = {OS/2} +} + +@Article{ dtk97.1:gloeckner:bericht, + author = {J{\"u}rgen Gl{\"o}ckner}, + title = {Bericht des technischen {B}eirats -- {P}ost{S}cript}, + journal = dtk, + year = 1997, + volume = {1/97}, + altvolume = 9, + altnumber = 1, + month = may, + pages = {61--62}, + annote = beiprogramm, + keywords = {PostScript} +} + +@Article{ dtk97.1:schoepf:bericht, + author = {Rainer Sch{\"o}pf}, + title = {Bericht des technischen {B}eirats -- + {S}erver-{K}oordination}, + journal = dtk, + year = 1997, + volume = {1/97}, + altvolume = 9, + altnumber = 1, + month = may, + pages = 62, + annote = beiprogramm, + keywords = {Server} +} + +@Article{ dtk97.1:braune:bericht, + author = {Klaus Braune}, + title = {Bericht des technischen {B}eirats -- {U}nix}, + journal = dtk, + year = 1997, + volume = {1/97}, + altvolume = 9, + altnumber = 1, + month = may, + pages = 62, + annote = beiprogramm, + keywords = {UNIX} +} + +@Article{ dtk97.1:gaertner:bericht, + author = {Ralf G{\"a}rtner}, + title = {Bericht des technischen {B}eirats -- {O}pen{VMS}}, + journal = dtk, + year = 1997, + volume = {1/97}, + altvolume = 9, + altnumber = 1, + month = may, + pages = {62--63}, + annote = beiprogramm, + keywords = {OpenVMS} +} + +@Article{ dtk97.1:schmidt:tex-umgebung, + author = {Walter Schmidt}, + title = {Eine {\TeX}-{U}mgebung f{\"u}r {OS/2}, {H}eft 4/96}, + journal = dtk, + year = 1997, + volume = {1/97}, + altvolume = 9, + altnumber = 1, + month = may, + pages = 64, + annote = leserbrief, + keywords = {Leserbrief, OS/2, EPM\TeX} +} + +@Article{ dtk97.1:koch:latex-wegweiser, + author = {Thomas Koch}, + title = {Der {\LaTeX}-{W}egweiser}, + journal = dtk, + year = 1997, + volume = {1/97}, + altvolume = 9, + altnumber = 1, + month = may, + pages = {65--66}, + annote = rezension, + keywords = {Rezensionen, Grundkonzepte, \LaTeXe-Beschreibung} +} + +@Article{ dtk97.1:schlechte:texikon, + author = {Andreas Schlechte}, + title = {Das {\TeX}ikon -- {R}eferenzhandbuch f{\"u}r {\TeX} und + {\LaTeX}}, + journal = dtk, + year = 1997, + volume = {1/97}, + altvolume = 9, + altnumber = 1, + month = may, + pages = {66--68}, + annote = rezension, + keywords = {Rezension, Nachschlagewerk} +} + +@Article{ dtk97.2:dietsche:editorial, + author = {Luzia Dietsche}, + title = {Editorial}, + journal = dtk, + year = 1997, + volume = {2/97}, + altvolume = 9, + altnumber = 2, + month = jul, + pages = {3}, + annote = editorial, + keywords = {} +} + +@Article{ dtk97.2:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1997, + volume = {2/97}, + altvolume = 9, + altnumber = 2, + month = jul, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk97.2:neubauer:software, + author = {Marion Neubauer}, + title = {Neue {S}oftware bei {DANTE} e.V.}, + journal = dtk, + year = 1997, + volume = {2/97}, + altvolume = 9, + altnumber = 2, + month = jul, + pages = {5--7}, + annote = hinterbuehne, + keywords = {Software, Verteilung} +} + +@Article{ dtk97.2:dietsche:drucken, + author = {Luzia Dietsche}, + title = {Drucken wie zu {O}mas {Z}eiten}, + journal = dtk, + year = 1997, + volume = {2/97}, + altvolume = 9, + altnumber = 2, + month = jul, + pages = 8, + annote = fremdebuehne, + keywords = {Leipzig, Museum, Druckerei, Druckkunst, historisch} +} + +@Article{ dtk97.2:neugebauer:ueberfluessiges, + author = {Gerd Neugebauer}, + title = {{\"U}berfl{\"u}ssiges? --- {K}lammern um {M}akroargumente}, + journal = dtk, + year = 1997, + volume = {2/97}, + altvolume = 9, + altnumber = 2, + month = jul, + pages = {9--13}, + annote = bretter, + keywords = {Klammerungen, Makros, Argumente, Token} +} + +@Article{ dtk97.2:barthelmann:zaehler, + author = {Klaus Barthelmann}, + title = {Z{\"a}hler nicht zur{\"u}cksetzen}, + journal = dtk, + year = 1997, + volume = {2/97}, + altvolume = 9, + altnumber = 2, + month = jul, + pages = {13--19}, + annote = bretter, + keywords = {Fu{\ss}noten, Z{\"a}hler, Listenverarbeitung, Mouth, + Stommach, Makro}, + abstract = {Angenommen, Sie m{\"o}chten die Dokumentenklasse + \texttt{report} verwenden und ihre Fu{\ss}noten fortlaufend + durch den gesamten Text numerieren. Sie bemerken aber, + da{\ss} die Z{\"a}hlung in jedem Kapitel neu beginnt. Was + tun? Die saubere und einfache L{\"o}sung besteht darin, + \texttt{report.cls} zu kopieren, umzubenennen und die Zeile + \verb+\@addtoreset{footnote}{chapter}+ zu streichen. + Nat{\"u}rlich k{\"o}nnen dann noch weitere Anpassungen + vorgenommen werden. Die unsaubere L{\"o}sung dagegen + erfodert, die Wirkung dieser Zeile nachtr{\"a}glich + aufzuheben. Sie greift in {\LaTeXe}-Interna ein und lehrt + uns etwas {\"u}ber Listenverarbeitung in {\TeX}.} +} + +@Article{ dtk97.2:schmidt:absaetze, + author = {Walter Schmidt}, + title = {Abs{\"a}tze -- einmal anders}, + journal = dtk, + year = 1997, + volume = {2/97}, + altvolume = 9, + altnumber = 2, + month = jul, + pages = {19--22}, + annote = bretter, + abstract = {Kennzeichnet man den Beginn eines Absatzes weder mit einem + Einzug noch mit zus{\"a}tzlichen Durchschu{\ss}, dann ist + er nicht mehr erkennbar, wenn der vorausgehende Absatz + gerade mit einer vollen Zeile endet. Es wird beschrieben, + wie {\TeX} dieses Problem selbst{\"a}ndig beheben kann und + worauf man dabei zu achten hat.}, + keywords = {Absatzformen} +} + +@Article{ dtk97.2:sieber:russischer, + author = {Holm Sieber}, + title = {Russischer {T}extsatz mit {\LaTeX}}, + journal = dtk, + year = 1997, + volume = {2/97}, + altvolume = 9, + altnumber = 2, + month = jul, + pages = {22--31}, + annote = bretter, + keywords = {\texttt{babel}, kyrillische Zeichens{\"a}tze, russische + Trenntabellen}, + abstract = {Der Satz mehrsprachiger Texte mit {\LaTeXe} ist dank dem + \glqq babel\grqq-Paket an sich kein Problem. Beim ersten + Versuch, damit einen russischen Text zu setzen, mu{\ss}te + ich allerdings feststellen, da{\ss} meine + {\TeX}-Distribution (te{\TeX}) daf{\"u}r nicht vorbereitet + gewesen ist. Ich habe daraufhin die fehlenden Teile + installiert. Hier beschreibe ich die einzelnen Schritte + dieser Installation, die Nutzung f{\"u}r das Schreiben + russischer Texte und die in diesem Proze{\ss} gewonnen Erfahrungen.} +} + +@Article{ dtk97.2:molitor:aufbereitung, + author = {Ernst Molitor}, + title = {Aufbereitung der {E}rgebnisse von {L}iteratur-{R}echerchen + f{\"u}r {\LaTeX} und {\BibTeX}}, + journal = dtk, + year = 1997, + volume = {2/97}, + altvolume = 9, + altnumber = 2, + month = jul, + pages = {31--36}, + annote = bretter, + abstract = {Die inzwischen vielerorts zug\"anglichen + Literaturdatenbanken erleichtern die Suche nach Literatur + zu einem bestimmten Thema ganz erheblich. Die Umwandlung + des Ausgabeformats solcher Datenbanksysteme nach {\LaTeX} + und {\BibTeX} ist ohne geeignete Werkzeuge allerdings + m\"uhsam. In diesem Artikel m\"ochte ich ein kleines + Programm beschreiben, das eine solche Umwandlung eines + bestimmten Literaturdatenbank-Ausgabeformates + bewerkstelligt. Das Programm ist unter Einsatz von + {\textit{flex}} geschrieben und baut auf der + \textit{standard template library} auf.}, + keywords = {Literaturrecherche, Datenbank, Umwandlung, Konverter, + \BibTeX, medline, litlex} +} + +@Article{ dtk97.2:niepraschk:psfrag-paket, + author = {Rolf Niepraschk}, + title = {Das {PSfrag}-{P}aket}, + journal = dtk, + year = 1997, + volume = {2/97}, + altvolume = 9, + altnumber = 2, + month = jul, + pages = {36--39}, + annote = fundus, + abstract = {Im folgenden Artikel wird das {\LaTeX}-Paket + {\textsf{PSfrag}} vorgestellt und an einem Beispiel + gezeigt, wie damit Textbestandteile von + \texttt{eps-}Grafiken nachtr{\"a}glich ver{\"a}ndert werden + k{\"o}nnen.} +} + +@Article{ dtk97.2:latex-raetsel, + title = {{\LaTeX}-{R}{\"a}tsel}, + journal = dtk, + year = 1997, + volume = {2/97}, + altvolume = 9, + altnumber = 2, + month = jul, + pages = 40, + annote = beiprogramm, + keywords = {Kreuzwortr{\"a}tsel} +} + +@Article{ dtk97.2:decker:protokoll, + author = {Herbert F. Decker}, + title = {Protokoll der 16.~{M}itgliederversammlung, {H}eft 1/97}, + journal = dtk, + year = 1997, + volume = {2/97}, + altvolume = 9, + altnumber = 2, + month = jul, + pages = {41--42}, + annote = leserbrief, + keywords = {Leserbrief, Mitgliederschwund, Gegenma{\ss}nahmen} +} + +@Article{ dtk97.2:willadt:mikrotypographie-regeln, + author = {Peter Willadt}, + title = {Mikrotypographie-{R}egeln, {T}eil {II}, {H}eft 1/97}, + journal = dtk, + year = 1997, + volume = {2/97}, + altvolume = 9, + altnumber = 2, + month = jul, + pages = {43}, + note = {mit Antwort von Marion Neubauer}, + annote = leserbrief, + keywords = {Leserbrief, DIN-Vorschrift Datum, neue Rechtschreibung} +} + +@Article{ dtk97.2:dietsche:lesetypographie, + author = {Luzia Dietsche}, + title = {Lesetypographie}, + journal = dtk, + year = 1997, + volume = {2/97}, + altvolume = 9, + altnumber = 2, + month = jul, + pages = {44--45}, + annote = rezension, + keywords = {Rezension, weiterf{\"u}hrendes Handbuch, Typograhie + allgemein} +} + +@Article{ dtk97.3:raichle:editorial, + author = {Bernd Raichle}, + title = {Editorial}, + journal = dtk, + year = 1997, + volume = {3/97}, + altvolume = 9, + altnumber = 3, + month = oct, + pages = {3--4}, + annote = editorial +} + +@Article{ dtk97.3:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1997, + volume = {3/97}, + altvolume = 9, + altnumber = 3, + month = oct, + pages = {5--8}, + annote = hinterbuehne +} + +@Article{ dtk97.3:sowa:kassenbericht, + author = {Friedhelm Sowa}, + title = {Kassenbericht 1995}, + journal = dtk, + year = 1997, + volume = {3/97}, + altvolume = 9, + altnumber = 3, + month = oct, + pages = {9--10}, + annote = hinterbuehne, + keywords = {Kassenbericht} +} + +@Article{ dtk97.3:schmidt:tex-kompatible, + author = {Walter Schmidt}, + title = {{\TeX}-kompatible {R}echtschreibpr{\"u}fung f{\"u}r den + {E}ditor {EPM} unter {OS/2} {W}arp}, + journal = dtk, + year = 1997, + volume = {3/97}, + altvolume = 9, + altnumber = 3, + month = oct, + pages = {11--13}, + annote = beiprogramm, + keywords = {EPM, OS/2, Rechtschreibpr{\"u}fung}, + abstract = {Der sogenannte \glqq erweiterte Editor\grqq{} des + Betriebssystems OS/2 l{\"a}{\ss}t sich als komfortable + Umgebung f{\"u}r \TeX{} und \LaTeX{} einrichten. Der + Artikel beschreibt, wie man ihn um eine \TeX-kompatible + Rechtschreibpr{\"u}fung erg{\"a}nzt, die sowohl Deutsch als + auch Englisch und zahlreiche weitere Sprachen unterst{\"u}tzt.} +} + +@Article{ dtk97.3:gercke:texword, + author = {Martin Gercke}, + title = {{\TeX}{W}ord f{\"u}r {W}indows}, + journal = dtk, + year = 1997, + volume = {3/97}, + altvolume = 9, + altnumber = 3, + month = oct, + pages = {13--15}, + annote = beiprogramm +} + +@Article{ dtk97.3:schlechte:raechtschraibrehform, + author = {Andreas Schlechte}, + title = {{D}ie neue {R}{\"a}chtschraibrehform}, + journal = dtk, + year = 1997, + volume = {3/97}, + altvolume = 9, + altnumber = 3, + month = oct, + pages = {15--22}, + annote = beiprogramm, + keywords = {Rechtschreibreform, Silbentrennung, german-Paket}, + abstract = {Zur Zeit vergeht kaum ein Monat, in dem nicht wieder eine + neue Diskussion zur neuen Rechtschreibreform aufgeworfen + wird. Viele Menschen werden durch {\"u}berzogene Beispiele + und Gegendarstellungen verunsichert. In diesem Artikel + werde ich die wesentlichen {\"A}nderungen aufzeigen, eine + -- mit meiner pers{\"o}nlichen Meinung unterlegte -- + Bewertung versuchen und ein wenig auf die Umstellung + f{\"u}r \TeX-Anwender eingehen.} +} + +@Article{ dtk97.3:raichle:texikon, + author = {Bernd Raichle}, + title = {{D}as {\TeX}ikon, {H}eft 1/97: {A}ufl{\"o}sung}, + journal = dtk, + year = 1997, + volume = {3/97}, + altvolume = 9, + altnumber = 3, + month = oct, + pages = {23--24}, + annote = beiprogramm, + keywords = {\TeX{}ikon} +} + +@Article{ dtk97.3:latex-raetsel, + title = {{\LaTeX}-{R}{\"a}tsel, {H}eft 2/97: {A}ufl{\"o}sung}, + journal = dtk, + year = 1997, + volume = {3/97}, + altvolume = 9, + altnumber = 3, + month = oct, + pages = 25, + annote = beiprogramm, + keywords = {Kreuzwortr{\"a}tsel} +} + +@Article{ dtk97.3:neugebauer:vor, + author = {Gerd Neugebauer}, + title = {{V}or {G}ebrauch sch{\"u}tteln}, + journal = dtk, + year = 1997, + volume = {3/97}, + altvolume = 9, + altnumber = 3, + month = oct, + pages = {26--36}, + annote = fundus, + keywords = {Metafont, Outline-Fonts, outline}, + abstract = {\glqq Outline\grqq-Schriften sind im \TeX-Umfeld nicht + sehr verbreitet. Trotzdem kann die Besch{\"a}ftigung mit + der Erzeugung solcher Schriften einige Einsichten in die + Arbeitsweise von {\MF} vermitteln. In diesem Beitrag wird + nicht nur die Arbeitsweise einer Outline-Routine in {\MF} + erl{\"a}utert und vorbereitete Outline-Schriften + vorgestellt, sondern auch gezeigt, wie man zu beliebigen + {\MF}-Schriften eine Outline-Variante erstellen und nutzen kann. } +} + +@Article{ dtk97.3:boeke:absaetze, + author = {Henning B{\"o}ke}, + title = {{A}bs{\"a}tze -- einmal anders, {H}eft 2/97}, + journal = dtk, + year = 1997, + volume = {3/97}, + altvolume = 9, + altnumber = 3, + month = oct, + pages = {37--40}, + annote = leserbrief +} + +@Article{ dtk97.3:schmidt:antwort, + author = {Walter Schmidt}, + title = {{A}ntwort auf den {L}eserbrief von {H}enning {B}{\"o}ke}, + journal = dtk, + year = 1997, + volume = {3/97}, + altvolume = 9, + altnumber = 3, + month = oct, + pages = 40, + annote = leserbrief +} + +@Article{ dtk97.3:hirsch:leserbrief, + author = {Andreas Hirsch}, + title = {{Z}um {L}eserbrief von {H}erbert {F}.~{D}ecker, {H}eft + 2/97}, + journal = dtk, + year = 1997, + volume = {3/97}, + altvolume = 9, + altnumber = 3, + month = oct, + pages = 41, + annote = leserbrief +} + +@Article{ dtk97.3:gierhardt:leserbrief, + author = {Horst Gierhardt}, + title = {{Z}um {L}eserbrief von {H}erbert {F}.~{D}ecker, {H}eft + 2/97}, + journal = dtk, + year = 1997, + volume = {3/97}, + altvolume = 9, + altnumber = 3, + month = oct, + pages = {42--44}, + annote = leserbrief +} + +@Article{ dtk97.3:niepraschk:zaehler, + author = {Rolf Niepraschk}, + title = {{Z}{\"a}hler nicht zur{\"u}cksetzen, {H}eft 2/97}, + journal = dtk, + year = 1997, + volume = {3/97}, + altvolume = 9, + altnumber = 3, + month = oct, + pages = 44, + annote = leserbrief, + keywords = {\verb|removefr|, \verb|remreset|, Z{\"a}hler} +} + +@Article{ dtk97.3:schoebel:ich, + author = {Wolfgang Sch{\"o}bel}, + title = {{I}ch h{\"a}tt' da mal 'ne {F}rage}, + journal = dtk, + year = 1997, + volume = {3/97}, + altvolume = 9, + altnumber = 3, + month = oct, + pages = {45--46}, + annote = leserbrief +} + +@Article{ dtk97.3:neubauer:aeltere, + author = {Marion Neubauer}, + title = {{\"A}ltere {A}usgaben von {\TeX}-{B}{\"u}chern bei {DANTE} + {e.V.}}, + journal = dtk, + year = 1997, + altvolume = 9, + altnumber = 3, + volume = {3/97}, + month = oct, + pages = {48--50}, + annote = theaterkasse +} + +@Article{ dtk97.4:neugebauer:editorial, + author = {Gerd Neugebauer}, + title = {Editorial}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {3--4}, + annote = editorial +} + +@Article{ dtk97.4:lammarsch:grusswort, + author = {Joachim Lammarsch}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {5--12}, + annote = hinterbuehne +} + +@Article{ dtk97.4:lammarsch:fonds, + author = {Joachim Lammarsch}, + title = {{F}onds zur {U}nterst{\"u}tzung von {M}itgliedern}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = 12, + annote = hinterbuehne +} + +@Article{ dtk97.4:neubauer:belichtungsservice, + author = {Marion Neubauer}, + title = {Belichtungsservice}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {12--14}, + annote = hinterbuehne +} + +@Article{ dtk97.4:hafner:protokoll, + author = {Thomas Hafner}, + title = {Protokoll der Sitzung AK Weiterentwicklung}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {15--16}, + annote = hinterbuehne +} + +@Article{ dtk97.4:braune:protokoll, + author = {Klaus Braune}, + title = {{P}rotokoll der {S}itzung {A}{K} + {S}oftware-{D}istribution}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {17--18}, + annote = hinterbuehne +} + +@Article{ dtk97.4:muench:protokoll, + author = {Uwe M{\"u}nch}, + title = {{P}rotokoll der {S}itzung {A}{K} + {\"O}ffentlichkeitsarbeit}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {18--24}, + annote = hinterbuehne +} + +@Article{ dtk97.4:erlmeier:bericht, + title = {Bericht des technischen {B}eirates -- {A}miga}, + author = {Markus Erlmeier}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {24}, + annote = hinterbuehne, + keywords = {Amiga} +} + +@Article{ dtk97.4:meyer-lerbs:bericht, + title = {Bericht des technischen {B}eirates -- {M}acintosch + {A}bschlu{\ss}bericht}, + author = {Lothar Meyer-Lerbs}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {24--25}, + annote = hinterbuehne, + keywords = {Macintosh} +} + +@Article{ dtk97.4:knappen:bericht, + title = {Bericht des technischen {B}eirates -- {\MF}}, + author = {J{\"o}rg Knappen}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {25--26}, + annote = hinterbuehne, + keywords = {Metafont} +} + +@Article{ dtk97.4:schoepf:bericht, + author = {Rainer Sch{\"o}pf}, + title = {Bericht des technischen {B}eirates -- + {S}erver-{K}oordination}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {25}, + annote = hinterbuehne, + keywords = {Server} +} + +@Article{ dtk97.4:braune:bericht, + author = {Klaus Braune}, + title = {Bericht des technischen {B}eirates -- {U}nix}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {26--27}, + annote = hinterbuehne, + keywords = {UNIX} +} + +@Article{ dtk97.4:gaertner:bericht, + author = {Ralf G{\"a}rtner}, + title = {Bericht des technischen {B}eirates -- {VMS}}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {27--28}, + annote = hinterbuehne, + keywords = {OpenVMS} +} + +@Article{ dtk97.4:willadt:verflixte, + author = {Peter Willadt}, + title = {Das verflixte achte {B}it}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {29--39}, + annote = bretter, + keywords = {8-Bit, Fonts (8-Bit), Kodierung, Fonts (EC), EC-Fonts}, + abstract = {Wenn eine bestehende {\TeX}-Installation auf 8-Bit-Eingabe + und 8-Bit-Zeichens{\"a}tze umgestellt wird, ergeben sich + einige neue Aspekte. Der Schwerpunkt dieses Artikels liegt + weniger bei den Details der Umstellung selbst, als vielmehr + bei den Ver{\"a}nderungen, die diese f{\"u}r die + t{\"a}gliche Arbeit mit sich bringen.} +} + +@Article{ dtk97.4:eckermann:texnische, + author = {Matthias Eckermann}, + title = {{\TeX}nische {Q}ualen}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {40--42}, + annote = beiprogramm +} + +@Article{ dtk97.4:kohm:jung, + author = {Markus Kohm}, + title = {Jung gewohnt, alt getan}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {42}, + annote = beiprogramm +} + +@Article{ dtk97.4:post:erstes, + author = {Christa Post}, + title = {{"`E}rstes {A}rbeiten mit {\TeX"`} von {A}rnulf {L}iebing}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {43--44}, + annote = rezension, + keywords = {Rezension}, + reference = {Arnulf Liebing: \emph{Erstes Arbeiten mit \TeX}\\ Prentice + Hall, 1996;\\ ISBN 3-8272-9521-1\\ 192 Seiten, 39,95~DM} +} + +@Article{ dtk97.4:vieth:schnell, + author = {Ulrik Vieth}, + title = {{"`S}chnell ans {Z}iel mit {\LaTeXe"`} von {J}{\"o}rg + {K}nappen}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {44--47}, + annote = rezension, + keywords = {Rezension}, + reference = {J{\"o}rg Knappen: \emph{Schnell ans Ziel mit \LaTeXe}\\ R. + Oldenbourg Verlag, M{\"u}nchen, Wien, 1997;\\ ISBN + 3-486-24199-0\\ 207 Seiten, 48,00~DM} +} + +@Article{ dtk97.4:schroeder:tex, + author = {Martin Schr{\"o}der}, + title = {{\TeX} {M}erchandising---{A}n {A}nnouncement}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {48--49}, + annote = fremdebuehne, + keywords = {Merchandising} +} + +@Article{ dtk97.4:schmitt:dezimalkomma, + author = {Peter Schmitt}, + title = {{"`D}ezimalkomma beim {\TeX}satz in deutsch{"'}, {H}eft + 1/94}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {50}, + annote = leserbrief, + keywords = {Leserbrief, Dezimalkomma, Formelsatz, Komma in Zahlen, + Mathematik} +} + +@Article{ dtk97.4:schmitt:orale, + author = {Peter Schmitt}, + title = {{"`O}rale {S}pielereien mit {\TeX} {--} {T}eil {III} + ({A}ddendum){"'}}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {50--53}, + annote = leserbrief, + keywords = {Leserbrief, Makroverarbeitung, Makrodefinition, + Makroprogrammierung, \verb|\relax|} +} + +@Article{ dtk97.4:diverse:offener, + author = {Diverse}, + title = {{O}ffener {B}rief an das {P}r{\"a}sidium von {DANTE} + e.{V}}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {53--56}, + annote = leserbrief +} + +@Article{ dtk97.4:praesidium:schriftliche, + author = {Pr{\"a}sidium}, + title = {{S}chriftliche {A}ntwort auf den {"`O}ffenen {B}rief{"'}}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {56--60}, + annote = leserbrief +} + +@Article{ dtk97.4:molitor:brief, + author = {Ernst Molitor}, + title = {{B}rief an den {P}r{\"a}sidenten}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {61--63}, + annote = leserbrief +} + +@Article{ dtk97.4:lammarsch:kommentar, + author = {Joachim Lammarsch}, + title = {{K}ommentar zum {O}ffenen {B}rief}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {63--65}, + annote = leserbrief +} + +@Article{ dtk97.4:braun:etwas, + author = {Jan Braun}, + title = {{E}in etwas anderer {W}etterbericht}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {66-68}, + annote = leserbrief +} + +@Article{ dtk97.4:eckermann:ruecktritt, + author = {Matthias Eckermann}, + title = {R{\"u}cktritt}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {68--69}, + annote = leserbrief +} + +@Article{ dtk97.4:neubauer:buecher, + author = {Marion Neubauer}, + title = {B{\"u}cher bei {DANTE} e.{V}.}, + journal = dtk, + year = 1998, + altvolume = 9, + altnumber = 4, + volume = {4/97}, + month = feb, + pages = {70--73}, + annote = theaterkasse +} + +@Article{ dtk98.1:steinbach-werner:editorial, + author = {Claudia Steinbach-Werner}, + title = {Editorial}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 1, + volume = {1/98}, + month = may, + pages = {3--4}, + annote = editorial +} + +@Article{ dtk98.1:neubauer:grusswort, + author = {Marion Neubauer}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 1, + volume = {1/98}, + month = may, + pages = {5--7}, + annote = hinterbuehne +} + +@Article{ dtk98.1:post:protokoll, + author = {Christa Post}, + title = {Protokoll der 18.~{M}itgliederversammlung von {DANTE}, + {D}eutschsprachige {A}nwendervereinigung {\TeX} e.V.}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 1, + volume = {1/98}, + month = may, + pages = {8--28}, + annote = hinterbuehne +} + +@Article{ dtk98.1:lammarsch:bar-kasse, + author = {Joachim Lammarsch}, + title = {Die {B}ar-{K}asse -- {D}as {E}rgebnis der {R}echerche}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 1, + volume = {1/98}, + month = may, + pages = {29--33}, + annote = hinterbuehne +} + +@Article{ dtk98.1:neubauer:offnener, + author = {Marion Neubauer}, + title = {Offnener {B}rief an das {CTAN}-{T}eam}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 1, + volume = {1/98}, + month = may, + pages = {33--35}, + annote = hinterbuehne +} + +@Article{ dtk98.1:redaktionsstatut, + title = {Redaktionsstatut}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 1, + volume = {1/98}, + month = may, + pages = {36--39}, + annote = hinterbuehne +} + +@Article{ dtk98.1:hirsch.volker-eiseler:installation, + author = {Andreas Hirsch and Dominicus Heinzeller und Volker + Eiseler}, + title = {Installation eines {\TeX}-{G}esamtsystems aus {MiK\TeX}, + {G}host{V}iew und {W}in{E}dt}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 1, + volume = {1/98}, + month = may, + pages = {40--50}, + annote = bretter, + abstract = {W{\"a}hrend den Nutzern von Linux nach der Installation + des Betriebssystems auch gleich ein vollst{\"a}ndiges (und + vor allem lauff{\"a}higes) {\TeX}-Gesamtsystem zur + Verf{\"u}gung steht, m{\"u}ssen diejenigen, welche {\TeX} + auf einem PC unter Windows 95 einsetzen wollen, zuerst noch + kr{\"a}ftig Hand anlegen. Der Klassiker unter den + {\TeX}-Implementationen f{\"u}r PCs unter DOS ist {em\TeX}; + mit zunehmender Verbreitung von Windows 95 (und damit dem + oberfl{\"a}chlichen Abschied von DOS) ist die Arbeit damit + nicht mehr optimal.}, + keywords = {Windows, Installation, MiK\TeX, GhostView, WinEdt} +} + +Article{ dtk98.1:baumert:katzenbeisser, + author = {Uwe Baumert}, + title = {Katzenbeisser, {"`V}on der {I}dee zum {D}okument -- + {E}inf{\"u}hrung in {\TeX} und {\LaTeX"'}}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 1, + volume = {1/98}, + month = may, + pages = {53--55}, + annote = rezension, + keywords = {Rezension}, + reference = {Stefan Katzenbeisser: \emph{Von der Idee zum Dokument -- + Eine Einf{\"u}hrung in \TeX\ und \LaTeX}\\ + R. Oldenbourg Verlag, M{\"u}nchen, 2. Auflage 1997;\\ + ISBN 3-486-24182-6\\ + 230 Seiten, 69,00~DM} +} +@Article{ dtk98.1:oberdiek:leserbrief, + author = {Heiko Oberdiek}, + title = {Zum {L}eserbrief {"`O}rale {S}pielereien mit {\TeX}"', + {H}eft 4/97}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 1, + volume = {1/98}, + month = may, + pages = {56}, + annote = leserbrief, + keywords = {Leserbrief} +} + +@Article{ dtk98.1:niepraschk:verflixte, + author = {Rolf Niepraschk}, + title = {Das verflixte achte {B}it, {H}eft 4/97}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 1, + volume = {1/98}, + month = may, + pages = {56--57}, + annote = leserbrief, + keywords = {Leserbrief, 8-Bit, Fonts (8-Bit), Kodierung, Fonts (EC), + EC-Fonts} +} + +@Article{ dtk98.1:koen:raechtschraibrehform, + author = {Wilhelm H. Koen}, + title = {R{\"a}chtschraibrehform, {H}eft 3/97}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 1, + volume = {1/98}, + month = may, + pages = {57--58}, + annote = leserbrief, + keywords = {Leserbrief, Rechtschreibreform} +} + +@Article{ dtk98.1:fismer:tex, + author = {Gregor Fismer}, + title = {{\TeX} f{\"u}r alle}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 1, + volume = {1/98}, + month = may, + pages = {58--59}, + annote = leserbrief, + keywords = {Leserbrief} +} + +@Article{ dtk98.1:lang:liebe, + author = {Christian B. Lang}, + title = {Liebe {\TeX}nische {F}reunde}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 1, + volume = {1/98}, + month = may, + pages = {59}, + annote = leserbrief, + keywords = {Leserbrief} +} + +@Article{ dtk98.2:steinbach-werner:editorial, + author = {Claudia Steinbach-Werner}, + title = {Editorial}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 2, + volume = {2/98}, + month = sep, + pages = {3--4}, + annote = editorial +} + +@Article{ dtk98.2:neubauer:grusswort, + author = {Marion Neubauer}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 2, + volume = {2/98}, + month = sep, + pages = {5--10}, + annote = hinterbuehne +} + +@Article{ dtk98.2:sowa:kassenbericht, + author = {Friedhelm Sowa}, + title = {Kassenbericht 1996}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 2, + volume = {2/98}, + month = sep, + pages = {10--11}, + annote = hinterbuehne +} + +@Article{ dtk98.2:bericht, + title = {Bericht des {W}irtschaftpr{\"u}fers}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 2, + volume = {2/98}, + month = sep, + pages = {12--25}, + annote = hinterbuehne +} + +@Article{ dtk98.2:willadt:ergaenzungsvorschlag, + author = {Peter Willadt}, + title = {Erg{\"a}nzungsvorschlag zum {R}edaktionsstatut}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 2, + volume = {2/98}, + month = sep, + pages = {25}, + annote = hinterbuehne +} + +@Article{ dtk98.2:taylor:-tex, + author = {Philip Taylor}, + title = {{$\varepsilon$-\TeX} {V}ersion 2: {V}erf{\"u}gbar auf der + {CD-ROM} "`{\TeX} {L}ive"'!}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 2, + volume = {2/98}, + month = sep, + pages = {26--35}, + annote = bretter, + keywords = {$\varepsilon$-\TeX} +} + +@Article{ dtk98.2:schmidt:tex, + author = {Walter Schmidt}, + title = {{\TeX} und die neue deutsche {R}echtschreibung}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 2, + volume = {2/98}, + month = sep, + pages = {35--37}, + annote = bretter, + abstract = {Die neuen Schreibregeln f{\"u}r die deutsche Sprache + machen {\"A}nderungen an Silbentrennmustern und an + Makropaketen erforderlich. In Zukunft mu{\ss} sowohl die + traditionelle als auch die neue Rechtschreibung + unterst{\"u}tzt werden, Dieser Aufsatz beschreibt die + entsprechenden Neuerungen.}, + keywords = {Rechtschreibung, Silbentrennung, german-Style} +} + +@Article{ dtk98.2:heyl:morse, + author = {Udo Heyl}, + title = {Morse -- {Z}eichensatz der telegraphischen {S}ignale}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 2, + volume = {2/98}, + month = sep, + pages = {38--42}, + annote = bretter, + keywords = {Morsezeichen, Fonts, Telegraphie} +} + +@Article{ dtk98.2:willadt:tabellen, + author = {Peter Willadt}, + title = {Tabellen importieren}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 2, + volume = {2/98}, + month = sep, + pages = {42--45}, + annote = bretter, + keywords = {Tabellen} +} + +@Article{ dtk98.2:schmitt:tex-raetsel, + author = {Peter Schmitt}, + title = {Ein {\TeX}-{R}{\"a}tsel}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 2, + volume = {2/98}, + month = sep, + pages = {46--48}, + annote = beiprogramm, + keywords = {R{\"a}tsel, Klammern} +} + +@Article{ dtk98.2:vieth:latex, + author = {Ulrik Vieth}, + title = {"`{T}he {\LaTeX} {G}raphics {C}ompanion"' von {G}oosens et + al.}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 2, + volume = {2/98}, + month = sep, + pages = {49--52}, + annote = rezension, + keywords = {Rezension}, + reference = {M. Goosens, F. Mittelbach, S. Rahtz: \emph{The \LaTeX\ + Graphics Companion -- Illustrating Documents with \TeX\ and + PostScript}\\ Addison Wesley Longman 1997;\\ ISBN + 0-201-85469-4\\ 580 Seiten, \$\,39,95} +} + +@Article{ dtk98.2:willadt:tex, + author = {Peter Willadt}, + title = {{\TeX} entfesselt -- "`{\TeX} unbound"' von {A}lan + {H}oenig}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 2, + volume = {2/98}, + month = sep, + pages = {52--53}, + annote = rezension, + keywords = {Rezension}, + reference = {Alan Hoenig: \emph{\TeX\ unbound -- \LaTeX\ \& \TeX + Strategies for Fonts, Graphics and More}\\ Oxford + University Press, Oxford and New Yort, 1998\\ ISBN: + 0-19-509686-X (Paperback) 0-19-509685-1 (hardbound)\\ 594 + Seiten, \$\,35 / \$\,60} +} + +@Article{ dtk98.2:kohm:es, + author = {Markus Kohm}, + title = {Es ist nicht alles {G}old, was gl{\"a}nzt}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 2, + volume = {2/98}, + month = sep, + pages = {54--59}, + annote = leserbrief, + keywords = {Leserbrief} +} + +@Article{ dtk98.2:schaeffler:auseinandersetzungen, + author = {Markus Sch{\"a}ffler}, + title = {Auseinandersetzungen beenden}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 2, + volume = {2/98}, + month = sep, + pages = {59--60}, + annote = leserbrief, + keywords = {Leserbrief} +} + +@Article{ dtk98.2:schoepf:antwort, + author = {Rainer Sch{\"o}pf}, + title = {Antwort auf den offenen {B}rief an das {CTAN}-{T}eam}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 2, + volume = {2/98}, + month = sep, + pages = {60--63}, + annote = leserbrief, + keywords = {Leserbrief} +} + +@Article{ dtk98.3:steinbach-werner:editorial, + author = {Claudia Steinbach-Werner}, + title = {Editorial}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 3, + volume = {3/98}, + month = oct, + pages = {3--4}, + annote = editorial +} + +@Article{ dtk98.3:neubauer:grusswort, + author = {Marion Neubauer}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 3, + volume = {3/98}, + month = oct, + pages = {5--7}, + annote = hinterbuehne +} + +@Article{ dtk98.3:sowa:kassenbericht, + author = {Friedhelm Sowa}, + title = {Kassenbericht 1997}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 3, + volume = {3/98}, + month = oct, + pages = {8--9}, + annote = hinterbuehne +} + +@Article{ dtk98.3:willadt:skalierbare, + author = {Peter Willadt}, + title = {Skalierbare {S}chriften}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 3, + volume = {3/98}, + month = oct, + pages = {10--19}, + annote = bretter, + keywords = {Fonts, Schriften, skalieren, PostScript, TrueType, + PSNFSS} +} + +@Article{ dtk98.3:greschner:wege, + author = {Georg S. Greschner}, + title = {Wege des {\TeX}nischen {F}ortschritts}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 3, + volume = {3/98}, + month = oct, + pages = {19--30}, + annote = bretter, + keywords = {WYSIWYG, Windows, OLE, WinWord} +} + +@Article{ dtk98.3:willadt:tex, + author = {Peter Willadt}, + title = {{\TeX} im {I}nternet -- {T}ips f{\"u}r den {E}instieg}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 3, + volume = {3/98}, + month = oct, + pages = {30--34}, + annote = bretter, + keywords = {Internet, WWW, FTP, E-Mail} +} + +@Article{ dtk98.3:skoupy:new, + author = {Karel Skoup\'y}, + title = {{\NTS}: {N}ew {T}ypesetting {S}ystem -- ein neues + {S}atzsystem}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 3, + volume = {3/98}, + month = oct, + pages = {35--45}, + annote = bretter, + keywords = {NTS} +} + +@Article{ dtk98.3:sowa:tex, + author = {Friedhelm Sowa}, + title = {{\TeX} {N}orth{E}ast}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 3, + volume = {3/98}, + month = oct, + pages = {46--47}, + annote = beiprogramm, + keywords = {TUG} +} + +@Article{ dtk98.3:lammarsch:erlebnisse, + author = {Joachim Lammarsch}, + title = {Erlebnisse einer {P}olenreise}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 3, + volume = {3/98}, + month = oct, + pages = {47--50}, + annote = beiprogramm, + keywords = {Euro\TeX} +} + +@Article{ dtk98.3:kinch:microsoft, + author = {Richard Kinch}, + title = {Microsoft kauft {\TeX}}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 3, + volume = {3/98}, + month = oct, + pages = {51--53}, + annote = beiprogramm, + abstract = {Dieser Artikel sollte eigentlich in der April-Ausgabe von + "`Die {\TeX} nische Kom{\"o}die"' erscheinen, genauer am 1. + April des Jahres. Die Redaktion m{\"o}chte den Lesern + diesen Artikel nicht vorenthalten, wenn er auch + jahreszeitlich etwas versp{\"a}tet erscheint. Autor ist + Richard Kinch, der die kommerzielle {\TeX}-Version + TRUE{\TeX} vertreibt. Auf eine {\"U}bersetzung wurde + bewu{\ss}t verzichtet, da der Stil so typisch f{\"u}r + amerikanische "`Nachrichten"' ist.} +} + +@Article{ dtk98.3:vieth:tex, + author = {Ulrik Vieth}, + title = {"`{\TeX} {U}nbound"' von {A}lan {H}oenig}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 3, + volume = {3/98}, + month = oct, + pages = {54--57}, + annote = rezension, + keywords = {Rezension}, + reference = {Alan Hoenig: \emph{\TeX\ unbound -- \LaTeX\ \& \TeX\ + Strategies for Fonts, Graphics and More}\\ Oxford + University Press, Oxford and New Yort, 1998\\ ISBN: + 0-19-509686-X (Paperback) 0-19-509685-1 (hardbound)\\ 594 + Seiten, \$\,35 / \$\,60} +} + +@Article{ dtk98.3:meier:zukuenftigen, + author = {Frank Meier}, + title = {Zum zuk{\"u}nftigen {N}amen des {CTAN}-{S}ervers}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 3, + volume = {3/98}, + month = oct, + pages = {58--59}, + annote = leserbrief, + keywords = {Leserbrief, CTAN} +} + +@Article{ dtk98.3:lanfermann:resuemee, + author = {Dr. Klaus Lanfermann}, + title = {Res{\"u}m{\'e}e eines {M}itglieds}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 3, + volume = {3/98}, + month = oct, + pages = {59--61}, + annote = leserbrief, + keywords = {Leserbrief} +} + +@Article{ dtk98.4:neugebauer:editorial, + author = {Gerd Neugebauer}, + title = {Editorial}, + journal = dtk, + year = 1998, + altvolume = 10, + altnumber = 4, + volume = {4/98}, + month = dec, + pages = {3}, + annote = editorial +} + +@Article{ dtk98.4:koch.schaa:grusswort, + author = {Thomas Koch and Volker RW Schaa}, + title = {{G}ru{\ss}wort}, + journal = dtk, + year = 1998, + volume = {4/98}, + month = dec, + pages = {4--5}, + annote = hinterbuehne +} + +@Article{ dtk98.4:partosch:protokoll, + author = {G{\"u}nter Partosch}, + title = {Protokoll der 19.\ {M}itgliederversammlung von {DANTE + e.\,V.}}, + journal = dtk, + year = 1998, + volume = {4/98}, + month = dec, + pages = {5--18}, + annote = hinterbuehne +} + +@Article{ dtk98.4:neubauer:nachtrag, + author = {Marion Neubauer}, + title = {Nachtrag zum {P}rotokoll der 19.\ {M}itgliderversammlung + von {DANTE e.\,V.}}, + journal = dtk, + year = 1998, + volume = {4/98}, + month = dec, + pages = {18--19}, + annote = hinterbuehne +} + +@Article{ dtk98.4:schaa:lizenzabkommen, + author = {Volker RW Schaa}, + title = {Lizenzabkommen f{\"u}r {WinEdt$^\mathrm{TM}$}}, + journal = dtk, + year = 1998, + volume = {4/98}, + month = dec, + pages = {20--21}, + annote = hinterbuehne +} + +@Article{ dtk98.4:seitz:eindruecke, + author = {Peter Seitz}, + title = {Eindr{\"u}cke vom {H}erbst in {E}ichst{\"a}tt}, + journal = dtk, + year = 1998, + volume = {4/98}, + month = dec, + pages = {22--24}, + annote = theatertage +} + +@Article{ dtk98.4:reichert:einheit-liches, + author = {Axel Reichert}, + title = {Einheit-liches}, + journal = dtk, + year = 1998, + volume = {4/98}, + month = dec, + pages = {25--28}, + annote = bretter +} + +@Article{ dtk98.4:fischer:schnittstelle, + author = {Ulrike Fischer}, + title = {Eine {S}chnittstelle zwischen {D}atenbanken und {\LaTeX}}, + journal = dtk, + year = 1998, + volume = {4/98}, + month = dec, + pages = {28--33}, + annote = bretter +} + +@Article{ dtk98.4:baumert:mit, + author = {Uwe Baumert}, + title = {"`Mit {\LaTeXe} wissenschaftliche {A}rbeiten erstellen"' + von {K}arsten {G}{\"u}nther {(Hg.)}/{T}horsten {Z}ilm}, + journal = dtk, + year = 1998, + volume = {4/98}, + month = dec, + pages = {34--37}, + annote = rezension +} + +@Article{ dtk98.4:schroeder:latex, + author = {Martin Schr{\"o}der}, + title = {"`{\LaTeX}: kurz \& gut"' von {M}atthias {K}alle + {D}alheimer}, + journal = dtk, + year = 1998, + volume = {4/98}, + month = dec, + pages = {37--39}, + annote = rezension +} + +@Article{ dtk98.4:lachenmayr:einfuehrung, + author = {Dr.~Georg Lachenmayr}, + title = {"`Einf{\"u}hrung in {\LaTeXe}"' von {K}arsten {G}{\"u}nther}, + journal = dtk, + year = 1998, + volume = {4/98}, + month = dec, + pages = {39--42}, + annote = rezension +} + +@Article{ dtk98.4:kayssner:wege, + author = {Christian Kayssner}, + title = {Wege des {\TeX}nischen {F}ortschritts {(II)}}, + journal = dtk, + year = 1998, + volume = {4/98}, + month = dec, + pages = {43--47}, + annote = leserbrief +} + +@Article{ dtk98.4:gloeckner:jahr, + author = {J{\"u}rgen Gl{\"o}ckner}, + title = {Ein {J}ahr ist vergangen}, + journal = dtk, + year = 1998, + volume = {4/98}, + month = dec, + pages = {47--48}, + annote = leserbrief +} + +@Article{ dtk98.4:schroeder:tex-loewe, + author = {Martin Schr{\"o}der}, + title = {Der {\TeX}-{L}{\"o}we zum {A}nfassen}, + journal = dtk, + year = 1998, + volume = {4/98}, + month = dec, + pages = {50--51}, + annote = fremdebuehne +} + +@Article{ dtk99.1:neugebauer:editorial, + author = {Gerd Neugebauer}, + title = {Editorial}, + journal = dtk, + year = 1999, + volume = {1/99}, + month = feb, + pages = {3}, + annote = editorial +} + +@Article{ dtk99.1:koch.schaa:grusswort, + author = {Thomas Koch and Volker RW Schaa}, + title = {{G}ru{\ss}wort}, + journal = dtk, + year = 1999, + volume = {1/99}, + month = feb, + pages = {4--5}, + annote = hinterbuehne +} + +@Article{ dtk99.1:schaa:ergaenzung, + author = {Volker RW Schaa}, + title = {Erg{\"a}nzung zum {L}izenzabkommen f{\"u}r + {WinEdt\(^\mathrm{TM}\)}}, + journal = dtk, + year = 1999, + volume = {1/99}, + pages = {5--6}, + month = feb, + annote = hinterbuehne +} + +@Article{ dtk99.1:kohm:verkleinerte, + author = {Markus Kohm}, + title = {Verkleinerte und vergr{\"o}{\ss}erte Ausgaben mit {\LaTeX}}, + journal = dtk, + year = 1999, + volume = {1/99}, + pages = {7--26}, + month = feb, + annote = bretter, + abstract = {Eine immer wiederkehrende Frage zu \LaTeX\ betrifft die + korrekte Vorgehensweise zur Vergr{\"o}{\ss}erung oder + Verkleinerung von Dokumenten. Da diese Frage + unterschiedlich motiviert sein kann und der Fragesteller + sich oftmals {\"u}ber seine Motive nicht vollst{\"a}ndig + klar ist, f{\"a}llt es den Experten h{\"a}ufig nicht + leicht, die Frage in der Hinsicht korrekt zu beantworten, + da{\ss} der tats{\"a}chlich gew{\"u}nschte Effekt erzielt + wird. + + Im nachfolgenden Artikel werden deshalb ausgehend von einem + h{\"a}ufig anzutreffenden Fallbeispiel verschiedene + M{\"o}glichkeiten vorgestellt und gegeneinander abgewogen. + Aufmerksame Leser der deutschsprachigen DE-\TeX-/DANTE-FAQ + wird es nicht verwundern, zumindest eine der hier + empfohlenen L{\"o}sungen dort auch in Kurzform wiederzufinden.} +} + +@Article{ dtk99.1:niepraschk:ueberschreiben, + author = {Rolf Niepraschk}, + title = {{\"U}berschreiben erlaubt -- das \texttt{overpic}-{P}aket}, + journal = dtk, + year = 1999, + volume = {1/99}, + pages = {27--29}, + month = feb, + annote = bretter, + abstract = {Im folgenden Beispiel wird das \LaTeX-Paket + \texttt{overpic} vorgestellt und an einem Beispiel gezeigt, + wie damit EPS-Grafiken nachtr{\"a}glich durch + \LaTeX-Anweisungen erg{\"a}nzt werden k{\"o}nnen.} +} + +@Article{ dtk99.1:geisse:anpassungen, + author = {Armin Geisse}, + title = {Anpassungen von {DviWin~2.9} an {Web2c} f{\"u}r {WIN32}}, + journal = dtk, + year = 1999, + volume = {1/99}, + pages = {30--33}, + month = feb, + annote = bretter, + abstract = {Dieser Artikel beschreibt eine m{\"o}gliche Anpassung von + DviWin~2.9 an die Web2c-Implementierung f{\"u}r WIN32. Die + Schwerpunkte liegen dabei auf der Nutzung mehrerer + Druckerauf"|l{\"o}sungen sowie auf der Beschr{\"a}nkung der + Font-Verzeichnisse.} +} + +" +@Article{ dtk99.1:willadt:rohdaten, + author = {Peter Willadt}, + title = {Rohdaten einlesen}, + journal = dtk, + year = 1999, + volume = {1/99}, + pages = {33--36}, + month = feb, + annote = bretter, + abstract = {Die Bearbeitung von Daten, die von anderen Programmen + erzeugt wurden, f{\"a}llt am leichtesten, wenn beim + Datenexport Markup eingef{\"u}gt werden kann, das \TeX\ + versteht. In diesem Artikel soll gezeigt werden, wie auch + Daten, die kein Markup enthalten, jedoch in einem genau + festgelegten Format vorliegen, von \TeX\ bearbeitet werden + k{\"o}nnen.} +} + +@Article{ dtk99.1:raichle:vertikal, + author = {Bernd Raichle}, + title = {Vertikal zentrierte {S}eiten}, + journal = dtk, + year = 1999, + volume = {1/99}, + pages = {37--39}, + month = feb, + annote = schonimmer +} + +@Article{ dtk99.1:neugebauer:latex-tips, + author = {Gerd Neugebauer}, + title = {"`{\LaTeX}-{T}ips"' von {J.~Kenneth~Shultis}}, + journal = dtk, + year = 1999, + volume = {1/99}, + pages = {40--42}, + month = feb, + annote = rezension +} + +@Article{ dtk99.1:greschner:addendum, + author = {Dr. Georg S. Greschner}, + title = {Addendum}, + journal = dtk, + year = 1999, + volume = {1/99}, + pages = 43, + month = feb, + annote = leserbrief +} + +@Article{ dtk99.2:neugebauer:editorial, + author = {Gerd Neugebauer}, + title = {Editorial}, + journal = dtk, + year = 1999, + volume = {2/99}, + altvolume = 2, + altnumber = 11, + month = may, + pages = {3}, + annote = editorial, + keywords = {} +} + +@Article{ dtk99.2:koch.schaa:grusswort, + author = {Thomas Koch and Volker RW Schaa}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1999, + volume = {2/99}, + altvolume = 2, + altnumber = 11, + month = may, + pages = {4}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk99.2:partosch:protokoll, + author = {G{\"u}nter Partosch}, + title = {Protokoll der 20.~Mitgliederversammlung}, + journal = dtk, + year = 1999, + volume = {2/99}, + altvolume = 2, + altnumber = 11, + month = may, + pages = {5--16}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk99.2:lammarsch.taylor.ea:bericht, + author = {Joachim Lammarsch and Philip Taylor and Ji{\v{r}}\'{\i} + Zlatu{\v{s}}ka}, + title = {Bericht der Evaluation des \NTS-Projekts}, + journal = dtk, + year = 1999, + volume = {2/99}, + altvolume = 2, + altnumber = 11, + month = may, + pages = {16--19}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk99.2:liebing:satzungsaenderung, + author = {Arnulf Liebing}, + title = {Satzungs{\"a}nderung -- Mitteilung des Satzungsauschusses}, + journal = dtk, + year = 1999, + volume = {2/99}, + altvolume = 2, + altnumber = 11, + month = may, + pages = {19--21}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk99.2:marquardt:dante99, + author = {Colin Marquardt}, + title = {Die DANTE'99}, + journal = dtk, + year = 1999, + volume = {2/99}, + altvolume = 2, + altnumber = 11, + month = may, + pages = {22-24}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk99.2:schmidt:euro-symbol, + author = {Walter Schmidt}, + title = {Das Euro-Symbol f{\"u}r {\LaTeX}}, + journal = dtk, + year = 1999, + volume = {2/99}, + altvolume = 2, + altnumber = 11, + month = may, + pages = {25--30}, + annote = bretter, + keywords = {}, + abstract = {F{\"u}r die W{\"a}hrungseinheit Euro wurde ein eigenes + Symbol definiert. Der Aufsatz beschreibt verschiedene + Zeichens{\"a}tze und Makropakete, die Euro-Zeichen f{\"u}r + die Verwendung mit {\LaTeX} bereitstellen. } +} + +@Article{ dtk99.2:mueller:mit, + author = {Ralf M{\"u}ller}, + title = {Mit {\LaTeX} bequem Briefe schreiben}, + journal = dtk, + year = 1999, + volume = {2/99}, + altvolume = 2, + altnumber = 11, + month = may, + pages = {30--35}, + annote = bretter, + keywords = {}, + abstract = {Das Schreiben von Briefen, insbesondere Serienbriefen, ist + in {\LaTeX} nicht sehr komfortabel. Daher benutzen viele + f{\"u}r diese Anwendungen gro{\ss}e WYSIWYG-Programme. + + Der Artikel stellt eine graphische Benutzeroberfl{\"a}che + vor, mit deren Hilfe das Schreiben von Briefen und + Serienbriefen extrem vereinfacht wird. Die Bedienung sowie + die Funktionsweise des Programmes \emph{tk\_Brief} wird + dabei erl{\"a}utert. } +} + +@Article{ dtk99.2:liebing:serienbriefe, + author = {Arnulf Liebing}, + title = {Serienbriefe mit {\LaTeX}}, + journal = dtk, + year = 1999, + volume = {2/99}, + altvolume = 2, + altnumber = 11, + month = may, + pages = {35--38}, + annote = bretter, + keywords = {} +} + +@Article{ dtk99.2:fischer:serienbriefe, + author = {Ulrike Fischer}, + title = {Serienbriefe}, + journal = dtk, + year = 1999, + volume = {2/99}, + altvolume = 2, + altnumber = 11, + month = may, + pages = {38--44}, + annote = bretter, + keywords = {}, + abstract = {Serienbriefe erm{\"o}glichen eine pers{\"o}nliche + Ansprache des Empf{\"a}ngers -- besonders dann, wenn nicht + nur das Adre{\ss}feld individuellen Text enth{\"a}lt. Die + in diesem Artikel vorgestellten Beispiele kn{\"u}pfen an + eine bereits in "`\DTK"' vorgestellte Methode des + Datenbank-Imports an. } +} + +@Article{ dtk99.2:splett:interlinearuebersetzung, + author = {Siegfried Splett}, + title = {Interlinear{\"u}bersetzung -- Wer wei{\ss} Rat?}, + journal = dtk, + year = 1999, + volume = {2/99}, + altvolume = 2, + altnumber = 11, + month = may, + pages = {44--46}, + annote = bretter, + keywords = {}, + abstract = {Gesucht wird ein Verfahren, mit dem zweisprachige Texte + gesetzt werden k{\"o}nnen. In einer {\em + Interlinear{\"u}bersetzung} steht unter den Satzteilen der + Quelle die {\"U}bertragung, m{\"o}glichst Wort f{\"u}r + Wort, in die Zielsprache. + + Es gibt ein umfangreiches Vorbild: Das Neue Testament + $\cdot$ \emph{Interlinear{\"u}bersetzung + Griechisch-Deutsch}, das in dieser Technik gesetzt ist. } +} + +@Article{ dtk99.2:reincke:typographie, + author = {Torsten Reincke}, + title = {"` Typographie -- wann wer wie"' von Friedrich Friedl, + Nicolaus Ott und Bernard Stein}, + journal = dtk, + year = 1999, + volume = {2/99}, + altvolume = 2, + altnumber = 11, + month = may, + pages = {47--49}, + annote = rezension, + keywords = {}, + abstract = {Wer sich f{\"u}r Typographie und insbesondere das Schaffen + von Typographen, Schriftschneidern, Grafik-Designern und + anderen K{\"u}nstlern interessiert, findet in diesem + Nachschlagewerk eine reichhaltige Auswahl des + Schriftschaffens mit {\"u}ber 2000 Abbildungen. Von der + Titelseite bis zum Logo und Plakat ist dieses Buch ein + Abbild typographischer Kultur durch die Jahrhunderte bis in + unsere Zeit und wird mit einem Geschichtsteil und einem + kurzen Abschnitt zu den Schriftwerkzeugen abgerundet. } +} + +@Article{ dtk99.2:project:mehr, + author = {{\TeX} Merchandising Project}, + title = {Mehr vom {\TeX}-L{\"o}wen}, + journal = dtk, + year = 1999, + volume = {2/99}, + altvolume = 2, + altnumber = 11, + month = may, + pages = {50--51}, + annote = fremdebuehne, + keywords = {} +} + +@Article{ dtk99.3:neugebauer:editorial, + author = {Gerd Neugebauer}, + title = {Editorial}, + journal = dtk, + year = 1999, + volume = {3/99}, + altvolume = 3, + altnumber = 11, + month = aug, + pages = {3}, + annote = editorial, + keywords = {} +} + +@Article{ dtk99.3:koch.schaa:grusswort, + author = {Thomas Koch and Volker RW Schaa}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1999, + volume = {3/99}, + altvolume = 3, + altnumber = 11, + month = aug, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk99.3:schaa:4alltex-cd-rom, + author = {Volker RW Schaa}, + title = {4all{\TeX}-CD-ROM bei \dante}, + journal = dtk, + year = 1999, + volume = {3/99}, + altvolume = 3, + altnumber = 11, + month = aug, + pages = {5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk99.3:hagen:project, + author = {Hans Hagen}, + title = {The \NTS{} project (p)reviewed}, + journal = dtk, + year = 1999, + volume = {3/99}, + altvolume = 3, + altnumber = 11, + month = aug, + pages = {6--13}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk99.3:bexten.hiltner:latex, + author = {Erdmuthe Meyer zu Bexten and Jens Hiltner}, + title = {{\LaTeX}: Das ideale Satzsystem f{\"u}r blinde Studierende + in naturwissenschaftlichen Disziplinen?}, + journal = dtk, + year = 1999, + volume = {3/99}, + altvolume = 3, + altnumber = 11, + month = aug, + pages = {14--26}, + annote = bretter, + keywords = {} +} + +@Article{ dtk99.3:creutzig:interlinearuebersetzung, + author = {Christopher Creutzig}, + title = {Interlinear{\"u}bersetzung: eine M{\"o}glichkeit}, + journal = dtk, + year = 1999, + volume = {3/99}, + altvolume = 3, + altnumber = 11, + month = aug, + pages = {27--29}, + annote = bretter, + keywords = {}, + abstract = {In \emph{\DTK\,2/1999} stellte Siegfried Splett das + Problem, eine einfach zu verwendende Umgebung f{\"u}r + \emph{Interlinear{\"u}bersetzungen} zu programmieren. Mit + einer kleinen Einschr{\"a}nkung stellt dieser Artikel das + Gew{\"u}nschte zur Verf{\"u}gung. } +} + +@Article{ dtk99.3:lagally:interlinearuebersetzung, + author = {Klaus Lagally}, + title = {Interlinear{\"u}bersetzung: ein Vorschlag}, + journal = dtk, + year = 1999, + volume = {3/99}, + altvolume = 3, + altnumber = 11, + month = aug, + pages = {30--33}, + annote = bretter, + keywords = {}, + abstract = {In Heft 2/1999 von \emph{\DTK} fragt Siegfried Splett nach + einer bequemen M{\"o}glichkeit, in zweisprachigen Texten + Satzteile einander zuzuordnen und jeweils zweizeilig + untereinander abzusetzen. Hier ist ein L{\"o}sungsvorschlag. } +} + +@Article{ dtk99.3:schmitt:interlinear-versionen, + author = {Peter Schmitt}, + title = {Interlinear-Versionen: ein Vorschlag}, + journal = dtk, + year = 1999, + volume = {3/99}, + altvolume = 3, + altnumber = 11, + month = aug, + pages = {34--41}, + annote = bretter, + keywords = {} +} + +@Article{ dtk99.3:willadt:tex, + author = {Peter Willadt}, + title = {{\TeX} f{\"u}r Serient{\"a}ter}, + journal = dtk, + year = 1999, + volume = {3/99}, + altvolume = 3, + altnumber = 11, + month = aug, + pages = {41--50}, + annote = bretter, + keywords = {}, + abstract = {Dieser Artikel erl{\"a}utert zuerst Anforderungen, die die + Post an Serienbriefe stellt, anschlie{\ss}end werden + Hinweise zur Optimierung der Verarbeitungsgeschwindigkeit + seitens {\TeX} und des Druckers gegeben. } +} + +@Article{ dtk99.3:wilhelms:4alltex-preview, + author = {Gerhard Wilhelms}, + title = {4all{\TeX}-Preview -- {\TeX}\ f{\"u}r alle?}, + journal = dtk, + year = 1999, + volume = {3/99}, + altvolume = 3, + altnumber = 11, + month = aug, + pages = {51--56}, + annote = bretter, + keywords = {}, + abstract = {4all{\TeX} 5.0 ist eine {\TeX}-Umgebung f{\"u}r Windows. + Diesem Bericht liegt eine Vorab-Version zugrunde. Kleine + Unzul{\"a}nglichkeiten dieser Version wurden umgehend vom + Autorenteam Erik Frambach/Wietse Dol abgestellt. Der + Bericht soll als Entscheidungshilfe dienen, ob 4all{\TeX} + als Alternative f{\"u}r das eigene System in Frage kommen + kann. Ein erweiterter Praxistest der endg{\"u}ltigen + Version von 4all{\TeX} folgt in der n{\"a}chsten Ausgabe + von "`\DTK"'. } +} + +@Article{ dtk99.3:hoeppner:erratum, + author = {Klaus H{\"o}ppner}, + title = {Erratum f{\"u}r die CTAN-CD-ROM von \dante}, + journal = dtk, + year = 1999, + volume = {3/99}, + altvolume = 3, + altnumber = 11, + month = aug, + pages = {57--58}, + annote = bretter, + keywords = {} +} + +@Article{ dtk99.3:teilnahme:eurotex99, + author = {Einladung zur Teilnahme}, + title = {Euro{\TeX}'99 -- XI. Europ{\"a}ische {\TeX}-Konferenz}, + journal = dtk, + year = 1999, + volume = {3/99}, + altvolume = 3, + altnumber = 11, + month = aug, + pages = {61--63}, + annote = {Spielplan}, + keywords = {} +} + +@Article{ dtk99.3:braun:tex-tagung, + author = {Jan Braun}, + title = {{\TeX}-Tagung DANTE\,2000 in Clausthal-Zellerfeld --- + Ank{\"u}ndigung und Call for Papers}, + journal = dtk, + year = 1999, + volume = {3/99}, + altvolume = 3, + altnumber = 11, + month = aug, + pages = {64--65}, + annote = {Spielplan}, + keywords = {} +} + +@Article{ dtk99.4:neugebauer:editorial, + author = {Gerd Neugebauer}, + title = {Editorial}, + journal = dtk, + year = 1999, + volume = {4/99}, + altvolume = 4, + altnumber = 11, + month = nov, + pages = {3}, + annote = editorial, + keywords = {} +} + +@Article{ dtk99.4:koch.schaa:grusswort, + author = {Thomas Koch and Volker RW Schaa}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 1999, + volume = {4/99}, + altvolume = 4, + altnumber = 11, + month = nov, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk99.4:partosch:beschluesse, + author = {G{\"u}nter Partosch}, + title = {Beschl{\"u}sse der 21.~Mitgliederversammlung von + DANTE~e.V. am 19.~September 1999 in Heidelberg}, + journal = dtk, + year = 1999, + volume = {4/99}, + altvolume = 4, + altnumber = 11, + month = nov, + pages = {5--11}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk99.4:partosch:beraterkreis, + author = {G{\"u}nter Partosch}, + title = {Beraterkreis, ein vorl{\"a}ufiges und vorsichtiges + Res{\"u}mee}, + journal = dtk, + year = 1999, + volume = {4/99}, + altvolume = 4, + altnumber = 11, + month = nov, + pages = {11--12}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk99.4:detig.schaa:kassenpruefung, + author = {Christine Detig and Volker RW Schaa}, + title = {Kassenpr{\"u}fung 1998}, + journal = dtk, + year = 1999, + volume = {4/99}, + altvolume = 4, + altnumber = 11, + month = nov, + pages = {12--18}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk99.4:schaa:lizenzabkommen, + author = {Volker RW Schaa}, + title = {Lizenzabkommen f{\"u}r {WinEdt}}, + journal = dtk, + year = 1999, + volume = {4/99}, + altvolume = 4, + altnumber = 11, + month = nov, + pages = {18--19}, + annote = hinterbuehne, + keywords = {WinEdt} +} + +@Article{ dtk99.4:schaa:altlasten, + author = {Volker RW Schaa}, + title = {Altlasten -- Disketten und CD-ROMs}, + journal = dtk, + year = 1999, + volume = {4/99}, + altvolume = 4, + altnumber = 11, + month = nov, + pages = {19--20}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk99.4:szillat:finanzbericht, + author = {Horst Szillat}, + title = {Finanzbericht~1998, Mitgliederversammlung 19.~September + 1999}, + journal = dtk, + year = 1999, + volume = {4/99}, + altvolume = 4, + altnumber = 11, + month = nov, + pages = {20--24}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk99.4:muench.schaa:20, + author = {Uwe M{\"u}nch and Volker RW Schaa}, + title = {20.~TUG-Konferenz, Vancouver/BC, Kanada}, + journal = dtk, + year = 1999, + volume = {4/99}, + altvolume = 4, + altnumber = 11, + month = nov, + pages = {25--33}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk99.4:neugebauer:spaetsommer, + author = {Winfried P. Neugebauer}, + title = {Sp{\"a}tsommer in Heidelberg -- Bericht {\"u}ber die + Euro{\TeX}'99}, + journal = dtk, + year = 1999, + volume = {4/99}, + altvolume = 4, + altnumber = 11, + month = nov, + pages = {33--36}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk99.4:beitz:texshade-paket, + author = {Eric Beitz}, + title = {Das \texttt{texshade}-Paket: Setzen von Nukleotid- und + Protein\textsl{alignments}}, + journal = dtk, + year = 1999, + volume = {4/99}, + altvolume = 4, + altnumber = 11, + month = nov, + pages = {37--43}, + annote = bretter, + keywords = {}, + abstract = {Das \emph{naturwissenschaftliche} Satzprogramm {\TeX} hat + sich aufgrund der M{\"o}glichkeiten im Formelsatz bisher + haupts{\"a}chlich in mathematisch orientierten + Fachrichtungen etabliert. Unter Biowissenschaftlern scheint + es dagegen nicht sehr verbreitet zu sein. Doch eignet sich + {\TeX} als Makrosprache hervorragend zur Darstellung und + Schattierung von DNA- oder Proteinsequenzvergleichen, + sogenannten \emph{Alignments}. Das {\TeX}shade{}-Paket + wurde entwickelt, um bei einfachster Handhabung + Sequenzvergleiche flexibel und aussagekr{\"a}ftig zu gestalten. } +} + +@Article{ dtk99.4:taylor:pragmatische, + author = {Philip Taylor}, + title = {Eine pragmatische Herangehensweise an den Absatzumbruch}, + journal = dtk, + year = 1999, + volume = {4/99}, + altvolume = 4, + altnumber = 11, + month = nov, + pages = {43--49}, + annote = bretter, + note = {Dieser Artikel ist in TUGboat 14(1993)\#2, Juli~1993, + Seite 138--140 erschienen und wurde von Rebecca Stiels + {\"u}bersetzt.}, + keywords = {} +} + +@Article{ dtk99.4:mischke:eps-grafiken, + author = {Peter Mischke}, + title = {{EPS-Grafiken}}, + journal = dtk, + year = 1999, + volume = {4/99}, + altvolume = 4, + altnumber = 11, + month = nov, + pages = {50--57}, + annote = bretter, + keywords = {}, + abstract = {"`Sag mal, wie kann ich eigentlich Grafiken in mein + {\LaTeX}-Dokument einbinden?"' Diese Frage hat jeder + {\LaTeX}-Anwender schon einmal geh{\"o}rt. "`Gar kein + Problem! Speichere sie einfach im EPS-Format und binde sie + mit dem Befehl \verb|\includegraphics| ein"', lautet meist + die Antwort darauf. Der zweite Schritt bereitet + tats{\"a}chlich selten Probleme. Alle modernen + {\TeX}-Systeme unterst{\"u}tzen diese Methode. Au{\ss}erdem + sind gute Dokumentationen zu dem Thema vorhanden). + + Probleme treten jedoch h{\"a}ufig beim Speichern im + EPS-Format auf. Anhand von drei Beispielen aus der Praxis + soll in diesem Artikel aufgezeigt werden, wo Probleme + entstehen k{\"o}nnen und wie sie zu umgehen sind. } +} + +@Article{ dtk99.4:mehl.schmidt:grosse, + author = {Albrecht Mehl and Walter Schmidt}, + title = {Gro\ss{}e Zeichen in {\LaTeX}}, + journal = dtk, + year = 1999, + volume = {4/99}, + altvolume = 4, + altnumber = 11, + month = nov, + pages = {58--59}, + annote = schonimmer, + keywords = {} +} + +@Article{ dtk99.4:neugebauer:tex-tools, + author = {Gerd Neugebauer}, + title = {"`{\TeX}-Tools"' von Klaus Braune}, + journal = dtk, + year = 1999, + volume = {4/99}, + altvolume = 4, + altnumber = 11, + month = nov, + pages = {60--63}, + annote = rezension, + keywords = {}, + abstract = {{\TeX} besteht nicht nur aus dem eigentlichen + Satzprogramm. Daneben gibt es noch eine Vielzahl von + n{\"u}tzlichen Programmen. Das hier beschriebene Buch ist + angetreten, etwas Ordnung in die Vielzahl der + Zusatzprogramme zu bringen. } +} + +@Article{ dtk99.4:braun:tex-tagung, + author = {Jan Braun}, + title = {{\TeX}-Tagung DANTE\,2000 in Clausthal-Zellerfeld}, + journal = dtk, + year = 1999, + volume = {4/99}, + altvolume = 4, + altnumber = 11, + month = nov, + pages = {65}, + annote = {Spielplan}, + keywords = {} +} + +@Article{ dtk00.1:neugebauer:editorial, + author = {Gerd Neugebauer}, + title = {Editorial}, + journal = dtk, + year = 2000, + volume = {1/00}, + altvolume = 1, + altnumber = 12, + month = may, + pages = {3}, + annote = editorial, + keywords = {} +} + +@Article{ dtk00.1:koch.schaa:grusswort, + author = {Thomas Koch and Volker RW Schaa}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 2000, + volume = {1/00}, + altvolume = 1, + altnumber = 12, + month = may, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk00.1:partosch:beschluesse, + author = {G{\"u}nter Partosch}, + title = {Beschl{\"u}sse der 22.~Mitgliederversammlung von + {\dante{}} am 11.~M{\"a}rz 2000 in Clausthal-Zellerfeld}, + journal = dtk, + year = 2000, + volume = {1/00}, + altvolume = 1, + altnumber = 12, + month = may, + pages = {6--10}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk00.1:szillat:finanzbericht, + author = {Horst Szillat}, + title = {Finanzbericht 1999}, + journal = dtk, + year = 2000, + volume = {1/00}, + altvolume = 1, + altnumber = 12, + month = may, + pages = {11--17}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk00.1:gloeckner.huesing:pruefung, + author = {J{\"u}rgen Gl{\"o}ckner and Johannes H{\"u}sing}, + title = {Pr{\"u}fung der Kasse f{\"u}r das Jahr 1999}, + journal = dtk, + year = 2000, + volume = {1/00}, + altvolume = 1, + altnumber = 12, + month = may, + pages = {17--24}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk00.1:partosch:vereinsinterne, + author = {G{\"u}nter Partosch}, + title = {Vereinsinterne Kommunikation per E-Mail}, + journal = dtk, + year = 2000, + volume = {1/00}, + altvolume = 1, + altnumber = 12, + month = may, + pages = {24--26}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk00.1:partosch:beraterkreis, + author = {G{\"u}nter Partosch}, + title = {Beraterkreis, ein Res{\"u}mee}, + journal = dtk, + year = 2000, + volume = {1/00}, + altvolume = 1, + altnumber = 12, + month = may, + pages = {26--27}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk00.1:schaa:lizenzabkommen, + author = {Volker RW Schaa}, + title = {Lizenzabkommen}, + journal = dtk, + year = 2000, + volume = {1/00}, + altvolume = 1, + altnumber = 12, + month = may, + pages = {27--29}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk00.1:schaa:altlasten, + author = {Volker RW Schaa}, + title = {Altlasten -- Floppies und CD-ROMs}, + journal = dtk, + year = 2000, + volume = {1/00}, + altvolume = 1, + altnumber = 12, + month = may, + pages = {29--30}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk00.1:mittelbach:laudatio, + author = {Frank Mittelbach}, + title = {Laudatio auf Professor Hermann Zapf}, + journal = dtk, + year = 2000, + volume = {1/00}, + altvolume = 1, + altnumber = 12, + month = may, + pages = {31--36}, + annote = bretter, + keywords = {} +} + +@Article{ dtk00.1:zapf:meine, + author = {Hermann Zapf}, + title = {Meine Zusammenarbeit mit Don Knuth und meine + Schriftentw{\"u}rfe}, + journal = dtk, + year = 2000, + volume = {1/00}, + altvolume = 1, + altnumber = 12, + month = may, + pages = {37--44}, + annote = bretter, + keywords = {} +} + +@Article{ dtk00.1:guntermann:powerpoint, + author = {Klaus Guntermann}, + title = {PowerPoint ade?}, + journal = dtk, + year = 2000, + volume = {1/00}, + altvolume = 1, + altnumber = 12, + month = may, + pages = {44--51}, + annote = bretter, + keywords = {}, + abstract = {F\"ur die Erstellung von Pr\"asentationen muss man nicht + immer PowerPoint einsetzen. Im Gegenteil: wird ordentlicher + Formelsatz in einer Pr\"asentation ben\"otigt, kann man + PowerPoint in der Regel gerade \emph{nicht} verwenden. Die + hier vorgestellte Alternative, die auf pdf\LaTeX{}, einem + Postprozessor und dem Acrobat-Reader basiert, erlaubt das + schrittweise Aufbl\"attern von Pr\"asentationsseiten. Der + Postprozessor ist in Java implementiert und damit + unabh\"angig von einer bestimmten Hardware- oder + Betriebssystemplattform nutzbar. } +} + +@Article{ dtk00.1:willadt:texin, + author = {Peter Willadt}, + title = {{\TeX}\ in der Apotheke: ABDA-K{\"a}rtchen}, + journal = dtk, + year = 2000, + volume = {1/00}, + altvolume = 1, + altnumber = 12, + month = may, + pages = {}, + annote = bretter, + keywords = {52--54}, + abstract = {{\TeX}\ eignet sich nicht nur zum Erstellen von {\em + beautifully typset documents}, sondern ebenso als Werkzeug + f{\"u}r schn{\"o}de Alltagsaufgaben. In diesem Beitrag wird + eine Einsatzm{\"o}glichkeit beschrieben, bei der der + Endanwender fast ohne Kenntnisse der {\TeX}-Makrosprache + auskommt. } +} + +@Article{ dtk00.1:fitug-e-v-.ea:mehr, + author = {{Fitug e.V.} and others}, + title = {Mehr Rechtssicherheit bei Software-Patenten}, + journal = dtk, + year = 2000, + optkey = {}, + volume = {1/00}, + altvolume = 1, + altnumber = 12, + month = may, + pages = {55--57}, + annote = fremdebuehne, + keywords = {} +} + +@Article{ dtk00.1:tex-merchandising-project:year2000-tex-kalender, + author = {{\TeX}-Merchandising-Project, Martin Schr{\"o}der}, + title = {Der {\textbackslash{}year}=2000-{\TeX}-Kalender}, + journal = dtk, + year = 2000, + volume = {1/00}, + altvolume = 1, + altnumber = 12, + month = may, + pages = {57--58}, + annote = fremdebuehne, + keywords = {} +} + +@Article{ dtk00.2:neugebauer:editorial, + author = {Gerd Neugebauer}, + title = {Editorial}, + journal = dtk, + year = 2000, + volume = {2/00}, + altvolume = 2, + altnumber = 12, + month = jul, + pages = {3}, + annote = editorial, + keywords = {} +} + +@Article{ dtk00.2:koch.schaa:grusswort, + author = {Thomas Koch and Volker RW Schaa}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 2000, + volume = {2/00}, + altvolume = 2, + altnumber = 12, + month = jul, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk00.2:dietsche:bei, + author = {Luzia Dietsche}, + title = {\dante{} bei der MNU}, + journal = dtk, + year = 2000, + volume = {2/00}, + altvolume = 2, + altnumber = 12, + month = jul, + pages = {5--7}, + annote = hinterbuehne, + keywords = {}, + abstract = {In der Woche vor Ostern fand in Stuttgart die Tagung + MNU\,2000 des Vereins zur F{\"o}rderung des mathematischen + und naturwissenschaftlichen Unterrichts statt, bei der + einige Freiwillige mit einem Stand Werbung f{\"u}r {\TeX} + und \dante{} machten. } +} + +@Article{ dtk00.2:thomas-koch:einladung, + author = {Thomas Koch, Thomas Feuerstack}, + title = {Einladung zur Herbstagung und 23.~Mitgliederversammlung + von \dante}, + journal = dtk, + year = 2000, + volume = {2/00}, + altvolume = 2, + altnumber = 12, + month = jul, + pages = {8}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk00.2:team:enters, + author = {{\NTS\ Team}}, + title = {\NTS{} Enters Alpha Test}, + journal = dtk, + year = 2000, + volume = {2/00}, + altvolume = 2, + altnumber = 12, + month = jul, + pages = {9--10}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk00.2:niepraschk:wiege, + author = {Rolf Niepraschk}, + title = {Von der Wiege bis zur Bahre: Formulare}, + journal = dtk, + year = 2000, + volume = {2/00}, + altvolume = 2, + altnumber = 12, + month = jul, + pages = {11--14}, + annote = bretter, + keywords = {}, + abstract = {In dem Artikel wird anhand des {\"U}berweisungsformulars + gezeigt, wie hochwertige Grafiken mit Hilfe des Makropakets + PSTricks erzeugt werden k{\"o}nnen. } +} + +@Article{ dtk00.2:grotherr:serienbriefe, + author = {Joachim Grotherr}, + title = {Serienbriefe mit {\LaTeX} -- Ein Erfahrungsbericht}, + journal = dtk, + year = 2000, + volume = {2/00}, + altvolume = 2, + altnumber = 12, + month = jul, + pages = {14--16}, + annote = bretter, + keywords = {}, + abstract = {Serienbriefe in gr{\"o}{\ss}eren Auf\/lagen bis zu + 10\,000~St{\"u}ck bringen g{\"a}ngige Office-Pakete schnell + an ihre Leistungsgrenze. Der Einsatz von {\LaTeX} f{\"u}hrt + zu einer erheblichen Steigerung der Druckgeschwindigkeit + und er{\"o}ffnet weitere professionelle M{\"o}glichkeiten. } +} + +@Article{ dtk00.2:willadt:arial, + author = {Peter Willadt}, + title = {Arial installieren}, + journal = dtk, + year = 2000, + volume = {2/00}, + altvolume = 2, + altnumber = 12, + month = jul, + pages = {16--21}, + annote = bretter, + keywords = {}, + abstract = {Layout-Vorschriften erzwingen gelegentlich die Verwendung + einer nicht in einer Standard-{\TeX}-Distribution + enthaltenen Schrift. Im Folgenden wird am Beispiel + \emph{Arial} beschrieben, wie eine solche Schrift + installiert wird, wenn die ben{\"o}tigten \texttt{tfm}- und + \texttt{vf}-Dateien bereits vorliegen. } +} + +@Article{ dtk00.2:neugebauer:in, + author = {Gerd Neugebauer}, + title = {In Reih und Glied}, + journal = dtk, + year = 2000, + volume = {2/00}, + altvolume = 2, + altnumber = 12, + month = jul, + pages = {21--34}, + annote = bretter, + keywords = {}, + abstract = {In {\LaTeX} erh{\"a}lt man sehr viel Unterst{\"u}tzung, + wenn es um das Setzen von Tabellen geht. Trotz der + M{\"o}glichkeiten, die {\LaTeX} selbst schon mitbringt, + gibt es einige W{\"u}nsche, die erst durch Zusatzpakete + einfach zu realisieren sind. Es ist nicht immer ratsam, + alle Register zu ziehen. Auch hier bewahrheitet es sich, + dass es auf einen gezielten und {\"u}berlegten Einsatz + ankommt, wenn man ein ansprechendes und professionell + aussehendes Ergebnis erzielen will. } +} + +@Article{ dtk00.2::tex-raetsel, + author = {}, + title = {{\TeX}-R\"atsel}, + journal = dtk, + year = 2000, + volume = {2/00}, + altvolume = 2, + altnumber = 12, + month = jul, + pages = {35}, + annote = bretter, + keywords = {} +} + +@Article{ dtk00.2:raichle:anlegen, + author = {Bernd Raichle}, + title = {Anlegen einer Liste der Definitionen}, + journal = dtk, + year = 2000, + volume = {2/00}, + altvolume = 2, + altnumber = 12, + month = jul, + pages = {36--39}, + annote = bretter, + keywords = {} +} + +@Article{ dtk00.2:ntg-texfuture-working-group:tex, + author = {{NTG {\TeX}\ future working group}}, + title = {{\TeX} im Jahr 2003: Vorschl{\"a}ge und Thesen zur Zukunft + von {\TeX}}, + journal = dtk, + year = 2000, + volume = {2/00}, + altvolume = 2, + altnumber = 12, + month = jul, + pages = {41--57}, + annote = bretter, + keywords = {} +} + +@Article{ dtk00.2:willadt:robert, + author = {Peter Willadt}, + title = {Robert Bringhurst: The Elements of Typographic Style}, + journal = dtk, + year = 2000, + volume = {2/00}, + altvolume = 2, + altnumber = 12, + month = jul, + pages = {58--59}, + annote = rezension, + keywords = {} +} + +@Article{ dtk00.2:schmidt:original, + author = {Walter Schmidt}, + title = {Original oder F{\"a}lschung?}, + journal = dtk, + year = 2000, + volume = {2/00}, + altvolume = 2, + altnumber = 12, + month = jul, + pages = {60--62}, + annote = fremdebuehne, + keywords = {}, + abstract = {In Verbindung mit dem freien \PS-Interpreter Ghostscript + wird eine fehlerhafte Version der Schrift Helvetica + verteilt. Der Aufsatz beschreibt, wie man diese durch die + originale Adobe-Helvetica ersetzt, und wie letztere, + v{\"o}llig legal, kostenlos beschafft werden kann. } +} + +@Article{ dtk00.3:neugebauer:editorial, + author = {Gerd Neugebauer}, + title = {Editorial}, + journal = dtk, + year = 2000, + volume = {3/00}, + altvolume = 3, + altnumber = 12, + month = sep, + pages = {3}, + annote = editorial, + keywords = {} +} + +@Article{ dtk00.3:koch.schaa:grusswort, + author = {Thomas Koch and Volker RW Schaa}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 2000, + volume = {3/00}, + altvolume = 3, + altnumber = 12, + month = sep, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk00.3:storbeck:schoener, + author = {Sven Storbeck}, + title = {Sch{\"o}ner Lesen~--~gut lesbare und optisch ansprechende + Texte durch gute Typografie}, + journal = dtk, + year = 2000, + volume = {3/00}, + altvolume = 3, + altnumber = 12, + month = sep, + pages = {6--30}, + annote = bretter, + keywords = {}, + abstract = {Jeder Autor eines Textes m{\"o}chte, dass dieser auch + gelesen wird. Zur Erf{\"u}llung dieses Wunsches tragen + nicht nur die stilistischen H{\"o}henfl{\"u}ge des + Verfassers bei, sondern auch das {\"a}u{\ss}ere + Erscheinungsbild des Textes. Der folgende Artikel~-- der + sich an den typografisch Unbedarften wendet~-- zeigt, wie + es dem Leser leicht gemacht werden kann, den Text zu erfassen. } +} + +@Article{ dtk00.3:willadt:zeilenabstaende, + author = {Peter Willadt}, + title = {Zeilenabst\"ande}, + journal = dtk, + year = 2000, + volume = {3/00}, + altvolume = 3, + altnumber = 12, + month = sep, + pages = {31--36}, + annote = bretter, + keywords = {}, + abstract = {Der Zeilenabstand entscheidet mit dar\"uber, wie gut ein + Text lesbar ist. Zu kleine Zeilenabst\"ande f\"uhren dazu, + dass man die einzelnen Worte nur schwer entziffern kann; + auch das Verrutschen des Auges von einer Zeile in eine + andere wird dadurch beg\"unstigt. Zu gro\ss{}e + Zeilenabst\"ande sehen seltsam aus; statt eines + gleichm\"a\ss{}igen Grauwertes wirkt die Seite + "`gestreift"'. Mithin am schlimmsten sind ungleiche + Zeilenabst\"ande; der Leser wei{\ss} nicht, ob ein Absatz + endet oder ob es sich um ein Zufallsprodukt handelt. Im + Folgenden wird erl\"autert, wie {\TeX}\ mit Zeilenabst\"anden umgeht. } +} + +@Article{ dtk00.3:beitz:darstellung, + author = {Eric Beitz}, + title = {Darstellung von Membranprotein-Topologien mit dem + {\TeX}topo-Paket}, + journal = dtk, + year = 2000, + volume = {3/00}, + altvolume = 3, + altnumber = 12, + month = sep, + pages = {36--}, + annote = bretter, + keywords = {}, + abstract = {Wie zahlreiche Reaktionen auf das {\TeX}shade-Paket + f{\"u}r Nukleotid- und Pro\-teinsequenzvergleiche (DTK4/99) + zeigen, findet {\TeX} auch unter Bio\-wissen\-schaftlern + seine Anwender. Nun ist das n{\"a}chste {\TeX}-Makropaket + f{\"u}r diesen Nutzerkreis fertig gestellt. {\TeX}topo{} + verarbeitet Daten zur Topologie von Mem\-branproteinen und + stellt sie schematisch dar. Dabei arbeitet es eng mit oben + genanntem {\TeX}shade{}-Paket zusammen, um automatisierte + Schattierungen zu erm{\"o}glichen. Beide Pakete zusammen + genommen bilden den Ausgangspunkt des Bio\TeX-Projekts, das + ausgereifte {\TeX}-Makros f{\"u}r + Biochemiker/(Moleku\-lar-)Biologen zur Verf{\"u}gung + stellen will. Online-Dokumentationen und weitere + Informationen finden sich unter der URL + \texttt{http://homepages.uni-tuebingen.de/beitz}. } +} + +@Article{ dtk00.3:lickert:latexfuer, + author = {Knut Lickert}, + title = {{\LaTeX}\ f{\"u}r Vereinsmeier: \minutes}, + journal = dtk, + year = 2000, + volume = {3/00}, + altvolume = 3, + altnumber = 12, + month = sep, + pages = {45--52}, + annote = bretter, + keywords = {}, + abstract = {Mit dem hier beschriebenen Paket \minutes\ k{\"o}nnen + Protokolle f{\"u}r Vereine o.\,{\"a}.\ erstellt werden. + Zusammen mit der Klasse \Lpack{scrartcl} werden einzelne + Protokolle erstellt, mit \Lpack{scrreprt}-artigen Klassen + kann eine Zusammenfassung mehrerer Protokolle erstellt + werden. + + Das Paket ist im CTAN unter + \texttt{tex-archive/macros/latex/contrib/supported/minutes/} + verf{\"u}gbar. } +} + +@Article{ dtk00.3:neugebauer:umbruch, + author = {Gerd Neugebauer}, + title = {Umbruch in schmalen Spalten}, + journal = dtk, + year = 2000, + volume = {3/00}, + altvolume = 3, + altnumber = 12, + month = sep, + pages = {52--54}, + annote = bretter, + keywords = {} +} + +@Article{ dtk00.3:tex-raetsel, + title = {{\TeX}-R{\"atsel}: Die L\"osung}, + journal = dtk, + year = 2000, + volume = {3/00}, + altvolume = 3, + altnumber = 12, + month = sep, + pages = {54}, + annote = bretter, + keywords = {} +} + +@Article{ dtk00.3:reincke:digital, + author = {Torsten Reincke}, + title = {\glqq Digital Typography\grqq\ von Donald E. Knuth}, + journal = dtk, + year = 2000, + volume = {3/00}, + altvolume = 3, + altnumber = 12, + month = sep, + pages = {55-57}, + annote = rezension, + keywords = {}, + abstract = {Dieses Buch von Donald Knuth ist eine reichhaltige + Textsammlung von Artikeln und Reden, die Knuth im Laufe der + Geschichte von {\TeX}\ und \MF\ verfasst hat. Nur drei + Kapitel sind neu, die anderen sind Nachdrucke aus + verschiedensten Zeitschriften. In Knuths unvergleichlicher + Art erf{\"a}hrt der Leser viel Interessantes, aber auch + Kurioses zur digitalen Typographie seit 1977. } +} + +@Article{ dtk00.4:neugebauer:editorial, + author = {Gerd Neugebauer}, + title = {Editorial}, + journal = dtk, + year = 2000, + volume = {4/00}, + altvolume = 4, + altnumber = 12, + month = nov, + pages = {3}, + annote = editorial, + keywords = {} +} + +@Article{ dtk00.4:koch.schaa:grusswort, + author = {Thomas Koch and Volker RW Schaa}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 2000, + volume = {4/00}, + altvolume = 4, + altnumber = 12, + month = nov, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk00.4:partosch:protokoll, + author = {G{\"u}nter Partosch}, + title = {Protokoll der 23.~Mitgliederversammlung von {DANTE~e.V.} + am 7.~Oktober 2000 in Hagen}, + journal = dtk, + year = 2000, + volume = {4/00}, + altvolume = 4, + altnumber = 12, + month = nov, + pages = {6--10}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk00.4:sterzl:literarischer, + author = {Tobias Sterzl}, + title = {Ein "`literarischer"' Ergu{\ss} {\"u}ber die {\TeX}-Tagung + an der Fernuniversit{\"a}t/Gesamthochschule Hagen}, + journal = dtk, + year = 2000, + volume = {4/00}, + altvolume = 4, + altnumber = 12, + month = nov, + pages = {10--11}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk00.4:koch:einladung, + author = {Thomas Koch}, + title = {Einladung zur 24.~Mitgliederversammlung von {DANTE e.V.}}, + journal = dtk, + year = 2000, + volume = {4/00}, + altvolume = 4, + altnumber = 12, + month = nov, + pages = {12}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk00.4:trautner:jiddisch, + author = {Martin Trautner}, + title = {Jiddisch mit {\TeX} und {\LaTeX}}, + journal = dtk, + year = 2000, + volume = {4/00}, + altvolume = 4, + altnumber = 12, + month = nov, + pages = {13--26}, + annote = bretter, + keywords = {}, + abstract = {Jiddisch, die Sprache des osteurop{\"a}ischen Judentums, + stellt besondere Anforderungen an {\TeX} und {\LaTeX}. Zum + einen m{\"u}ssen geeignete Fonts beschafft und + bereitgestellt werden. Zum anderen ist {\TeX} mit der + F{\"a}higkeit zu bidirektionalem Schriftsatz zum Schreiben + gemischter Texte von links nach rechts beziehungsweise von + rechts nach links auszustatten. Im Folgenden werden die + verschiedenen M{\"o}glichkeiten untersucht, jiddische Texte + mit {\TeX} und {\LaTeX} zu setzen. Das Ergebnis in der + gewohnt hohen Qualit{\"a}t von {\TeX} macht dieses + Satzsystem beispielsweise auch f{\"u}r den Einsatz in + wissenschaftlichen Einrichtungen interessant, die sich mit + der Erforschung jiddischer Sprache und Kultur + besch{\"a}ftigen. Bei allen {\"U}berlegungen wei{\ss} sich + der Verfasser der Idee freier Software verpflichtet. } +} + +@Article{ dtk00.4:lemberg:thai-zeichensaetze, + author = {Werner Lemberg}, + title = {Thai-Zeichens{\"a}tze}, + journal = dtk, + year = 2000, + volume = {4/00}, + altvolume = 4, + altnumber = 12, + month = nov, + pages = {26--40}, + annote = bretter, + keywords = {}, + abstract = {Der Artikel beschreibt das Funktionsprinzip der + thail{\"a}ndischen Schrift und die Implementation der + notwendigen Ligaturen f{\"u}r {\TeX}\ mittels + \texttt{afm2tfm}. } +} + +@Article{ dtk00.4:niepraschk:poster, + author = {Rolf Niepraschk}, + title = {Poster -- leicht gemacht}, + journal = dtk, + year = 2000, + volume = {4/00}, + altvolume = 4, + altnumber = 12, + month = nov, + pages = {40--47}, + annote = bretter, + keywords = {}, + abstract = {In dem Artikel wird gezeigt, wie aus einem einseitigen in + {\"u}blicher Art geschriebenen {\LaTeX}-Dokument unter + Zuhilfenahme des Programms \texttt{poster} ein Poster in + beliebiger Gr{\"o}{\ss}e hergestellt werden kann. } +} + +@Article{ dtk00.4:lickert:blindtext, + author = {Knut Lickert}, + title = {blindtext.sty: Viel Text um Nichts}, + journal = dtk, + year = 2000, + volume = {4/00}, + altvolume = 4, + altnumber = 12, + month = nov, + pages = {47--50}, + annote = bretter, + keywords = {}, + abstract = {Mit dem hier beschriebenen Paket \texttt{blindtext.sty} + kann man schnell Text erzeugen, um Klassen und Pakete zu + testen. Das Paket ist im CTAN unter + \texttt{tex\_archive/macros/latex/contrib/supported/minutes/blindtext.dtx} + verf{\"u}gbar. } +} + +@Article{ dtk00.4:neugebauer:entstehung, + author = {Gerd Neugebauer}, + title = {Die Entstehung der Mitgliedszeitschrift}, + journal = dtk, + year = 2000, + volume = {4/00}, + altvolume = 4, + altnumber = 12, + month = nov, + pages = {50--52}, + annote = bretter, + keywords = {}, + abstract = {Diese Ausgabe der Mitgliederzeitschrift "`\DTK"' war nicht + ganz so einfach zu erstellen wie andere Ausgaben. Dies soll + zum Anlass genommen werden, den Entstehungsprozess zu + skizzieren. } +} + +@Article{ dtk00.4:herrmann:latex, + author = {Karin Halupczok\and{} Immanuel Herrmann}, + title = {{\LaTeX} -- Das Lied}, + journal = dtk, + year = 2000, + volume = {4/00}, + altvolume = 4, + altnumber = 12, + month = nov, + pages = {52}, + annote = bretter, + keywords = {} +} + +@Article{ dtk00.4:neitmann:texim, + author = {Elisabeth Neitmann}, + title = {"`{\TeX}\ im Jahr 2003: Vorschl{\"a}ge und Thesen zur + Zukunft von {\TeX}"', Heft 3/2000}, + journal = dtk, + year = 2000, + volume = {4/00}, + altvolume = 4, + altnumber = 12, + month = nov, + pages = {}, + annote = leserbrief, + keywords = {} +} + +@Article{ dtk00.4:texmerchandising-project:year2001, + author = {{\TeX Merchandising Project}, Martin Schr{\"o}der}, + title = {Der \textbackslash{}year=2001 {\TeX} Kalender}, + journal = dtk, + year = 2000, + volume = {4/00}, + altvolume = 4, + altnumber = 12, + month = nov, + pages = {55--56}, + annote = fremdebuehne, + keywords = {} +} + +@Article{ dtk00.4:lachenmayr:tex-tagung, + author = {Georg Lachenmayr}, + title = {{\TeX}-Tagung DANTE\,2001 in Rosenheim -- Einladung und + Call for Papers}, + journal = dtk, + year = 2000, + volume = {4/00}, + altvolume = 4, + altnumber = 12, + month = nov, + pages = {58}, + annote = {Spielplan}, + keywords = {} +} + +@Article{ dtk01.1:neugebauer:editorial, + author = {Gerd Neugebauer}, + title = {Editorial}, + journal = dtk, + year = 2001, + volume = {1/01}, + altvolume = 1, + altnumber = 13, + month = apr, + pages = {3}, + annote = editorial, + keywords = {} +} + +@Article{ dtk01.1:koch.schaa:grusswort, + author = {Thomas Koch and Volker RW Schaa}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 2001, + volume = {1/01}, + altvolume = 1, + altnumber = 13, + month = apr, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk01.1:partosch:protokoll, + author = {G{\"u}nter Partosch}, + title = {Protokoll der 24.~Mitgliederversammlung von DANTE~e.V. am + 3.~M{\"a}rz 2001 in Rosenheim}, + journal = dtk, + year = 2001, + volume = {1/01}, + altvolume = 1, + altnumber = 13, + month = apr, + pages = {6--15}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk01.1:szillat:finanzbericht, + author = {Horst Szillat}, + title = {Finanzbericht 2000}, + journal = dtk, + year = 2001, + volume = {1/01}, + altvolume = 1, + altnumber = 13, + month = apr, + pages = {16--20}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk01.1:huesing.gloeckner:bericht, + author = {Johannes H{\"u}sing and J{\"u}rgen Gl{\"o}ckner}, + title = {Bericht der Rechnungspr{\"u}fer {\"u}ber die Pr{\"u}fung + der B{\"u}cher von \dante\ im Gesch{\"a}ftsjahr 2000}, + journal = dtk, + year = 2001, + volume = {1/01}, + altvolume = 1, + altnumber = 13, + month = apr, + pages = {20--22}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk01.1:szillat:beitragsordnung, + author = {Horst Szillat}, + title = {Beitragsordnung \dante}, + journal = dtk, + year = 2001, + volume = {1/01}, + altvolume = 1, + altnumber = 13, + month = apr, + pages = {22--25}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk01.1:hoeppner:foerderung, + author = {Dr. Klaus H{\"o}ppner}, + title = {F{\"o}rderung von {\TeX}-Projekten}, + journal = dtk, + year = 2001, + volume = {1/01}, + altvolume = 1, + altnumber = 13, + month = apr, + pages = {26--27}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk01.1:partosch:vereinsinterne, + author = {G{\"u}nter Partosch}, + title = {Vereinsinterne Kommunikation per E-Mail}, + journal = dtk, + year = 2001, + volume = {1/01}, + altvolume = 1, + altnumber = 13, + month = apr, + pages = {27--29}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk01.1:schaa:winedt, + author = {Volker RW Schaa}, + title = {{\textsf{WinEdt}} -- Zum Stand der Dinge}, + journal = dtk, + year = 2001, + volume = {1/01}, + altvolume = 1, + altnumber = 13, + month = apr, + pages = {29--30}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk01.1:schaa:buchbestand, + author = {Volker RW Schaa}, + title = {Buchbestand bei \dante}, + journal = dtk, + year = 2001, + volume = {1/01}, + altvolume = 1, + altnumber = 13, + month = apr, + pages = {30--31}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk01.1:seitz:arbeitskreis, + author = {Peter Seitz}, + title = {Arbeitskreis {\"O}ffentlichkeitsarbeit}, + journal = dtk, + year = 2001, + volume = {1/01}, + altvolume = 1, + altnumber = 13, + month = apr, + pages = {31--32}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk01.1:theofel:12, + author = {Jan Theofel}, + title = {12.\ {\TeX}-Tagung in Rosenheim -- Ein pers{\"o}nlicher + Bericht}, + journal = dtk, + year = 2001, + volume = {1/01}, + altvolume = 1, + altnumber = 13, + month = apr, + pages = {32--35}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk01.1:hagen:status, + author = {Hans Hagen}, + title = {The Status Quo of The NTS Project}, + journal = dtk, + year = 2001, + volume = {1/01}, + altvolume = 1, + altnumber = 13, + month = apr, + pages = {36--53}, + annote = bretter, + keywords = {} +} + +@Article{ dtk01.1:niepraschk:make, + author = {Rolf Niepraschk}, + title = {make -- nur etwas fr Profis?}, + journal = dtk, + year = 2001, + volume = {1/01}, + altvolume = 1, + altnumber = 13, + month = apr, + pages = {54--58}, + annote = bretter, + keywords = {} +} + +@Article{ dtk01.2:neugebauer:editorial, + author = {Gerd Neugebauer}, + title = {Editorial}, + journal = dtk, + year = 2001, + volume = {2/01}, + altvolume = 2, + altnumber = 13, + month = jul, + pages = {3}, + annote = editorial, + keywords = {} +} + +@Article{ dtk01.2:koch.schaa:grusswort, + author = {Thomas Koch and Volker RW Schaa}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 2001, + volume = {2/01}, + altvolume = 2, + altnumber = 13, + month = jul, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk01.2:koch:einladung, + author = {Thomas Koch}, + title = {Einladung zur 25.~Mitgliederversammlung von DANTE~e.V.}, + journal = dtk, + year = 2001, + volume = {2/01}, + altvolume = 2, + altnumber = 13, + month = jul, + pages = {5--6}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk01.2:gohdes:latexund, + author = {Michael Gohdes}, + title = {{\LaTeX}\ und Chemie -- ein sch{\"o}nes Paar?}, + journal = dtk, + year = 2001, + volume = {2/01}, + altvolume = 2, + altnumber = 13, + month = jul, + pages = {7--19}, + annote = bretter, + keywords = {}, + abstract = { Dieser Artikel beschreibt M{\"o}glichkeiten, Texte + chemischen Inhalts mit {\LaTeX}\ zu setzen. Es wird + besonders auf die Frage eingegangen, wie chemische + Gleichungen und Strukturformeln in den Text eingebettet + werden k{\"o}nnen. Sowohl verschiedene {\LaTeX}-Pakete als + auch ein externes Programm werden vorgestellt. } +} + +@Article{ dtk01.2:kohm:briefkoepfe, + author = {Markus Kohm}, + title = {Briefk{\"o}pfe mit \KOMAScript}, + journal = dtk, + year = 2001, + volume = {2/01}, + altvolume = 2, + altnumber = 13, + month = jul, + pages = {19--40}, + annote = bretter, + keywords = {}, + abstract = { Wer eben mal rasch einen Brief schreiben will, st{\"o}rt + sich h{\"a}ufig daran, dass er erst eine gro{\ss}e + Pr{\"a}ambel zusammenbasteln oder seine + Standardpr{\"a}ambel aus einem alten Brief kopieren muss. + Soll dann je nach Brief eine Angabe mehr oder weniger im + Briefkopf gesetzt werden, muss man zudem jedesmal von neuem + {\"u}berlegen, wie dies oder jenes am besten erreicht wird. + Der Artikel soll zeigen, dass es auch anders geht: mit + einem Paket, das einmal alle Varianten implementiert und + durch Optionen ausw{\"a}hlbar macht. } +} + +@Article{ dtk01.2:feuerstack:einfuehrung, + author = {Thomas Feuerstack}, + title = {Einf\"uhrung in pdf{\TeX}}, + journal = dtk, + year = 2001, + volume = {2/01}, + altvolume = 2, + altnumber = 13, + month = jul, + pages = {41--54}, + annote = bretter, + keywords = {}, + abstract = { Der Artikel richtet sich an Interessierte und + Neueinsteiger, die mit Hilfe von pdf{\TeX}\ m\"oglichst + schnell PDF-Dokumente erstellen wollen, ohne sich vorab + intensiv mit Hintergrundwissen auseinandersetzen zu + m\"ussen. Dar\"uberhinaus sollen beim Erzeugen von + PDF-Dokumenten h\"aufig auftretende Probleme er\"ortert + sowie L\"osungswege aufgezeigt werden -- nat\"urlich ohne + Anspruch auf Vollst\"andigkeit. } +} + +@Article{ dtk01.2:lazrek:package, + author = {Azzeddine Lazrek}, + title = {A package for typesetting Arabic mathematical formulas}, + journal = dtk, + year = 2001, + volume = {2/01}, + altvolume = 2, + altnumber = 13, + month = jul, + pages = {54--66}, + annote = bretter, + keywords = {}, + abstract = { {\TeX} and its extension {\LaTeX} have been adapted to + handle passages of Arabic script. The package Arab{\TeX} + extends the capabilities of {\TeX} and {\LaTeX} to produce + documents containing passages in Arabic. A package that + extends Arab{\TeX} to typeset Arabic mathematical formulas, + with specific symbols and running from right to left, is + presented in this paper. } +} + +@Article{ dtk01.2:geisse:handbook, + author = {Armin Geisse}, + title = {"`Handbook of Typography for the Mathematical Sciences"' + von Steven G. Krantz}, + journal = dtk, + year = 2001, + volume = {2/01}, + altvolume = 2, + altnumber = 13, + month = jul, + pages = {67--70}, + annote = rezension, + keywords = {}, + abstract = { Mit seinem neuesten Buch m{\"o}chte Steven G. Krantz + Hilfestellung f{\"u}r Autoren in spe geben, die sich mit + dem Gedanken tragen, ein mathematisches Werk zu + ver{\"o}ffentlichen. In insgesamt sieben Kapiteln gibt + Krantz eine Einf{\"u}hrung in {\LaTeXTeX}, er erl{\"a}utert + den Produktionsprozess eines Buches und streift die + Grundlagen der Ver{\"o}ffentlichung im WWW. Trotz des + aktuellen Erscheinungsdatums beschreibt das Buch in + gro{\ss}en Teilen den Software-Stand vor 4--5~Jahren und + wurde nur sehr unvollst{\"a}ndig aktualisiert. Es leidet + unter vielen Wiederholungen und einer schlecht + strukturierten Aneinanderreihung der einzelnen Kapitel. } +} + +@Article{ dtk01.3:neugebauer:editorial, + author = {Gerd Neugebauer}, + title = {Editorial}, + journal = dtk, + year = 2001, + volume = {3/01}, + altvolume = 2, + altnumber = 13, + month = sep, + pages = {3}, + annote = editorial, + keywords = {} +} + +@Article{ dtk01.3:koch.schaa:grusswort, + author = {Thomas Koch and Volker RW Schaa}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 2001, + volume = {3/01}, + altvolume = 3, + altnumber = 13, + month = sep, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk01.3:thiel:emacs, + author = {Rainer Thiel}, + title = {Emacs, Auc{\TeX}\ und MiK{\TeX}s \textsf{Yap} unter Windows}, + journal = dtk, + year = 2001, + volume = {3/01}, + altvolume = 3, + altnumber = 13, + month = sep, + pages = {6--14}, + annote = bretter, + keywords = {}, + abstract = { Wer die Vorteile eines Satzsystems wie {\LaTeXTeX} nutzen + will, muss auf die direkte Begutachtung seiner Arbeit auf + dem Bildschirm verzichten. M{\"o}glich ist dagegen ein + bequemer Editor-Compiler-Zyklus, der es erlaubt, vom + DVI-Viewer an die entsprechende Stelle im Quelltext zu + springen und umgekehrt. Der vorliegende Beitrag beschreibt + aus der Sicht eines mit den Interna von {\LaTeXTeX} kaum + vertrauten Anwenders, wie dies unter Windows mit + GNU-\textsf{Emacs} und MiK{\TeX} zu realisieren ist. } +} + +@Article{ dtk01.3:lemberg:cjk-enc, + author = {Werner Lemberg}, + title = {\texttt{cjk-enc} -- eine Schnittstelle zwischen + \texttt{Emacs} und {\LaTeX}}, + journal = dtk, + year = 2001, + volume = {3/01}, + altvolume = 3, + altnumber = 13, + month = sep, + pages = {14--23}, + annote = bretter, + keywords = {}, + abstract = { Im dem Artikel wird das Lisp-Programm \texttt{cjkenc.el} + beschrieben, eine Schnittstelle zwischen \texttt{Emacs} und + {\LaTeX}, welche die verschiedenen Zeichens\"atze von + \texttt{Emacs} in f\"ur {\LaTeX} verst"andliche Befehle + konvertiert. Urspr"unglich f\"ur ostasiatische Sprachen + entwickelt, wurde es inzwischen um europ\"aische + Zeichens\"atze (auch Russisch und Neugriechisch) erweitert. + \texttt{cjkenc.el} ist Teil des \texttt{CJK}-Pakets. } +} + +@Article{ dtk01.3:jackson.voss:lyx, + author = {Laura E. Jackson and Herbert Vo{\ss}}, + title = {LyX -- Open Source Document Processor, Teil 1}, + journal = dtk, + year = 2001, + volume = {3/01}, + altvolume = 3, + altnumber = 13, + month = sep, + pages = {24--45}, + annote = bretter, + keywords = {}, + abstract = { \LyX{} als sogenanntes Frontend zu {\LaTeX}, welches + wiederum ein Frontend zu {\TeX} ist, versucht etwas zu + optimieren, was {\LaTeX} selbst gar nicht leisten will: + eine hochwertiges Satzsystem wie {\TeX} einem an + tiefsinnigen typographischen Fragen relativ + uninteressierten Benutzer zug{\"a}nglich zu machen. \LyX{} + versteht sich daher auch nicht als Textprozessor, sondern + als Dokument-Prozessor, denn es verf{\"u}gt selbst {\"u}ber + keinerlei eigene Formatierungsm{\"o}glichkeiten, die + {\"u}ber die Bildschirmdarstellung hinausgehen. + + Alle beschriebenen Eigenschaften von \LyX{} beziehen sich + auf die derzeit offizielle Version \LyX{} 1.1.6fix3. Eine + erheblich erweiterte Version 1.2 ist f{\"u}r dieses Jahr zu erwarten. } +} + +@Article{ dtk01.3:nowacki:poligraf, + author = {Janusz Marian Nowacki}, + title = {"`Poligraf"' oder "`Zwischen {\TeX}\ und der Druckerei"' + -- der zweite Versuch}, + journal = dtk, + year = 2001, + volume = {3/01}, + altvolume = 3, + altnumber = 13, + month = sep, + pages = {46--52}, + annote = bretter, + keywords = {}, + abstract = { W{\"a}hrend der IV. Konferenz "`Bacho{\TeX}\,'96"' der + polnischen {\TeX}-Benutzergruppe habe ich zum ersten Mal + das Makro-Paket \textsc{Poligraf} vorgestellt. Jetzt + m{\"o}chte ich eine neue Version ver{\"o}ffentlichen, in + die R{\"u}ckmeldungen und Verbesserungsvorschl{\"a}ge + eingeflossen sind. } +} + +@Article{ dtk01.3:creutzig:indexverzeichnisse, + author = {Christopher Creutzig}, + title = {Indexverzeichnisse mit \XINDY\ und \texttt{xindy.sty}~-- + eine Einf{\"u}hrung}, + journal = dtk, + year = 2001, + volume = {3/01}, + altvolume = 3, + altnumber = 13, + month = sep, + pages = {53--60}, + annote = bretter, + keywords = {}, + abstract = { Indexverzeichnisse werden beim Arbeiten mit {\TeX}\ + traditionell mit makeindex gesetzt. Dieses Programm hat + leider viele Einschr{\"a}nkungen, die das Erstellen der + Indizes kompliziert xindy ist ein Programm, das einen Teil + der Einschr{\"a}nkungen umgeht. Mit \texttt{xindy.sty} gibt + es nun auch eine einigerma{\ss}en komfortable + M{\"o}glichkeit, diese Funktionen direkt aus {\LaTeX}\ + heraus zu nutzen. } +} + +@Article{ dtk01.3:tex-merchandising-project:year2002, + author = {{\TeX} Merchandising Project, Martin Schr{\"o}der}, + title = {Der {\textbackslash}year=2002 {\TeX}-Kalender}, + journal = dtk, + year = 2001, + volume = {3/01}, + altvolume = 3, + altnumber = 13, + month = sep, + pages = {61--62}, + annote = fremdebuehne, + keywords = {} +} + +@Article{ dtk01.4:neugebauer:editorial, + author = {Gerd Neugebauer}, + title = {Editorial}, + journal = dtk, + year = 2001, + volume = {4/01}, + altvolume = 4, + altnumber = 13, + month = nov, + pages = {}, + annote = editorial, + keywords = {} +} + +@Article{ dtk01.4:koch.schaa:grusswort, + author = {Thomas Koch and Volker RW Schaa}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 2001, + volume = {4/01}, + altvolume = 4, + altnumber = 13, + month = nov, + pages = {}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk01.4:partosch:protokoll, + author = {G{\"u}nter Partosch}, + title = {Protokoll der 28.~Mitgliederversammlung von DANTE~e.V. am + 28.~September 2001 in Kerkrade}, + journal = dtk, + year = 2001, + volume = {4/01}, + altvolume = 4, + altnumber = 13, + month = nov, + pages = {}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk01.4:hoeppner:tagung, + author = {Klaus H{\"o}ppner}, + title = {Eine Tagung zwischen den L{\"a}ndern -- Euro{\TeX}\,2001 + in Kerkrade}, + journal = dtk, + year = 2001, + volume = {4/01}, + altvolume = 4, + altnumber = 13, + month = nov, + pages = {}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk01.4:koch:einladung, + author = {Thomas Koch}, + title = {Einladung zur {\TeX}-Tagung DANTE\,2002 und + 26.~Mitgliederversammlung von \dante}, + journal = dtk, + year = 2001, + volume = {4/01}, + altvolume = 4, + altnumber = 13, + month = nov, + pages = {}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk01.4:raichle:llllllletzte, + author = {Bernd Raichle}, + title = {Der llllllletzte {\TeX}-Fehler?}, + journal = dtk, + year = 2001, + volume = {4/01}, + altvolume = 4, + altnumber = 13, + month = nov, + pages = {}, + annote = bretter, + keywords = {}, + abstract = { Karel Skoup\'y, der Implementierer von \NTS, fand am + 13.~Oktober 2000 den bislang letzten Fehler im Quellcode + von {\TeX}. Er verglich DVI-Dateien, die {\TeX} und das von + ihm in Java implementierte \NTS\ erzeugt hatten, und + wunderte sich, dass ein kleiner Unterschied auftrat: In der + von \NTS\ erzeugten DVI-Datei war genau ein Zeichen zuviel, + ein kleiner Punkt. Dieser zus{\"a}tzliche Punkt stellte + sich bei der anschlie{\ss}enden Untersuchung nicht als + Fehler von \NTS, sondern als Fehler im Quellcode von + {\TeX}, der die Anweisung \CMD{xleaders} realisiert, + heraus. Er wurde an Donald E.\ Knuth gemeldet. Da Knuth nur + in gr{\"o}{\ss}eren zeitlichen Abst{\"a}nden + Fehlermeldungen bearbeitet, steht eine Antwort noch aus. } +} + +@Article{ dtk01.4:jackson.voss:-, + author = {Laura E. Jackson and Herbert Vo{\ss}}, + title = {\LyX{} -- Open Source Document Processor, Teil 2}, + journal = dtk, + year = 2001, + volume = {4/01}, + altvolume = 4, + altnumber = 13, + month = nov, + pages = {}, + annote = bretter, + keywords = {}, + abstract = { Nachdem der erste Teil die prinzipiellen Eigenschaften + von \LyX{} behandelt hat, werden in diesem Teil unter + anderem die Ein-/Ausgabem{\"o}glichkeiten und einige + Beispiele angegeben. Die Kenntnis des ersten Teils ist zwar + nicht zwingende Voraussetzung f{\"u}r das Verst{\"a}ndnis + der im Folgenden behandelten M{\"o}glichkeiten im Umgang + mit \LyX, erleichtert jedoch wesentlich das Verst{\"a}ndnis. } +} + +@Article{ dtk01.4:leibner:zur, + author = {Peter Leibner}, + title = {Zur Dokumentation mit {\LaTeX} und Co.}, + journal = dtk, + year = 2001, + volume = {4/01}, + altvolume = 4, + altnumber = 13, + month = nov, + pages = {}, + annote = bretter, + keywords = {}, + abstract = { Anhand dieses Beitrags soll gezeigt werden, wie aus einer + Quelldatei \PS-, PDF- und HTML-Code erzeugt werden kann. + Der Beitrag kn{\"u}pft an den Artikel von Thomas + Feuerstack, erschienen in "`\DTK"' 2/2001, an. } +} + +@Article{ dtk01.4:kiefel:latex, + author = {Volker Kiefel}, + title = {{\LaTeX} als normales "`Schreibwerkzeug"' im Alltag}, + journal = dtk, + year = 2001, + volume = {4/01}, + altvolume = 4, + altnumber = 13, + month = nov, + pages = {}, + annote = bretter, + keywords = {}, + abstract = { Au{\ss}erhalb der klassischen {\TeX}-Anwendungsbereiche + spielt {\LaTeX}\ als Software zum Erstellen von Dokumenten + aller Art offensichtlich eine eher nachgeordnete Rolle. + Dabei weist {\LaTeX}\ eine Reihe von Vorz{\"u}gen auf, die + es als Alternative zu den weit verbreiteten kommerziellen + Produkten empfehlen. Unerwartete Hindernisse k{\"o}nnen + sich allerdings dann ergeben, wenn man unter {\LaTeX}\ + erstellte Manuskripte in elektronischer Form einer + Zeitschrift beispielsweise im Bereich der Biowissenschaften + "`andienen"' m{\"o}chte. F{\"u}r dieses und {\"a}hnliche + Probleme lassen sich jedoch L{\"o}sungen finden. Dieser + kurze Erfahrungsbericht ist als Anregung f{\"u}r diejenigen + gedacht, die mit {\LaTeX}\ noch keine Erfahrung gesammelt + haben und die zumindest teilweise eine Einbeziehung von + {\LaTeX}\ in die Erledigung ihrer t{\"a}glichen + Schreibarbeit erw{\"a}gen oder die gerade beginnen, + {\LaTeX}\ zu verwenden. Der erfahrene {\LaTeX}-Anwender + wird im Folgenden dagegen nicht viel Neues finden. } +} + +@Article{ dtk01.4:obermiller:latex2e, + author = {Walter Obermiller}, + title = {"`{\LaTeXe} -- Tipps \& Tricks"' von Ingo Kl{\"o}ckl}, + journal = dtk, + year = 2001, + volume = {4/01}, + altvolume = 4, + altnumber = 13, + month = nov, + pages = {}, + annote = rezension, + keywords = {} +} + +@Article{ dtk02.1:neugebauer:editorial, + author = {Gerd Neugebauer}, + title = {Editorial}, + journal = dtk, + year = 2002, + volume = {1/02}, + altvolume = 1, + altnumber = 14, + month = mar, + pages = {}, + annote = editorial, + keywords = {} +} + +@Article{ dtk02.1:koch.schaa:grusswort, + author = {Thomas Koch and Volker RW Schaa}, + title = {Gru{\ss}wort, 2. Teil}, + journal = dtk, + year = 2002, + volume = {1/02}, + altvolume = 1, + altnumber = 14, + month = mar, + pages = {}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk02.1:beuermann:erstellung, + author = {Sascha Beuermann}, + title = {Erstellung von leistungsf{\"a}higen PDF-Dokumenten}, + journal = dtk, + year = 2002, + volume = {1/02}, + altvolume = 1, + altnumber = 14, + month = mar, + pages = {}, + annote = bretter, + keywords = {}, + abstract = { In diesem Artikel werden die M{\"o}glichkeiten + aufgezeigt, die die Pakete \texttt{hyperref} und + \texttt{thumbpdf} bieten, um mit Hilfe von {\LaTeX}\ + leistungsf{\"a}hige Dokumente im Portable Document Format + (PDF) zu erstellen. Dabei wird insbesondere auf das + Erzeugen von Lesezeichen (Bookmarks), auf PDF-spezifische + Anzeigeoptionen sowie auf das Anlegen von + Hypertext-Strukturen mit Hilfe des Pakets \texttt{hyperref} + und auf die Generierung der Seitenvorschau (Piktogramme + oder Thumbnails) mit dem Paket \texttt{thumbpdf} + eingegangen. Abschlie{\ss}end wird die Linearisierung und + Verschl{\"u}sselung von PDF-Dokumenten behandelt. } +} + +@Article{ dtk02.1:siart:ansprechende, + author = {Uwe Siart}, + title = {Ansprechende technische Illustration mit \MP}, + journal = dtk, + year = 2002, + volume = {1/02}, + altvolume = 1, + altnumber = 14, + month = mar, + pages = {}, + annote = bretter, + keywords = {}, + abstract = { \MP\ ist eine Grafik-Beschreibungssprache zur Erstellung + qualitativ hochstehender Vektorzeichnungen. Obwohl der + Compiler in praktisch allen modernen {\TeX}-Distributionen + enthalten ist, findet \MP\ noch relativ wenig Beachtung. + \MP\ ist besonders geeignet zur Erstellung von + Strichzeichnungen, wie sie in Naturwissenschaft und Technik + h{\"a}ufig auftreten. Dabei erzeugt es besonders schlanke + Bilddateien, deren Format praktisch identisch zu EPS ist. + Allerdings werden Ressourcen, die das {\TeX}-Dokument + ohnehin einbindet, einfach weggelassen. Die angef{\"u}hrten + Beispiele stammen -- wie auch der Autor -- aus dem + ingenieurwissenschaftlich-technischen Bereich. Sie sollen + einige F{\"a}higkeiten von \MP\ aufzeigen und den Leser + ermutigen, seine eigenen Anwendungsgebiete f{\"u}r \MP\ zu suchen. } +} + +@Article{ dtk02.1:voss:mathematischen, + author = {Herbert Vo{\ss}}, + title = {Die mathematischen Funktionen von Postscript}, + journal = dtk, + year = 2002, + volume = {1/02}, + altvolume = 1, + altnumber = 14, + month = mar, + pages = {}, + annote = bretter, + keywords = {}, + abstract = { \PS, faktisch genauso alt wie {\TeX}, ist im + Verh{\"a}ltnis dazu allgemein noch weniger bekannt, wenn es + darum geht zu beurteilen, was es denn nun im eigentlichen + Sinne ist. Au{\ss}erdem wird h{\"a}ufig vergessen, dass + sich mit den \PS-Funktionen viele Dinge erledigen lassen, + bei denen sonst auf externe Programme zur{\"u}ckgegriffen + wird. Dies wird im Folgenden f{\"u}r die mathematischen + Funktionen im Zusammenhang mit dem Paket \texttt{pst-plot} + gezeigt. } +} + +@Article{ dtk02.1:lickert:latex, + author = {Knut Lickert}, + title = {"`{\LaTeX} echt einfach"' von Roland Willms}, + journal = dtk, + year = 2002, + volume = {1/02}, + altvolume = 1, + altnumber = 14, + month = mar, + pages = {}, + annote = rezension, + keywords = {} +} + +@Article{ dtk02.2:neugebauer:editorial, + author = {Gerd Neugebauer}, + title = {Editorial}, + journal = dtk, + year = 2002, + volume = {2/02}, + altvolume = 2, + altnumber = 14, + month = jun, + pages = {3--4}, + annote = editorial, + keywords = {} +} + +@Article{ dtk02.2:schaa.hoeppner:grusswort, + author = {Volker RW Schaa and Klaus H{\"o}ppner}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 2002, + volume = {2/02}, + altvolume = 2, + altnumber = 14, + month = jun, + pages = {5--6}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk02.2:partosch:beschluesse, + author = {G{\"u}nter Partosch}, + title = {Beschl{\"u}sse der 26.~Mitgliederversammlung von + DANTE~e.V. am 23.~Februar 2002 in Erlangen}, + journal = dtk, + year = 2002, + volume = {2/02}, + altvolume = 2, + altnumber = 14, + month = jun, + pages = {7--10}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk02.2:christine-detig:bericht, + author = {Christine Detig, Johannes H{\"u}sing, Harald K{\"o}nig}, + title = {Bericht der Kassenpr{\"u}fer}, + journal = dtk, + year = 2002, + volume = {2/02}, + altvolume = 2, + altnumber = 14, + month = jun, + pages = {10--13}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk02.2:szillat:finanzbericht, + author = {Horst Szillat}, + title = {Finanzbericht 2001}, + journal = dtk, + year = 2002, + volume = {2/02}, + altvolume = 2, + altnumber = 14, + month = jun, + pages = {13--17}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk02.2:partosch:vereinsinterne, + author = {G{\"u}nter Partosch}, + title = {Vereinsinterne Kommunikation per E-Mail}, + journal = dtk, + year = 2002, + volume = {2/02}, + altvolume = 2, + altnumber = 14, + month = jun, + pages = {18--20}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk02.2:schaa:lizenzabkommen, + author = {Volker RW Schaa}, + title = {Lizenzabkommen f{\"u}r \WinEdt{}}, + journal = dtk, + year = 2002, + volume = {2/02}, + altvolume = 2, + altnumber = 14, + month = jun, + pages = {20--21}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk02.2:ingold:dante2002, + author = {Gert-Ludwig Ingold}, + title = {DANTE\,2002}, + journal = dtk, + year = 2002, + volume = {2/02}, + altvolume = 2, + altnumber = 14, + month = jun, + pages = {21--25}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk02.2:schaa.wilhelms:einladung, + author = {Volker RW Schaa and Gerhard Wilhelms}, + title = {Einladung zur Herbsttagung und 27.~Mitgliederversammlung + von \dante}, + journal = dtk, + year = 2002, + volume = {2/02}, + altvolume = 2, + altnumber = 14, + month = jun, + pages = {25--26}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk02.2:jackson.voss:plot-funktionen, + author = {Laura E. Jackson and Herbert Vo{\ss}}, + title = {Die Plot-Funktionen von {\texttt{pst-plot}}}, + journal = dtk, + year = 2002, + volume = {2/02}, + altvolume = 2, + altnumber = 14, + month = jun, + pages = {27--34}, + annote = bretter, + keywords = {}, + abstract = { Im letzten Heft wurden die mathematischen Funktionen von + \PS~im Zusammenhang mit dem {\LaTeX}-Paket + \texttt{pst-plot} zum Zeichnen von Funktionen beschrieben + und durch Beispiele erl{\"a}utert. In diesem Teil werden + die bislang nur erw{\"a}hnten Plot-Funktionen f{\"u}r + externe Daten behandelt. } +} + +@Article{ dtk02.2:niepraschk:tipps, + author = {Rolf Niepraschk}, + title = {Tipps und Tricks: Mehrfachverweis auf Fu{\ss}noten}, + journal = dtk, + year = 2002, + volume = {2/02}, + altvolume = 2, + altnumber = 14, + month = jun, + pages = {34}, + annote = bretter, + keywords = {} +} + +@Article{ dtk02.2:jaeger.koglin:rechtliche, + author = {Till Jaeger and Olaf Koglin}, + title = {Der rechtliche Schutz von Fonts}, + journal = dtk, + year = 2002, + volume = {2/02}, + altvolume = 2, + altnumber = 14, + month = jun, + pages = {35--46}, + annote = bretter, + keywords = {}, + abstract = { Trotz ihrer wirtschaftlich durchaus gro{\ss}en Bedeutung + haben Computerschrifttypen, Fonts genannt, bislang in der + juristischen Lehre und Rechtsprechung keine besondere Rolle + gespielt. Dies {\"u}berrascht, da inzwischen ein + Gro{\ss}teil aller Druckerzeugnisse mit Hilfe + computerisierter Printverfahren hergestellt wird und den + Schrifttypen dabei hinsichtlich {\"A}sthetik und guter + Lesbarkeit ein wesentlicher Einfluss zukommt. F{\"u}r die + Erstellung eines qualitativ hochwertigen + Schriftzeichensatzes ist ein enormer handwerklicher, + bisweilen auch k{\"u}nstlerischer Aufwand erforderlich. + + Mit einem Urteil des LG K{\"o}ln wurde -- soweit + ersichtlich -- erstmals durch ein deutsches Gericht zur + Schutzf{\"a}higkeit von Fonts im Rahmen der + Immaterialg{\"u}terrechtsordnung Stellung genommen und + dabei nicht nur die Schutzf{\"a}higkeit auf der Grundlage + des Schriftzeichengesetzes angenommen, sondern Fonts auch + als Computer\-programme gem. \S{}~69a UrhG f{\"u}r + urheberrechtsf{\"a}hig angesehen. + + Der vorliegende Beitrag soll die unterschiedlichen + rechtlichen Schutzm{\"o}glichkeiten aufzeigen. Dabei wird + dargelegt, dass es tr{\"u}gerisch sein kann, sich auf den + urheberrechtlichen Schutz von Fonts zu verlassen. } +} + +@Article{ dtk02.2:neugebauer:tipps, + author = {Gerd Neugebauer}, + title = {Tipps und Tricks: Illustrationen f{\"u}r {\LaTeX} + erstellen}, + journal = dtk, + year = 2002, + volume = {2/02}, + altvolume = 2, + altnumber = 14, + month = jun, + pages = {46--48}, + annote = bretter, + keywords = {} +} + +@Article{ dtk02.3:neugebauer:editorial, + author = {Gerd Neugebauer}, + title = {Editorial}, + journal = dtk, + year = 2002, + volume = {3/02}, + altvolume = 3, + altnumber = 14, + month = oct, + pages = {3}, + annote = editorial, + keywords = {} +} + +@Article{ dtk02.3:schaa.hoeppner:grusswort, + author = {Volker RW Schaa and Klaus H{\"o}ppner}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 2002, + volume = {3/02}, + altvolume = 3, + altnumber = 14, + month = oct, + pages = {4}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk02.3:weibezahn:tex-tagung, + author = {Roland Weibezahn}, + title = {{\TeX}-Tagung DANTE\,2003 in Bremen -- Einladung und Call + for Papers}, + journal = dtk, + year = 2002, + volume = {3/02}, + altvolume = 3, + altnumber = 14, + month = oct, + pages = {5--6}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk02.3:herrmann:poster, + author = {Rudolf Herrmann}, + title = {Poster im Format DIN A0 mit {\texttt{a0poster}} und + {\texttt{textpos}}}, + journal = dtk, + year = 2002, + volume = {3/02}, + altvolume = 3, + altnumber = 14, + month = oct, + pages = {7--19}, + annote = bretter, + keywords = {}, + abstract = { Die Entstehung eines Posters im Format DIN~A0 zur + Pr{\"a}sentation auf einer wissenschaftlichen Tagung wird + verfolgt. Es werden die {\LaTeX}-Bordmittel sowie die + Pakete \texttt{a0poster} und \texttt{textpos} eingesetzt. + Alternative Vorgehensweisen werden kurz diskutiert. } +} + +@Article{ dtk02.3:skoupy:extending, + author = {Karel Skoup{\'y}}, + title = {Extending \NTS{} (by + {\texttt{X\kern-.14em\lower.5ex\hbox{T}\kern-.14em\raise.2ex\hbox{S}}})} + , + journal = dtk, + year = 2002, + volume = {3/02}, + altvolume = 3, + altnumber = 14, + month = oct, + pages = {19--31}, + annote = bretter, + keywords = {}, + abstract = { The article evaluates the experience gained from + extending \NTS. Two simple extensions are mentioned and a + more complicated one is studied in more detail. It involves + an abstract model of line-breaking and its application to + the \emph{paragraph-breaking into a fixed orthogonal + polygon shape}. It shows that extensions of \NTS\ are + feasible and discusses the different aspects of making + extensions and/or changes. } +} + +@Article{ dtk02.3:niepraschk:tipps, + author = {Rolf Niepraschk}, + title = {Tipps und Tricks: Tierkunde einmal anders}, + journal = dtk, + year = 2002, + volume = {3/02}, + altvolume = 3, + altnumber = 14, + month = oct, + pages = {31--33}, + annote = bretter, + keywords = {}, + abstract = { } +} + +@Article{ dtk02.3:vo:gauss-sty, + author = {Herbert Vo}, + title = {{\texttt{gauss.sty}} -- Visualisierung des Gauschen + Eliminationsverfahrens}, + journal = dtk, + year = 2002, + volume = {3/02}, + altvolume = 3, + altnumber = 14, + month = oct, + pages = {34--40}, + annote = bretter, + keywords = {}, + abstract = {Die Zahl der vorhanden \LaTeX-Pakete ist sicherlich + endlich, wenn man auch manchmal den gegenteiligen Eindruck + hat. Neben den mehr oder weniger bekannten Paketen gibt es + eine erhebliche Anzahl, die einem groen Anwenderkreis + deswegen nicht bekannt sind, weil deren Anwendung hufig + sehr speziell ist. Dazu gehrt sicherlich das Paket + \texttt{gauss}, welches nur sehr spezielle Wnsche erfllt, + die im Folgenden an Beispielen beschrieben werden. } +} + +@Article{ dtk02.3:benischke:hllen, + author = {Florian Benischke}, + title = {Hllen fr Musikkassetten}, + journal = dtk, + year = 2002, + volume = {3/02}, + altvolume = 3, + altnumber = 14, + month = oct, + pages = {41--43}, + annote = bretter, + keywords = {}, + abstract = {Mit Hilfe von \texttt{mceinleger.sty} lassen sich Hllen + und Einleger fr Musikkassetten erstellen. Dieser Artikel + soll dieses Paket vorstellen und seine Benutzung + erleichtern. Unter "`Hlle"' wird in diesem Zusammenhang + eine Einlage fr Musikkassetten verstanden, die aus einer + Vorder-, Schmal- und Rckseite besteht, ein "`Einleger"' + umfasst zustzlich noch eine einklappbare Seite, die an die + Vorderseite anschliet. } +} + +@Article{ dtk02.3:niepraschk:tipps*1, + author = {Rolf Niepraschk}, + title = {Tipps und Tricks: Fette Schreibmaschinenschrift}, + journal = dtk, + year = 2002, + volume = {3/02}, + altvolume = 3, + altnumber = 14, + month = oct, + pages = {43--44}, + annote = bretter, + keywords = {}, + abstract = {} +} + +@Article{ dtk02.3:lickert.vieth:eurobachotex2002, + author = {Knut Lickert and Ulrik Vieth}, + title = {{EuroBacho\TeX\ 2002} in Bachotek/Polen}, + journal = dtk, + year = 2002, + volume = {3/02}, + altvolume = 3, + altnumber = 14, + month = oct, + pages = {45--53}, + annote = beiprogramm, + keywords = {}, + abstract = {Vom 29.\ April bis zum 3.\ Mai 2002 fand in Bachotek die + 13.\ Euro\TeX, zugleich die 10.\ Bacho\TeX\ statt. Dieser + Bericht bietet eher einen (subjektiven) Eindruck ber die + Tagung.} +} + +@Article{ dtk02.3:niepraschk:tipps*2, + author = {Rolf Niepraschk}, + title = {Tipps und Tricks: PDF-Datei vorhanden -- Brosch{\"u}re + gew{\"u}nscht}, + journal = dtk, + year = 2002, + volume = {3/02}, + altvolume = 3, + altnumber = 14, + month = oct, + pages = {53--55}, + annote = beiprogramm, + keywords = {}, + abstract = {} +} + +@Article{ dtk02.3:sieger:tipps, + author = {Rainer Sieger}, + title = {Tipps und Tricks: Kartenerstellung mit PanMap}, + journal = dtk, + year = 2002, + volume = {3/02}, + altvolume = 3, + altnumber = 14, + month = oct, + pages = {55--58}, + annote = beiprogramm, + keywords = {}, + abstract = {In der Zeitschrift "`\DTK"' 2/2002 erschien in der Rubrik + Tipps und Tricks ein Artikel von Gerd Neugebauer ber die + Erstellung von Illustrationen fr \LaTeX. Als Beispiel + wurde die Entwicklung einer Landkarte dargestellt. Mit + Hilfe des Programms PanMap kann der Teil der reinen + Kartenerstellung erheblich vereinfacht werden.} +} + +@Article{ dtk02.4:neugebauer:editorial, + author = {Gerd Neugebauer}, + title = {Editorial}, + journal = dtk, + year = 2002, + volume = {4/02}, + altvolume = 4, + altnumber = 14, + month = dec, + pages = {3}, + annote = editorial, + keywords = {} +} + +@Article{ dtk02.4:hoeppner:grusswort, + author = {Klaus H{\"o}ppner}, + title = {Gru{\ss}wort}, + journal = dtk, + year = 2002, + volume = {4/02}, + altvolume = 4, + altnumber = 14, + month = dec, + pages = {4--5}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk02.4:partosch:beschluesse, + author = {G{\"u}nter Partosch}, + title = {Beschl{\"u}sse der 27.~Mitgliederversammlung von {\dante} + am 5.~Oktober 2002 in Augsburg}, + journal = dtk, + year = 2002, + volume = {4/02}, + altvolume = 4, + altnumber = 14, + month = dec, + pages = {6--9}, + annote = hinterbuehne, + keywords = {} +} + +@Article{ dtk02.4:kastrup:latex, + author = {David Kastrup}, + title = {{\LaTeX} und WYSIWYG? -- {preview-latex} unter Emacs und + andere Ans{\"a}tze}, + journal = dtk, + year = 2002, + volume = {4/02}, + altvolume = 4, + altnumber = 14, + month = dec, + pages = {10--26}, + annote = bretter, + keywords = {}, + abstract = { Der anweisungsbasierte Typensatz mit {\TeX}/{\LaTeX}\ hat + seine Leistungsf{\"a}higkeit und Flexibilit{\"a}t f{\"u}r + eine Vielzahl von Anwendungen wiederholt unter Beweis + gestellt. Es wird aber der Mangel an unmittelbarem + visuellen Feedback nicht nur bei Anf{\"a}ngern oft als ein + Manko bei der Dokumenterstellung und der Korrektur + empfunden. + + Es existieren mittlerweile eine Reihe von Versuchen, dieses + Problem anzugehen, angefangen bei einfachen token-basierten + Ans{\"a}tzen (Syntax Highlighting, Spezialzeichens{\"a}tze + wie mit \texttt{xsymbol}) bis hin zu kompletten + Textverarbeitungssystemen (\LyX{} und {\TeX}macs), die + {\LaTeX}\ im Wesentlichen nur als Exportsprache nutzen. + + Eine weitere Klasse von Werkzeugen konzentriert sich nicht + auf das Editieren, sondern auf schnellen Zugriff auf die + gesetzte Form, meist als seitenorientierte Vorschau in + einem separaten Fenster (whizzy\TeX, Instant~Preview). Zwar + ist die Verarbeitungsgeschwindigkeit dieser Varianten auf + heutigen Systemen mehr als ausreichend, dennoch bleibt das + Bed{\"u}rfnis nach einer engeren Kopplung von Quelltext und + Vorschau beim Editieren. "`Source Specials"' sind ein + Werkzeug f{\"u}r eine solche Querverbindung. Das + preview-latex-Paket des Autors stellt eine wesentlich + engere Kopplung durch die direkte Platzierung von + Vorschauelementen im Quelltext bereit. } +} + +@Article{ dtk02.4:niepraschk:tipps, + author = {Rolf Niepraschk}, + title = {Tipps und Tricks: Immer im Rahmen bleiben}, + journal = dtk, + year = 2002, + volume = {4/02}, + altvolume = 4, + altnumber = 14, + month = dec, + pages = {27--28}, + annote = bretter, + keywords = {} +} + +@Article{ dtk02.4:kohm:satzspiegelkonstruktionen, + author = {Markus Kohm}, + title = {Satzspiegelkonstruktionen im Vergleich}, + journal = dtk, + year = 2002, + volume = {4/02}, + altvolume = 4, + altnumber = 14, + month = dec, + pages = {28--48}, + annote = bretter, + keywords = {}, + abstract = { Die Konstruktion von Satzspiegeln, also die Bestimmung + des Textbereichs auf der Seite, ist eine Kunst, die seit + dem Mittelalter von Profis gepflegt wird. Im Laufe der Zeit + wurden viele unterschiedliche Verfahren ersonnen, + verworfen, vergessen, aber auch weiterentwickelt und + dokumentiert. Einige dieser Verfahren sind mit Schlagworten + belegt, die sie legend{\"a}r machen. Obwohl angeblich an + jeder Legende auch etwas Wahres ist, birgt die + Legendenbildung auch Gefahren. Es gilt daher, Legende und + Wirklichkeit miteinander zu vergleichen. } +} + +@Article{ dtk02.4:morawski:alt, + author = {Jens-Uwe Morawski}, + title = {Aus alt mach neu -- {\MP} Recycling}, + journal = dtk, + year = 2002, + volume = {4/02}, + altvolume = 4, + altnumber = 14, + month = dec, + pages = {48--62}, + annote = bretter, + keywords = {}, + abstract = { \MP{} ist durch seinen vielf{\"a}ltigen Funktionsvorrat + und durch seine gute Integration in das {\TeX}-System ein + gern genutztes Werkzeug f{\"u}r ansprechende + Illustrationen. Dieser Artikel zeigt, wie mit geringem + Aufwand bereits vorhandene \MP-Arbeiten in eine neue Grafik + integriert werden k{\"o}nnen. } +} + +@Article{ dtk02.4:tex-merchandising-project:year2003, + author = {{\TeX} Merchandising Project, Martin Schr{\"o}der}, + title = {Der {\textbackslash}year=2003 {\TeX} Kalender}, + journal = dtk, + year = 2002, + volume = {4/02}, + altvolume = 4, + altnumber = 14, + month = dec, + pages = {63--64}, + annote = fremdebuehne, + keywords = {} +} diff --git a/Master/texmf-dist/bibtex/bib/figbib/figbib_sample.bib b/Master/texmf-dist/bibtex/bib/figbib/figbib_sample.bib new file mode 100644 index 00000000000..c45869bbfa0 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/figbib/figbib_sample.bib @@ -0,0 +1,18 @@ + +@fig{smiley1, + main = {This is a smiley}, + add = {The additional description is meaningless}, + caption = {Smiley}, + file = {smiley} +} + +@fig{smiley2, + main = {Here is the smiley again}, + file = {smiley} +} + +@fig{smiley3, + main = {Yet another smiley}, + file = {smiley}, + source = {(top secret)} +} diff --git a/Master/texmf-dist/bibtex/bib/gatech-thesis/example-thesis.bib b/Master/texmf-dist/bibtex/bib/gatech-thesis/example-thesis.bib new file mode 100644 index 00000000000..71733b30602 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/gatech-thesis/example-thesis.bib @@ -0,0 +1,138 @@ +@BOOK{knuth:tex, + AUTHOR = "Donald E. Knuth", + TITLE = "The {\TeX} Book", + PUBLISHER = {Addison-Wesley}, + YEAR = "1984", + ADDRESS = {Reading, Massachusetts}, + NOTE = {Reprinted as Vol. A of {\it Computers \& Typesetting\/}, 1986} +} + +@BOOK{knuth:pgm, + AUTHOR = "Donald E. Knuth", + TITLE = "{\TeX}: The Program", + PUBLISHER = {Addison-Wesley}, + YEAR = "1986", + VOLUME = {B}, + SERIES = {Computers \& Typesetting}, + ADDRESS = {Reading, Massachusetts} +} + +@TECHREPORT{knuth:web, + AUTHOR = {Donald E. Knuth}, + TITLE = {The {WEB} System for Structured Documentation, Version 2.3}, + INSTITUTION = {Computer Science Department, Stanford University}, + YEAR = {1983}, + NUMBER = {STAN-CS-83-980}, + ADDRESS = {Stanford, California}, + MONTH = Sep +} + +@ARTICLE{knuth:lp, + AUTHOR = {Donald E. Knuth}, + TITLE = {Literate Programming}, + JOURNAL = {The Computer Journal}, + YEAR = {1984}, + VOLUME = {27}, + NUMBER = {2}, + PAGES = {97--111}, + MONTH = May +} + +@TECHREPORT{knuth:tor, + AUTHOR = {Donald E. Knuth}, + TITLE = {A Torture Test for {\TeX}, Version 1.3}, + INSTITUTION = {Computer Science Department, Stanford University}, + YEAR = {1984}, + NUMBER = {STAN-CS-84-1027}, + ADDRESS = {Stanford, California}, + MONTH = Nov +} + +@ARTICLE{furuta:pctex, + AUTHOR = "Richard K. Furuta and Pierre A. MacKay", + TITLE = "Two {\TeX} Implementations for the {IBM PC}", + JOURNAL = "Dr. Dobb's Journal", + YEAR = "1985", + VOLUME = "10", + NUMBER = "9", + PAGES = "80--91", + MONTH = Sep +} + +@TECHREPORT{des:tex, + AUTHOR = {Jacques D{\'e}sarm{\'e}nien}, + TITLE = {How to Run {\TeX} in French}, + INSTITUTION = {Computer Science Department, Stanford University}, + YEAR = {1984}, + NUMBER = {SATN-CS-1013}, + ADDRESS = {Stanford, California}, + MONTH = Aug +} + +@TECHREPORT{samuel:tex, + AUTHOR = "Arthur L. Samuel", + TITLE = "First Grade {\TeX}: A Beginner's {\TeX} Manual", + INSTITUTION = {Computer Science Department, Stanford University}, + YEAR = "1983", + NUMBER = "SATN-CS-83-985", + ADDRESS = {Stanford, California}, + MONTH = Nov +} + +@BOOK{lamport:latex, + AUTHOR = {Leslie Lamport}, + TITLE = {{\LaTeX}: A Document Preparation System. User's Guide and + Reference Manual}, + PUBLISHER = {Addison-Wesley}, + YEAR = {1986}, + ADDRESS = {Reading, Massachusetts} +} + +@BOOK{spivak:ams, + AUTHOR = {Michael D. Spivak}, + TITLE = {The Joy of {\TeX}}, + PUBLISHER = {American Mathematical Society}, + YEAR = {1985} +} + +@MANUAL{patashnik:bibtex, + TITLE = "Bib{\TeX}ing", + AUTHOR = "Oren Patashnik", + ORGANIZATION = {Computer Science Department, Stanford University}, + ADDRESS = {Stanford, California}, + MONTH = jan, + YEAR = "1988", + NOTE = {Available in the Bib{\TeX} release} +} + +@MANUAL{patashnik:bibhax, + TITLE = {Designing Bib{\TeX} Styles}, + AUTHOR = {Oren Patashnik}, + ORGANIZATION = {Computer Science Department, Stanford University}, + MONTH = jan, + YEAR = {1988} +} + +@ARTICLE{fuchs:dvi0, + AUTHOR = "David Fuchs", + TITLE = "The Format of {\TeX}'s {DVI} Files Version 1", + JOURNAL = "TUGboat", + YEAR = "1981", + VOLUME = "2", + NUMBER = "2", + PAGES = "12--16", + MONTH = Jul +} + +@ARTICLE{fuchs:dvi, + AUTHOR = "David Fuchs", + TITLE = "Device Independent File Format", + JOURNAL = "TUGboat", + YEAR = "1982", + VOLUME = "3", + NUMBER = "2", + PAGES = "14--19", + MONTH = Oct +} + + diff --git a/Master/texmf-dist/bibtex/bib/geomsty/manual.bib b/Master/texmf-dist/bibtex/bib/geomsty/manual.bib new file mode 100644 index 00000000000..21c2034ad38 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/geomsty/manual.bib @@ -0,0 +1,69 @@ +@book{Lamport, + author="Leslie Lamport", + title="\LaTeX: {A} Document Preparation System", + publisher="Addison-Wesley", + address="Reading, MA", + year = "1986" +} + +@unpublished{amslatex, + author="{American Mathematical Society}", + title="\amslatex/ Version 1.1 User's Guide (1991)", + address="Providence", + note="Distributed with the software + (use anonymous ftp from {\tt e-math.ams.com})" +} + +@unpublished{psfig, + author="Trevor Darrell", + title="{Psfig/\TeX} 1.8 Users Guide (1991)", + address="Boston", + note="Distributed with the software + (use anonymous ftp from {\tt whitechapel.media.mit.edu})" +} + +@book{epstein:WordProcessing, + author="David B. A. Epstein and + Jim Cannon and Silvio Levy and Derek Holt and Mike Paterson and + William Thurston", + title="Word Processing in Groups", + address="Boston", + year="1992", + publisher="Jones and Bartlett" +} + +@article{Mittelbach, + author="Frank Mittelbach", + title="An environment for multi-column output", + journal="TUGboat", + year="1989", + volume="10", + pages="407--415" +} + + +@unpublished{rokicki, + author="Tom Rokicki", + title="{DVIPS}: A {\TeX} driver (version 5.490, 1992)", + address="Stanford", + note="Distributed with the software + (use anonymous ftp from {\tt labrea.stanford.edu})" +} + + +@book{illustrator, + author="Mike Schuster and others", + title="Adobe Illustrator", + address="Palo Alto, CA", + publisher="Adobe Systems", + year="1988" +} + +@book{wolfram, + author="Stephen Wolfram", + title="Mathematica: A System for Doing Mathematics by Computer", + address="Reading, MA", + publisher="Addison-Wesley", + edition="2nd", + year="1991" +} diff --git a/Master/texmf-dist/bibtex/bib/germbib/README.bibgerm b/Master/texmf-dist/bibtex/bib/germbib/README.bibgerm new file mode 100644 index 00000000000..c144d5eaf54 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/germbib/README.bibgerm @@ -0,0 +1,24 @@ +REAMDE to bibgerm.sty +===================== + +History: + +- Macros for german `BibTeX'ing added to Style Option `german' 20 Apr 1993 + idea and languages `german' and `USenglish' implemented by M. Wallmeier +- Modified for LaTeX 2e and german.sty 2.5b by A. Scherer 1 Nov 1995 +- Modified for ngerman.sty and babel.sty by H. Harders 21 August 2000 + + +The package bibgerm.sty now supports the language packages ngerman.sty and +babel.sty. +If using LaTeX2e you can load either german.sty, ngerman.sty or babel.sty +before or after bibgerm.sty. If none of these packages is used bibgerm +behaves as before and loads german.sty. +If using LaTeX 2.09 you can load german.sty or ngerman.sty _before_ +bibgerm.sty. + +The file test/testbibgerm.tex tests the new version of bibgerm.sty. + +2000-08-21 +Harald harders +h.harders@tu-bs.de diff --git a/Master/texmf-dist/bibtex/bib/germbib/gerbibtx.bib b/Master/texmf-dist/bibtex/bib/germbib/gerbibtx.bib new file mode 100644 index 00000000000..27cba726213 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/germbib/gerbibtx.bib @@ -0,0 +1,54 @@ + +@UNPUBLISHED{bibtex.a, + author = "Oren Patashnik", + title = "{{\BibTeX ing}}", + note = "Documentation for general {\BibTeX} users", + month = "8$^{th}$~" # feb, + language = "USenglish", + year = 1988, } + +@UNPUBLISHED{bibtex.b, + author = "Oren Patashnik", + title = "Designing {\BibTeX} Styles", + note = "The part of \BibTeX's documentation + that's not meant for general users", + month = "8$^{th}$~" # feb, + language = "USenglish", + year = 1988, } + +@BOOK{texbook, + author = "Donald E. Knuth", + title= "The {{\tex}book}", + publisher = "Addison-Wesley Publishing Company", + address = "Reading, Massachusetts", + language = "USenglish", + year = 1984 } + +@BOOK{lamport, + author = "Leslie Lamport", + title = "{\LaTeX \rm:} {A} Document Preparation System", + publisher = "Addison-Wesley Publishing Company", + address = "Reading, Massachusetts", + language = "USenglish", + year = 1986 } + +@BOOK{kopka, + language = "german", + author = "Helmut Kopka", + title = "{\LaTeX} --- Eine Einf{\"{u}}hrung", + publisher = "Addison-Wesley (Deutschland) GmbH", + address = "Bonn; Reading, Massachusetts", + year = 1988, + note = "Das deutsche Standardwerk {\"{u}}ber {\latex}", + } + +@UNPUBLISHED{partl, + language = "german", + author = "Hubert Partl", + address = "Technische Universit{\"{a}}t Wien", + title = "{\normalshape\tt german.sty} --- Version 2.3d", + month = "21.~" # nov, + year = 1990, + note = "Erh{\"{a}}ltlich {\"{u}}ber DANTE (Deutsche Anwendervereinigung + {\TeX} e.\,\,V.): Bitnet server {\tt LISTSERV@DHDURZ1}", +} diff --git a/Master/texmf-dist/bibtex/bib/germbib/gerxampl.bib b/Master/texmf-dist/bibtex/bib/germbib/gerxampl.bib new file mode 100644 index 00000000000..8ef6df3ecc4 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/germbib/gerxampl.bib @@ -0,0 +1,359 @@ +@preamble{ "\newcommand{\noopsort}[1]{} " + # "\newcommand{\printfirst}[2]{#1} " + # "\newcommand{\singleletter}[1]{#1} " + # "\newcommand{\switchargs}[2]{#2#1} " } + +@ARTICLE{article-minimal, + author = {Leslie Andrew Aamport}, + title = {Das System f{\"u}r die Vorbereitung von Dokumentationen {\"u}ber Gnats und Gnus}, + journal = {Die Haustier-Zeitschrift}, + year = 1986, + language = "german" +} + +@ARTICLE{article-full, + author = {Leslie Andrew Aamport}, + title = {Das System f{\"u}r die Vorbereitung von Dokumentationen {\"u}ber Gnats und Gnus}, + journal = {Die Haustier-Zeitschrift}, + year = 1986, + volume = 41, + number = 7, + pages = "73\,ff.", + month = jul, + note = "Dies ist ein vollst{\"a}ndiger ARTICLE-Eintrag", +} + +The KEY field is here to override the KEY field in the journal being +cross referenced (so is the NOTE field, in addition to its imparting +information). + +@ARTICLE{article-crossref, + crossref = {WHOLE-JOURNAL}, + key = "", + author = {Leslie Andrew Aamport}, + title = {Das System f{\"u}r die Vorbereitung von Dokumentationen {\"u}ber Gnats und Gnus}, + pages = "73\,ff.", + note = "Dies ist ein querverweisender ARTICLE-Eintrag", +} + +@ARTICLE{whole-journal, + key = "GAJ", + journal = {Die Haustier-Zeitschrift}, + year = 1986, + volume = 41, + number = 7, + month = jul, + note = {Dieses ganze Exemplar ist den Gnats und Gnus gewidmet + (dieser Eintrag ist ein ARTICLE (journal), auf den Verwiesen wurde)}, +} + +@INBOOK{inbook-minimal, + author = "Donald Edward Knuth", + title = "Fundamentale Algorithmen", + publisher = "Addison-Wesley", + year = "{\noopsort{1973b}}1973", + chapter = "1.2", +} + +@INBOOK{inbook-full, + author = "Donald Edward Knuth", + title = "Fundamentale Algorithmen", + volume = 1, + series = "Die Kunst der Computerprogrammierung", + publisher = "Addison-Wesley", + address = "Reading, Massachusetts", + edition = "Zweite", + month = "10.~" # jan, + year = "{\noopsort{1973b}}1973", + type = "Kapitel", + chapter = "1.2", + pages = "10--119", + note = "Dies ist ein vollst{\"a}ndiger INBOOK-Eintrag", +} + +@INBOOK{inbook-crossref, + crossref = "whole-set", + title = "Fundamentale Algorithmen", + volume = 1, + series = "Die Kunst der Computerprogrammierung", + edition = "Zweite", + year = "{\noopsort{1973b}}1973", + type = "Kapitel", + chapter = "1.2", + note = "Dies ist ein querverweisender INBOOK-Eintrag", +} + +@BOOK{book-minimal, + author = "Donald Edward Knuth", + title = "Seminumerische Algorithmen", + publisher = "Addison-Wesley", + year = "{\noopsort{1973c}}1981", +} + +@BOOK{book-full, + author = "Donald Edward Knuth", + title = "Seminumerische Algorithmen", + volume = 2, + series = "Die Kunst der Computerprogrammierung", + publisher = "Addison-Wesley", + address = "Reading, Massachusetts", + edition = "Zweite", + month = "10.~" # jan, + year = "{\noopsort{1973c}}1981", + note = "Dies ist ein vollst{\"a}ndiger BOOK-Eintrag", +} + +@BOOK{book-crossref, + crossref = "whole-set", + title = "Seminumerische Algorithmen", + volume = 2, + series = "Die Kunst der Computerprogrammierung", + edition = "Zweite", + year = "{\noopsort{1973c}}1981", + note = "Dies ist ein querverweisender BOOK-Eintrag", +} + +@BOOK{whole-set, + author = "Donald Edward Knuth", + publisher = "Addison-Wesley", + title = "Die Kunst der Computerprogrammierung", + series = "Vier B{\"a}nde", + year = "{\noopsort{1973a}}{\switchargs{--90}{1968}}", + note = "Sieben B{\"a}nde geplant (dies ist eine Reihe von BOOK(s), auf die verwiesen wird)", +} + +@BOOKLET{booklet-minimal, + key = "Kn{\printfirst{v}{1987}}", + title = "Die Programmierung von Computerkunst", +} + +@BOOKLET{booklet-full, + author = "Jill Clown Knvth", + title = "Die Programmierung von Computerkunst", + howpublished = "Kunstverein D{\"u}sseldorf", + address = "D{\"u}sseldorf, Nordrheinwestfalen", + month = feb, + year = 1988, + note = "Dies ist ein vollst{\"a}ndiger BOOKLET-Eintrag", +} + +@INCOLLECTION{incollection-minimal, + author = "Daniel David Lincoll", + title = "Semigruppen von Wiederholungen", + booktitle = "High Speed Computer und Algorithmus Organisation", + publisher = "Universit{\"a}tsdruckerei", + year = 1977, +} + +@INCOLLECTION{incollection-full, + author = "Daniel David Lincoll", + title = "Semigruppen von Wiederholungen", + editor = "David Johannes Lipcoll and Dirk Herwig Lawrie and Abraham Hans Sameh", + booktitle = "High Speed Computer und Algorithmus Organisation", + number = 23, + series = "Schnelle Computer", + chapter = 3, + type = "Teil", + pages = "179--183", + publisher = "Universit{\"a}tsdruckerei", + address = "Hintertupfingen am Bodensee", + edition = "Dritte", + month = sep, + year = 1977, + note = "Dies ist ein vollst{\"a}ndiger INCOLLECTION-Eintrag", +} + +@INCOLLECTION{incollection-crossref, + crossref = "whole-collection", + author = "Daniel Depp Lincoll", + title = "Semigruppen von Wiederholungen", + pages = "179--183", + note = "Dies ist ein querverweisender INCOLLECTION-Eintrag", +} + +@BOOK{whole-collection, + editor = "David Johannes Lipcoll and Dirk Herwig Lawrie and Abraham Hans Sameh", + title = "High Speed Computer und Algorithmus Organisation", + booktitle = "High Speed Computer und Algorithmus Organisation", + number = 23, + series = "Schnelle Computer", + publisher = "Universit{\"a}tsdruckerei", + address = "Hintertupfingen am Bodensee", + edition = "Dritte", + month = sep, + year = 1977, + note = "Dies ist ein BOOK-Eintrag (aus einer Reihe), auf den verwiesen wurde", +} + +@MANUAL{manual-minimal, + key = "Handbuchmacher", + title = "Das definitive Computer-Handbuch", +} + +@MANUAL{manual-full, + author = "Larry Manmaker", + title = "Das definitive Computer-Handbuch", + organization = "Microchips-Revelation-Deutschland", + address = "Silikontal", + edition = "Silberpfeil", + month = apr # "--" # may, + year = 1986, + note = "Dies ist ein vollst{\"a}ndiger MANUAL-Eintrag", +} + +@MASTERSTHESIS{mastersthesis-minimal, + author = "{\'{E}}douard Masterly", + title = "Wie schreibe ich eine Diplomarbeit?", + school = "Universit{\"a}t W{\"u}rzfestung", + year = 1988, +} + +@MASTERSTHESIS{mastersthesis-full, + author = "{\'{E}}douard Masterly", + title = "Wie schreibe ich eine Diplomarbeit?", + school = "Universit{\"a}t W{\"u}rzfestung", + type = "Projekt {\"u}ber Diplom- und Magisterarbeiten", + address = "Abteilung f{\"u}r Germanistik", + month = jun # "--" # aug, + year = 1988, + note = "Dies ist ein vollst{\"a}ndiger MASTERSTHESIS-Eintrag", +} + +@MISC{misc-minimal, + key = "Vermixtes", + note = "Dies ist ein minimaler MISC-Eintrag", +} + +@MISC{misc-full, + author = "Joe-Bob Missilany", + title = "Zuf{\"a}llige Verteilung von Pamphleten an Flugh{\"a}fen", + howpublished = "Ausgegeben in Frankfurt am Main", + month = oct, + year = 1984, + note = "Dies ist ein vollst{\"a}ndiger MISC-Eintrag", +} + +@STRING{STOC-key = "OX{\singleletter{stoc}}"} + +@STRING{ACM = "OX-Vereinigung f{\"u}r Computing-Maschinerie"} + +@STRING{STOC = ": Symposium {\"u}ber die Theorie des Computing"} + +@INPROCEEDINGS{inproceedings-minimal, + author = "Alfred Veit Oaho and Jeffrey Dieter Ullman and Mihalis Yannakakis", + title = "Vorstellungen {\"u}ber die Informations{\"u}bertragung in {VLSI}-Schaltkreisen", + booktitle = "Konferenz zum f{\"u}nften Jahrestag der " # ACM # STOC, + year = 1983, +} + +@INPROCEEDINGS{inproceedings-full, + author = "Alfred Veit Oaho and Jeffrey Dieter Ullman and Mihalis Yannakakis", + title = "Vorstellungen {\"u}ber die Informations{\"u}bertragung in {VLSI}-Schaltkreisen", + booktitle = "Konferenz zum f{\"u}nften Jahrestag der " # ACM # STOC, + editor = "Wizard Veit Oz and Mihalis Yannakakis", + number = 17, + series = "Alle Konferenzen der " # ACM, + pages = "133--139", + month = mar, + year = 1983, + address = "M{\"u}nchen", + organization = ACM, + publisher = "Universit{\"a}tsdruckerei", + note = "Dies ist ein vollst{\"a}ndiger INPROCEDINGS-Eintrag", +} + +@INPROCEEDINGS{inproceedings-crossref, + crossref = "whole-proceedings", + author = "Alfred Veit Oaho and Jeffrey Dieter Ullman and Mihalis Yannakakis", + title = "Vorstellungen {\"u}ber die Informations{\"u}bertragung in {VLSI}-Schaltkreisen", + organization = "", + pages = "133--139", + note = "Dies ist ein querverweisender INPROCEEDINGS-Eintrag", +} + +@PROCEEDINGS{proceedings-minimal, + key = STOC-key, + title = "Konferenz zum f{\"u}nften Jahrestag der " # ACM # STOC, + year = 1983, +} + +@PROCEEDINGS{proceedings-full, + editor = "Wizard Veit Oz and Mihalis Yannakakis", + title = "Proc. Fifteenth Annual" # STOC, + number = 17, + series = "Alle Konferenzen der " # ACM, + month = mar, + year = 1983, + address = "M{\"u}nchen", + organization = ACM, + publisher = "Universit{\"a}tsdruckerei", + note = "Dies ist ein vollst{\"a}ndiger PROCEEDINGS-Eintrag", +} + +@PROCEEDINGS{whole-proceedings, + key = STOC-key, + organization = ACM, + title = "Konferenz zum f{\"u}nften Jahrestag" # STOC, + address = "M{\"u}nchen", + year = 1983, + booktitle = "Konferenz zum f{\"u}nften Jahrestag der " # ACM # STOC, + note = "This is a cross-referenced PROCEEDINGS", +} + +@PHDTHESIS{phdthesis-minimal, + author = "Friedrich Phidias Phony-Baloney", + title = "Feuer mit Feuer bek{\"a}mpfen: Gewandte Franz{\"o}sische Redewendungen", + school = "Fanstord Universit{\"a}t", + year = 1988, +} + +@PHDTHESIS{phdthesis-full, + author = "Friedrich Phidias Phony-Baloney", + title = "Feuer mit Feuer bek{\"a}mpfen: Gewandte Franz{\"o}sische Redewendungen", + school = "Universit{\"a}t W{\"u}rzburg", + type = "Dissertation", + address = "Abteilung f{\"u}r Franz{\"o}sisch", + month = jun # "--" # aug, + year = 1988, + note = "Dies ist ein vollst{\"a}ndiger PHDTHESIS-Eintrag", +} + +@TECHREPORT{techreport-minimal, + author = "Tom von Schrecklich", + title = "An {$O(n \log n / \! \log\log n)$} Sortier Algorithmus", + institution = "Universit{\"a}t W{\"u}rzburg", + year = 1988, +} + +@TECHREPORT{techreport-full, + author = "Tom T{\'{e}}rrific", + title = "An {$O(n \log n / \! \log\log n)$} Sortier Algorithmus", + institution = "Universit{\"a}t W{\"u}rzburg", + type = "W{\"u}nschenswertes Untersuchungsergebnis", + number = "7", + address = "Abteilung f{\"u}r Computerwissenschaften, W{\"u}rzburg, Bayern", + month = oct, + year = 1988, + note = "Dies ist ein vollst{\"a}ndiger TECHREPORT-Eintrag", +} + +@UNPUBLISHED{unpublished-minimal, + author = "Ulrich {\"{U}}nderwood and Ned {\~N}et and Paul {\={P}}ot", + title = "Niedrigere Grenzen f{\"u}r w{\"u}nschenswerte Untersuchungsergebnisse", + note = "Colloquium an der Universit{\"a}t W{\"u}rzburg (dies ist ein minimaler UNPUBLISHED-Eintrag)", +} + +@UNPUBLISHED{unpublished-full, + author = "Ulrich {\"{U}}nderwood and Ned {\~N}et and Paul {\={P}}ot", + title = "Niedrigere Grenzen f{\"u}r w{\"u}nschenswerte Untersuchungsergebnisse", + month = nov # ", " # dec, + year = 1988, + note = "Colloquium an der Universit{\"a}t W{\"u}rzburg (dies ist ein vollst{\"a}ndiger UNPUBLISHED-Eintrag)", +} + +@MISC{random-note-crossref, + key = {Volume-2}, + note = "Band~2 ist unter Knuth \cite{book-full} aufgef{\"u}hrt" +} + + diff --git a/Master/texmf-dist/bibtex/bib/germbib/schaum.bib b/Master/texmf-dist/bibtex/bib/germbib/schaum.bib new file mode 100644 index 00000000000..e8676552b45 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/germbib/schaum.bib @@ -0,0 +1,531 @@ +@Book{gibson1997a, + author = {Gibson, L. J. and Ashby, M. F.}, + ALTeditor = {}, + title = {{Cellular solids}}, + publisher = {Cambridge University Press}, + year = {1997}, + OPTkey = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + edition = {second}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + language = {english} +} + + + +@Article{davies1983a, + author = {Davies, G. J. and Zhen, Shu}, + title = {{Metallic foams: their production, properties and + applications}}, + journal = {Mater. Sci.}, + year = {1899}, + OPTkey = {}, + volume = {18}, + OPTnumber = {}, + pages = {1899}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + language = {english} +} + + +@InProceedings{baumeister1997a, + author = {Baumeister, J.}, + title = {{\"Uberblick: Verfahren zur Herstellung von Metallsch\"aumen}}, + booktitle = {Metallsch\"aume (Beitr\"age zum Symposium Metallsch\"aume, + IFAM, Bremen, 06.\,--\,07.\,03.~1997)}, + OPTcrossref = {}, + OPTkey = {}, + OPTpages = {3}, + year = {1997}, + OPTeditor = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {Bremen}, + OPTmonth = {}, + OPTorganization = {}, + publisher = {Verlag MIT Bremen}, + OPTnote = {}, + OPTannote = {}, + language = {german} +} + + +@Article{simone1998a, + author = {Simone, A. E. and Gibson, L. J.}, + title = {{Aluminium foams produced by liquid-state processes}}, + journal = {Acta mater.}, + year = {1998}, + OPTkey = {}, + volume = {46}, + OPTnumber = {}, + pages = {3109}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + language = {english} +} + + +@Article{banhart1994a, + author = {Banhart, J. and Baumeister, J. and Weber, M.}, + title = {{Metallschaum -- ein Werkstoff mit Perspektiven}}, + journal = {Aluminium}, + year = {1994}, + OPTkey = {}, + volume = {70}, + OPTnumber = {}, + pages = {209}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + language = {german} +} + +@Article{banhart1997a, + author = {Banhart, J. and Baumeister, J. and Weber, M.}, + title = {{Aluminium foams for transport industry}}, + journal = {Materials \& Design}, + year = {1997}, + OPTkey = {}, + volume = {18}, + OPTnumber = {}, + pages = {221}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + language = {english} +} + + +@Misc{mepura1997a, + key = {MEPURA}, + OPTauthor = {}, + title = {{MEPURA: "`Alulight"'}}, + howpublished = {Firmenschrift der MEPURA-Metallpulver GmbH}, + month = {April}, + year = {1997}, + note = {Ranshofen, \"Osterreich}, + OPTannote = {}, + language = {german} +} + + + +@Article{degischer1997a, + author = {Degischer, H. P.}, + title = {{Innovative light metals: metal matrix composites and + foamed aluminium}}, + journal = {Materials \& Design}, + year = {1997}, + OPTkey = {}, + volume = {18}, + OPTnumber = {}, + pages = {221}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + language = {english} +} + + + +@Article{ashby1983a, + author = {Ashby, M. F.}, + title = {{The mechanical properties of cellular solids}}, + journal = {Met. Trans.}, + year = {1983}, + OPTkey = {}, + volume = {14A}, + OPTnumber = {}, + pages = {1755}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + language = {english} +} + + + + +@Article{gibson1989a, + author = {Gibson, L. J.}, + title = {{Modelling the mechanical behaviour of cellular materials}}, + journal = {Mat. Sci. Eng.}, + year = {1989}, + OPTkey = {}, + volume = {A 110}, + OPTnumber = {}, + pages = {1}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + language = {english} +} + + +@Article{weaire1994a, + author = {Weaire, D. and Fortes, M. A.}, + title = {{Stress and strain in liquid and solid foams}}, + journal = {Adv. in Physics}, + year = {1994}, + OPTkey = {}, + volume = {43}, + OPTnumber = {}, + pages = {685}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + language = {english} +} + + + +@Article{triantafillou1989a, + author = {Triantafillou, T. C. and Zhang, J. and Shercliff, T. L. and + Gibson, L. J. and Ashby, M. F.}, + title = {{Failure surfaces for cellular materials under multiaxial + loads -- II. Comparison of models with experiment}}, + journal = {Int. J. Mech. Sci.}, + year = {1997}, + OPTkey = {}, + volume = {39}, + OPTnumber = {}, + pages = {549}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + language = {english} +} + + + + +@Article{silva1997a, + author = {Silva, M. J. and Gibson, L. J.}, + title = {{The effect of non-periodic microstructure and defects + on the compressive strength of two-dimensional cellular + solids}}, + journal = {Int. J. Mech. Sci.}, + year = {1997}, + OPTkey = {}, + volume = {39}, + OPTnumber = {}, + pages = {549}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + language = {english} +} + + + +@Article{simone1998b, + author = {Simone, A. E. and Gibson, L. J.}, + title = {{Effects of solid distribution on the stiffness and + strength of metallic foams}}, + journal = {Acta mater.}, + year = {1998}, + OPTkey = {}, + volume = {46}, + OPTnumber = {}, + pages = {2139}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + language = {english} +} + + + + +@InProceedings{degischer1997b, + author = {Degischer, H. P. and Galovsky, U. and Gradinger, R. and + Kretz, R. and Simanc\'ik, F.}, + title = {{\"Uber mechanische Eigenschaften von Aluminiumsch\"aumen}}, + booktitle = {Metallsch\"aume (Beitr\"age zum Symposium Metallsch\"aume, IFAM, + Bremen, 06.\,--\,07.\,03.~1997}, + OPTcrossref = {}, + OPTkey = {}, + pages = {79}, + year = {1997}, + editor = {J. Banhart}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + OPTmonth = {}, + OPTorganization = {}, + publisher = {Verlag MIT Bremen}, + OPTnote = {}, + OPTannote = {}, + language = {german} +} + + + +@Article{beals1997a, + author = {Beals, J. T. and Thompson, M. S.}, + title = {{Density gradient effects on aluminium foam compression + behavior}}, + journal = {J. Mater. Sci}, + year = {1997}, + OPTkey = {}, + volume = {32}, + OPTnumber = {}, + pages = {3595}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + language = {english} +} + + + +@Article{sugimura1997a, + author = {Sugimura, Y. and Meyer, J. and He, M. Y. and + Bart-Smith, H. and Greenstedt, J. and Evans, A. G.}, + title = {{On the mechanical performance of closed cell Al foams}}, + journal = {Acta mater.}, + year = {1997}, + OPTkey = {}, + volume = {45}, + OPTnumber = {45}, + pages = {5245}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + language = {english} +} + + +@Article{banhart1997b, + author = {Banhart, J. and Baumeister, J.}, + title = {{Das Verformungsverhalten gesch\"aumter Metalle}}, + journal = {Metall}, + year = {1997}, + OPTkey = {}, + volume = {51}, + OPTnumber = {}, + pages = {19}, + OPTmonth = {}, + note = {}, + OPTannote = {}, + language = {german} +} + + + +@Article{banhart1998a, + author = {Banhart, J. and Baumeister, J.}, + title = {{Deformation characteristics of metal foams}}, + journal = {J. Mater. Sci.}, + year = {1998}, + OPTkey = {}, + volume = {33}, + OPTnumber = {}, + pages = {1431}, + OPTmonth = {}, + note = {}, + OPTannote = {}, + language = {english} +} + + + +@InProceedings{huschka1997a, + author = {Huschka, S. and Hicken, S. and Arendts, F.-J.}, + title = {{Modellierung der Spannungs-Stauchungskurven von + Aluminiumschaum unter Ber\"ucksichtigung der + Porengr\"o\ss{}enverteilung}}, + booktitle = {Metallsch\"aume (Beitr\"age zum Symposium Metallsch\"aume, IFAM, + Bremen 06.\,--\,07.\,03.~1997}, + OPTcrossref = {}, + OPTkey = {}, + pages = {189}, + year = {1997}, + editor = {J. Banhart}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + OPTmonth = {}, + OPTorganization = {}, + publisher = {Verlag MIT Bremen}, + OPTnote = {}, + OPTannote = {}, + language = {german} +} + + +@Article{santosa1998a, + author = {Santosa, S. and Wierzbicki, T.}, + title = {{On the modeling of crush behavior of a closed-cell + aluminium foam structure}}, + journal = {J. Mech. Phys. Solids}, + year = {1998}, + OPTkey = {}, + volume = {46}, + OPTnumber = {}, + pages = {645}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + language = {english} +} + + + +@PhdThesis{huschka1998a, + author = {Huschka, S.}, + title = {{Modellierung eines Materialgesetzes zur Beschreibung + der mechanischen Eigenschaften von Aluminiumschaum}}, + school = {Universit\"at Stuttgart}, + year = {1998}, + OPTkey = {}, + type = {Dissertation}, + address = {VDI-Verlag. Fortschrittsberichte, Reihe 5, Nr. 525}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + language = {german} +} + + + +@Misc{dfgdaempfung2000a, + key = {Arbeitsbericht}, + OPTauthor = {}, + title = {{Arbeitsbericht zum DFG-Vorhaben Si~408/5-1 \glqq Mechanische + D\"ampfung metallischer Sch\"aume\grqq\ im + DFG"=Schwerpunktprogramm SPP~1075}}, + OPThowpublished = {}, + OPTmonth = {}, + year = {2000}, + OPTnote = {}, + OPTannote = {}, + language = {german} +} + +@Misc{akprueftechnik2000a, + key = {Protokoll}, + OPTauthor = {}, + title = {{Protokoll des Arbeitskreistreffens \glqq Mechanische + Pr\"uftechnik\grqq\ und \glqq Quantitative + Gef\"ugebeschreibung\grqq\ am 29. und 30.\,03.~2000 an der + TU Bergakademie Freiberg, Institut f\"ur Metallkunde}}, + OPThowpublished = {}, + month = {04.\,04.}, + year = {2000}, + OPTnote = {}, + OPTannote = {}, + language = {german} +} + + +@Article{sugimura1999a, + author = {Sugimura, Y. and Rabiei, A. and Evans, A. G. and + Harte, A. M. and Fleck, N. A.}, + title = {{Compression fatigue of a cellular Al alloy}}, + journal = {Materials Science \&\ Engineering}, + year = {1999}, + OPTkey = {}, + volume = {A269}, + OPTnumber = {}, + pages = {38--48}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + language = {english} +} + + +@InProceedings{schultz1999a, + author = {Schultz, O. and Ligneris A. des and + Haider, O. and Starke, P.}, + title = {{Fatigue behaviour, strength and failure of aluminium foam}}, + booktitle = {Metal Foams and Porous Metal Structures}, + OPTcrossref = {}, + OPTkey = {}, + pages = {379--386}, + year = {1999}, + editor = {Banhart, J. and Ashby, M. F. and Fleck, N. A.}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + OPTmonth = {}, + OPTorganization = {}, + publisher = {MIT Verlag}, + OPTnote = {}, + OPTannote = {}, + language = {english} +} + +@InProceedings{olurin1999a, + author = {Olurin, O. B. and Fleck, N. A. and Ashby, M. F.}, + title = {{Fatigue of an aluminium alloy foam}}, + booktitle = {Metal Foams and Porous Metal Structures}, + OPTcrossref = {}, + OPTkey = {}, + pages = {365--371}, + year = {1999}, + editor = {Banhart, J. and Ashby, M. F. and Fleck, N. A.}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + OPTmonth = {}, + OPTorganization = {}, + publisher = {MIT Verlag}, + OPTnote = {}, + OPTannote = {}, + language = {english} +} + +@InProceedings{zettl1999a, + author = {Zettl, B. and Stanzl-Tschegg, S.}, + title = {{Fatigue of Aluminium Foams at Ultrasonic Frequencies}}, + booktitle = {Metal Foams and Porous Metal Structures}, + OPTcrossref = {}, + OPTkey = {}, + pages = {373--378}, + year = {1999}, + editor = {Banhart, J. and Ashby, M. F. and Fleck, N. A.}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + OPTmonth = {}, + OPTorganization = {}, + publisher = {MIT Verlag}, + OPTnote = {}, + OPTannote = {}, + language = {english} +} + +@Article{bart-smith1998a, + author = {Bart-Smith, H. and Bastawros, A.-F. and Mumm, D. R. and + Evans, A. G. and Sypeck, D. J. and Wadley, H. N. G.}, + title = {{Compressive Deformation and Yielding Mechanisms in + Cellular Al Alloys Determined Using X-Ray Tomography and + Surface Strain Mapping}}, + journal = {Acta mater.}, + year = {1998}, + OPTkey = {}, + volume = {46}, + number = {10}, + pages = {3583--3592}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {}, + language = {english} +} + diff --git a/Master/texmf-dist/bibtex/bib/gloss/glsbase.bib b/Master/texmf-dist/bibtex/bib/gloss/glsbase.bib new file mode 100644 index 00000000000..b4065efcd64 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/gloss/glsbase.bib @@ -0,0 +1,37 @@ +% (c) 1999-2002 by Jose Luis Dias and Javier Bezos. +% All Rights Reserved. +% +% This file is part of the gloss distribution release 1.5.2 +% ----------------------------------------------------------- +% +% This 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. + + +@string{alphasort = "01"} +@string{betasort = "02"} +@string{gammasort = "03"} +@string{deltasort = "04"} +@string{epsilonsort = "05"} +@string{zetasort = "06"} +@string{etasort = "07"} +@string{thetasort = "08"} +@string{iotasort = "09"} +@string{kappasort = "10"} +@string{lambdasort = "11"} +@string{musort = "12"} +@string{nusort = "13"} +@string{xisort = "14"} +@string{omicronsort = "15"} +@string{pisort = "16"} +@string{rhosort = "17"} +@string{sigmasort = "18"} +@string{tausort = "19"} +@string{upsilonsort = "20"} +@string{phisort = "21"} +@string{chisort = "22"} +@string{psisort = "23"} +@string{omegasort = "24"} + diff --git a/Master/texmf-dist/bibtex/bib/gloss/sample.bib b/Master/texmf-dist/bibtex/bib/gloss/sample.bib new file mode 100644 index 00000000000..6236ca1db9a --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/gloss/sample.bib @@ -0,0 +1,98 @@ +% (c) 1998 Jose Luis Diaz, 1999-2002 Jose Luis Diaz and Javier Bezos. +% All Rights Reserved. +% +% This file is part of the gloss distribution release 1.5.2 +% ----------------------------------------------------------- +% +% This 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. +% + +% Using this file as test with bibTeX8 +% - Replace {\~n} with the corresponding character in your system +% and without braces. In Mac it is . +% - Remove the sort-word fields in the egne and gnu entries. +% - Restore the \usepackage[...]{inputenc} with the setting +% corresponding to your system in sample.tex. + +@GLOSSDEF{gnu, + word="{\~n}u", + definition="Simp\'atico animal, mascota de los programadores", + sort-word="Nzzu" +} +@GLOSSDEF{a, + word="a", + definition={Primera letra del alfabeto} +} +@GLOSSDEF{zeta, + word="z", + definition={\'Ultima letra del alfabeto} +} +@GLOSSDEF{egne, + word="{\~n}", + definition={Letra problem\'atica en la ordenaci\'on alfab\'etica}, + sort-word={Nzz} +} +@GLOSSDEF{ene, + word="n", + definition={Letra que va antes de la \gloss{egne}} +} +@GLOSSDEF{nuname, + word="nu", + definition={Nombre de la letra griega $\nu$} +} +@GLOSSDEF{exclam, + word="!", + definition={!`Ay!}, + group="C" +} +@GLOSSDEF{interr, + word="?", + definition={?`Eh?}, + group="C" +} +@GLOSSDEF{ASCII, + word="American Standard Code for Information Interchange", + short="ASCII", + definition="El sistema m\'as popular de codificaci\'on + El sistema m\'as popular de codificaci\'on + El sistema m\'as popular de codificaci\'on + El sistema m\'as popular de codificaci\'on + El sistema m\'as popular de codificaci\'on + El sistema m\'as popular de codificaci\'on + El sistema m\'as popular de codificaci\'on + El sistema m\'as popular de codificaci\'on + El sistema m\'as popular de codificaci\'on + El sistema m\'as popular de codificaci\'on + El sistema m\'as popular de codificaci\'on + El sistema m\'as popular de codificaci\'on + El sistema m\'as popular de codificaci\'on" +} +@GLOSSDEF{bit, + word="bit", + definition={Contracci\'on de ``binary digit''. M\'{\i}nima unidad de + informaci\'on} +} +@GLOSSDEF{bibtex8, + word="bib\TeX8", + definition={Implementaci\'on de Bib\TeX\ que alfabetiza correctamente + juegos de caracteres de 8 bits} +} +@GLOSSDEF{pi, + word="$\pi$", + definition={Constante matem\'atica aproximadamente igual a la + versi\'on m\'as reciente de \TeX}, + sort-word=pisort, + group="S" +} +@GLOSSDEF{alfa, + word="$\alpha$", + definition={Primera letra del alfabeto griego}, + sort-word=alphasort, + group="S" +} + + + diff --git a/Master/texmf-dist/bibtex/bib/gustlib/plbib.bib b/Master/texmf-dist/bibtex/bib/gustlib/plbib.bib new file mode 100644 index 00000000000..c845c2fbb7b --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/gustlib/plbib.bib @@ -0,0 +1,20 @@ +% +% To jest TESTOWA i NIEPRAWDZIWA bibliografia Bogus/lawa Licho/nskiego +% + +% According to Staszek Wawrykiewicz , these files +% been put into the public domain. +% +% 2001/06/05 Thomas Esser + +@mastersthesis{test, + title = "PL polska implementacja niczego", + author = "Bogus/law Licho/nski and Roman Piba", + institution = "GWO", + school = "UG", + note = "Dokumentacja dla u/zytkownik/ow i programist/ow", + day = 22, + month = sep, + year = 1997 } + + diff --git a/Master/texmf-dist/bibtex/bib/harvard/harvard.bib b/Master/texmf-dist/bibtex/bib/harvard/harvard.bib new file mode 100644 index 00000000000..9627d8f32d2 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/harvard/harvard.bib @@ -0,0 +1,42 @@ + + +@book{latex, + author = "Leslie Lamport", + publisher = "Addison-Wesley", + title = "{\LaTeX \rm:} {A} Document Preparation System", + year = "1986" +} + +@book{latex:guide, + author = "Helmut Kopka and Patrick W. Daly", + publisher = "Addison-Wesley", + title = "A Guide to {\LaTeX \rm:} {D}ocument Preparation for Beginners and Advanced Users", + year = "1993" +} + +@unpublished{btxdoc, + author = "Oren Patashnik", + month = jan, + note = "Documentation for general {\BibTeX} users", + title = "{{\BibTeX ing}}", + year = "1988" +} + +@book{agsm, + author = "John Pitson", + address = "Canberra", + edition = "3rd", + publisher = "Australian Government Publishing Service", + title = "Style Manual for authors editors and printers of {A}ustralian +government publications", + year = "1978" +} + +@unpublished{latex2htmldoc, + author = "Nikos Drakos", + month = jan, + note = "Documentation accompanying the {\LaTeX} to {\sc html} translator", + title = "The {\LaTeX}2{\sc html} Translator", + year = "1994", + URL = "http://cbl.leeds.ac.uk/nikos/tex2html/doc/latex2html/latex2html.html" +} diff --git a/Master/texmf-dist/bibtex/bib/ieeepes/ieeepes_check.bib b/Master/texmf-dist/bibtex/bib/ieeepes/ieeepes_check.bib new file mode 100644 index 00000000000..0b74c429ad5 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/ieeepes/ieeepes_check.bib @@ -0,0 +1,61 @@ +%%---------------------------------------------------------------------- +%% ieeepes_check.bib +%% +%% Sample bibliographic data base for the ieeepes package. +%% +%% Volker Kuhlmann +%% 1.1 12 November 1995 +%% 1.0 15 October 1995 +%%---------------------------------------------------------------------- + + +@Article{citepaper, + author = "J. F. Fuller and E. F. Fuchs and K. J. Roesler", + title = "Influence of harmonics in power distribution system + protection", + journal = "{IEEE} Trans.{\ }Power Delivery", + volume = "3", + number = "2", + month = apr, + year = "1988", + pages = "549--557", +} + +@Book{citebook, + author = "E. Clark", + title = "Circuit Analysis of {AC} Power Systems", + volume = "I", + year = "1950", + publisher = "Wiley", + address = "New York", + pages = "81", +} + +@InProceedings{citeconference, + author = "J. L. Alqueres and J. C. Praca", + title = "The Brazilian Power System and the Challenge of the + {A}mazon Transmission", + crossref = "PESSTDC91", +} + +@Proceedings{PESSTDC91, + booktitle = "Proceedings of the 1991 Power Engineering Society + Transmission and Distribution Conference", + year = "1991", + note = "{91CH3070-0}", + pages = "315--320", +} + +@InCollection{IEEEPES_PaperPreparation, + author = "J. W. Hagge and L. L. Grigsby", + title = "Preparation of Papers in a Two-Column Format for " + # ieeetec # " " # ieeetpd # " " # ieeetps, + crossref = "IEEEPES_PubGuide", +} + +@Manual{IEEEPES_PubGuide, + booktitle = ieeepes # " Publication Guide", + publisher = ieeepes, + year = "1995", + month = jan, +} diff --git a/Master/texmf-dist/bibtex/bib/ifacmtg/ifacsam.bib b/Master/texmf-dist/bibtex/bib/ifacmtg/ifacsam.bib new file mode 100644 index 00000000000..e33b0ca86ee --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/ifacmtg/ifacsam.bib @@ -0,0 +1,93 @@ +@article{Abl:45, + author={B.C. Able}, + title={The examination of cell nuclei}, + journal={Birches. J.}, + year={1945}, + volume={35}, + pages={123--126}, +} + +@article{Abl:56, + author={B.C. Able}, + title={Nucleic acid content of microscope}, + journal={Nature}, + year={1956}, + volume={135}, + pages={7--9}, +} + +@incollection{AbTaRu:54, + author={B.C. Able and R.A. Tagg and M. Rush}, + title={Enzyme-catalyzed cellular transanimations}, + pages={125--247}, + editor={A.F. Round}, + publisher={Academic Press}, + year={1954}, + volume={2}, + booktitle={Advances in Enzymology}, + address={New York}, + edition={3rd}, +} + +@book{Bak:63a, + author={R.C. Baker}, + title={Microscopic Staining Techniques}, + publisher={Butterworths}, + year={1963}, + address={London}, +} + +@article{Bak:63b, + author={R.C. Baker}, + title={Methods of preparing thin-section slides}, + journal={J. Brit. Med. Assoc.}, + year={1963}, + volume={34}, + pages={184--186}, +} + +@article{ChaRou:66, + author={F.H. Charlie and M.B. Routh}, + title={The Chemical Destination of Toxins}, + journal={J. Am. Chem. Soc.}, + year={1966}, + volume={66}, + pages={267--269}, +} + +@incollection{Dog:58, + author={P.R. Dog}, + title={}, + booktitle={Chemical Carcinogenesis}, + publisher={Chapman \& Hall}, + year={1958}, + editor={R.W. Brown}, + chapter={7}, + volume={II}, + pages={56--98}, + address={London}, +} + +@book{Keo:58, + author={R. Keohane}, + title={Power and Interdependence: World Politics in Transitions}, + publisher={Little, Brown \& Co.}, + year={1958}, + address={Boston}, +} + +@article{Pow:85, + author={T. Powers}, + title={Is there a way out?}, + journal={Harpers}, + year={1985}, + pages={35--47}, + month=jun, +} + + +@misc{Sol:89, + author={Solo}, + year={1989}, +} + diff --git a/Master/texmf-dist/bibtex/bib/imac/imac.bib b/Master/texmf-dist/bibtex/bib/imac/imac.bib new file mode 100644 index 00000000000..7cb2402e30e --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/imac/imac.bib @@ -0,0 +1,36 @@ + + +@book{lamport, + author = {Lamport, L.}, + title = {\LaTeX: A Document Preparation System}, + publisher = {Addison-Wesley}, + year = {1994}, + edition = {2nd}, +} + +@book{goossens, + author = {Goossens, M. and Mittlebach, F. and Samarin, A.}, + title = {The \LaTeX Companion}, + publisher = {Addison-Wesley}, + year = {1994}, +} + +@book{kopka, + author = {Kopka, H. and Daly, P. W.}, + title = {A Guide to \LaTeX2e}, + publisher = {Addison-Wesley}, + year = {1995}, +} +%%%%%%%%%%% +% I had no idea how to reference this, so it's fudged. +@inProceedings{ewins, + title = {Notation for Modal Testing \& Analysis}, + booktitle = {Imperial College, London SW7 2BX, UK}, + author = {Ewins, D. J.}, + year = 1993, +} + + + + +\end{document} diff --git a/Master/texmf-dist/bibtex/bib/index/test.bib b/Master/texmf-dist/bibtex/bib/index/test.bib new file mode 100644 index 00000000000..9fabe3d1e81 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/index/test.bib @@ -0,0 +1,121 @@ +@string{JSYML = "Journal of Symbolic Logic"} +@string{THEC5 = "Theoretical Computer Science"} +@string{LNCS = {Lecture Notes in Computer Science}} +@string{LNMATH = {Lecture Notes in Mathematics}} +@string{PHITRA = "Philosophical Transactions of the Royal Society of +London. Series A"} +@string{REPPP = "Reports on Progress in Physics"} +@string{RAIIT1 = "RAIRO Informatique Th\'eorique"} +@string{iandc={Information and Control}} + +@Article{BraunmuhlCV83, +title={The Recognition of Deterministic {CFL}'s in Small Time and +Space}, +author={Burchard von Braunm{\"u}hl and Stephen Cook and Kurt Mehlhorn +and Rutger Verbeek}, +pages={34--51}, +journal=iandc, +month=jan # "/" # feb, +year=1983, +volume=56, +number={1/2} +} + +@InProceedings{CantoneCP90, +author={D. Cantone and V. Cutello and A. Policrito}, +title={Set-theoretic reductions of {Hilbert's} {Tenth} {Problem}}, +pages={65--75}, +booktitle={CSL '89: 3rd Workshop on Computer Science Logic}, +editor={E. B{\"o}rger and H. Kleine B{\"u}ning and M. M. Richter}, +publisher={Springer-Verlag}, +series=lncs, +year=1990, +volume=440 +} + +@Article{Adamowicz92, +title={A sharp version of the bounded {Matijasevich} conjecture and +the end-extension problem}, +author={Zofia Adamowicz}, +journal=jsyml, +volume=57, +number=2, +pages={597--616}, +year=1992, +month=jun +} + +@InProceedings{AdlemanMa76, +title={Diophantine complexity}, +author={Leonard Adleman and Kenneth Manders}, +crossref={FOCS17}, +pages={81--88} +} + +@Article{AlloucheSh92, +title={The ring of $k$-regular sequences}, +author={Jean-Paul Allouche and Jeffrey Shallit}, +journal=THEC5, +volume=98, +number=2, +pages={163-197}, +year=1992, +month=may, +comment=NEW1 +} + +@InProceedings{Azra71, +author={{Jean-Pierre} Azra}, +title={Relations {Diophantiennes} et la solution n\'egative du 10e +probl\`eme de {Hilbert}}, +booktitle={S\'eminaire Bourbaki---vol. 1970/71. Expos\'es 382--399}, +series=lnmath, +publisher={Springer-Verlag}, +volume=244, +pages={11-28}, +year=1971, +language=french +} + +@Article{CaludeP83, +title={Independent Instances for Some Undecidable Problems}, +author={Cristian Calude and Gheorghe P{\u{a}}un}, +journal=raiit1, +year=1983, +volume=17, +number=1, +pages={49-54} +} + +@Article{Baker68, +title={Contributions to the theory of {Diophantine} equations {I}. {On} +the representation of integers by binary forms}, +author={A. Baker}, +year=1968, +journal=phitra, +volume=263, +number=1139, +pages={173-191} +} + +@Article{BartonFi72a, +title={Applications of algebraic manipulation programs in physics}, +author={D. Barton and J. P. Fitch}, +journal=reppp, +year=1972, +volume=35, +number=3, +pages={235-314} +} + +@Proceedings{FOCS17, +title={$17^{\it th}$ Annual Symposium on Foundations of Computer +Science}, +booktitle={$17^{\it th}$ Annual Symposium on Foundations of Computer +Science}, +year=1976, +address={Houston, Texas}, +month={25--26 } # oct, +organization={IEEE}, +crossrefonly=1 +} diff --git a/Master/texmf-dist/bibtex/bib/iopart-num/iopart-num-example.bib b/Master/texmf-dist/bibtex/bib/iopart-num/iopart-num-example.bib new file mode 100755 index 00000000000..c8f4a65128a --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/iopart-num/iopart-num-example.bib @@ -0,0 +1,65 @@ +@book{rose1957:am, + author = "M. E. Rose", + title = "Elementary Theory of Angular Momentum", + publisher = "Wiley", + address = "New York", + year = 1957, +} + +@book{dirac1958:qm, + author = "P. A. M. Dirac", + title = "The Principles of Quantum Mechanics", + series = "The International Series of Monographs on Physics", + number = 27, + edition = 4, + publisher = "Clarendon Press", + address = "Oxford", + year = 1967 +} + +@article{bardeen1957-bcs, + author = "J. Bardeen and L. N. Cooper and J. R. Schrieffer", + journal = "Phys. Rev.", + volume = 108, + pages = 1175, + year = 1957 +} + +@book{siegbahn1965:v1, + editor = "K. Siegbahn", + title = "Alpha-, Beta-, and Gamma-Ray Spectroscopy", + booktitle = "Alpha-, Beta-, and Gamma-Ray Spectroscopy", + publisher = "North-Holland", + address = "Amsterdam", + year = 1965, + volume = 1 +} + +@incollection{bell1965:coin-lifetime, + author = "R. E. Bell", + title = "Coincidence Techniques and the Measurement of Short Mean Lives", + editor = "K. Siegbahn", + booktitle = "Alpha-, Beta-, and Gamma-Ray Spectroscopy", + publisher = "North-Holland", + address = "Amsterdam", + year = 1965, + volume = 2, + pages = 905 +} + +@PhdThesis{caprio2003:diss, + author = "M. A. Caprio", + school = "Yale University", + year = 2003, + eprint = "nucl-ex/0502004", + archive = "arXiv" +} + +@misc{perez-bernal:PC, + author = "J. Doe", + year = 2005, + note = "private communication" +} + + + diff --git a/Master/texmf-dist/bibtex/bib/jurabib/book.bib b/Master/texmf-dist/bibtex/bib/jurabib/book.bib new file mode 100644 index 00000000000..d34ca0c458f --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/jurabib/book.bib @@ -0,0 +1,108 @@ +%% +%% This is file `book.bib', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% jurabib.dtx (with options: `book') +%% ---------------------------------------- +%% Example BibTeX file for the documentation +%% of the jurabib package v0.6 +%% Copyright (C) 1999-2004 Jens Berger (http://www.jurabib.org) +%% See jurabib.ins for the copyright details. +%% +@BOOK{broxbgb, + author = {Hans Brox}, + title = {Allgemeiner Teil des B{\"u}rgerlichen Gesetzbuches}, + shorttitle = {BGB~AT}, + year = 1996, + language = {german}, + address = {K{\"o}ln, Berlin, Bonn, M{\"u}nchen}, + edition = 20, + annote = {This is a senseless test for testing the annote field.\par If + you are reading this text now, note that you can switch + off the output of this field by removing the \texttt{annote} option + \begin{itemize}\item You are able to use lists inside the annote field\end{itemize}} +} +@BOOK{broxschr, + author = {Hans Brox}, + title = {Besonderes Schuldrecht}, + shorttitle = {SchR~BT}, + year = 1995, + language = {german}, + address = {M{\"u}nchen}, + edition = 20 +} +@BOOK{canaris, + author = {Claus Wilhelm Cannabis}, + title = {Die Vertrauenshaftung im deutschen Privatrecht}, + shorttitle = {Vertrauenshaftung}, + year = 1971, + language = {german}, + address = {M{\"u}nchen} +} +@BOOK{ennenipp, + author = {Ludwig Enneccerus and Hans Carl Nipperdey}, + title = {Allgemeiner Teil des B{\"u}rgerlichen Rechts}, + year = 1960, + volume = {1}, + language = {german}, + volumetitle = {zweiter Halbband}, + address = {T{\"u}bingen}, + edition = 15 +} +@BOOK{huebner, + author = {Heinz H{\"u}bner}, + title = {Allgemeiner Teil des B{\"u}rgerlichen Gesetzbuches}, + shorttitle = {BGB~AT}, + year = 1996, + language = {german}, + address = {Berlin, New York}, + edition = 2 +} +@BOOK{koehler, + author = {Helmut K{\"o}hler}, + title = {BGB Allgemeiner Teil}, + shorttitle = {BGB~AT}, + language = {german}, + year = 1996, + address = {M{\"u}nchen}, + edition = 23 +} +@BOOK{medicus, + author = {Dieter Medicus}, + title = {Allgemeiner Teil des BGB}, + shorttitle = {BGB~AT}, + year = 1995, + howcited = 1, + address = {M{\"u}nchen}, + edition = {6} +} +@BOOK{musielak, + author = {Hans-Joachim Musielak}, + title = {Grundkurs BGB}, + shorttitle = {BGB~GK}, + language = {german}, + year = 1994, + address = {M{\"u}nchen} +} +@BOOK{alexy, + author = {Alexy, Robert}, + title = {Theorie der Grundrechte}, + year = 1985, + address = {Baden-Baden}, + school = {G{\"o}ttingen}, + dissyear = 1984 +} +@BOOK{kkstrr, + author = {Kurt Kodal and Joachim Kr{\"a}mer}, + title = {Stra{\ss}enrecht}, + shorttitle = {StrR}, + year = 1995, + address = {M{\"u}nchen}, + edition = {5}, + pages = {30--34, \S~24} +} +%% +%% +%% End of file `book.bib'. diff --git a/Master/texmf-dist/bibtex/bib/jurabib/comment.bib b/Master/texmf-dist/bibtex/bib/jurabib/comment.bib new file mode 100644 index 00000000000..a189c0e36bf --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/jurabib/comment.bib @@ -0,0 +1,56 @@ +%% +%% This is file `comment.bib', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% jurabib.dtx (with options: `comment') +%% ---------------------------------------- +%% Example BibTeX file for the documentation +%% of the jurabib package v0.6 +%% Copyright (C) 1999-2004 Jens Berger (http://www.jurabib.org) +%% See jurabib.ins for the copyright details. +%% +@COMMENTED{erm, + author = {Walther Erman}, + gender = {sm}, + title = {Handkommentar zum B{\"u}rgerlichen Gesetzbuch}, + address = {M{\"u}nster}, + language = {german}, + year = 1993, + volume = 1, + edition = {9} +} +@COMMENTED{mueko, + title = {Kommentar zum B{\"u}rgerlichen Gesetzbuch}, + shortauthor = {M{\"u}Ko}, + address = {M{\"u}nchen}, + language = {german}, + year = 1994, + volume = 2, + volumetitle = {-- Schuldrecht -- Allgemeiner Teil}, + edition = {3} +} +@COMMENTED{palandt, + author = {Otto Palandt}, + gender = {sm}, + title = {Kommentar zum B{\"u}rgerlichen Gesetzbuch}, + address = {M{\"u}nchen}, + language = {german}, + year = 1996, + edition = {6} +} +@COMMENTED{soergel, + author = {Hans Theodor Soergel}, + gender = {sm}, + title = {Kommentar zum B{\"u}rgerlichen Gesetzbuch}, + address = {Stuttgart, Berlin, K{\"o}ln, Mainz}, + year = 1987, + howcited = 1, + edition = 12, + volume = 1, + language = {german} +} +%% +%% +%% End of file `comment.bib'. diff --git a/Master/texmf-dist/bibtex/bib/jurabib/jbtest.bib b/Master/texmf-dist/bibtex/bib/jurabib/jbtest.bib new file mode 100644 index 00000000000..ab0fed42fee --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/jurabib/jbtest.bib @@ -0,0 +1,226 @@ +%% +%% This is file `jbtest.bib', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% jurabib.dtx (with options: `jbtestbib') +%% ---------------------------------------- +%% Example BibTeX file for the documentation +%% of the jurabib package v0.6 +%% Copyright (C) 1999-2004 Jens Berger (http://www.jurabib.org) +%% See jurabib.ins for the copyright details. +%% +@BOOK{broxbgb, + author = {Hans Brox}, + title = {Allgemeiner Teil des B{\"u}rgerlichen Gesetzbuches}, + shorttitle = {BGB~AT}, + year = 1996, + language = {german}, + address = {K{\"o}ln, Berlin, Bonn, M{\"u}nchen}, + edition = 20, + annote = {This is a senseless test for testing the annote field.\par If + you are reading this text now, note that you can switch + off the output of this field by removing the \texttt{annote} option + \begin{itemize}\item You are able to use lists inside the annote field\end{itemize}} +} +@BOOK{broxschr, + author = {Hans Brox}, + title = {Besonderes Schuldrecht}, + shorttitle = {SchR~BT}, + year = 1995, + language = {german}, + address = {M{\"u}nchen}, + edition = 20 +} +@BOOK{canaris, + author = {Claus Wilhelm Cannabis}, + title = {Die Vertrauenshaftung im deutschen Privatrecht}, + shorttitle = {Vertrauenshaftung}, + year = 1971, + language = {german}, + address = {M{\"u}nchen} +} +@BOOK{ennenipp, + author = {Ludwig Enneccerus and Hans Carl Nipperdey}, + title = {Allgemeiner Teil des B{\"u}rgerlichen Rechts}, + year = 1960, + volume = {1}, + language = {german}, + volumetitle = {zweiter Halbband}, + address = {T{\"u}bingen}, + edition = 15 +} +@BOOK{huebner, + author = {Heinz H{\"u}bner}, + title = {Allgemeiner Teil des B{\"u}rgerlichen Gesetzbuches}, + shorttitle = {BGB~AT}, + year = 1996, + language = {german}, + address = {Berlin, New York}, + edition = 2 +} +@BOOK{koehler, + author = {Helmut K{\"o}hler}, + title = {BGB Allgemeiner Teil}, + shorttitle = {BGB~AT}, + language = {german}, + year = 1996, + address = {M{\"u}nchen}, + edition = 23 +} +@BOOK{medicus, + author = {Dieter Medicus}, + title = {Allgemeiner Teil des BGB}, + shorttitle = {BGB~AT}, + year = 1995, + howcited = 1, + address = {M{\"u}nchen}, + edition = {6} +} +@BOOK{musielak, + author = {Hans-Joachim Musielak}, + title = {Grundkurs BGB}, + shorttitle = {BGB~GK}, + language = {german}, + year = 1994, + address = {M{\"u}nchen} +} +@BOOK{alexy, + author = {Alexy, Robert}, + title = {Theorie der Grundrechte}, + year = 1985, + address = {Baden-Baden}, + school = {G{\"o}ttingen}, + dissyear = 1984 +} +@BOOK{kkstrr, + author = {Kurt Kodal and Joachim Kr{\"a}mer}, + title = {Stra{\ss}enrecht}, + shorttitle = {StrR}, + year = 1995, + address = {M{\"u}nchen}, + edition = {5}, + pages = {30--34, \S~24} +} +@ARTICLE{broxja, + author = {Hans Brox}, + gender = {sm}, + title = {Die Anfechtung bei der Stellvertretung}, + journal = {JA}, + language = {german}, + year = 1980, + address = {M{\"u}nchen} +} +@ARTICLE{eujenfrank, + author = {Heiko Eujen and Rainer Frank}, + gender = {pm}, + title = {Anfechtung der Bevollm{\"a}chtigung nach Abschlu^^df des + Vertretergesch{\"a}ftes\,?}, + language = {german}, + journal = {JZ}, + year = 1973 +} +@ARTICLE{proelss, + author = {J{\"u}rgen Pr{\"o}lss}, + gender = {sm}, + title = {Vertretung ohne Vertretungsmacht\,?}, + journal = {JuS}, + language = {german}, + year = 1985 +} +@PERIODICAL{oellers, + author = {Bernd Oellers}, + gender = {sm}, + title = {Doppelwirkung im Recht\,?}, + journal = {AcP}, + language = {german}, + year = 1969, + volume = 169 +} +@COMMENTED{erm, + author = {Walther Erman}, + gender = {sm}, + title = {Handkommentar zum B{\"u}rgerlichen Gesetzbuch}, + address = {M{\"u}nster}, + language = {german}, + year = 1993, + volume = 1, + edition = {9} +} +@COMMENTED{mueko, + title = {Kommentar zum B{\"u}rgerlichen Gesetzbuch}, + shortauthor = {M{\"u}Ko}, + address = {M{\"u}nchen}, + language = {german}, + year = 1994, + volume = 2, + volumetitle = {-- Schuldrecht -- Allgemeiner Teil}, + edition = {3} +} +@COMMENTED{palandt, + author = {Otto Palandt}, + gender = {sm}, + title = {Kommentar zum B{\"u}rgerlichen Gesetzbuch}, + address = {M{\"u}nchen}, + language = {german}, + year = 1996, + edition = {6} +} +@COMMENTED{soergel, + author = {Hans Theodor Soergel}, + gender = {sm}, + title = {Kommentar zum B{\"u}rgerlichen Gesetzbuch}, + address = {Stuttgart, Berlin, K{\"o}ln, Mainz}, + year = 1987, + howcited = 1, + edition = 12, + volume = 1, + language = {german} +} +@MASTERSTHESIS{alexymthesis, + author = {Alexy, Robert}, + gender = {sm}, + title = {Theorie der Grundrechte}, + year = 1984, + school = {G{\"o}ttingen} +} +@PHDTHESIS{alexyphdthesisi, + author = {Alexy, Robert}, + gender = {sm}, + title = {Theorie der Grundrechte}, + year = 1984, + school = {G{\"o}ttingen} +} +@PHDTHESIS{alexyphdthesisii, + author = {Alexy, Robert}, + gender = {sm}, + title = {Theorie der Grundrechte}, + year = 1984, + type = {Habil.}, + school = {G{\"o}ttingen} +} +@JURTHESIS{alexyjurthesisi, + author = {Alexy, Robert}, + gender = {sm}, + title = {Theorie der Grundrechte}, + year = 1984, + school = {G{\"o}ttingen} +} +@JURTHESIS{alexyjurthesis, + author = {Alexy, Robert}, + gender = {sm}, + title = {Theorie der Grundrechte}, + year = 1984, + type = {Habil.}, + school = {G{\"o}ttingen} +} +@WWW{jbtesturl, + author = {Jens Berger}, + gender = {sm}, + title = {Home of jurabib}, + url = {http://www.jurabib.org/docs/english/jbendoc.html}, +} +%% +%% +%% End of file `jbtest.bib'. diff --git a/Master/texmf-dist/bibtex/bib/jurabib/jbtesthu.bib b/Master/texmf-dist/bibtex/bib/jurabib/jbtesthu.bib new file mode 100644 index 00000000000..22bff76b0a5 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/jurabib/jbtesthu.bib @@ -0,0 +1,128 @@ +%% +%% This is file `jbtesthu.bib', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% jurabib.dtx (with options: `jbtesthubib') +%% ---------------------------------------- +%% Example BibTeX file for the documentation +%% of the jurabib package v0.6 +%% Copyright (C) 1999-2004 Jens Berger (http://www.jurabib.org) +%% See jurabib.ins for the copyright details. +%% +@BOOK{bergmeier80, + author = {Bergmeier, Roland}, + gender = {sm}, + title = {Glaube als Gabe nach Johannes: Religions- und + Theologiegeschichtliche Studien zum pr{\"a}destinatianischen + Dualismus im vierten Evangelium}, + publisher = {W. Kohlhammer}, + year = 1980, + volume = 112, + series = {Beitr{\"a}ge zur Wissenschaft vom Alten und Neuen Testament}, + address = {Stuttgart etc.}, + keywords = {Predestinatie; Johannes; Gnostiek; Qumran; Dualisme}, + language = {german}, + shorttitle = {Glaube als Gabe}, + annote = {This is a senseless test for testing the annote field.\par If + you are reading this text now, note that you can switch + off the output of this field by removing the \texttt{annote} option + \begin{itemize}\item You are able to use lists inside the annote field\end{itemize}} +} +@ARTICLE{helm72, + author = {Helm, Paul}, + gender = {sm}, + title = {Revealed Propositions and Timeless Truths}, + journal = {Religious Studies}, + year = 1972, + volume = 8, + pages = {127--136}, + comment = {Nog eens kopieren} +} +@BOOK{helm82, + author = {Helm, Paul}, + gender = {sm}, + title = {Divine Revelation: The Basic Issues}, + year = 1982, + address = {London}, + annote = {Verdediging van propositionele visie op Openbaring}, + language = {english}, + shorttitle = {Divine Revelation} +} +@INCOLLECTION{helm82a, + author = {Helm, Paul}, + gender = {sm}, + title = {The Role of Logic in Biblical Interpretation}, + editor = {E. Radmacher and R. Preus}, + booktitle = {Hermeneutics, Inerrancy, \& the Bible}, + year = 1982, + pages = {841--858}, + address = {Grand Rapids}, + language = {english}, + shorttitle = {Role of Logic} +} +@BOOK{helm97, + author = {Helm, Paul}, + gender = {sm}, + title = {Faith and Understanding}, + year = 1997, + series = {Reason and Religion}, + address = {Edinburgh}, + publisher = {Edinburgh University Press}, + language = {english} +} +@INCOLLECTION{Thiselton99, + author = {Thiselton, Anthony C.}, + gender = {sm}, + title = {Communicative Action and Promise in + Interdisciplinary, Biblical, and Theological Hermeneutics}, + booktitle = {The Promise of Hermeneutics}, + pages = {133--240}, + crossref = {LunWalThis99}, + shorttitle = {Communicative Action} +} +@BOOK{LunWalThis99, + editor = {Lundin, Roger and Walhout, Clarence and Thiselton, Anthony C.}, + gender = {pm}, + year = 1999, + title = {The Promise of Hermeneutics}, + publisher = {Eerdmans}, + address = {Grand Rapids}, + shorttitle = {Promise} +} +@INCOLLECTION{Lundin99, + author = {Lundin, Roger}, + gender = {sm}, + title = {Interpreting Orphans: Hermeneutics in the Cartesian + Tradition}, + booktitle = {The Promise of Hermeneutics}, + pages = {1--64}, + crossref = {LunWalThis99}, + shorttitle = {Interpreting Orphans} +} +@Book{Oberman88, + author = {Oberman, Heiko Augustinus}, + gender = {sm}, + title = {De erfenis van Calvijn: grootheid en grenzen: drie + lezingen}, + publisher = {Kok}, + year = 1988, + address = {Kampen}, + annote = {zie liter}, + series = {Kuyper-voordrachten}, + language = {dutch} +} +@Book{Kraft74, + editor = {Kraft, Robert A. and Attridge, Harold and Spittler, Russell and Timbie, Janet}, + gender = {pm}, + title = {The Testament of Job According to the SV Text}, + publisher = {Society of Biblical Literature \& Scholars' Press}, + year = 1937, + volume = 4, + series = {Texts and Translations 5: Pseudepigrapha Series}, + address = {Missoula, Montana}, +} +%% +%% +%% End of file `jbtesthu.bib'. diff --git a/Master/texmf-dist/bibtex/bib/minitoc/add.bib b/Master/texmf-dist/bibtex/bib/minitoc/add.bib new file mode 100644 index 00000000000..5316cf8d547 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/minitoc/add.bib @@ -0,0 +1,24 @@ +@MISC{minitoc, + TITLE="The {\texttt{minitoc}} package", + MONTH=jul, + AUTHOR="Drucbert, Jean-Pierre F.", + ADDRESS="{\texttt{drucbert@onera.fr}}", + NOTE="{\url{CTAN:macros/latex/contrib/minitoc/minitoc.pdf}}", + YEAR=2005} + +@MISC{fminitoc, + TITLE="Le paquetage {\texttt{minitoc}}", + MONTH=jul, + AUTHOR="Drucbert, Jean-Pierre F.", + ADDRESS="{\texttt{drucbert@onera.fr}}", + NOTE="{\url{CTAN:macros/latex/contrib/minitoc/fminitoc.pdf}}", + YEAR=2005} + +@MISC{shorttoc, + TITLE="The {\texttt{shorttoc}} package", + MONTH=aug, + AUTHOR="Drucbert, Jean-Pierre F.", + ADDRESS="{\texttt{drucbert@onera.fr}}", + NOTE="{\url{CTAN:macros/latex/contrib/shorttoc/shorttoc.dtx}}", + YEAR=2002} + diff --git a/Master/texmf-dist/bibtex/bib/minitoc/fminitoc.bib b/Master/texmf-dist/bibtex/bib/minitoc/fminitoc.bib new file mode 100644 index 00000000000..e237cc38ee9 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/minitoc/fminitoc.bib @@ -0,0 +1,435 @@ +@String{pub-SV = "Springer Verlag"} + +@String{pub-SV+adr = "Berlin, Germany~/ Heidelberg, Germany~/ + London, UK~/ etc."} + +@String{TUB = "TUGboat"} +@String{TUGboat = "TUGboat"} + +@MISC{minitoc, + TITLE="The {\texttt{minitoc}} package", + MONTH=jul, + AUTHOR="Drucbert, Jean-Pierre F.", + NOTE="{\froff\url{jean-pierre.drucbert@onera.fr}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/macros/latex/contrib/minitoc/minitoc.pdf}}", + YEAR=2005} + +@MISC{fminitoc, + TITLE="Le paquetage {\texttt{minitoc}}", + MONTH=jul, + AUTHOR="Drucbert, Jean-Pierre F.", + NOTE="{\froff\url{jean-pierre.drucbert@onera.fr}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/macros/latex/contrib/minitoc/fminitoc.pdf}}", + YEAR=2005} + +@MISC{shorttoc, + TITLE="The {\texttt{shorttoc}} package", + MONTH=aug, + AUTHOR="Drucbert, Jean-Pierre F.", + NOTE="{\froff\url{jean-pierre.drucbert@onera.fr}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/macros/latex/contrib/shorttoc/shorttoc.dtx}}", + YEAR=2002} + +@BOOK{desgraupes, + TITLE="{\LaTeX}, {A}pprentissage, guide et r{\'e}f{\'e}rence", + AUTHOR="Desgraupes, Bernard", + EDITION="seconde", + PUBLISHER="{Vuibert}", + ADDRESS="{Paris}", + ISBN="2-7117-4809-X", + YEAR=2003} + +@book{TLC2, + TITLE={The {{\LaTeX}} {{C}ompanion~2}}, + SERIES = "{T}ools and {T}echniques for {C}omputer {T}ypesetting", + AUTHOR={Frank Mittelbach and Michel Goossens and + Johannes Braams and David Carlisle and Chris Rowley}, + PUBLISHER = {Addison-Wesley Professional}, + ISBN = {0-201-36299-6}, + ADDRESS = {Reading, Massachusetts}, + YEAR=2004 +} + +@MISC{appendix, + TITLE = "The {\texttt{appendix}} package", + MONTH = apr, + AUTHOR = "Wilson, Peter R.", + NOTE="{\froff\url{pandgwilson@earthlink.net}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/macros/latex/contrib/appendix/appendix.pdf}}", + YEAR = 2004} + +@MISC{babel, + AUTHOR = "Braams, Johannes", + TITLE = "Babel, a multilingual package for use with {\LaTeX}'s standard document classes", + NOTE="{\froff\url{babel@bramms.cistron.nl}}", + MONTH = jun, + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/macros/latex/required/babel/babel.pdf} et \url{http://www.tug.org/tex-archive/macros/latex/required/babel/user.pdf}}", + YEAR = 2004} + +@MISC{hyperref, + AUTHOR="Rahtz, Sebastian and Oberdiek, Heiko", + TITLE="{\froff Hypertext marks in {\LaTeX}: a manual for {\texttt{hyperref}}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/macros/latex/contrib/hyperref/doc/manual.pdf}}", + MONTH=feb, + YEAR=2004} + +@MISC{memoir, + TITLE="{T}he {M}emoir {C}lass", + AUTHOR = "Wilson, Peter R.", + NOTE="{\froff\url{pandgwilson@earthlink.net}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/macros/latex/contrib/memoir/memman.pdf}}", + EDITION="sixi{\`e}me", + MONTH=feb, + YEAR=2005} + +@MISC{notoccite, + TITLE="The {\texttt{notoccite}} package", + AUTHOR="Arseneau, Donald", + NOTE="{\froff\url{asnd@triumf.ca}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/macros/latex/contrib/misc/notoccite.sty}}", + MONTH=jul, + YEAR=2000} + +@MISC{placeins, + TITLE="The {\texttt{placeins}} package", + AUTHOR="Arseneau, Donald", + NOTE="{\froff\url{asnd@triumf.ca}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/macros/latex/contrib/misc/placeins.sty} et + \url{http://www.tug.org/tex-archive/macros/latex/contrib/misc/placeins.sty}}", + MONTH=jun, + YEAR=2002} + +@MISC{tocbibind, + TITLE="The {\texttt{tocbibend}} package", + AUTHOR = "Wilson, Peter R.", + NOTE="{\froff\url{pandgwilson@earthlink.net}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/macros/latex/contrib/tocbibind/tocbibind.pdf}}", + MONTH=may, + YEAR=2004} + +@MISC{tocloft, + TITLE="The {\texttt{tocloft}} package", + AUTHOR = "Wilson, Peter R.", + NOTE="{\froff\url{pandgwilson@earthlink.net}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/macros/latex/contrib/tocloft/tocloft.pdf}}", + MONTH=sep, + YEAR=2003} + +@MISC{titletoc, + TITLE = "The {\texttt{titlesec}} and {\texttt{titletoc}} packages", + AUTHOR="Bezos, Javier", + NOTE="{\froff\url{http://www.texytipografia.com/contact.php}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/macros/latex/contrib/titlesec/titlesec.pdf}}", + MONTH=jan, + YEAR=2005} +@MISC{arabtex, + TITLE="{ArabTeX Version~3}", + AUTHOR={Lagally, Klaus}, + NOTE="{\froff\url{lagallyk@acm.org}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/language/arabtex/doc/html/arabtex.htm}}", + MONTH=oct, + YEAR=2003} + +@INPROCEEDINGS{arabtex2, + TITLE="{Arab\TeX}---{T}ypetting {A}rabic with vowels and ligatures", + AUTHOR={Lagally, Klaus}, + BOOKTITLE="{Proceedings of the 7th European {\TeX} Conference}", + PAGES="153--172", + ADDRESS="Prague", + PUBLISHER="{CsTUG}", + NOTE="{ISBN 80-210-0480-0}, {\froff\url{lagallyk@acm.org}}", + YEAR=1992} + +@MISC{mlsquick, + TITLE="{M}on{\TeX} -- {A} {Q}uick {G}uide {\emph{(draft)}}", + AUTHOR="Corff, Oliver", + NOTE="{\froff\url{corff@zedat.fu-berlin.de}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/language/mongolian/montex/doc/mlsquick.pdf}}", + MONTH=nov, + YEAR=2001} + +@MISC{montex, + TITLE="Mon{\TeX} -- Mongolian for {\LaTeXe}, {I}mplementation {L}evel {S}ystem {D}ocumentation", + AUTHOR="Corff, Oliver", + NOTE="{\froff\url{corff@zedat.fu-berlin.de}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/language/mongolian/montex/doc/montex.pdf}}", + MONTH=jul, + YEAR=2002} + +@BOOK{tex-bech, + TITLE="{\TeX} in {P}ractice", + AUTHOR="{von Bechtolsheim}, Stephan P.", + PUBLISHER=pub-SV, + ADDRESS=pub-SV+adr, + NOTE="{\begin{multicols}{2}\begin{enumerate} + \item Basics. + \item Paragraphs, Maths and Fonts. + \item Tokens, Macros. + \item Output Routines. + \end{enumerate}\end{multicols} + (Une approche progressive des secrets de \TeX)}", + ISBN="3-540-97597-7", + YEAR="1992"} + +@MISC{armtex, + TITLE="{\froff{Arm\TeX}: a {S}ystem for {W}riting in {A}rmenian with {\TeX} and {\LaTeX}}", + AUTHOR="Dachian, Serguei and Dalalyan, Arnak and Vakopian, Vardan", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/language/armtex/v2.0/manual.ps}, {\'e}crit en arm{\'e}nien}", + NOTE="{\froff\url{Serguei.Dachian@univ-lemans.fr}}", + MONTH=jun, + YEAR=1999} + +@ARTICLE{BEP, + AUTHOR="Johannes Braams and Victor E{\ij}khout and Nico Poppelier", + TITLE="The development of national {\LaTeX} styles", + JOURNAL="{TUGboat}", + VOLUME="10", + NUMBER="3", + PAGES="401--406", + MONTH=nov, + YEAR=1989} + +@BOOK{latex-manual, + AUTHOR = {Leslie Michel Lamport}, + TITLE = {{\froff\LaTeX:} {\froff A Document Preparation System: + User's Guide and Reference Manual}}, + PUBLISHER = {Addison-Wesley}, + ADDRESS = "Reading, Massachusetts", + EDITION="seconde", + ISBN="0-201-52983-1", + LCCN="Z253.4.L38L35 1994", + PAGES="xvi + 272", + YEAR = {1994} + } + +@BOOK {texbook, + AUTHOR = "Donald~E. Knuth", + TITLE= "The {\TeX{}book}", + PUBLISHER = "Addison-Wesley", + YEAR = "1989{\noopsort{a}}", + EDITION="seizi{\`e}me", + ADDRESS = "Reading, Massachusetts", + VOLUME = "A", + SERIES = "{C}omputers and {T}ypesetting", + NOTE="{r\'evis\'e} pour couvrir {\TeX}3, 1991"} + +@Article{Bechtolsheim+TB11-3-409, + AUTHOR="{von Bechtolsheim}, Stephan P.", + title = "{{\froff{\TeX} in practice: Comments on a 4-volume, 1400-page series on {\TeX}}}", + journal = TUGboat, + HOWPUBLISHED="{\froff\url{http://www.tug.org/TUGboat/Articles/tb11-3/tb29bechtolsheim.pdf}}", + volume = "11", + number = "3", + pages = "409--412", + month = Sep, + year = 1990 + } + +@Article{Braams+TB12-2-291, + author = "Johannes Braams", + title = "{{Babel, a multilingual style-option system for use + with {\LaTeX}'s standard document styles}}", + journal = TUGboat, + HOWPUBLISHED="{\froff\url{http://www.tug.org/TUGboat/Articles/tb12-2/tb32braa.pdf}}", + year = "1991", + volume = "12", + number = "2", + pages = "291--301", + month = Jun, + } + +@UNPUBLISHED{btxdoc, + author = "Oren Patashnik", + title = "{{\BibTeX ing}}", + note = "Documentation pour les utilisateurs normaux de {\BibTeX}, + {\froff\url{http://www.tug.org/tex-archive/biblio/bibtex/contrib/doc/btxdoc.pdf}}", + month = feb, + year = 1988 } + +@UNPUBLISHED{btxhak, + author = "Oren Patashnik", + title = "Designing {\BibTeX} Styles", + note = "La partie de la documentation de {\BibTeX} qui + n'int{\'e}resse pas tous les utilisateurs, + {\froff\url{http://www.tug.org/tex-archive/biblio/bibtex/contrib/doc/btxhak.pdf}}", + month = feb, + year = 1988 } + +@BOOK{ftb, + AUTHOR = "Donald~E. Knuth", + TITLE={{L}e {\TeX}book, {C}omposition informatique}, + PUBLISHER={Vuibert}, + ADDRESS={Paris}, + ISBN={2-7117-4819-7}, + NOTE={{T}raduction en fran{\c{c}}ais de{~\cite{texbook}}, par {\name{Jean-C{\^o}me}{Charpentier}}}, + YEAR=2003} + +@ARTICLE{cjk2, + AUTHOR="Lemberg, Werner", + JOURNAL= TUB, + VOLUME =18, + NUMBER=3, + PAGES="214--224", + TITLE="The {CJK} package for {\LaTeXe} --- {M}ultilingual support beyond {\textsf{babel}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/TUGboat/Articles/tb18-3/cjkintro600.pdf}}", + YEAR=1997} + +@MISC{antomega, + AUTHOR="Kryukov, Alexej M.", + TITLE="Typesetting multilingual documents with {ANTOMEGA}", + MONTH=sep, + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/systems/omega/contrib/antomega/doc/omega/antomega/antomega.pdf}}", + YEAR=2003} + +@BOOK{JMPL1, + AUTHOR={Bayart, Benjamin}, + TITLE="{J}oli manuel pour {\LaTeXe}", + PUBLISHER="{G}uide local pour l'{ESIEE}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/info/JMPL.ps.gz}}", + MONTH=dec, + YEAR=1995} + +@ARTICLE{CIL2E, + AUTHOR={Oetiker, Tobias and Partl, Hubert and Hyna, Helene and Schlegl, Elisabeth}, + TITLE="Une courte{~({\froff?})} introduction {\`a~\LaTeXe}", + JOURNAL="{Cahiers GUTenberg}", + NOTE="Traduction de{~\cite{NSSL2E}} en fran{\c{c}}ais par {M}atthieu {\textsc{Herrb}}, adaptation et compl{\'e}ments par {D}aniel + {\textsc{Flipo}}, voir aussi: {{\froff\url{http://www.tug.org/tex-archive/info/lshort/french/flshort-3.20.pdf}}}", + MONTH=feb, + ISSN="1140-9304", + VOLUME="Hors-s{\'e}rie num{\'e}ro{~2}", + YEAR=2003} + +@MISC{NSSL2E, + AUTHOR={Oetiker, Tobias and Partl, Hubert and Hyna, Helene and Schlegl, Elisabeth}, + TITLE="{The Not So Short Introduction to \LaTeXe}", + HOWPUBLISHED="{\froff{\url{http://www.tug.org/tex-archive/info/lshort/english/lshort.pdf}}}", + MONTH=apr, + YEAR=2004} + +@MISC{minutes, + TITLE = "{\froff{{\LaTeXe} for people in associations: {\texttt{minutes.sty}}}}", + MONTH = jan, + AUTHOR = "Lichert, Knut", + ADDRESS="{\froff{\url{knut@lickert.net}}}", + HOWPUBLISHED="{\froff{\url{http://www.tug.org/tex-archive/macros/latex/contrib/minutes/}}}", + YEAR = 2001} + +@MISC{needspace, + TITLE="The {\texttt{needspace}} package", + AUTHOR = "Wilson, Peter R.", + NOTE="{\froff\url{pandgwilson@earthlink.net}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/macros/latex/contrib/misc/needspace.sty}}", + MONTH=jan, + YEAR=2003} + +@MISC{txfonts, + TITLE="The {TX} {F}onts", + AUTHOR="Ryu, Young", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/fonts/txfonts/doc/txfontsdocA4.pdf}}", + MONTH=dec, + YEAR=2000} + +@MISC{ifmtarg, + TITLE="The {\texttt{iftmarg}} package", + AUTHOR = "Wilson, Peter R. and Arseneau, Donald", + NOTE="{\froff\url{pandgwilson@earthlink.net}, \url{asnd@triumf.ca}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/macros/latex/contrib/misc/ifmtarg.sty}}", + MONTH=mar, + YEAR=2000} + +@MISC{abstract, + TITLE="The {\texttt{abstract}} package", + AUTHOR = "Wilson, Peter R.", + NOTE="{\froff\url{pandgwilson@earthlink.net}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/macros/latex/contrib/abstract/abstract.pdf}}", + MONTH=apr, + YEAR=2004} + +@MISC{xr, + TITLE="The {\texttt{xr}} package", + AUTHOR = "Carlisle, David", + NOTE="{\froff\url{carlisle@cs.man.ac.uk}}", + HOWPUBLISHED="{\froff\url{http:/www.tug.org/tex-archive/macros/required/tools/xr.dtx}}", + MONTH=may, + YEAR=1994} + +@MISC{bangtex, + TITLE="{\froff {Bangtex}: a package for typesetting + documents in {Bangla} using the {\TeX/\LaTeX} + systems}", + AUTHOR="Pal, Palash Baran", + HOWPUBLISHED="{\froff\url{http://tnp.saha.ernet.in/~pbpal/bangtex/bangtex.html}}", + MONTH=jan, + YEAR=2001} + +@MISC{ethiop, + TITLE="{E}thiopian {L}anguage {S}upport for the {\textsf{Babel}} {P}ackage", + AUTHOR="Beyene, Berhanu and Kudlek, Manfred and Kummer, Olaf and Metzinger, Jochen", + NOTE="Universit{\"a}t Hamburg", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/language/ethiopia/ethiop/doc/ethiodoc.ps}}", + MONTH=dec, + YEAR=1998} + +@MISC{sectsty, + TITLE="The {\texttt{sectsty}} package v2.0.2", + AUTHOR={{McDonnell}, Rowland}, + NOTE="{\froff\url{rowland.mcdonnell@physics.org}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/macros/latex/contrib/sectsty/}}", + MONTH=apr, + YEAR=2002} + +@MISC{subfig, + TITLE="The {\texttt{subfig}} {P}ackage", + AUTHOR={Cochran, Steven Douglas}, + NOTE="{\froff\url{sds@cs.cmu.edu}, + \url{cochran@ieee.org}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/macros/latex/contrib/subfig/subfig.pdf}}", + MONTH=jan, + YEAR=2004} + +@MISC{malayalam, + TITLE="{T}ypesetting {M}alayalam {U}sing {\LaTeXe}", + AUTHOR="{AJ}, Alex", + NOTE="{\froff\url{alexaj@myrealbox.com}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/language/malayalam/doc/mm-usr.pdf}}", + MONTH=apr, + YEAR=2003} + +@MISC{comment, + TITLE="The {\texttt{comment}} package", + AUTHOR="E{\ij}khout, Victor", + NOTE="{\froff\url{victor@eijkhout.net}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/macros/latex/contrib/comment/}}", + MONTH=oct, + YEAR=1999} + +@MISC{fontsel, + TITLE="{\LaTeXe} font selection", + AUTHOR="{{\LaTeX3} {Project} {Team}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/macros/latex/doc/fontguide.pdf}}", + MONTH=feb, + YEAR=2004} + +@MISC{guarani, + TITLE="Typesetting {G}uaran with {\TeX}", + AUTHOR="Bezos, Javier", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/language/guarani/guarani.pdf}}", + MONTH=jul, + YEAR=2004} + +@MISC{rubber, + TITLE="{Rubber Manual~1.0}", + AUTHOR="Beffara, Emmanuel", + HOWPUBLISHED="{\froff\url{http://www.pps.jussieu.fr/~beffara/soft/rubber/doc.html}}", + MONTH=jul, + YEAR=2005} + +@BOOKLET{ttb, + TITLE="{T}ame the {B}ea{ST} ({T}the {B} {to~X} of {{\BibTeX}})", + AUTHOR="Markey, Nicolas", + ADDRESS="{\froff\url{markey@lsv.ens-cachan.fr}}", + HOWPUBLISHED="{\froff\url{http://www.tug.org/tex-archive/info/bibtex/tamethebeast/ttb_en.pdf}}", + MONTH=jun, + YEAR=2005} + diff --git a/Master/texmf-dist/bibtex/bib/minitoc/minitoc.bib b/Master/texmf-dist/bibtex/bib/minitoc/minitoc.bib new file mode 100644 index 00000000000..ac9c3f53a0d --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/minitoc/minitoc.bib @@ -0,0 +1,438 @@ +@String{pub-SV = "Springer Verlag"} + +@String{pub-SV+adr = "Berlin, Germany~/ Heidelberg, Germany~/ + London, UK~/ etc."} + +@String{TUB = "TUGboat"} +@String{TUGboat = "TUGboat"} + +@MISC{minitoc, + TITLE="The {\texttt{minitoc}} package", + MONTH=jul, + AUTHOR="Drucbert, Jean-Pierre F.", + NOTE="{\url{jean-pierre.drucbert@onera.fr}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/macros/latex/contrib/minitoc/minitoc.pdf}}", + YEAR=2005} + +@MISC{fminitoc, + TITLE="Le paquetage {\texttt{minitoc}}", + MONTH=jul, + AUTHOR="Drucbert, Jean-Pierre F.", + NOTE="{\url{jean-pierre.drucbert@onera.fr}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/macros/latex/contrib/minitoc/fminitoc.pdf}}", + YEAR=2005} + +@MISC{shorttoc, + TITLE="The {\texttt{shorttoc}} package", + MONTH=aug, + AUTHOR="Drucbert, Jean-Pierre F.", + NOTE="{\url{jean-pierre.drucbert@onera.fr}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/macros/latex/contrib/shorttoc/shorttoc.dtx}}", + YEAR=2002} + +@BOOK{desgraupes, + TITLE="{\LaTeX}, {A}pprentissage, guide et r{\'e}f{\'e}rence", + AUTHOR="Desgraupes, Bernard", + EDITION="second", + PUBLISHER="{Vuibert}", + ADDRESS="{Paris}", + ISBN="2-7117-4809-X", + YEAR=2003} + +@book{TLC2, + TITLE={The {{\LaTeX}} {{C}ompanion~2}}, + SERIES = "{T}ools and {T}echniques for {C}omputer {T}ypesetting", + AUTHOR={Frank Mittelbach and Michel Goossens and + Johannes Braams and David Carlisle and Chris Rowley}, + PUBLISHER = {Addison-Wesley Professional}, + ISBN = {0-201-36299-6}, + ADDRESS = {Reading, Massachusetts}, + YEAR=2004, + cat = latex +} + +@MISC{appendix, + TITLE = "The {\texttt{appendix}} package", + MONTH = apr, + AUTHOR = "Wilson, Peter R.", + NOTE="{\url{pandgwilson@earthlink.net}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/macros/latex/contrib/appendix/appendix.pdf}}", + YEAR = 2004} + +@MISC{babel, + AUTHOR = "Braams, Johannes", + TITLE = "Babel, a multilingual package for use with {\LaTeX}'s standard document classes", + NOTE="{\url{babel@bramms.cistron.nl}}", + MONTH = jun, + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/macros/latex/required/babel/babel.pdf} and + \url{http://www.tug.org/tex-archive/macros/latex/required/babel/user.pdf}}", + YEAR = 2004} + +@MISC{hyperref, + AUTHOR="Rahtz, Sebastian and Oberdiek, Heiko", + TITLE="{Hypertext marks in {\LaTeX}: a manual for {\texttt{hyperref}}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/macros/latex/contrib/hyperref/doc/manual.pdf}}", + MONTH=feb, + YEAR=2004} + +@MISC{memoir, + TITLE="{T}he {M}emoir {C}lass", + AUTHOR = "Wilson, Peter R.", + NOTE="{\url{pandgwilson@earthlink.net}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/macros/latex/contrib/memoir/memman.pdf}}", + EDITION="sixth", + MONTH=feb, + YEAR=2005} + +@MISC{notoccite, + TITLE="The {\texttt{notoccite}} package", + AUTHOR="Arseneau, Donald", + NOTE="{\url{asnd@triumf.ca}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/macros/latex/contrib/misc/notoccite.sty}}", + MONTH=jul, + YEAR=2000} + +@MISC{placeins, + TITLE="The {\texttt{placeins}} package", + AUTHOR="Arseneau, Donald", + NOTE="{\url{asnd@triumf.ca}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/macros/latex/contrib/misc/placeins.sty} and \url{http://www.tug.org/tex-archive/macros/latex/contrib/misc/placeins.sty}}", + MONTH=jun, + YEAR=2002} + +@MISC{tocbibind, + TITLE="The {\texttt{tocbibend}} package", + AUTHOR = "Wilson, Peter R.", + NOTE="{\url{pandgwilson@earthlink.net}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/macros/latex/contrib/tocbibind/tocbibind.pdf}}", + MONTH=may, + YEAR=2004} + +@MISC{tocloft, + TITLE="The {\texttt{tocloft}} package", + AUTHOR = "Wilson, Peter R.", + NOTE="{\url{pandgwilson@earthlink.net}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/macros/latex/contrib/tocloft/tocloft.pdf}}", + MONTH=sep, + YEAR=2003} + +@MISC{titletoc, + TITLE = "The {\texttt{titlesec}} and {\texttt{titletoc}} packages", + AUTHOR="Bezos, Javier", + NOTE="{\url{http://www.texytipografia.com/contact.php}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/macros/latex/contrib/titlesec/titlesec.pdf}}", + MONTH=jan, + YEAR=2005} + +@MISC{arabtex, + TITLE="{ArabTeX Version~3}", + AUTHOR={Lagally, Klaus}, + NOTE="{\url{lagallyk@acm.org}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/language/arabtex/doc/html/arabtex.htm}}", + MONTH=oct, + YEAR=2003} + +@INPROCEEDINGS{arabtex2, + TITLE="{Arab\TeX}---{T}ypetting {A}rabic with vowels and ligatures", + AUTHOR={Lagally, Klaus}, + BOOKTITLE="{Proceedings of the 7th European {\TeX} Conference}", + PAGES="153--172", + ADDRESS="Prague", + PUBLISHER="{CsTUG}", + NOTE="{ISBN 80-210-0480-0}, {\url{lagallyk@acm.org}}", + YEAR=1992} + +@MISC{mlsquick, + TITLE="{M}on{\TeX} -- {A} {Q}uick {G}uide {\emph{(draft)}}", + AUTHOR="Corff, Oliver", + NOTE="{\url{corff@zedat.fu-berlin.de}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/language/mongolian/montex/doc/mlsquick.pdf}}", + MONTH=nov, + YEAR=2001} + +@MISC{montex, + TITLE="Mon{\TeX} -- Mongolian for {\LaTeXe}, {I}mplementation {L}evel {S}ystem {D}ocumentation", + AUTHOR="Corff, Oliver", + NOTE="{\url{corff@zedat.fu-berlin.de}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/language/mongolian/montex/doc/montex.pdf}}", + MONTH=jul, + YEAR=2002} + +@BOOK{tex-bech, + TITLE="{\TeX} in {P}ractice", + AUTHOR="{von Bechtolsheim}, Stephan P.", + PUBLISHER=pub-SV, + ADDRESS=pub-SV+adr, + NOTE="{\begin{multicols}{2}\begin{enumerate} + \item Basics. + \item Paragraphs, Maths and Fonts. + \item Tokens, Macros. + \item Output Routines. + \end{enumerate} + \end{multicols} + (A progressive approach to the secrets of \TeX)}", + ISBN="3-540-97597-7", + YEAR="1992"} + +@MISC{armtex, + TITLE="{A}rm{\TeX}: a {S}ystem for {W}riting in {A}rmenian with {\TeX} and {\LaTeX}", + AUTHOR="Dachian, Serguei and Dalalyan, Arnak and + Vakopian, Vardan", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/language/armtex/v2.0/manual.ps}}, written in armenian", + NOTE="{\url{Serguei.Dachian@univ-lemans.fr}}", + MONTH=jun, + YEAR=1999} + +@ARTICLE{BEP, + AUTHOR="Johannes Braams and Victor E{\ij}khout and Nico Poppelier", + TITLE="The development of national {\LaTeX} styles", + JOURNAL="{TUGboat}", + VOLUME="10", + NUMBER="3", + PAGES="401--406", + MONTH=nov, + YEAR=1989} + +@BOOK{latex-manual, + AUTHOR = {Leslie Michel Lamport}, + TITLE = {{\LaTeX}: {A} Document Preparation System: + User's Guide and Reference Manual}, + PUBLISHER = {Addison-Wesley}, + ADDRESS = "Reading, Massachusetts", + EDITION="second", + ISBN="0-201-52983-1", + LCCN="Z253.4.L38L35 1994", + PAGES="xvi + 272", + YEAR = {1994} + } + +@BOOK {texbook, + AUTHOR = "Donald~E. Knuth", + TITLE= "The {\TeX{}book}", + PUBLISHER = "Addison-Wesley", + YEAR = "1989{\noopsort{a}}", + EDITION="sixth", + ADDRESS = "Reading, Massachusetts", + VOLUME = "A", + SERIES = "{C}omputers and {T}ypesetting", + NOTE="Revised to cover {\TeX}3, 1991"} + +@Article{Bechtolsheim+TB11-3-409, + AUTHOR="{von Bechtolsheim}, Stephan P.", + title = "{{{\TeX} in practice: Comments on a 4-volume, 1400-page series on {\TeX}}}", + journal = TUGboat, + volume = "11", + number = "3", + pages = "409--412", + month = Sep, + note="{\url{http://www.tug.org/TUGboat/Articles/tb11-3/tb29bechtolsheim.pdf}}", + year = 1990 + } + +@Article{Braams+TB12-2-291, + author = "Johannes Braams", + title = "{{Babel, a multilingual style-option system for use + with {\LaTeX}'s standard document styles}}", + journal = TUGboat, + note="{\url{http://www.tug.org/TUGboat/Articles/tb12-2/tb32braa.pdf}}", + year = "1991", + volume = "12", + number = "2", + pages = "291--301", + month = Jun, + } + +@UNPUBLISHED{btxdoc, + author = "Oren Patashnik", + title = "{{\BibTeX ing}}", + note = "Documentation for general {\BibTeX} users, + \url{http://www.tug.org/tex-archive/biblio/bibtex/contrib/doc/btxdoc.pdf}", + month = feb, + year = 1988 } + +@UNPUBLISHED{btxhak, + author = "Oren Patashnik", + title = "Designing {\BibTeX} Styles", + note = "The part of {\BibTeX}'s documentation that's not meant for general users, + \url{http://www.tug.org/tex-archive/biblio/bibtex/contrib/doc/btxhak.pdf}", + month = feb, + year = 1988 } + +@BOOK{ftb, + AUTHOR = "Donald~E. Knuth", + TITLE={{L}e {\TeX}book, {C}omposition informatique}, + PUBLISHER={Vuibert}, + ADDRESS={Paris}, + ISBN={2-7117-4819-7}, + NOTE={{F}rench translation of{~\cite{texbook}}, by {{Jean-C{\^o}me} + {Charpentier}}}, + YEAR=2003} + +@ARTICLE{cjk2, + AUTHOR="Lemberg, Werner", + JOURNAL= TUB, + VOLUME =18, + NUMBER=3, + PAGES="214--224", + TITLE="The {CJK} package for {\LaTeXe} --- {M}ultilingual support beyond {\textsf{babel}}", + NOTE="\url{http://www.tug.org/TUGboat/Articles/tb18-3/cjkintro600.pdf}", + YEAR=1997} + +@MISC{antomega, + AUTHOR="Kryukov, Alexej M.", + TITLE="Typesetting multilingual documents with {ANTOMEGA}", + MONTH=sep, + HOWPUBLISHED="\url{http://www.tug.org/tex-archive/systems/omega/contrib/antomega/doc/omega/antomega/antomega.pdf}", + YEAR=2003} + +@BOOK{JMPL1, + AUTHOR={Bayart, Benjamin}, + TITLE="{J}oli manuel pour {\LaTeXe}", + PUBLISHER="{G}uide local pour l'{ESIEE}", + NOTE="{\url{http://www.tug.org/tex-archive/info/JMPL.ps.gz}}", + MONTH=dec, + YEAR=1995} + +@ARTICLE{CIL2E, + AUTHOR={Oetiker, Tobias and Partl, Hubert and Hyna, Helene and Schlegl, Elisabeth}, + TITLE="Une courte{~(?)} introduction {\`a~\LaTeXe}", + JOURNAL="{Cahiers GUTenberg}", + NOTE="Translation in french of{~\cite{NSSL2E}} by {M}atthieu {H}errb, adaptation and complements by {D}aniel + {F}lipo, see also: {\url{http://www.tug.org/tex-archive/info/lshort/french/flshort-3.20.pdf}}", + MONTH=feb, + ISSN="1140-9304", + VOLUME="Hors-s{\'e}rie num{\'e}ro{~2}", + YEAR=2003} + +@MISC{NSSL2E, + AUTHOR={Oetiker, Tobias and Partl, Hubert and Hyna, Helene and Schlegl, Elisabeth}, + TITLE="{The Not So Short Introduction to \LaTeXe}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/info/lshort/english/lshort.pdf}}", + MONTH=apr, + YEAR=2004} + +@MISC{minutes, + TITLE = "{\LaTeXe} for people in associations: {\texttt{minutes.sty}}", + MONTH = jan, + AUTHOR = "Lichert, Knut", + NOTE="{\url{knut@lickert.net}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/macros/latex/contrib/minutes/}}", + YEAR = 2001} + +@MISC{needspace, + TITLE="The {\texttt{needspace}} package", + AUTHOR = "Wilson, Peter R.", + NOTE="{\url{pandgwilson@earthlink.net}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/macros/latex/contrib/misc/needspace.sty}}", + MONTH=jan, + YEAR=2003} + +@MISC{txfonts, + TITLE="The {TX} {F}onts", + AUTHOR="Ryu, Young", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/fonts/txfonts/doc/txfontsdoc.pdf}}", + MONTH=dec, + YEAR=2000} + +@MISC{ifmtarg, + TITLE="The {\texttt{iftmarg}} package", + AUTHOR = "Wilson, Peter R. and Arseneau, Donald", + NOTE="{\url{pandgwilson@earthlink.net}, \url{asnd@triumf.ca}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/macros/latex/contrib/misc/ifmtarg.sty}}", + MONTH=mar, + YEAR=2000} + +@MISC{abstract, + TITLE="The {\texttt{abstract}} package", + AUTHOR = "Wilson, Peter R.", + NOTE="{\url{pandgwilson@earthlink.net}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/macros/latex/contrib/abstract/abstract.pdf}}", + MONTH=apr, + YEAR=2004} + +@MISC{xr, + TITLE="The {\texttt{xr}} package", + AUTHOR = "Carlisle, David", + NOTE="{\url{carlisle@cs.man.ac.uk}}", + HOWPUBLISHED="{\url{http:/www.tug.org/tex-archive/macros/required/tools/xr.dtx}}", + MONTH=may, + YEAR=1994} + +@MISC{bangtex, + TITLE="{{Bangtex}: a package for typesetting + documents in {Bangla} using the {\TeX/\LaTeX} + systems}", + AUTHOR="Pal, Palash Baran", + HOWPUBLISHED="{\url{http://tnp.saha.ernet.in/~pbpal/bangtex/bangtex.html}}", + MONTH=jan, + YEAR=2001} + +@MISC{ethiop, + TITLE="{E}thiopian {L}anguage {S}upport for the {\textsf{Babel}} {P}ackage", + AUTHOR="Beyene, Berhanu and Kudlek, Manfred and Kummer, Olaf and Metzinger, Jochen", + NOTE="Universit{\"a}t Hamburg", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/language/ethiopia/ethiop/doc/ethiodoc.ps}}", + MONTH=dec, + YEAR=1998} + +@MISC{sectsty, + TITLE="The {\texttt{sectsty}} package v2.0.2", + AUTHOR={{McDonnell}, Rowland}, + NOTE="{\url{rowland.mcdonnell@physics.org}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/macros/latex/contrib/sectsty/}}", + MONTH=apr, + YEAR=2002} + +@MISC{subfig, + TITLE="The {\texttt{subfig}} {P}ackage", + AUTHOR={Cochran, Steven Douglas}, + NOTE="{\url{sds@cs.cmu.edu}, \url{cochran@ieee.org}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/macros/latex/contrib/subfig/subfig.pdf}}", + MONTH=jan, + YEAR=2004} + +@MISC{malayalam, + TITLE="{T}ypesetting {M}alayalam {U}sing {\LaTeXe}", + AUTHOR="{AJ}, Alex", + NOTE="{\url{alexaj@myrealbox.com}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/language/malayalam/doc/mm-usr.pdf}}", + MONTH=apr, + YEAR=2003} + +@MISC{comment, + TITLE="The {\texttt{comment}} package", + AUTHOR="E{\ij}khout, Victor", + NOTE="{\url{victor@eijkhout.net}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/macros/latex/contrib/comment/}}", + MONTH=oct, + YEAR=1999} + +@MISC{fontsel, + TITLE="{\LaTeXe} font selection", + AUTHOR="{{\LaTeX3} {Project} {Team}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/macros/latex/doc/fontguide.pdf}}", + MONTH=feb, + YEAR=2004} + +@MISC{guarani, + TITLE="Typesetting {G}uaran with {\TeX}", + AUTHOR="Bezos, Javier", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/language/guarani/guarani.pdf}}", + MONTH=jul, + YEAR=2004} + +@MISC{rubber, + TITLE="{Rubber Manual~1.0}", + AUTHOR="Beffara, Emmanuel", + HOWPUBLISHED="{\url{http://www.pps.jussieu.fr/~beffara/soft/rubber/doc.html}}", + MONTH=jul, + YEAR=2005} + +@BOOKLET{ttb, + TITLE="{T}ame the {B}ea{ST} ({T}the {B} {to~X} of {{\BibTeX}})", + AUTHOR="Markey, Nicolas", + ADDRESS="{\url{markey@lsv.ens-cachan.fr}}", + HOWPUBLISHED="{\url{http://www.tug.org/tex-archive/info/bibtex/tamethebeast/ttb_en.pdf}}", + MONTH=jun, + YEAR=2005} + diff --git a/Master/texmf-dist/bibtex/bib/msc/biblio.bib b/Master/texmf-dist/bibtex/bib/msc/biblio.bib new file mode 100644 index 00000000000..9c788fb4e3f --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/msc/biblio.bib @@ -0,0 +1,60 @@ +@InProceedings{RudolphGrabowskiGraubmann96, + author = {E. Rudolph and P.Graubmann and J. Grabowski}, + title = {Tutorial on Message Sequence Charts {(MSC'96})}, + booktitle = {FORTE}, + year = 1996 +} + +@Booklet{z120, + title = {{ITU-TS} {R}ecommendation {Z.120}: {M}essage {S}equence {C}hart {(MSC)}}, + author = {ITU-TS}, + address = {Geneva}, + year = 1997 +} + +@Book{GSM97, + AUTHOR = {Michel Goossens and Sebastian Rahtz and Frank Mittelbach}, + TITLE = {{T}he {\LaTeX} {G}raphics {C}ompanion}, + PUBLISHER = "Addison-Wesley", + YEAR = 1997 +} + + +@Book{Lam94, + author = {L. Lamport}, + title = {{\LaTeX}---A Document Preparation System---User's Guide and Reference Manual}, + publisher = {Adsison-Wesley}, + year = 1994, + edition = {2nd}, + note = {Updated for {\LaTeXe}} +} + +@Manual{BM02, + title = {A {\LaTeX{}} macro package for Message Sequence + Charts---Reference Manual---Describing {\mscpack} + version~{\mscversion}}, + author = {V. Bos and S. Mauw}, + year = {2002}, + month = {June}, + note = {Included in MSC macro package distribution} +} + +@Manual{BM02a, + title = {A {\LaTeX{}} macro package for Message Sequence + Charts---User Manual---Describing {\mscpack} + version~{\mscversion}}, + author = {V. Bos and S. Mauw}, + year = {2002}, + month = {June}, + note = {Included in MSC macro package distribution} +} + +@Manual{BM02b, + title = {A {\LaTeX{}} macro package for Message Sequence + Charts---Maintenance document---Describing {\mscpack} + version~{\mscversion}}, + author = {V. Bos and S. Mauw}, + year = {2002}, + month = {June}, + note = {Included in MSC macro package distribution} +} diff --git a/Master/texmf-dist/bibtex/bib/pst-labo/pst-labo-doc.bib b/Master/texmf-dist/bibtex/bib/pst-labo/pst-labo-doc.bib new file mode 100644 index 00000000000..e217a66170f --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/pst-labo/pst-labo-doc.bib @@ -0,0 +1,100 @@ +%% -*-bibtex-*- +@STRING{bretter = {Bretter, die die Welt bedeuten} } +@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} } +@STRING{PS = {{P}ost{S}cript} } +@String{j-TUGboat = "TUGboat"} + +@Book{PSTricks2, + author = {Herbert Vo\ss}, + title = {{\PST} {G}rafik f\"ur \TeX{} und \LaTeX}, + edition = {second}, + publisher = {DANTE -- Lehmanns}, + year = {2005}, + address = {Heidelberg/Hamburg} +} + +@Book{companion, + author = {Frank Mittelbach and Michel Goosens et al}, + title = {The {\LaTeX} {G}raphics {C}ompanion}, + edition = {second}, + publisher = {Addison-Wesley Publishing Company}, + year = {2004}, + address = {Boston} +} + +@Article{girou:01, + author = {Denis Girou}, + title = {Pr\'esentation de {PST}ricks}, + journal = {Cahier GUTenberg}, + year = 1994, + volume = {16}, + month = apr, + pages = {21-70} +} + +@Article{girou:02, + author = {Timothy Van Zandt and Denis Girou}, + title = {Inside PSTricks}, + journal = {TUGboat}, + year = {1994}, + volume = {15}, + month = sep, + pages = {239-246} +} + +@Manual{pstricks, + Title = {{PST}ricks - {\PS} macros for {G}eneric \TeX}, + Author = {Timothy {V}an Zandt}, + Organization = {}, + Address = {\url{http://www.tug.org/application/PSTricks}}, + Note = {}, + year = 1993, +} + +@Manual{pst-code, + Title = {{PST}ricks - {\PS} macros for {G}eneric \TeX, {D}ocumented {Code}}, + Author = {Timothy {V}an Zandt}, + Organization = {}, + Address = {\url{CTAN:/graphics/pstricks/obsolete/doc/src/pst-code.tex}}, + Note = {}, + year = 1997, +} + +@Article{rahtz:96-1, + author = {Sebastian Rahtz}, + title = {An introduction to {PST}ricks, part {I}}, + journal = {Baskerville}, + address = {\url{CTAN: /usergrps/uktug/baskervi/}}, + year = 1996, + volume = 6, + number = 1, + month = feb, + pages = {22-34} +} +@Article{rahtz:96-2, + author = {Sebastian Rahtz}, + title = {An introduction to {PST}ricks, part {II}}, + journal = {Baskerville}, + address = {\url{CTAN: /usergrps/uktug/baskervi/}}, + year = 1996, + volume = 6, + number = 2, + month = apr, + pages = {23-33} +} + +@misc{LGC, + author = {Sebastian Rahtz}, + title = {Most of the PSTricks examples of + The \LaTeX{} Graphics Companion}, + howpublished = {CTAN:~\url{graphics/pstricks/doc/lgc/}} +} + +@Manual{pst-labo, + Title = {\texttt{pst-labo} -- a {PST}ricks package for chemical Objects}, + Author = {Denis Girou and Christoph Jorssen and Manuel Luque and Herbert Vo\ss}, + Organization = {}, + Address = {\url{CTAN: /graphics/pstricks/contrib/pst-labo/}}, + Note = {}, + year = 2005, +} diff --git a/Master/texmf-dist/bibtex/bib/revtex/apssamp.bib b/Master/texmf-dist/bibtex/bib/revtex/apssamp.bib new file mode 100644 index 00000000000..f1725960b52 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/revtex/apssamp.bib @@ -0,0 +1,21 @@ +@ARTICLE{feyn54, + author = "R. P. Feynman", + year = "1954", + journal = "Phys.\ Rev.", + volume = "94", + pages = "262" +} + +@ARTICLE{epr, + author = "A. Einstein and B. Podolsky and N. Rosen", + year = "1935", + journal = "Phys.\ Rev.", + volume = "47", + pages = "777" +} + +@MISC{witten2001, + author = "Edward Witten", + eprint = "hep-th/0106109" +} + diff --git a/Master/texmf-dist/bibtex/bib/spie/report.bib b/Master/texmf-dist/bibtex/bib/spie/report.bib new file mode 100644 index 00000000000..36fdd1ce734 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/spie/report.bib @@ -0,0 +1,61 @@ +%% report.bib - contains BiBtex input for bibliography + +@book{Eisenberg92, + author = "A. Eisenberg", + title = "Guide to Technical Editing", + publisher= "Oxford University", + address= "New York", + year = "1992" } + +@book{Gelman95, + author = "A. Gelman and J. B. Carlin and H. S. Stern and D. B. Rubin", + title = "Bayesian Data Analysis", + publisher= "Chapman \& Hall", + address= "London", + year = "1995" } + +@book{Goossens97, + author = "M. Goossens and F. Mittelbach and A. Samarin", + title = "The LaTeX Companion", + publisher= "Addison-Wesley", + address= "Reading, Mass.", + year = "1997" } + +@incollection{Gull89a, + author = "S. F. Gull", + title = "Developments in maximum-entropy data analysis", + booktitle= " Maximum Entropy and Bayesian Methods", + editor = "J. Skilling", + pages = "53-71 ", + publisher= "Kluwer Academic, Dordrecht", + year = "1989" } + +@inproceedings{Hanson93c, + author = "K. M. Hanson", + title = "Introduction to {B}ayesian image analysis", + booktitle= "Medical Imaging:\ Image Processing", + editor = "M.\ H. Loew", + series = "Proc. SPIE", + volume = "1898", + pages = "716-731", + year = "1993" } + +@book{Lamport94, + author = "L. Lamport", + title = "LaTeX: A Document Preparation System", + publisher= "Addison-Wesley", + address= "Reading, Mass.", + year = "1994" } + +@article{Metropolis53, + author = "N. Metropolis and A. W. Rosenbluth and M. N. Rosenbluth and A. H. Teller and E. Teller", + title = "Equations of state calculations by fast computing machine", + journal= "J. Chem. Phys.", + volume = "21", + pages = "1087-1091", + year = "1953" } + + + + + diff --git a/Master/texmf-dist/bibtex/bib/tugboat/tubguide.bib b/Master/texmf-dist/bibtex/bib/tugboat/tubguide.bib new file mode 100644 index 00000000000..4484db72f77 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/tugboat/tubguide.bib @@ -0,0 +1,106 @@ +%% LaTeX2e file `tubguide.bib' +%% generated by the `filecontents' environment +%% from source `ltubguid' on 2004/07/10. +%% +% BibTeX bibliography file (generated by aux2bib) + +@Misc{Arseneau:url:1996, + author = {Donald Arseneau}, + title = {The {\textsf{url}} package}, + year = {1996}, + howpublished = {Available from {\CTAN}, {\CTANref{url}}} +} + +@Article{Baxter:TB15-3-331, + author = {William Erik Baxter}, + title = {{{An object-oriented programming system in {\TeX}}}}, + journal = {{\TUB}}, + year = {1994}, + month = {September}, + volume = {15}, + number = {3}, + pages = {331--338} +} + +@Misc{Duggan:moreverb:1996, + author = {Angus Duggan and Rainer Sch{\umlaut{o}}pf and Victor Eijkhout and + Robin Fairbairns}, + title = {The {\textsf{moreverb}} package}, + year = {1997}, + howpublished = {Available from {\CTAN}, {\CTANref{moreverb}}} +} + +@Misc{Rahtz:hyperref:1997, + author = {Sebastian Rahtz}, + title = {The {\textsf{hyperref}} system}, + year = 1997, + howpublished = {Available from {\CTAN}, {\CTANref{hyperref}}} +} + +@Book{Lamport:1994, + author = {Leslie Lamport}, + title = {{\LaTeX}, a Document Preparation System}, + edition = {\nth{2}}, + year = {1994}, + publisher = {Addison-Wesley} +} + +@Article{Ogawa:TB15-3-325, + author = {Arthur Ogawa}, + title = {{{Object-oriented programming, descriptive markup, and {\TeX}}}}, + journal = {{\TUB}}, + year = {1994}, + month = {September}, + volume = {15}, + number = {3}, + pages = {325--330} +} + +@Article{Rowley:TB15-1-63, + author = {Chris Rowley}, + title = {{{{\LaTeXe} update, dateline: 31 January 1994}}}, + journal = {{\TUB}}, + year = {1994}, + month = {March}, + volume = {15}, + number = {1}, + pages = {63} +} + +@Misc{Schoepf:verbatim:1996, + author = {Rainer Sch{\umlaut{o}}pf}, + title = {The {\textsf{verbatim}} package}, + year = {1996}, + month = {June}, + howpublished = {Part of the \textsf{tools} bundle, available from {\CTAN}, + {\CTANref{tools}}} +} + +@Article{Swift:TB16-3-269, + author = {Matt Swift}, + title = {Modularity in {\LaTeX}}, + journal = {{\TUB}}, + year = {1995}, + volume = {16}, + number = {3}, + pages = {269--275} +} + +@Misc{Vieth:mflogo:1995, + author = {Ulrik Vieth}, + title = {The {\textsf{mflogo}} package}, + year = {1995}, + howpublished = {Available from {\CTAN}, {\CTANref{mflogo}}} +} + +@Article{Whitney:TB10-3-378, + author = {Ron Whitney and Barbara Beeton}, + title = {{{{\TUB} authors' guide}}}, + journal = {{\TUB}}, + year = {1989}, + month = {November}, + volume = {10}, + number = {3}, + pages = {378--385} +} + diff --git a/Master/texmf-dist/bibtex/bib/urlbst/urlbst.bib b/Master/texmf-dist/bibtex/bib/urlbst/urlbst.bib new file mode 100644 index 00000000000..6b4946d8142 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/urlbst/urlbst.bib @@ -0,0 +1,71 @@ +% Webpage with lastchecked and date +@webpage{url:latex, + author = {Barbara Beeton}, + year = 2001, + month = may, + url = {http://www.tug.org/docs/html/ptr-faq.html}, + title = {What is {\TeX}?}, + lastchecked = {20 August 2001} +} + +% Webpage with lastchecked but no date +@webpage{url:iso690, + author = {{International Standards Organisation}}, + title = {{ISO 690-2}}, + url = {http://www.nlc-bnc.ca/iso/tc46sc9/standard/690-2e.htm}, + lastchecked = {20 August 2001} +} + +% Webpage with date but no lastchecked +@Webpage{classroom96, + title = {Citing Internet Addresses: how students should + reference online sources in their bibliographies}, + year = 1996, + month = mar, + key = {Classroom}, + url = "http://www.classroom.net/classroom/CitingNetResources.html" +} + +% Webpage with neither date nor lastchecked +@Webpage{emory95, + author = "libsf@web.cc.emory.edu", + title = "Citation Formats", + url = "http://www.cc.emory.edu/WHSCL/citation.formats.html" +} + +% Article with URL and lastchecked +@article{url:towell, + title = {Presence in Text-Based Networked Virtual + Environments or `{MUDs}'}, + author = {John Towell and Elizabeth Towell}, + journal = {Presence}, + volume = 6, + number = 5, + pages = {590-595}, + year = 1997, + url = {http://www-unix.mcs.anl.gov/~towell/presence.html}, + lastchecked = {13 February 2002} +} + +% Book with URL, lastchecked, and note. +@Book{raymond99, + author = {Eric S Raymond}, + title = {The Cathedral and the Bazaar}, + publisher = {O'Reilly}, + year = 1999, + url = {http://www.tuxedo.org}, + isbn = {1-56592-724-9}, + lastchecked = {1 April 2002}, + note = {The seminal book on the commercialisation of open-source} +} + +% Plain book, no URLs at all +@book{laurillard93, + author = {Diana Laurillard}, + title = {Rethinking University Teaching}, + publisher = {Routledge}, + year = 1993 +} + + + diff --git a/Master/texmf-dist/bibtex/bib/uwthesis/uwthesis.bib b/Master/texmf-dist/bibtex/bib/uwthesis/uwthesis.bib new file mode 100644 index 00000000000..0275795ddd2 --- /dev/null +++ b/Master/texmf-dist/bibtex/bib/uwthesis/uwthesis.bib @@ -0,0 +1,84 @@ + +Bibtex (bib) file for the thesis style document. + +@string{Knuth="Donald E. Knuth"} + +@book{book, + author = knuth, + title = "The {\TeX} book", + publisher = "Addison-Wesley", + year = 1984} + +@book{Tbook, + author = knuth, + title = "{\TeX}: The Program", + publisher = "Addison-Wesley", + year = 1986} + +@book{Metafont, + author = knuth, + title = "The Metafont book", + publisher = "Addison-Wesley", + year = 1986} + +@book{CMT, + author = knuth, + title = "Computer Modern Typefaces", + publisher = "Addison-Wesley", + year = 1986} + +@book{Lbook, + author = "Leslie Lamport", + title = "{\LaTeX}: A Document Preparation System", + edition = "2nd", + publisher = "Addison-Wesley", + year = 1994} + +@book{companion, + author = "M{ichel} Goossens and F{rank} Mittelbach and A{lexander} Samarin", + title = "The {\LaTeX} Companion", + publisher = "Addison-Wesley", + year = 1994} + + + +@article{TUG:h-l, + author = "Editor", + title = "Hyphenation Exception Log", + journal = "TUGboat", + volume = 7, + number = 3, + year = 1986, + pages = "145"} + + +@book{Hamlet, + author = "William Shakespeare", + title = "Hamlet", + publisher = "F.S.~Crofts~\&~Co., Inc.", + address = "NY", + year = 1946, + note = "Act~I, Scene~3, Lines~70-72, are apropos."} + +Following author fields is not standard +@book{JTeX, + author = "{Spivak, M.D., Ph.D.}", + title = "The Joy of {\TeX}", + publisher = "American Mathematical Society", + address = "RI", + year = 1986} + +@book{PCTeX, + author = "{Spivak, M.D., Ph.D.}", + title = "PC{\TeX}\ Manual", + publisher = "Personal {\TeX}, Inc.", + address = "CA", + year = 1985} + +@booklet{SP, + title = "Style and Policy Manual for Theses and Dissertations", + author = "University of Washington, Graduate School", + year = 2000} + + + diff --git a/Master/texmf-dist/bibtex/bst/IEEEtran/IEEEtran.bst b/Master/texmf-dist/bibtex/bst/IEEEtran/IEEEtran.bst new file mode 100644 index 00000000000..b2c7edc3820 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/IEEEtran/IEEEtran.bst @@ -0,0 +1,2369 @@ +%% +%% IEEEtran.bst +%% BibTeX Bibliography Style file for IEEE Journals and Conferences (unsorted) +%% Version 1.11 (2003/04/02) +%% +%% Copyright (c) 2003 Michael Shell +%% +%% Original starting code base and algorithms obtained from the output of +%% Patrick W. Daly's makebst package as well as from prior versions of +%% IEEE BibTeX styles: +%% +%% 1. Howard Trickey and Oren Patashnik's ieeetr.bst (1985/1988) +%% 2. Silvano Balemi and Richard H. Roy's IEEEbib.bst (1993) +%% +%% +%% See: +%% http://www.ctan.org/tex-archive/macros/latex/contrib/supported/IEEEtran/ +%% for latest version and current contact information. +%% +%% For use with BibTeX version 0.99a or later +%% +%% This is a numerical citation style. +%% +%%********************************************************************** +%% Legal Notice: +%% This code is offered as-is without any warranty either expressed or +%% implied; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE! +%% User assumes all risk. +%% In no event shall IEEE or any contributor to this code be liable for +%% any damages or losses, including, but not limited to, incidental, +%% consequential, or any other damages, resulting from the use or misuse +%% of any information contained here. +%% +%% This code is distributed under the Perl Artistic License +%% ( http://language.perl.com/misc/Artistic.html ) +%% and may be freely used, distributed and modified - subject to the +%% constraints therein. +%% Retain all contribution notices, credits and disclaimers. +%% +%% All comments are the opinions of their respective authors and are not +%% necessarily endorsed by the IEEE. +%%********************************************************************** +% +% +% Changelog: +% +% 1.00 (2002/08/13) Initial release +% +% 1.10 (2002/09/27) +% 1. Corrected minor bug for improperly formed warning message when a +% book was not given a title. Thanks to Ming Kin Lai for reporting this. +% 2. Added support for CTLname_format_string and CTLname_latex_cmd fields +% in the BST control entry type. +% +% 1.11 (2003/04/02) +% 1. Fixed bug with URLs containing underscores when using url.sty. Thanks +% to Ming Kin Lai for reporting this. + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% DEFAULTS FOR THE CONTROLS OF THE BST STYLE %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% These are the defaults for the user adjustable controls. The values used +% here can be overridden by the user via IEEEtranBSTCTL entry type. + +% NOTE: The recommended LaTeX command to invoke a control entry type is: +% +%\makeatletter +%\def\bstctlcite#1{\@bsphack +% \@for\@citeb:=#1\do{% +% \edef\@citeb{\expandafter\@firstofone\@citeb}% +% \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi}% +% \@esphack} +%\makeatother +% +% It is called at the start of the document, before the first \cite, like: +% \bstctlcite{IEEEexample:BSTcontrol} +% +% IEEEtran.cls V1.6 and later does provide this command. + + + +% #0 turns off the display of the number for articles. +% #1 enables +FUNCTION {default.is.use.number.for.article} { #1 } + + +% #0 turns off the display of the paper and type fields in @inproceedings. +% #1 enables +FUNCTION {default.is.use.paper} { #1 } + + +% #0 turns off the forced use of "et al." +% #1 enables +FUNCTION {default.is.forced.et.al} { #0 } + +% The maximum number of names that can be present beyond which an "et al." +% usage is forced. Be sure that num.names.shown.with.forced.et.al (below) +% is not greater than this value! +% Note: There are many instances of references in IEEE journals which have +% a very large number of authors as well as instances in which "et al." is +% used profusely. +FUNCTION {default.max.num.names.before.forced.et.al} { #10 } + +% The number of names that will be shown with a forced "et al.". +% Must be less than or equal to max.num.names.before.forced.et.al +FUNCTION {default.num.names.shown.with.forced.et.al} { #1 } + + +% #0 turns off the alternate interword spacing for entries with URLs. +% #1 enables +FUNCTION {default.is.use.alt.interword.spacing} { #1 } + +% If alternate interword spacing for entries with URLs is enabled, this is +% the interword spacing stretch factor that will be used. For example, the +% default "4" here means that the interword spacing in entries with URLs can +% stretch to four times normal. Does not have to be an integer. Note that +% the value specified here can be overridden by the user in their LaTeX +% code via a command such as: +% "\providecommand\BIBentryALTinterwordstretchfactor{1.5}" in addition to +% that via the IEEEtranBSTCTL entry type. +FUNCTION {default.ALTinterwordstretchfactor} { "4" } + + +% #0 turns off the "dashification" of repeated (i.e., identical to those +% of the previous entry) names. IEEE normally does this. +% #1 enables +FUNCTION {default.is.dash.repeated.names} { #1 } + + +% The default name format control string. +FUNCTION {default.name.format.string}{ "{f.~}{vv~}{ll}{, jj}" } + + +% The default LaTeX font command for the names. +FUNCTION {default.name.latex.cmd}{ "" } + + +% Other controls that cannot be accessed via IEEEtranBSTCTL entry type. + +% #0 turns off the terminal startup banner/completed message so as to +% operate more quietly. +% #1 enables +FUNCTION {is.print.banners.to.terminal} { #1 } + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% FILE VERSION AND BANNER %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION{bst.file.version} { "1.11" } +FUNCTION{bst.file.date} { "2003/04/02" } +FUNCTION{bst.file.website} { "http://www.ctan.org/tex-archive/macros/latex/contrib/supported/IEEEtran/" } + +FUNCTION {banner.message} +{ is.print.banners.to.terminal + { "-- IEEEtran.bst version" " " * bst.file.version * + " (" * bst.file.date * ") " * "by Michael Shell." * + top$ + "-- " bst.file.website * + top$ + "-- See the " quote$ * "IEEEtran_bst_HOWTO.pdf" * quote$ * " manual for usage information." * + top$ + } + { skip$ } + if$ +} + +FUNCTION {completed.message} +{ is.print.banners.to.terminal + { "" + top$ + "Done." + top$ + } + { skip$ } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%% +%% STRING CONSTANTS %% +%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {bbl.and}{ "and" } +FUNCTION {bbl.etal}{ "et~al." } +FUNCTION {bbl.editors}{ "eds." } +FUNCTION {bbl.editor}{ "ed." } +FUNCTION {bbl.edition}{ "ed." } +FUNCTION {bbl.volume}{ "vol." } +FUNCTION {bbl.of}{ "of" } +FUNCTION {bbl.number}{ "no." } +FUNCTION {bbl.in}{ "in" } +FUNCTION {bbl.pages}{ "pp." } +FUNCTION {bbl.page}{ "p." } +FUNCTION {bbl.chapter}{ "ch." } +FUNCTION {bbl.paper}{ "paper" } +FUNCTION {bbl.part}{ "pt." } +FUNCTION {bbl.patent}{ "Patent" } +FUNCTION {bbl.patentUS}{ "U.S." } +FUNCTION {bbl.revision}{ "Rev." } +FUNCTION {bbl.series}{ "ser." } +FUNCTION {bbl.standard}{ "Std." } +FUNCTION {bbl.techrep}{ "Tech. Rep." } +FUNCTION {bbl.mthesis}{ "Master's thesis" } +FUNCTION {bbl.phdthesis}{ "Ph.D. dissertation" } +FUNCTION {bbl.urlprefix}{ "[Online]. Available:" } +FUNCTION {bbl.st}{ "st" } +FUNCTION {bbl.nd}{ "nd" } +FUNCTION {bbl.rd}{ "rd" } +FUNCTION {bbl.th}{ "th" } + + +% This is the LaTeX spacer that is used when a larger than normal space +% is called for (such as just before the address:publisher). +FUNCTION {large.space} { "\hskip 1em plus 0.5em minus 0.4em\relax " } + +% The LaTeX code for dashes that are used to represent repeated names. +% Note: Some older IEEE journals used something like +% "\rule{0.275in}{0.5pt}\," which is fairly thick and runs right along +% the baseline. However, IEEE now uses a thinner, above baseline, +% six dash long sequence. +FUNCTION {repeated.name.dashes} { "------" } + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% PREDEFINED STRING MACROS %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +MACRO {jan} {"Jan."} +MACRO {feb} {"Feb."} +MACRO {mar} {"Mar."} +MACRO {apr} {"Apr."} +MACRO {may} {"May"} +MACRO {jun} {"June"} +MACRO {jul} {"July"} +MACRO {aug} {"Aug."} +MACRO {sep} {"Sept."} +MACRO {oct} {"Oct."} +MACRO {nov} {"Nov."} +MACRO {dec} {"Dec."} + + + +%%%%%%%%%%%%%%%%%% +%% ENTRY FIELDS %% +%%%%%%%%%%%%%%%%%% + +ENTRY + { address + assignee + author + booktitle + chapter + day + dayfiled + edition + editor + howpublished + institution + intype + journal + key + language + month + monthfiled + nationality + note + number + organization + pages + paper + publisher + school + series + revision + title + type + url + volume + year + yearfiled + CTLuse_article_number + CTLuse_paper + CTLuse_forced_etal + CTLmax_names_forced_etal + CTLnames_show_etal + CTLuse_alt_spacing + CTLalt_stretch_factor + CTLdash_repeated_names + CTLname_format_string + CTLname_latex_cmd + } + {} + { label } + + + + +%%%%%%%%%%%%%%%%%%%%%%% +%% INTEGER VARIABLES %% +%%%%%%%%%%%%%%%%%%%%%%% + +INTEGERS { prev.status.punct this.status.punct punct.std + punct.no punct.comma punct.period + prev.status.space this.status.space space.std + space.no space.normal space.large + prev.status.quote this.status.quote quote.std + quote.no quote.close + prev.status.nline this.status.nline nline.std + nline.no nline.newblock + status.cap cap.std + cap.no cap.yes} + +INTEGERS { longest.label.width multiresult nameptr namesleft number.label numnames } + +INTEGERS { is.use.number.for.article + is.use.paper + is.forced.et.al + max.num.names.before.forced.et.al + num.names.shown.with.forced.et.al + is.use.alt.interword.spacing + is.dash.repeated.names} + + +%%%%%%%%%%%%%%%%%%%%%% +%% STRING VARIABLES %% +%%%%%%%%%%%%%%%%%%%%%% + +STRINGS { bibinfo + longest.label + oldname + s + t + ALTinterwordstretchfactor + name.format.string + name.latex.cmd} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%% +%% LOW LEVEL FUNCTIONS %% +%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {initialize.controls} +{ default.is.use.number.for.article 'is.use.number.for.article := + default.is.use.paper 'is.use.paper := + default.is.forced.et.al 'is.forced.et.al := + default.max.num.names.before.forced.et.al 'max.num.names.before.forced.et.al := + default.num.names.shown.with.forced.et.al 'num.names.shown.with.forced.et.al := + default.is.use.alt.interword.spacing 'is.use.alt.interword.spacing := + default.is.dash.repeated.names 'is.dash.repeated.names := + default.ALTinterwordstretchfactor 'ALTinterwordstretchfactor := + default.name.format.string 'name.format.string := + default.name.latex.cmd 'name.latex.cmd := +} + + +% This IEEEtran.bst features a very powerful and flexible mechanism for +% controlling the capitalization, punctuation, spacing, quotation, and +% newlines of the formatted entry fields. (Note: IEEEtran.bst does not need +% or use the newline/newblock feature, but it has been implemented for +% possible future use.) The output states of IEEEtran.bst consist of +% multiple independent attributes and, as such, can be thought of as being +% vectors, rather than the simple scalar values ("before.all", +% "mid.sentence", etc.) used in most other .bst files. +% +% The more flexible and complex design used here was motivated in part by +% IEEE's rather unusual bibliography style. For example, IEEE ends the +% previous field item with a period and large space prior to the publisher +% address; the @electronic entry types use periods as inter-item punctuation +% rather than the commas used by the other entry types; and URLs are never +% followed by periods even though they are the last item in the entry. +% Although it is possible to accommodate these features with the conventional +% output state system, the seemingly endless exceptions make for convoluted, +% unreliable and difficult to maintain code. +% +% IEEEtran.bst's output state system can be easily understood via a simple +% illustration of two most recently formatted entry fields (on the stack): +% +% CURRENT_ITEM +% "PREVIOUS_ITEM +% +% which, in this example, is to eventually appear in the bibliography as: +% +% "PREVIOUS_ITEM," CURRENT_ITEM +% +% It is the job of the output routine to take the previous item off of the +% stack (while leaving the current item at the top of the stack), apply its +% trailing punctuation (including closing quote marks) and spacing, and then +% to write the result to BibTeX's output buffer: +% +% "PREVIOUS_ITEM," +% +% Punctuation (and spacing) between items is often determined by both of the +% items rather than just the first one. The presence of quotation marks +% further complicates the situation because, in standard English, trailing +% punctuation marks are supposed to be contained within the quotes. +% +% IEEEtran.bst maintains two output state (aka "status") vectors which +% correspond to the previous and current (aka "this") items. Each vector +% consists of several independent attributes which track punctuation, +% spacing, quotation, and newlines. Capitalization status is handled by a +% separate scalar because the format routines, not the output routine, +% handle capitalization and, therefore, there is no need to maintain the +% capitalization attribute for both the "previous" and "this" items. +% +% When a format routine adds a new item, it copies the current output status +% vector to the previous output status vector and (usually) resets the +% current (this) output status vector to a "standard status" vector. Using a +% "standard status" vector in this way allows us to redefine what we mean by +% "standard status" at the start of each entry handler and reuse the same +% format routines under the various inter-item separation schemes. For +% example, the standard status vector for the @book entry type may use +% commas for item separators, while the @electronic type may use periods, +% yet both entry handlers exploit many of the exact same format routines. +% +% Because format routines have write access to the output status vector of +% the previous item, they can override the punctuation choices of the +% previous format routine! Therefore, it becomes trivial to implement rules +% such as "Always use a period and a large space before the publisher." By +% pushing the generation of the closing quote mark to the output routine, we +% avoid all the problems caused by having to close a quote before having all +% the information required to determine what the punctuation should be. +% +% The IEEEtran.bst output state system can easily be expanded if needed. +% For instance, it is easy to add a "space.tie" attribute value if the +% bibliography rules mandate that two items have to be joined with an +% unbreakable space. + +FUNCTION {initialize.status.constants} +{ #0 'punct.no := + #1 'punct.comma := + #2 'punct.period := + #0 'space.no := + #1 'space.normal := + #2 'space.large := + #0 'quote.no := + #1 'quote.close := + #0 'cap.no := + #1 'cap.yes := + #0 'nline.no := + #1 'nline.newblock := +} + +FUNCTION {std.status.using.comma} +{ punct.comma 'punct.std := + space.normal 'space.std := + quote.no 'quote.std := + nline.no 'nline.std := + cap.no 'cap.std := +} + +FUNCTION {std.status.using.period} +{ punct.period 'punct.std := + space.normal 'space.std := + quote.no 'quote.std := + nline.no 'nline.std := + cap.yes 'cap.std := +} + +FUNCTION {initialize.prev.this.status} +{ punct.no 'prev.status.punct := + space.no 'prev.status.space := + quote.no 'prev.status.quote := + nline.no 'prev.status.nline := + punct.no 'this.status.punct := + space.no 'this.status.space := + quote.no 'this.status.quote := + nline.no 'this.status.nline := + cap.yes 'status.cap := +} + +FUNCTION {this.status.std} +{ punct.std 'this.status.punct := + space.std 'this.status.space := + quote.std 'this.status.quote := + nline.std 'this.status.nline := +} + +FUNCTION {cap.status.std}{ cap.std 'status.cap := } + +FUNCTION {this.to.prev.status} +{ this.status.punct 'prev.status.punct := + this.status.space 'prev.status.space := + this.status.quote 'prev.status.quote := + this.status.nline 'prev.status.nline := +} + + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ { skip$ } + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + { skip$ } + if$ +} + + +% convert the strings "yes" or "no" to #1 or #0 respectively +FUNCTION {yes.no.to.int} +{ "l" change.case$ duplicate$ + "yes" = + { pop$ #1 } + { duplicate$ "no" = + { pop$ #0 } + { "unknown boolean " quote$ * swap$ * quote$ * + " in " * cite$ * warning$ + #0 + } + if$ + } + if$ +} + + +% pushes true if the single char string on the stack is in the +% range of "0" to "9" +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +% multiplies the integer on the stack by a factor of 10 +FUNCTION {bump.int.mag} +{ #0 'multiresult := + { duplicate$ #0 > } + { #1 - + multiresult #10 + + 'multiresult := + } + while$ +pop$ +multiresult +} + +% converts a single character string on the stack to an integer +FUNCTION {char.to.integer} +{ duplicate$ + is.num + { chr.to.int$ "0" chr.to.int$ - } + {"noninteger character " quote$ * swap$ * quote$ * + " in integer field of " * cite$ * warning$ + #0 + } + if$ +} + +% converts a string on the stack to an integer +FUNCTION {string.to.integer} +{ duplicate$ text.length$ 'namesleft := + #1 'nameptr := + #0 'numnames := + { nameptr namesleft > not } + { duplicate$ nameptr #1 substring$ + char.to.integer numnames bump.int.mag + + 'numnames := + nameptr #1 + + 'nameptr := + } + while$ +pop$ +numnames +} + + + + +% The output routines write out the *next* to the top (previous) item on the +% stack, adding punctuation and such as needed. Since IEEEtran.bst maintains +% the output status for the top two items on the stack, these output +% routines have to consider the previous output status (which corresponds to +% the item that is being output). Full independent control of punctuation, +% closing quote marks, spacing, and newblock is provided. +% +% "output.nonnull" does not check for the presence of a previous empty +% item. +% +% "output" does check for the presence of a previous empty item and will +% remove an empty item rather than outputing it. +% +% "output.warn" is like "output", but will issue a warning if it detects +% an empty item. + +FUNCTION {output.nonnull} +{ swap$ + prev.status.punct punct.comma = + { "," * } + { skip$ } + if$ + prev.status.punct punct.period = + { add.period$ } + { skip$ } + if$ + prev.status.quote quote.close = + { "''" * } + { skip$ } + if$ + prev.status.space space.normal = + { " " * } + { skip$ } + if$ + prev.status.space space.large = + { large.space * } + { skip$ } + if$ + write$ + prev.status.nline nline.newblock = + { newline$ "\newblock " write$ } + { skip$ } + if$ +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.warn} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +% "fin.entry" is the output routine that handles the last item of the entry +% (which will be on the top of the stack when "fin.entry" is called). + +FUNCTION {fin.entry} +{ this.status.punct punct.no = + { skip$ } + { add.period$ } + if$ + this.status.quote quote.close = + { "''" * } + { skip$ } + if$ +write$ +newline$ +} + + +FUNCTION {is.last.char.not.punct} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +FUNCTION {is.multiple.pages} +{ '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 {capitalize}{ "u" change.case$ "t" change.case$ } + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +FUNCTION {do.name.latex.cmd} +{ name.latex.cmd + empty$ + { skip$ } + { name.latex.cmd "{" * swap$ * "}" * } + if$ +} + +% IEEEtran.bst uses its own \BIBforeignlanguage command which directly +% invokes the TeX hyphenation patterns without the need of the Babel +% package. Babel does a lot more than switch hyphenation patterns and +% its loading can cause unintended effects in many class files (such as +% IEEEtran.cls). +FUNCTION {select.language} +{ duplicate$ empty$ 'pop$ + { language empty$ 'skip$ + { "\BIBforeignlanguage{" language * "}{" * swap$ * "}" * } + if$ + } + if$ +} + +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {space.word}{ " " swap$ * " " * } + + +% Field Conditioners, Converters, Checkers and External Interfaces + +FUNCTION {empty.field.to.null.string} +{ duplicate$ empty$ + { pop$ "" } + { skip$ } + if$ +} + +FUNCTION {either.or.check} +{ empty$ + { pop$ } + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {empty.entry.warn} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ url empty$ + and and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + + +% The bibinfo system provides a way for the electronic parsing/acquisition +% of a bibliography's contents as is done by ReVTeX. For example, a field +% could be entered into the bibliography as: +% \bibinfo{volume}{2} +% Only the "2" would show up in the document, but the LaTeX \bibinfo command +% could do additional things with the information. IEEEtran.bst does provide +% a \bibinfo command via "\providecommand{\bibinfo}[2]{#2}". However, it is +% currently not used as the bogus bibinfo functions defined here output the +% entry values directly without the \bibinfo wrapper. The bibinfo functions +% themselves (and the calls to them) are retained for possible future use. +% +% bibinfo.check avoids acting on missing fields while bibinfo.warn will +% issue a warning message if a missing field is detected. Prior to calling +% the bibinfo functions, the user should push the field value and then its +% name string, in that order. + +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$ +} + + +% IEEE separates large numbers with more than 4 digits into groups of +% three. IEEE uses a small space to separate these number groups. +% Typical applications include patent and page numbers. + +% number of consecutive digits required to trigger the group separation. +FUNCTION {large.number.trigger}{ #5 } + +% For numbers longer than the trigger, this is the blocksize of the groups. +% The blocksize must be less than the trigger threshold, and 2 * blocksize +% must be greater than the trigger threshold (can't do more than one +% separation on the initial trigger). +FUNCTION {large.number.blocksize}{ #3 } + +% What is actually inserted between the number groups. +FUNCTION {large.number.separator}{ "\," } + +% So as to save on integer variables by reusing existing ones, numnames +% holds the current number of consecutive digits read and nameptr holds +% the number that will trigger an inserted space. +FUNCTION {large.number.separate} +{ 't := + "" + #0 'numnames := + large.number.trigger 'nameptr := + { t empty$ not } + { t #-1 #1 substring$ is.num + { numnames #1 + 'numnames := } + { #0 'numnames := + large.number.trigger 'nameptr := + } + if$ + t #-1 #1 substring$ swap$ * + t #-2 global.max$ substring$ 't := + numnames nameptr = + { duplicate$ #1 nameptr large.number.blocksize - substring$ swap$ + nameptr large.number.blocksize - #1 + global.max$ substring$ + large.number.separator swap$ * * + nameptr large.number.blocksize - 'numnames := + large.number.blocksize #1 + 'nameptr := + } + { skip$ } + if$ + } + while$ +} + +% Converts all single dashes "-" to double dashes "--". +FUNCTION {n.dashify} +{ large.number.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$ +} + + +% This function detects entries with names that are identical to that of +% the previous entry and replaces the repeated names with dashes (if the +% "is.dash.repeated.names" user control is nonzero). +FUNCTION {name.or.dash} +{ 's := + oldname empty$ + { s 'oldname := s } + { s oldname = + { is.dash.repeated.names + { repeated.name.dashes } + { s 'oldname := s } + if$ + } + { s 'oldname := s } + if$ + } + if$ +} + +% Converts the number string on the top of the stack to +% "numerical ordinal form" (e.g., "7" to "7th"). There is +% no artificial limit to the upper bound of the numbers as the +% least significant digit always determines the ordinal form. +FUNCTION {num.to.ordinal} +{ duplicate$ #-1 #1 substring$ "1" = + { bbl.st * } + { duplicate$ #-1 #1 substring$ "2" = + { bbl.nd * } + { duplicate$ #-1 #1 substring$ "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ +} + +% If the string on the top of the stack begins with a number, +% (e.g., 11th) then replace the string with the leading number +% it contains. Otherwise retain the string as-is. s holds the +% extracted number, t holds the part of the string that remains +% to be scanned. +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +% Converts the word number string on the top of the stack to +% Arabic string form. Will be successful up to "tenth". +FUNCTION {word.to.num} +{ duplicate$ "l" change.case$ 's := + s "first" = + { pop$ "1" } + { skip$ } + if$ + s "second" = + { pop$ "2" } + { skip$ } + if$ + s "third" = + { pop$ "3" } + { skip$ } + if$ + s "fourth" = + { pop$ "4" } + { skip$ } + if$ + s "fifth" = + { pop$ "5" } + { skip$ } + if$ + s "sixth" = + { pop$ "6" } + { skip$ } + if$ + s "seventh" = + { pop$ "7" } + { skip$ } + if$ + s "eighth" = + { pop$ "8" } + { skip$ } + if$ + s "ninth" = + { pop$ "9" } + { skip$ } + if$ + s "tenth" = + { pop$ "10" } + { skip$ } + if$ +} + + +% Converts the string on the top of the stack to numerical +% ordinal (e.g., "11th") form. +FUNCTION {convert.edition} +{ duplicate$ empty$ 'skip$ + { duplicate$ #1 #1 substring$ is.num + { extract.num + num.to.ordinal + } + { word.to.num + duplicate$ #1 #1 substring$ is.num + { num.to.ordinal } + { "edition ordinal word " quote$ * edition * quote$ * + " may be too high (or improper) for conversion" * " in " * cite$ * warning$ + } + if$ + } + if$ + } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LATEX BIBLIOGRAPHY CODE %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {start.entry} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + initialize.prev.this.status +} + +% Here we write out all the LaTeX code that we will need. The most involved +% code sequences are those that control the alternate interword spacing and +% foreign language hyphenation patterns. The heavy use of \providecommand +% gives users a way to override the defaults. Special thanks to Javier Bezos, +% Johannes Braams, Robin Fairburns, Heiko Oberdiek, Donald Arseneau and all +% the other gurus on comp.text.tex for their help and advice on the topic of +% \selectlanguage, Babel and BibTeX. +FUNCTION {begin.bib} +{ preamble$ empty$ 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * + write$ newline$ + "\providecommand{\url}[1]{#1}" + write$ newline$ + "\csname url@rmstyle\endcsname" + write$ newline$ + "\providecommand{\newblock}{\relax}" + write$ newline$ + "\providecommand{\bibinfo}[2]{#2}" + write$ newline$ + "\providecommand\BIBentrySTDinterwordspacing{\spaceskip=0pt\relax}" + write$ newline$ + "\providecommand\BIBentryALTinterwordstretchfactor{" + ALTinterwordstretchfactor * "}" * + write$ newline$ + "\providecommand\BIBentryALTinterwordspacing{\spaceskip=\fontdimen2\font plus " + write$ newline$ + "\BIBentryALTinterwordstretchfactor\fontdimen3\font minus \fontdimen4\font\relax}" + write$ newline$ + "\providecommand\BIBforeignlanguage[2]{{%" + write$ newline$ + "\expandafter\ifx\csname l@#1\endcsname\relax" + write$ newline$ + "\typeout{** WARNING: IEEEtran.bst: No hyphenation pattern has been}%" + write$ newline$ + "\typeout{** loaded for the language `#1'. Using the pattern for}%" + write$ newline$ + "\typeout{** the default language instead.}%" + write$ newline$ + "\else" + write$ newline$ + "\language=\csname l@#1\endcsname" + write$ newline$ + "\fi" + write$ newline$ + "#2}}" + write$ newline$ +} + +FUNCTION {end.bib} +{ newline$ "\end{thebibliography}" write$ newline$ } + +FUNCTION {if.url.alt.interword.spacing} +{ is.use.alt.interword.spacing + {url empty$ 'skip$ {"\BIBentryALTinterwordspacing" write$ newline$} if$} + { skip$ } + if$ +} + +FUNCTION {if.url.std.interword.spacing} +{ is.use.alt.interword.spacing + {url empty$ 'skip$ {"\BIBentrySTDinterwordspacing" write$ newline$} if$} + { skip$ } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%% +%% LONGEST LABEL PASS %% +%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%% +%% FORMAT HANDLERS %% +%%%%%%%%%%%%%%%%%%%%% + +%% Lower Level Formats (used by higher level formats) + +FUNCTION {format.address.org.or.pub.date} +{ 't := + "" + year empty$ + { "empty year in " cite$ * warning$ } + { skip$ } + if$ + address empty$ t empty$ and + year empty$ and month empty$ and + { skip$ } + { this.to.prev.status + this.status.std + cap.status.std + address "address" bibinfo.check * + t empty$ + { skip$ } + { punct.period 'prev.status.punct := + space.large 'prev.status.space := + address empty$ + { skip$ } + { ": " * } + if$ + t * + } + if$ + year empty$ month empty$ and + { skip$ } + { t empty$ address empty$ and + { skip$ } + { ", " * } + if$ + month empty$ + { year empty$ + { skip$ } + { year "year" bibinfo.check * } + if$ + } + { month "month" bibinfo.check * + year empty$ + { skip$ } + { " " * year "year" bibinfo.check * } + if$ + } + if$ + } + if$ + } + if$ +} + + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + this.to.prev.status + this.status.std + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + name.format.string + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { nameptr num.names.shown.with.forced.et.al #1 + = + numnames max.num.names.before.forced.et.al > + is.forced.et.al and and + { "others" 't := + #1 'namesleft := + } + { skip$ } + if$ + namesleft #1 > + { ", " * t do.name.latex.cmd * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal emphasize * + } + { + bbl.and + space.word * t do.name.latex.cmd * + } + if$ + } + if$ + } + { t do.name.latex.cmd } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + cap.status.std + } if$ +} + + + + +%% Higher Level Formats + +%% addresses/locations + +FUNCTION {format.address} +{ address duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + + + +%% author/editor names + +FUNCTION {format.authors}{ author "author" format.names } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { ", " * + get.bbl.editor + capitalize + * + } + if$ +} + + + +%% date + +FUNCTION {format.date} +{ + month "month" bibinfo.check duplicate$ empty$ + year "year" bibinfo.check duplicate$ empty$ + { swap$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + "there's a month but no year in " cite$ * warning$ } + if$ + * + } + { this.to.prev.status + this.status.std + cap.status.std + swap$ 'skip$ + { + swap$ + " " * swap$ + } + if$ + * + } + if$ +} + +FUNCTION {format.date.electronic} +{ month "month" bibinfo.check duplicate$ empty$ + year "year" bibinfo.check duplicate$ empty$ + { swap$ + { pop$ } + { "there's a month but no year in " cite$ * warning$ + pop$ ")" * "(" swap$ * + this.to.prev.status + punct.no 'this.status.punct := + space.normal 'this.status.space := + quote.no 'this.status.quote := + cap.yes 'status.cap := + } + if$ + } + { swap$ + { swap$ pop$ ")" * "(" swap$ * } + { "(" swap$ * ", " * swap$ * ")" * } + if$ + this.to.prev.status + punct.no 'this.status.punct := + space.normal 'this.status.space := + quote.no 'this.status.quote := + cap.yes 'status.cap := + } + if$ +} + + + +%% edition/title + +% Note: IEEE considers the edition to be closely associated with +% the title of a book. So, in IEEEtran.bst the edition is normally handled +% within the formatting of the title. The format.edition function is +% retained here for possible future use. +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + convert.edition + status.cap + { "t" } + { "l" } + if$ change.case$ + "edition" bibinfo.check + "~" * bbl.edition * + cap.status.std + } + if$ +} + +% This is used to format the booktitle of a conference proceedings. +% Here we use the "intype" field to provide the user a way to +% override the word "in" (e.g., with things like "presented at") +% Use of intype stops the emphasis of the booktitle to indicate that +% we no longer mean the written conference proceedings, but the +% conference itself. +FUNCTION {format.in.booktitle} +{ booktitle "booktitle" bibinfo.check duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + select.language + intype missing$ + { emphasize + bbl.in " " * + } + { intype " " * } + if$ + swap$ * + cap.status.std + } + if$ +} + +% This is used to format the booktitle of collection. +% Here the "intype" field is not supported, but "edition" is. +FUNCTION {format.in.booktitle.edition} +{ booktitle "booktitle" bibinfo.check duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + select.language + emphasize + edition empty$ 'skip$ + { ", " * + edition + convert.edition + "l" change.case$ + * "~" * bbl.edition * + } + if$ + bbl.in " " * swap$ * + cap.status.std + } + if$ +} + +FUNCTION {format.article.title} +{ title duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + "t" change.case$ + } + if$ + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { quote.close 'this.status.quote := + is.last.char.not.punct + { punct.std 'this.status.punct := } + { punct.no 'this.status.punct := } + if$ + select.language + "``" swap$ * + cap.status.std + } + if$ +} + +FUNCTION {format.article.title.electronic} +{ title duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + "t" change.case$ + } + if$ + "title" bibinfo.check + duplicate$ empty$ + { skip$ } + { select.language } + if$ +} + +FUNCTION {format.book.title.edition} +{ title "title" bibinfo.check + duplicate$ empty$ + { "empty title in " cite$ * warning$ } + { this.to.prev.status + this.status.std + select.language + emphasize + edition empty$ 'skip$ + { ", " * + edition + convert.edition + status.cap + { "t" } + { "l" } + if$ + change.case$ + * "~" * bbl.edition * + } + if$ + cap.status.std + } + if$ +} + +FUNCTION {format.book.title} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + select.language + emphasize + } + if$ +} + + + +%% journal + +FUNCTION {format.journal} +{ journal duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + select.language + emphasize + } + if$ +} + + + +%% how published + +FUNCTION {format.howpublished} +{ howpublished duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + + + +%% institutions/organization/publishers/school + +FUNCTION {format.institution} +{ institution duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + +FUNCTION {format.organization} +{ organization duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + +FUNCTION {format.address.publisher.date} +{ publisher "publisher" bibinfo.warn format.address.org.or.pub.date } + +FUNCTION {format.address.publisher.date.nowarn} +{ publisher "publisher" bibinfo.check format.address.org.or.pub.date } + +FUNCTION {format.address.organization.date} +{ organization "organization" bibinfo.check format.address.org.or.pub.date } + +FUNCTION {format.school} +{ school duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + + + +%% volume/number/series/chapter/pages + +FUNCTION {format.volume} +{ volume empty.field.to.null.string + duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + bbl.volume + status.cap + { capitalize } + { skip$ } + if$ + swap$ tie.or.space.prefix + "volume" bibinfo.check + * * + cap.status.std + } + if$ +} + +FUNCTION {format.number} +{ number empty.field.to.null.string + duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + status.cap + { bbl.number capitalize } + { bbl.number } + if$ + swap$ tie.or.space.prefix + "number" bibinfo.check + * * + cap.status.std + } + if$ +} + +FUNCTION {format.number.if.use.for.article} +{ is.use.number.for.article + { format.number } + { "" } + if$ +} + +% IEEE does not seem to tie the series so closely with the volume +% and number as is done in other bibliography styles. Instead the +% series is treated somewhat like an extension of the title. +FUNCTION {format.series} +{ series empty$ + { "" } + { this.to.prev.status + this.status.std + bbl.series " " * + series "series" bibinfo.check * + cap.status.std + } + if$ +} + + +FUNCTION {format.chapter} +{ chapter empty$ + { "" } + { this.to.prev.status + this.status.std + type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + cap.status.std + } + if$ +} + + +% The intended use of format.paper is for paper numbers of inproceedings. +% The paper type can be overridden via the type field. +% We allow the type to be displayed even if the paper number is absent +% for things like "postdeadline paper" +FUNCTION {format.paper} +{ is.use.paper + { paper empty$ + { type empty$ + { "" } + { this.to.prev.status + this.status.std + type "type" bibinfo.check + cap.status.std + } + if$ + } + { this.to.prev.status + this.status.std + type empty$ + { bbl.paper } + { type "type" bibinfo.check } + if$ + " " * paper + "paper" bibinfo.check + * + cap.status.std + } + if$ + } + { "" } + if$ +} + + +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + duplicate$ is.multiple.pages + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + cap.status.std + } + if$ +} + + + +%% technical report number + +FUNCTION {format.tech.report.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ + this.to.prev.status + this.status.std + cap.status.std + bbl.techrep + } + { skip$ } + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ } + { this.to.prev.status + this.status.std + cap.status.std + tie.or.space.prefix * * } + if$ +} + + + +%% note + +FUNCTION {format.note} +{ note empty$ + { "" } + { this.to.prev.status + this.status.std + punct.period 'this.status.punct := + note #1 #1 substring$ + duplicate$ "{" = + { skip$ } + { status.cap + { "u" } + { "l" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + cap.yes 'status.cap := + } + if$ +} + + + +%% patent + +FUNCTION {format.patent.date} +{ this.to.prev.status + this.status.std + year empty$ + { monthfiled duplicate$ empty$ + { "monthfiled" bibinfo.check pop$ "" } + { "monthfiled" bibinfo.check } + if$ + dayfiled duplicate$ empty$ + { "dayfiled" bibinfo.check pop$ "" * } + { "dayfiled" bibinfo.check + monthfiled empty$ + { "dayfiled without a monthfiled in " cite$ * warning$ + * + } + { " " swap$ * * } + if$ + } + if$ + yearfiled empty$ + { "no year or yearfiled in " cite$ * warning$ } + { yearfiled "yearfiled" bibinfo.check + swap$ + duplicate$ empty$ + { pop$ } + { ", " * swap$ * } + if$ + } + if$ + } + { month duplicate$ empty$ + { "month" bibinfo.check pop$ "" } + { "month" bibinfo.check } + if$ + day duplicate$ empty$ + { "day" bibinfo.check pop$ "" * } + { "day" bibinfo.check + month empty$ + { "day without a month in " cite$ * warning$ + * + } + { " " swap$ * * } + if$ + } + if$ + year "year" bibinfo.check + swap$ + duplicate$ empty$ + { pop$ } + { ", " * swap$ * } + if$ + } + if$ + cap.status.std +} + +FUNCTION {format.patent.nationality.type.number} +{ this.to.prev.status + this.status.std + nationality duplicate$ empty$ + { "nationality" bibinfo.warn pop$ "" } + { "nationality" bibinfo.check + duplicate$ "l" change.case$ "united states" = + { pop$ bbl.patentUS } + { skip$ } + if$ + " " * + } + if$ + type empty$ + { bbl.patent "type" bibinfo.check } + { type "type" bibinfo.check } + if$ + * + number duplicate$ empty$ + { "number" bibinfo.warn pop$ } + { "number" bibinfo.check + large.number.separate + swap$ " " * swap$ * + } + if$ + cap.status.std +} + + + +%% standard + +FUNCTION {format.organization.institution.standard.type.number} +{ this.to.prev.status + this.status.std + organization duplicate$ empty$ + { pop$ + institution duplicate$ empty$ + { "institution" bibinfo.warn } + { "institution" bibinfo.warn " " * } + if$ + } + { "organization" bibinfo.warn " " * } + if$ + type empty$ + { bbl.standard "type" bibinfo.check } + { type "type" bibinfo.check } + if$ + * + number duplicate$ empty$ + { "number" bibinfo.check pop$ } + { "number" bibinfo.check + large.number.separate + swap$ " " * swap$ * + } + if$ + cap.status.std +} + +FUNCTION {format.revision} +{ revision empty$ + { "" } + { this.to.prev.status + this.status.std + bbl.revision + revision tie.or.space.prefix + "revision" bibinfo.check + * * + cap.status.std + } + if$ +} + + +%% thesis + +FUNCTION {format.master.thesis.type} +{ this.to.prev.status + this.status.std + type empty$ + { + bbl.mthesis + } + { + type "type" bibinfo.check + } + if$ +cap.status.std +} + +FUNCTION {format.phd.thesis.type} +{ this.to.prev.status + this.status.std + type empty$ + { + bbl.phdthesis + } + { + type "type" bibinfo.check + } + if$ +cap.status.std +} + + + +%% URL + +FUNCTION {format.url} +{ url empty$ + { "" } + { this.to.prev.status + this.status.std + cap.yes 'status.cap := + bbl.urlprefix " " * + "\url{" * url * "}" * + punct.no 'this.status.punct := + punct.period 'prev.status.punct := + space.normal 'this.status.space := + space.normal 'prev.status.space := + quote.no 'this.status.quote := + } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%% +%% ENTRY HANDLERS %% +%%%%%%%%%%%%%%%%%%%% + + +% Note: In many journals, IEEE (or the authors) tend not to show the number +% for articles, so the display of the number is controlled here by the +% switch "is.use.number.for.article" +FUNCTION {article} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.journal "journal" bibinfo.check "journal" output.warn + format.volume output + format.number.if.use.for.article output + format.pages output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {book} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + author empty$ + { format.editors "author and editor" output.warn } + { format.authors output.nonnull } + if$ + name.or.dash + format.book.title.edition output + format.series output + author empty$ + { skip$ } + { format.editors output } + if$ + format.address.publisher.date output + format.volume output + format.number output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {booklet} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.article.title "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.date output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {electronic} +{ std.status.using.period + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.date.electronic output + format.article.title.electronic output + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.note output + format.url output + fin.entry + empty.entry.warn + if.url.std.interword.spacing +} + +FUNCTION {inbook} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + author empty$ + { format.editors "author and editor" output.warn } + { format.authors output.nonnull } + if$ + name.or.dash + format.book.title.edition output + format.series output + format.address.publisher.date output + format.volume output + format.number output + format.chapter output + format.pages output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {incollection} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.in.booktitle.edition "booktitle" output.warn + format.series output + format.editors output + format.address.publisher.date.nowarn output + format.volume output + format.number output + format.chapter output + format.pages output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {inproceedings} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.in.booktitle "booktitle" output.warn + format.series output + format.editors output + format.volume output + format.number output + publisher empty$ + { format.address.organization.date output } + { format.organization "organization" bibinfo.check output + format.address.publisher.date output + } + if$ + format.paper output + format.pages output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {manual} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.book.title.edition "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.date output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {mastersthesis} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.master.thesis.type output.nonnull + format.school "school" bibinfo.warn output + format.address "address" bibinfo.check output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {misc} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.article.title output + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.pages output + format.date output + format.note output + format.url output + fin.entry + empty.entry.warn + if.url.std.interword.spacing +} + +FUNCTION {patent} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.article.title output + format.patent.nationality.type.number output + format.patent.date output + format.note output + format.url output + fin.entry + empty.entry.warn + if.url.std.interword.spacing +} + +FUNCTION {periodical} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.editors output + name.or.dash + format.book.title "title" output.warn + format.series output + format.volume output + format.number output + format.organization "organization" bibinfo.check output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {phdthesis} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.phd.thesis.type output.nonnull + format.school "school" bibinfo.warn output + format.address "address" bibinfo.check output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {proceedings} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.editors output + name.or.dash + format.book.title "title" output.warn + format.series output + format.volume output + format.number output + publisher empty$ + { format.address.organization.date output } + { format.organization "organization" bibinfo.check output + format.address.publisher.date output + } + if$ + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {standard} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.book.title "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.organization.institution.standard.type.number output + format.revision output + format.date output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {techreport} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.institution "institution" bibinfo.warn output + format.address "address" bibinfo.check output + format.tech.report.number output.nonnull + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {unpublished} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.date output + format.note "note" output.warn + format.url output + fin.entry + if.url.std.interword.spacing +} + + +% The special entry type which provides the user interface to the +% BST controls +FUNCTION {IEEEtranBSTCTL} +{ is.print.banners.to.terminal + { "** IEEEtran BST control entry " quote$ * cite$ * quote$ * " detected." * + top$ + } + { skip$ } + if$ + CTLuse_article_number + empty$ + { skip$ } + { CTLuse_article_number + yes.no.to.int + 'is.use.number.for.article := + } + if$ + CTLuse_paper + empty$ + { skip$ } + { CTLuse_paper + yes.no.to.int + 'is.use.paper := + } + if$ + CTLuse_forced_etal + empty$ + { skip$ } + { CTLuse_forced_etal + yes.no.to.int + 'is.forced.et.al := + } + if$ + CTLmax_names_forced_etal + empty$ + { skip$ } + { CTLmax_names_forced_etal + string.to.integer + 'max.num.names.before.forced.et.al := + } + if$ + CTLnames_show_etal + empty$ + { skip$ } + { CTLnames_show_etal + string.to.integer + 'num.names.shown.with.forced.et.al := + } + if$ + CTLuse_alt_spacing + empty$ + { skip$ } + { CTLuse_alt_spacing + yes.no.to.int + 'is.use.alt.interword.spacing := + } + if$ + CTLalt_stretch_factor + empty$ + { skip$ } + { CTLalt_stretch_factor + 'ALTinterwordstretchfactor := + "\renewcommand\BIBentryALTinterwordstretchfactor{" + ALTinterwordstretchfactor * "}" * + write$ newline$ + } + if$ + CTLdash_repeated_names + empty$ + { skip$ } + { CTLdash_repeated_names + yes.no.to.int + 'is.dash.repeated.names := + } + if$ + CTLname_format_string + empty$ + { skip$ } + { CTLname_format_string + 'name.format.string := + } + if$ + CTLname_latex_cmd + empty$ + { skip$ } + { CTLname_latex_cmd + 'name.latex.cmd := + } + if$ + + + num.names.shown.with.forced.et.al max.num.names.before.forced.et.al > + { "CTLnames_show_etal cannot be greater than CTLmax_names_forced_etal in " cite$ * warning$ + max.num.names.before.forced.et.al 'num.names.shown.with.forced.et.al := + } + { skip$ } + if$ +} + + +%%%%%%%%%%%%%%%%%%% +%% ENTRY ALIASES %% +%%%%%%%%%%%%%%%%%%% +FUNCTION {conference}{inproceedings} +FUNCTION {online}{electronic} +FUNCTION {internet}{electronic} +FUNCTION {webpage}{electronic} +FUNCTION {default.type}{misc} + + + +%%%%%%%%%%%%%%%%%% +%% MAIN PROGRAM %% +%%%%%%%%%%%%%%%%%% + +READ + +EXECUTE {initialize.controls} +EXECUTE {initialize.status.constants} +EXECUTE {banner.message} + +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} + +EXECUTE {begin.bib} +ITERATE {call.type$} +EXECUTE {end.bib} + +EXECUTE{completed.message} + + +%% That's all folks, mds. diff --git a/Master/texmf-dist/bibtex/bst/IEEEtran/IEEEtranS.bst b/Master/texmf-dist/bibtex/bst/IEEEtran/IEEEtranS.bst new file mode 100644 index 00000000000..48f92d25a62 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/IEEEtran/IEEEtranS.bst @@ -0,0 +1,2550 @@ +%% +%% IEEEtranS.bst +%% BibTeX Bibliography Style file +%% Sorting version of IEEEtran.bst +%% *** Not for use with work to be submitted to the IEEE *** +%% Version 1.11 (2003/04/02) +%% +%% Copyright (c) 2003 Michael Shell +%% +%% Original starting code base and algorithms obtained from the output of +%% Patrick W. Daly's makebst package as well as from prior versions of +%% IEEE BibTeX styles: +%% +%% 1. Howard Trickey and Oren Patashnik's ieeetr.bst (1985/1988) +%% 2. Silvano Balemi and Richard H. Roy's IEEEbib.bst (1993) +%% +%% Added sorting code is from plain.bst. +%% +%% See: +%% http://www.ctan.org/tex-archive/macros/latex/contrib/supported/IEEEtran/ +%% for latest version and current contact information. +%% +%% For use with BibTeX version 0.99a or later +%% +%% This is a numerical citation style. +%% +%%********************************************************************** +%% Legal Notice: +%% This code is offered as-is without any warranty either expressed or +%% implied; without even the implied warranty of MERCHANTABILITY or +%% FITNESS FOR A PARTICULAR PURPOSE! +%% User assumes all risk. +%% In no event shall IEEE or any contributor to this code be liable for +%% any damages or losses, including, but not limited to, incidental, +%% consequential, or any other damages, resulting from the use or misuse +%% of any information contained here. +%% +%% This code is distributed under the Perl Artistic License +%% ( http://language.perl.com/misc/Artistic.html ) +%% and may be freely used, distributed and modified - subject to the +%% constraints therein. +%% Retain all contribution notices, credits and disclaimers. +%% +%% All comments are the opinions of their respective authors and are not +%% necessarily endorsed by the IEEE. +%%********************************************************************** +% +% +% Changelog: +% +% 1.10 (2002/09/27) Initial release +% +% 1.11 (2003/04/02) +% 1. Fixed bug with URLs containing underscores when using url.sty. Thanks +% to Ming Kin Lai for reporting this. + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% DEFAULTS FOR THE CONTROLS OF THE BST STYLE %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% These are the defaults for the user adjustable controls. The values used +% here can be overridden by the user via IEEEtranBSTCTL entry type. + +% NOTE: The recommended LaTeX command to invoke a control entry type is: +% +%\makeatletter +%\def\bstctlcite#1{\@bsphack +% \@for\@citeb:=#1\do{% +% \edef\@citeb{\expandafter\@firstofone\@citeb}% +% \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi}% +% \@esphack} +%\makeatother +% +% It is called at the start of the document, before the first \cite, like: +% \bstctlcite{IEEEexample:BSTcontrol} +% +% IEEEtran.cls V1.6 and later does provide this command. + + + +% #0 turns off the display of the number for articles. +% #1 enables +FUNCTION {default.is.use.number.for.article} { #1 } + + +% #0 turns off the display of the paper and type fields in @inproceedings. +% #1 enables +FUNCTION {default.is.use.paper} { #1 } + + +% #0 turns off the forced use of "et al." +% #1 enables +FUNCTION {default.is.forced.et.al} { #0 } + +% The maximum number of names that can be present beyond which an "et al." +% usage is forced. Be sure that num.names.shown.with.forced.et.al (below) +% is not greater than this value! +% Note: There are many instances of references in IEEE journals which have +% a very large number of authors as well as instances in which "et al." is +% used profusely. +FUNCTION {default.max.num.names.before.forced.et.al} { #10 } + +% The number of names that will be shown with a forced "et al.". +% Must be less than or equal to max.num.names.before.forced.et.al +FUNCTION {default.num.names.shown.with.forced.et.al} { #1 } + + +% #0 turns off the alternate interword spacing for entries with URLs. +% #1 enables +FUNCTION {default.is.use.alt.interword.spacing} { #1 } + +% If alternate interword spacing for entries with URLs is enabled, this is +% the interword spacing stretch factor that will be used. For example, the +% default "4" here means that the interword spacing in entries with URLs can +% stretch to four times normal. Does not have to be an integer. Note that +% the value specified here can be overridden by the user in their LaTeX +% code via a command such as: +% "\providecommand\BIBentryALTinterwordstretchfactor{1.5}" in addition to +% that via the IEEEtranBSTCTL entry type. +FUNCTION {default.ALTinterwordstretchfactor} { "4" } + + +% #0 turns off the "dashification" of repeated (i.e., identical to those +% of the previous entry) names. IEEE normally does this. +% #1 enables +FUNCTION {default.is.dash.repeated.names} { #1 } + + +% The default name format control string. +FUNCTION {default.name.format.string}{ "{f.~}{vv~}{ll}{, jj}" } + + +% The default LaTeX font command for the names. +FUNCTION {default.name.latex.cmd}{ "" } + + +% Other controls that cannot be accessed via IEEEtranBSTCTL entry type. + +% #0 turns off the terminal startup banner/completed message so as to +% operate more quietly. +% #1 enables +FUNCTION {is.print.banners.to.terminal} { #1 } + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% FILE VERSION AND BANNER %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION{bst.file.version} { "1.11" } +FUNCTION{bst.file.date} { "2003/04/02" } +FUNCTION{bst.file.website} { "http://www.ctan.org/tex-archive/macros/latex/contrib/supported/IEEEtran/" } + +FUNCTION {banner.message} +{ is.print.banners.to.terminal + { "-- IEEEtranS.bst version" " " * bst.file.version * + " (" * bst.file.date * ") " * "by Michael Shell." * + top$ + "-- " bst.file.website * + top$ + "-- See the " quote$ * "IEEEtran_bst_HOWTO.pdf" * quote$ * " manual for usage information." * + top$ + "** Sorting version - not for use with work to be submitted to the IEEE." + top$ + } + { skip$ } + if$ +} + +FUNCTION {completed.message} +{ is.print.banners.to.terminal + { "" + top$ + "Done." + top$ + } + { skip$ } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%% +%% STRING CONSTANTS %% +%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {bbl.and}{ "and" } +FUNCTION {bbl.etal}{ "et~al." } +FUNCTION {bbl.editors}{ "eds." } +FUNCTION {bbl.editor}{ "ed." } +FUNCTION {bbl.edition}{ "ed." } +FUNCTION {bbl.volume}{ "vol." } +FUNCTION {bbl.of}{ "of" } +FUNCTION {bbl.number}{ "no." } +FUNCTION {bbl.in}{ "in" } +FUNCTION {bbl.pages}{ "pp." } +FUNCTION {bbl.page}{ "p." } +FUNCTION {bbl.chapter}{ "ch." } +FUNCTION {bbl.paper}{ "paper" } +FUNCTION {bbl.part}{ "pt." } +FUNCTION {bbl.patent}{ "Patent" } +FUNCTION {bbl.patentUS}{ "U.S." } +FUNCTION {bbl.revision}{ "Rev." } +FUNCTION {bbl.series}{ "ser." } +FUNCTION {bbl.standard}{ "Std." } +FUNCTION {bbl.techrep}{ "Tech. Rep." } +FUNCTION {bbl.mthesis}{ "Master's thesis" } +FUNCTION {bbl.phdthesis}{ "Ph.D. dissertation" } +FUNCTION {bbl.urlprefix}{ "[Online]. Available:" } +FUNCTION {bbl.st}{ "st" } +FUNCTION {bbl.nd}{ "nd" } +FUNCTION {bbl.rd}{ "rd" } +FUNCTION {bbl.th}{ "th" } + + +% This is the LaTeX spacer that is used when a larger than normal space +% is called for (such as just before the address:publisher). +FUNCTION {large.space} { "\hskip 1em plus 0.5em minus 0.4em\relax " } + +% The LaTeX code for dashes that are used to represent repeated names. +% Note: Some older IEEE journals used something like +% "\rule{0.275in}{0.5pt}\," which is fairly thick and runs right along +% the baseline. However, IEEE now uses a thinner, above baseline, +% six dash long sequence. +FUNCTION {repeated.name.dashes} { "------" } + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% PREDEFINED STRING MACROS %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +MACRO {jan} {"Jan."} +MACRO {feb} {"Feb."} +MACRO {mar} {"Mar."} +MACRO {apr} {"Apr."} +MACRO {may} {"May"} +MACRO {jun} {"June"} +MACRO {jul} {"July"} +MACRO {aug} {"Aug."} +MACRO {sep} {"Sept."} +MACRO {oct} {"Oct."} +MACRO {nov} {"Nov."} +MACRO {dec} {"Dec."} + + + +%%%%%%%%%%%%%%%%%% +%% ENTRY FIELDS %% +%%%%%%%%%%%%%%%%%% + +ENTRY + { address + assignee + author + booktitle + chapter + day + dayfiled + edition + editor + howpublished + institution + intype + journal + key + language + month + monthfiled + nationality + note + number + organization + pages + paper + publisher + school + series + revision + title + type + url + volume + year + yearfiled + CTLuse_article_number + CTLuse_paper + CTLuse_forced_etal + CTLmax_names_forced_etal + CTLnames_show_etal + CTLuse_alt_spacing + CTLalt_stretch_factor + CTLdash_repeated_names + CTLname_format_string + CTLname_latex_cmd + } + {} + { label } + + + + +%%%%%%%%%%%%%%%%%%%%%%% +%% INTEGER VARIABLES %% +%%%%%%%%%%%%%%%%%%%%%%% + +INTEGERS { prev.status.punct this.status.punct punct.std + punct.no punct.comma punct.period + prev.status.space this.status.space space.std + space.no space.normal space.large + prev.status.quote this.status.quote quote.std + quote.no quote.close + prev.status.nline this.status.nline nline.std + nline.no nline.newblock + status.cap cap.std + cap.no cap.yes} + +INTEGERS { longest.label.width multiresult nameptr namesleft number.label numnames } + +INTEGERS { is.use.number.for.article + is.use.paper + is.forced.et.al + max.num.names.before.forced.et.al + num.names.shown.with.forced.et.al + is.use.alt.interword.spacing + is.dash.repeated.names} + + +%%%%%%%%%%%%%%%%%%%%%% +%% STRING VARIABLES %% +%%%%%%%%%%%%%%%%%%%%%% + +STRINGS { bibinfo + longest.label + oldname + s + t + ALTinterwordstretchfactor + name.format.string + name.latex.cmd} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%% +%% LOW LEVEL FUNCTIONS %% +%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {initialize.controls} +{ default.is.use.number.for.article 'is.use.number.for.article := + default.is.use.paper 'is.use.paper := + default.is.forced.et.al 'is.forced.et.al := + default.max.num.names.before.forced.et.al 'max.num.names.before.forced.et.al := + default.num.names.shown.with.forced.et.al 'num.names.shown.with.forced.et.al := + default.is.use.alt.interword.spacing 'is.use.alt.interword.spacing := + default.is.dash.repeated.names 'is.dash.repeated.names := + default.ALTinterwordstretchfactor 'ALTinterwordstretchfactor := + default.name.format.string 'name.format.string := + default.name.latex.cmd 'name.latex.cmd := +} + + +% This IEEEtran.bst features a very powerful and flexible mechanism for +% controlling the capitalization, punctuation, spacing, quotation, and +% newlines of the formatted entry fields. (Note: IEEEtran.bst does not need +% or use the newline/newblock feature, but it has been implemented for +% possible future use.) The output states of IEEEtran.bst consist of +% multiple independent attributes and, as such, can be thought of as being +% vectors, rather than the simple scalar values ("before.all", +% "mid.sentence", etc.) used in most other .bst files. +% +% The more flexible and complex design used here was motivated in part by +% IEEE's rather unusual bibliography style. For example, IEEE ends the +% previous field item with a period and large space prior to the publisher +% address; the @electronic entry types use periods as inter-item punctuation +% rather than the commas used by the other entry types; and URLs are never +% followed by periods even though they are the last item in the entry. +% Although it is possible to accommodate these features with the conventional +% output state system, the seemingly endless exceptions make for convoluted, +% unreliable and difficult to maintain code. +% +% IEEEtran.bst's output state system can be easily understood via a simple +% illustration of two most recently formatted entry fields (on the stack): +% +% CURRENT_ITEM +% "PREVIOUS_ITEM +% +% which, in this example, is to eventually appear in the bibliography as: +% +% "PREVIOUS_ITEM," CURRENT_ITEM +% +% It is the job of the output routine to take the previous item off of the +% stack (while leaving the current item at the top of the stack), apply its +% trailing punctuation (including closing quote marks) and spacing, and then +% to write the result to BibTeX's output buffer: +% +% "PREVIOUS_ITEM," +% +% Punctuation (and spacing) between items is often determined by both of the +% items rather than just the first one. The presence of quotation marks +% further complicates the situation because, in standard English, trailing +% punctuation marks are supposed to be contained within the quotes. +% +% IEEEtran.bst maintains two output state (aka "status") vectors which +% correspond to the previous and current (aka "this") items. Each vector +% consists of several independent attributes which track punctuation, +% spacing, quotation, and newlines. Capitalization status is handled by a +% separate scalar because the format routines, not the output routine, +% handle capitalization and, therefore, there is no need to maintain the +% capitalization attribute for both the "previous" and "this" items. +% +% When a format routine adds a new item, it copies the current output status +% vector to the previous output status vector and (usually) resets the +% current (this) output status vector to a "standard status" vector. Using a +% "standard status" vector in this way allows us to redefine what we mean by +% "standard status" at the start of each entry handler and reuse the same +% format routines under the various inter-item separation schemes. For +% example, the standard status vector for the @book entry type may use +% commas for item separators, while the @electronic type may use periods, +% yet both entry handlers exploit many of the exact same format routines. +% +% Because format routines have write access to the output status vector of +% the previous item, they can override the punctuation choices of the +% previous format routine! Therefore, it becomes trivial to implement rules +% such as "Always use a period and a large space before the publisher." By +% pushing the generation of the closing quote mark to the output routine, we +% avoid all the problems caused by having to close a quote before having all +% the information required to determine what the punctuation should be. +% +% The IEEEtran.bst output state system can easily be expanded if needed. +% For instance, it is easy to add a "space.tie" attribute value if the +% bibliography rules mandate that two items have to be joined with an +% unbreakable space. + +FUNCTION {initialize.status.constants} +{ #0 'punct.no := + #1 'punct.comma := + #2 'punct.period := + #0 'space.no := + #1 'space.normal := + #2 'space.large := + #0 'quote.no := + #1 'quote.close := + #0 'cap.no := + #1 'cap.yes := + #0 'nline.no := + #1 'nline.newblock := +} + +FUNCTION {std.status.using.comma} +{ punct.comma 'punct.std := + space.normal 'space.std := + quote.no 'quote.std := + nline.no 'nline.std := + cap.no 'cap.std := +} + +FUNCTION {std.status.using.period} +{ punct.period 'punct.std := + space.normal 'space.std := + quote.no 'quote.std := + nline.no 'nline.std := + cap.yes 'cap.std := +} + +FUNCTION {initialize.prev.this.status} +{ punct.no 'prev.status.punct := + space.no 'prev.status.space := + quote.no 'prev.status.quote := + nline.no 'prev.status.nline := + punct.no 'this.status.punct := + space.no 'this.status.space := + quote.no 'this.status.quote := + nline.no 'this.status.nline := + cap.yes 'status.cap := +} + +FUNCTION {this.status.std} +{ punct.std 'this.status.punct := + space.std 'this.status.space := + quote.std 'this.status.quote := + nline.std 'this.status.nline := +} + +FUNCTION {cap.status.std}{ cap.std 'status.cap := } + +FUNCTION {this.to.prev.status} +{ this.status.punct 'prev.status.punct := + this.status.space 'prev.status.space := + this.status.quote 'prev.status.quote := + this.status.nline 'prev.status.nline := +} + + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ { skip$ } + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + { skip$ } + if$ +} + + +% convert the strings "yes" or "no" to #1 or #0 respectively +FUNCTION {yes.no.to.int} +{ "l" change.case$ duplicate$ + "yes" = + { pop$ #1 } + { duplicate$ "no" = + { pop$ #0 } + { "unknown boolean " quote$ * swap$ * quote$ * + " in " * cite$ * warning$ + #0 + } + if$ + } + if$ +} + + +% pushes true if the single char string on the stack is in the +% range of "0" to "9" +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +% multiplies the integer on the stack by a factor of 10 +FUNCTION {bump.int.mag} +{ #0 'multiresult := + { duplicate$ #0 > } + { #1 - + multiresult #10 + + 'multiresult := + } + while$ +pop$ +multiresult +} + +% converts a single character string on the stack to an integer +FUNCTION {char.to.integer} +{ duplicate$ + is.num + { chr.to.int$ "0" chr.to.int$ - } + {"noninteger character " quote$ * swap$ * quote$ * + " in integer field of " * cite$ * warning$ + #0 + } + if$ +} + +% converts a string on the stack to an integer +FUNCTION {string.to.integer} +{ duplicate$ text.length$ 'namesleft := + #1 'nameptr := + #0 'numnames := + { nameptr namesleft > not } + { duplicate$ nameptr #1 substring$ + char.to.integer numnames bump.int.mag + + 'numnames := + nameptr #1 + + 'nameptr := + } + while$ +pop$ +numnames +} + + + + +% The output routines write out the *next* to the top (previous) item on the +% stack, adding punctuation and such as needed. Since IEEEtran.bst maintains +% the output status for the top two items on the stack, these output +% routines have to consider the previous output status (which corresponds to +% the item that is being output). Full independent control of punctuation, +% closing quote marks, spacing, and newblock is provided. +% +% "output.nonnull" does not check for the presence of a previous empty +% item. +% +% "output" does check for the presence of a previous empty item and will +% remove an empty item rather than outputing it. +% +% "output.warn" is like "output", but will issue a warning if it detects +% an empty item. + +FUNCTION {output.nonnull} +{ swap$ + prev.status.punct punct.comma = + { "," * } + { skip$ } + if$ + prev.status.punct punct.period = + { add.period$ } + { skip$ } + if$ + prev.status.quote quote.close = + { "''" * } + { skip$ } + if$ + prev.status.space space.normal = + { " " * } + { skip$ } + if$ + prev.status.space space.large = + { large.space * } + { skip$ } + if$ + write$ + prev.status.nline nline.newblock = + { newline$ "\newblock " write$ } + { skip$ } + if$ +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.warn} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +% "fin.entry" is the output routine that handles the last item of the entry +% (which will be on the top of the stack when "fin.entry" is called). + +FUNCTION {fin.entry} +{ this.status.punct punct.no = + { skip$ } + { add.period$ } + if$ + this.status.quote quote.close = + { "''" * } + { skip$ } + if$ +write$ +newline$ +} + + +FUNCTION {is.last.char.not.punct} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +FUNCTION {is.multiple.pages} +{ '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 {capitalize}{ "u" change.case$ "t" change.case$ } + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +FUNCTION {do.name.latex.cmd} +{ name.latex.cmd + empty$ + { skip$ } + { name.latex.cmd "{" * swap$ * "}" * } + if$ +} + +% IEEEtran.bst uses its own \BIBforeignlanguage command which directly +% invokes the TeX hyphenation patterns without the need of the Babel +% package. Babel does a lot more than switch hyphenation patterns and +% its loading can cause unintended effects in many class files (such as +% IEEEtran.cls). +FUNCTION {select.language} +{ duplicate$ empty$ 'pop$ + { language empty$ 'skip$ + { "\BIBforeignlanguage{" language * "}{" * swap$ * "}" * } + if$ + } + if$ +} + +FUNCTION {tie.or.space.prefix} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ +} + +FUNCTION {get.bbl.editor} +{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ } + +FUNCTION {space.word}{ " " swap$ * " " * } + + +% Field Conditioners, Converters, Checkers and External Interfaces + +FUNCTION {empty.field.to.null.string} +{ duplicate$ empty$ + { pop$ "" } + { skip$ } + if$ +} + +FUNCTION {either.or.check} +{ empty$ + { pop$ } + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {empty.entry.warn} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ url empty$ + and and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + + +% The bibinfo system provides a way for the electronic parsing/acquisition +% of a bibliography's contents as is done by ReVTeX. For example, a field +% could be entered into the bibliography as: +% \bibinfo{volume}{2} +% Only the "2" would show up in the document, but the LaTeX \bibinfo command +% could do additional things with the information. IEEEtran.bst does provide +% a \bibinfo command via "\providecommand{\bibinfo}[2]{#2}". However, it is +% currently not used as the bogus bibinfo functions defined here output the +% entry values directly without the \bibinfo wrapper. The bibinfo functions +% themselves (and the calls to them) are retained for possible future use. +% +% bibinfo.check avoids acting on missing fields while bibinfo.warn will +% issue a warning message if a missing field is detected. Prior to calling +% the bibinfo functions, the user should push the field value and then its +% name string, in that order. + +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$ +} + + +% IEEE separates large numbers with more than 4 digits into groups of +% three. IEEE uses a small space to separate these number groups. +% Typical applications include patent and page numbers. + +% number of consecutive digits required to trigger the group separation. +FUNCTION {large.number.trigger}{ #5 } + +% For numbers longer than the trigger, this is the blocksize of the groups. +% The blocksize must be less than the trigger threshold, and 2 * blocksize +% must be greater than the trigger threshold (can't do more than one +% separation on the initial trigger). +FUNCTION {large.number.blocksize}{ #3 } + +% What is actually inserted between the number groups. +FUNCTION {large.number.separator}{ "\," } + +% So as to save on integer variables by reusing existing ones, numnames +% holds the current number of consecutive digits read and nameptr holds +% the number that will trigger an inserted space. +FUNCTION {large.number.separate} +{ 't := + "" + #0 'numnames := + large.number.trigger 'nameptr := + { t empty$ not } + { t #-1 #1 substring$ is.num + { numnames #1 + 'numnames := } + { #0 'numnames := + large.number.trigger 'nameptr := + } + if$ + t #-1 #1 substring$ swap$ * + t #-2 global.max$ substring$ 't := + numnames nameptr = + { duplicate$ #1 nameptr large.number.blocksize - substring$ swap$ + nameptr large.number.blocksize - #1 + global.max$ substring$ + large.number.separator swap$ * * + nameptr large.number.blocksize - 'numnames := + large.number.blocksize #1 + 'nameptr := + } + { skip$ } + if$ + } + while$ +} + +% Converts all single dashes "-" to double dashes "--". +FUNCTION {n.dashify} +{ large.number.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$ +} + + +% This function detects entries with names that are identical to that of +% the previous entry and replaces the repeated names with dashes (if the +% "is.dash.repeated.names" user control is nonzero). +FUNCTION {name.or.dash} +{ 's := + oldname empty$ + { s 'oldname := s } + { s oldname = + { is.dash.repeated.names + { repeated.name.dashes } + { s 'oldname := s } + if$ + } + { s 'oldname := s } + if$ + } + if$ +} + +% Converts the number string on the top of the stack to +% "numerical ordinal form" (e.g., "7" to "7th"). There is +% no artificial limit to the upper bound of the numbers as the +% least significant digit always determines the ordinal form. +FUNCTION {num.to.ordinal} +{ duplicate$ #-1 #1 substring$ "1" = + { bbl.st * } + { duplicate$ #-1 #1 substring$ "2" = + { bbl.nd * } + { duplicate$ #-1 #1 substring$ "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ +} + +% If the string on the top of the stack begins with a number, +% (e.g., 11th) then replace the string with the leading number +% it contains. Otherwise retain the string as-is. s holds the +% extracted number, t holds the part of the string that remains +% to be scanned. +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +% Converts the word number string on the top of the stack to +% Arabic string form. Will be successful up to "tenth". +FUNCTION {word.to.num} +{ duplicate$ "l" change.case$ 's := + s "first" = + { pop$ "1" } + { skip$ } + if$ + s "second" = + { pop$ "2" } + { skip$ } + if$ + s "third" = + { pop$ "3" } + { skip$ } + if$ + s "fourth" = + { pop$ "4" } + { skip$ } + if$ + s "fifth" = + { pop$ "5" } + { skip$ } + if$ + s "sixth" = + { pop$ "6" } + { skip$ } + if$ + s "seventh" = + { pop$ "7" } + { skip$ } + if$ + s "eighth" = + { pop$ "8" } + { skip$ } + if$ + s "ninth" = + { pop$ "9" } + { skip$ } + if$ + s "tenth" = + { pop$ "10" } + { skip$ } + if$ +} + + +% Converts the string on the top of the stack to numerical +% ordinal (e.g., "11th") form. +FUNCTION {convert.edition} +{ duplicate$ empty$ 'skip$ + { duplicate$ #1 #1 substring$ is.num + { extract.num + num.to.ordinal + } + { word.to.num + duplicate$ #1 #1 substring$ is.num + { num.to.ordinal } + { "edition ordinal word " quote$ * edition * quote$ * + " may be too high (or improper) for conversion" * " in " * cite$ * warning$ + } + if$ + } + if$ + } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% LATEX BIBLIOGRAPHY CODE %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {start.entry} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + initialize.prev.this.status +} + +% Here we write out all the LaTeX code that we will need. The most involved +% code sequences are those that control the alternate interword spacing and +% foreign language hyphenation patterns. The heavy use of \providecommand +% gives users a way to override the defaults. Special thanks to Javier Bezos, +% Johannes Braams, Robin Fairburns, Heiko Oberdiek, Donald Arseneau and all +% the other gurus on comp.text.tex for their help and advice on the topic of +% \selectlanguage, Babel and BibTeX. +FUNCTION {begin.bib} +{ preamble$ empty$ 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * + write$ newline$ + "\providecommand{\url}[1]{#1}" + write$ newline$ + "\csname url@rmstyle\endcsname" + write$ newline$ + "\providecommand{\newblock}{\relax}" + write$ newline$ + "\providecommand{\bibinfo}[2]{#2}" + write$ newline$ + "\providecommand\BIBentrySTDinterwordspacing{\spaceskip=0pt\relax}" + write$ newline$ + "\providecommand\BIBentryALTinterwordstretchfactor{" + ALTinterwordstretchfactor * "}" * + write$ newline$ + "\providecommand\BIBentryALTinterwordspacing{\spaceskip=\fontdimen2\font plus " + write$ newline$ + "\BIBentryALTinterwordstretchfactor\fontdimen3\font minus \fontdimen4\font\relax}" + write$ newline$ + "\providecommand\BIBforeignlanguage[2]{{%" + write$ newline$ + "\expandafter\ifx\csname l@#1\endcsname\relax" + write$ newline$ + "\typeout{** WARNING: IEEEtran.bst: No hyphenation pattern has been}%" + write$ newline$ + "\typeout{** loaded for the language `#1'. Using the pattern for}%" + write$ newline$ + "\typeout{** the default language instead.}%" + write$ newline$ + "\else" + write$ newline$ + "\language=\csname l@#1\endcsname" + write$ newline$ + "\fi" + write$ newline$ + "#2}}" + write$ newline$ +} + +FUNCTION {end.bib} +{ newline$ "\end{thebibliography}" write$ newline$ } + +FUNCTION {if.url.alt.interword.spacing} +{ is.use.alt.interword.spacing + {url empty$ 'skip$ {"\BIBentryALTinterwordspacing" write$ newline$} if$} + { skip$ } + if$ +} + +FUNCTION {if.url.std.interword.spacing} +{ is.use.alt.interword.spacing + {url empty$ 'skip$ {"\BIBentrySTDinterwordspacing" write$ newline$} if$} + { skip$ } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%% +%% LONGEST LABEL PASS %% +%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%% +%% FORMAT HANDLERS %% +%%%%%%%%%%%%%%%%%%%%% + +%% Lower Level Formats (used by higher level formats) + +FUNCTION {format.address.org.or.pub.date} +{ 't := + "" + year empty$ + { "empty year in " cite$ * warning$ } + { skip$ } + if$ + address empty$ t empty$ and + year empty$ and month empty$ and + { skip$ } + { this.to.prev.status + this.status.std + cap.status.std + address "address" bibinfo.check * + t empty$ + { skip$ } + { punct.period 'prev.status.punct := + space.large 'prev.status.space := + address empty$ + { skip$ } + { ": " * } + if$ + t * + } + if$ + year empty$ month empty$ and + { skip$ } + { t empty$ address empty$ and + { skip$ } + { ", " * } + if$ + month empty$ + { year empty$ + { skip$ } + { year "year" bibinfo.check * } + if$ + } + { month "month" bibinfo.check * + year empty$ + { skip$ } + { " " * year "year" bibinfo.check * } + if$ + } + if$ + } + if$ + } + if$ +} + + +FUNCTION {format.names} +{ 'bibinfo := + duplicate$ empty$ 'skip$ { + this.to.prev.status + this.status.std + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + name.format.string + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { nameptr num.names.shown.with.forced.et.al #1 + = + numnames max.num.names.before.forced.et.al > + is.forced.et.al and and + { "others" 't := + #1 'namesleft := + } + { skip$ } + if$ + namesleft #1 > + { ", " * t do.name.latex.cmd * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal emphasize * + } + { + bbl.and + space.word * t do.name.latex.cmd * + } + if$ + } + if$ + } + { t do.name.latex.cmd } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + cap.status.std + } if$ +} + + + + +%% Higher Level Formats + +%% addresses/locations + +FUNCTION {format.address} +{ address duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + + + +%% author/editor names + +FUNCTION {format.authors}{ author "author" format.names } + +FUNCTION {format.editors} +{ editor "editor" format.names duplicate$ empty$ 'skip$ + { ", " * + get.bbl.editor + capitalize + * + } + if$ +} + + + +%% date + +FUNCTION {format.date} +{ + month "month" bibinfo.check duplicate$ empty$ + year "year" bibinfo.check duplicate$ empty$ + { swap$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + "there's a month but no year in " cite$ * warning$ } + if$ + * + } + { this.to.prev.status + this.status.std + cap.status.std + swap$ 'skip$ + { + swap$ + " " * swap$ + } + if$ + * + } + if$ +} + +FUNCTION {format.date.electronic} +{ month "month" bibinfo.check duplicate$ empty$ + year "year" bibinfo.check duplicate$ empty$ + { swap$ + { pop$ } + { "there's a month but no year in " cite$ * warning$ + pop$ ")" * "(" swap$ * + this.to.prev.status + punct.no 'this.status.punct := + space.normal 'this.status.space := + quote.no 'this.status.quote := + cap.yes 'status.cap := + } + if$ + } + { swap$ + { swap$ pop$ ")" * "(" swap$ * } + { "(" swap$ * ", " * swap$ * ")" * } + if$ + this.to.prev.status + punct.no 'this.status.punct := + space.normal 'this.status.space := + quote.no 'this.status.quote := + cap.yes 'status.cap := + } + if$ +} + + + +%% edition/title + +% Note: IEEE considers the edition to be closely associated with +% the title of a book. So, in IEEEtran.bst the edition is normally handled +% within the formatting of the title. The format.edition function is +% retained here for possible future use. +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + convert.edition + status.cap + { "t" } + { "l" } + if$ change.case$ + "edition" bibinfo.check + "~" * bbl.edition * + cap.status.std + } + if$ +} + +% This is used to format the booktitle of a conference proceedings. +% Here we use the "intype" field to provide the user a way to +% override the word "in" (e.g., with things like "presented at") +% Use of intype stops the emphasis of the booktitle to indicate that +% we no longer mean the written conference proceedings, but the +% conference itself. +FUNCTION {format.in.booktitle} +{ booktitle "booktitle" bibinfo.check duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + select.language + intype missing$ + { emphasize + bbl.in " " * + } + { intype " " * } + if$ + swap$ * + cap.status.std + } + if$ +} + +% This is used to format the booktitle of collection. +% Here the "intype" field is not supported, but "edition" is. +FUNCTION {format.in.booktitle.edition} +{ booktitle "booktitle" bibinfo.check duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + select.language + emphasize + edition empty$ 'skip$ + { ", " * + edition + convert.edition + "l" change.case$ + * "~" * bbl.edition * + } + if$ + bbl.in " " * swap$ * + cap.status.std + } + if$ +} + +FUNCTION {format.article.title} +{ title duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + "t" change.case$ + } + if$ + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { quote.close 'this.status.quote := + is.last.char.not.punct + { punct.std 'this.status.punct := } + { punct.no 'this.status.punct := } + if$ + select.language + "``" swap$ * + cap.status.std + } + if$ +} + +FUNCTION {format.article.title.electronic} +{ title duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + "t" change.case$ + } + if$ + "title" bibinfo.check + duplicate$ empty$ + { skip$ } + { select.language } + if$ +} + +FUNCTION {format.book.title.edition} +{ title "title" bibinfo.check + duplicate$ empty$ + { "empty title in " cite$ * warning$ } + { this.to.prev.status + this.status.std + select.language + emphasize + edition empty$ 'skip$ + { ", " * + edition + convert.edition + status.cap + { "t" } + { "l" } + if$ + change.case$ + * "~" * bbl.edition * + } + if$ + cap.status.std + } + if$ +} + +FUNCTION {format.book.title} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + select.language + emphasize + } + if$ +} + + + +%% journal + +FUNCTION {format.journal} +{ journal duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + select.language + emphasize + } + if$ +} + + + +%% how published + +FUNCTION {format.howpublished} +{ howpublished duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + + + +%% institutions/organization/publishers/school + +FUNCTION {format.institution} +{ institution duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + +FUNCTION {format.organization} +{ organization duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + +FUNCTION {format.address.publisher.date} +{ publisher "publisher" bibinfo.warn format.address.org.or.pub.date } + +FUNCTION {format.address.publisher.date.nowarn} +{ publisher "publisher" bibinfo.check format.address.org.or.pub.date } + +FUNCTION {format.address.organization.date} +{ organization "organization" bibinfo.check format.address.org.or.pub.date } + +FUNCTION {format.school} +{ school duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + cap.status.std + } + if$ +} + + + +%% volume/number/series/chapter/pages + +FUNCTION {format.volume} +{ volume empty.field.to.null.string + duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + bbl.volume + status.cap + { capitalize } + { skip$ } + if$ + swap$ tie.or.space.prefix + "volume" bibinfo.check + * * + cap.status.std + } + if$ +} + +FUNCTION {format.number} +{ number empty.field.to.null.string + duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + status.cap + { bbl.number capitalize } + { bbl.number } + if$ + swap$ tie.or.space.prefix + "number" bibinfo.check + * * + cap.status.std + } + if$ +} + +FUNCTION {format.number.if.use.for.article} +{ is.use.number.for.article + { format.number } + { "" } + if$ +} + +% IEEE does not seem to tie the series so closely with the volume +% and number as is done in other bibliography styles. Instead the +% series is treated somewhat like an extension of the title. +FUNCTION {format.series} +{ series empty$ + { "" } + { this.to.prev.status + this.status.std + bbl.series " " * + series "series" bibinfo.check * + cap.status.std + } + if$ +} + + +FUNCTION {format.chapter} +{ chapter empty$ + { "" } + { this.to.prev.status + this.status.std + type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + cap.status.std + } + if$ +} + + +% The intended use of format.paper is for paper numbers of inproceedings. +% The paper type can be overridden via the type field. +% We allow the type to be displayed even if the paper number is absent +% for things like "postdeadline paper" +FUNCTION {format.paper} +{ is.use.paper + { paper empty$ + { type empty$ + { "" } + { this.to.prev.status + this.status.std + type "type" bibinfo.check + cap.status.std + } + if$ + } + { this.to.prev.status + this.status.std + type empty$ + { bbl.paper } + { type "type" bibinfo.check } + if$ + " " * paper + "paper" bibinfo.check + * + cap.status.std + } + if$ + } + { "" } + if$ +} + + +FUNCTION {format.pages} +{ pages duplicate$ empty$ 'skip$ + { this.to.prev.status + this.status.std + duplicate$ is.multiple.pages + { + bbl.pages swap$ + n.dashify + } + { + bbl.page swap$ + } + if$ + tie.or.space.prefix + "pages" bibinfo.check + * * + cap.status.std + } + if$ +} + + + +%% technical report number + +FUNCTION {format.tech.report.number} +{ number "number" bibinfo.check + type duplicate$ empty$ + { pop$ + this.to.prev.status + this.status.std + cap.status.std + bbl.techrep + } + { skip$ } + if$ + "type" bibinfo.check + swap$ duplicate$ empty$ + { pop$ } + { this.to.prev.status + this.status.std + cap.status.std + tie.or.space.prefix * * } + if$ +} + + + +%% note + +FUNCTION {format.note} +{ note empty$ + { "" } + { this.to.prev.status + this.status.std + punct.period 'this.status.punct := + note #1 #1 substring$ + duplicate$ "{" = + { skip$ } + { status.cap + { "u" } + { "l" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * "note" bibinfo.check + cap.yes 'status.cap := + } + if$ +} + + + +%% patent + +FUNCTION {format.patent.date} +{ this.to.prev.status + this.status.std + year empty$ + { monthfiled duplicate$ empty$ + { "monthfiled" bibinfo.check pop$ "" } + { "monthfiled" bibinfo.check } + if$ + dayfiled duplicate$ empty$ + { "dayfiled" bibinfo.check pop$ "" * } + { "dayfiled" bibinfo.check + monthfiled empty$ + { "dayfiled without a monthfiled in " cite$ * warning$ + * + } + { " " swap$ * * } + if$ + } + if$ + yearfiled empty$ + { "no year or yearfiled in " cite$ * warning$ } + { yearfiled "yearfiled" bibinfo.check + swap$ + duplicate$ empty$ + { pop$ } + { ", " * swap$ * } + if$ + } + if$ + } + { month duplicate$ empty$ + { "month" bibinfo.check pop$ "" } + { "month" bibinfo.check } + if$ + day duplicate$ empty$ + { "day" bibinfo.check pop$ "" * } + { "day" bibinfo.check + month empty$ + { "day without a month in " cite$ * warning$ + * + } + { " " swap$ * * } + if$ + } + if$ + year "year" bibinfo.check + swap$ + duplicate$ empty$ + { pop$ } + { ", " * swap$ * } + if$ + } + if$ + cap.status.std +} + +FUNCTION {format.patent.nationality.type.number} +{ this.to.prev.status + this.status.std + nationality duplicate$ empty$ + { "nationality" bibinfo.warn pop$ "" } + { "nationality" bibinfo.check + duplicate$ "l" change.case$ "united states" = + { pop$ bbl.patentUS } + { skip$ } + if$ + " " * + } + if$ + type empty$ + { bbl.patent "type" bibinfo.check } + { type "type" bibinfo.check } + if$ + * + number duplicate$ empty$ + { "number" bibinfo.warn pop$ } + { "number" bibinfo.check + large.number.separate + swap$ " " * swap$ * + } + if$ + cap.status.std +} + + + +%% standard + +FUNCTION {format.organization.institution.standard.type.number} +{ this.to.prev.status + this.status.std + organization duplicate$ empty$ + { pop$ + institution duplicate$ empty$ + { "institution" bibinfo.warn } + { "institution" bibinfo.warn " " * } + if$ + } + { "organization" bibinfo.warn " " * } + if$ + type empty$ + { bbl.standard "type" bibinfo.check } + { type "type" bibinfo.check } + if$ + * + number duplicate$ empty$ + { "number" bibinfo.check pop$ } + { "number" bibinfo.check + large.number.separate + swap$ " " * swap$ * + } + if$ + cap.status.std +} + +FUNCTION {format.revision} +{ revision empty$ + { "" } + { this.to.prev.status + this.status.std + bbl.revision + revision tie.or.space.prefix + "revision" bibinfo.check + * * + cap.status.std + } + if$ +} + + +%% thesis + +FUNCTION {format.master.thesis.type} +{ this.to.prev.status + this.status.std + type empty$ + { + bbl.mthesis + } + { + type "type" bibinfo.check + } + if$ +cap.status.std +} + +FUNCTION {format.phd.thesis.type} +{ this.to.prev.status + this.status.std + type empty$ + { + bbl.phdthesis + } + { + type "type" bibinfo.check + } + if$ +cap.status.std +} + + + +%% URL + +FUNCTION {format.url} +{ url empty$ + { "" } + { this.to.prev.status + this.status.std + cap.yes 'status.cap := + bbl.urlprefix " " * + "\url{" * url * "}" * + punct.no 'this.status.punct := + punct.period 'prev.status.punct := + space.normal 'this.status.space := + space.normal 'prev.status.space := + quote.no 'this.status.quote := + } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%% +%% ENTRY HANDLERS %% +%%%%%%%%%%%%%%%%%%%% + + +% Note: In many journals, IEEE (or the authors) tend not to show the number +% for articles, so the display of the number is controlled here by the +% switch "is.use.number.for.article" +FUNCTION {article} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.journal "journal" bibinfo.check "journal" output.warn + format.volume output + format.number.if.use.for.article output + format.pages output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {book} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + author empty$ + { format.editors "author and editor" output.warn } + { format.authors output.nonnull } + if$ + name.or.dash + format.book.title.edition output + format.series output + author empty$ + { skip$ } + { format.editors output } + if$ + format.address.publisher.date output + format.volume output + format.number output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {booklet} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.article.title "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.date output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {electronic} +{ std.status.using.period + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.date.electronic output + format.article.title.electronic output + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.note output + format.url output + fin.entry + empty.entry.warn + if.url.std.interword.spacing +} + +FUNCTION {inbook} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + author empty$ + { format.editors "author and editor" output.warn } + { format.authors output.nonnull } + if$ + name.or.dash + format.book.title.edition output + format.series output + format.address.publisher.date output + format.volume output + format.number output + format.chapter output + format.pages output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {incollection} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.in.booktitle.edition "booktitle" output.warn + format.series output + format.editors output + format.address.publisher.date.nowarn output + format.volume output + format.number output + format.chapter output + format.pages output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {inproceedings} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.in.booktitle "booktitle" output.warn + format.series output + format.editors output + format.volume output + format.number output + publisher empty$ + { format.address.organization.date output } + { format.organization "organization" bibinfo.check output + format.address.publisher.date output + } + if$ + format.paper output + format.pages output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {manual} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.book.title.edition "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.date output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {mastersthesis} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.master.thesis.type output.nonnull + format.school "school" bibinfo.warn output + format.address "address" bibinfo.check output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {misc} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.article.title output + format.howpublished "howpublished" bibinfo.check output + format.organization "organization" bibinfo.check output + format.address "address" bibinfo.check output + format.pages output + format.date output + format.note output + format.url output + fin.entry + empty.entry.warn + if.url.std.interword.spacing +} + +FUNCTION {patent} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.article.title output + format.patent.nationality.type.number output + format.patent.date output + format.note output + format.url output + fin.entry + empty.entry.warn + if.url.std.interword.spacing +} + +FUNCTION {periodical} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.editors output + name.or.dash + format.book.title "title" output.warn + format.series output + format.volume output + format.number output + format.organization "organization" bibinfo.check output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {phdthesis} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.phd.thesis.type output.nonnull + format.school "school" bibinfo.warn output + format.address "address" bibinfo.check output + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {proceedings} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.editors output + name.or.dash + format.book.title "title" output.warn + format.series output + format.volume output + format.number output + publisher empty$ + { format.address.organization.date output } + { format.organization "organization" bibinfo.check output + format.address.publisher.date output + } + if$ + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {standard} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors output + name.or.dash + format.book.title "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.organization.institution.standard.type.number output + format.revision output + format.date output + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {techreport} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.howpublished "howpublished" bibinfo.check output + format.institution "institution" bibinfo.warn output + format.address "address" bibinfo.check output + format.tech.report.number output.nonnull + format.date "year" output.warn + format.note output + format.url output + fin.entry + if.url.std.interword.spacing +} + +FUNCTION {unpublished} +{ std.status.using.comma + start.entry + if.url.alt.interword.spacing + format.authors "author" output.warn + name.or.dash + format.article.title "title" output.warn + format.date output + format.note "note" output.warn + format.url output + fin.entry + if.url.std.interword.spacing +} + + +% The special entry type which provides the user interface to the +% BST controls +FUNCTION {IEEEtranBSTCTL} +{ is.print.banners.to.terminal + { "** IEEEtran BST control entry " quote$ * cite$ * quote$ * " detected." * + top$ + } + { skip$ } + if$ + CTLuse_article_number + empty$ + { skip$ } + { CTLuse_article_number + yes.no.to.int + 'is.use.number.for.article := + } + if$ + CTLuse_paper + empty$ + { skip$ } + { CTLuse_paper + yes.no.to.int + 'is.use.paper := + } + if$ + CTLuse_forced_etal + empty$ + { skip$ } + { CTLuse_forced_etal + yes.no.to.int + 'is.forced.et.al := + } + if$ + CTLmax_names_forced_etal + empty$ + { skip$ } + { CTLmax_names_forced_etal + string.to.integer + 'max.num.names.before.forced.et.al := + } + if$ + CTLnames_show_etal + empty$ + { skip$ } + { CTLnames_show_etal + string.to.integer + 'num.names.shown.with.forced.et.al := + } + if$ + CTLuse_alt_spacing + empty$ + { skip$ } + { CTLuse_alt_spacing + yes.no.to.int + 'is.use.alt.interword.spacing := + } + if$ + CTLalt_stretch_factor + empty$ + { skip$ } + { CTLalt_stretch_factor + 'ALTinterwordstretchfactor := + "\renewcommand\BIBentryALTinterwordstretchfactor{" + ALTinterwordstretchfactor * "}" * + write$ newline$ + } + if$ + CTLdash_repeated_names + empty$ + { skip$ } + { CTLdash_repeated_names + yes.no.to.int + 'is.dash.repeated.names := + } + if$ + CTLname_format_string + empty$ + { skip$ } + { CTLname_format_string + 'name.format.string := + } + if$ + CTLname_latex_cmd + empty$ + { skip$ } + { CTLname_latex_cmd + 'name.latex.cmd := + } + if$ + + + num.names.shown.with.forced.et.al max.num.names.before.forced.et.al > + { "CTLnames_show_etal cannot be greater than CTLmax_names_forced_etal in " cite$ * warning$ + max.num.names.before.forced.et.al 'num.names.shown.with.forced.et.al := + } + { skip$ } + if$ +} + + +%%%%%%%%%%%%%%%%%%% +%% ENTRY ALIASES %% +%%%%%%%%%%%%%%%%%%% +FUNCTION {conference}{inproceedings} +FUNCTION {online}{electronic} +FUNCTION {internet}{electronic} +FUNCTION {webpage}{electronic} +FUNCTION {default.type}{misc} + + + +%%%%%%%%%%%%%%%%%% +%% MAIN PROGRAM %% +%%%%%%%%%%%%%%%%%% + +READ + +EXECUTE {initialize.controls} +EXECUTE {initialize.status.constants} +EXECUTE {banner.message} + + + +% BEGIN sort code based on that of plain.bst + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + { skip$ } + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ "" } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ "" } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {author.organization.institution.sort} +{ author empty$ + { organization empty$ + { institution empty$ + { key empty$ + { "to sort, need author, organization, institution or key in " cite$ * warning$ "" } + { key sortify } + if$ + } + { "The " #4 institution chop.word sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + + +FUNCTION {presort} +{ type$ "ieeetranbstctl" = + { key empty$ + { "_" } + { key sortify } + if$ + } + { type$ "book" = + type$ "inbook" = + or + { author.editor.sort } + { type$ "proceedings" = + type$ "periodical" = + or + { editor.organization.sort } + { type$ "manual" = + type$ "electronic" = + type$ "misc" = + or or + { author.organization.sort } + { type$ "standard" = + { author.organization.institution.sort } + { author.sort } + if$ + } + if$ + } + if$ + } + if$ + " " + * + year empty.field.to.null.string sortify + * + " " + * + title empty.field.to.null.string + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +% END sort code based on that of plain.bst + + + +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} + +EXECUTE {begin.bib} +ITERATE {call.type$} +EXECUTE {end.bib} + +EXECUTE{completed.message} + + +%% That's all folks, mds. diff --git a/Master/texmf-dist/bibtex/bst/abstyles/aabbrv.bst b/Master/texmf-dist/bibtex/bst/abstyles/aabbrv.bst new file mode 100644 index 00000000000..802ec8ba5fc --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/abstyles/aabbrv.bst @@ -0,0 +1,1062 @@ +% BibTeX bibliography style `AABBRV' +ENTRY +{ address +author +booktitle +chapter +edition +editor +howpublished +institution +journal +key +month +note +number +organization +pages +publisher +school +series +title +type +volume +year +} +{} +{ label } +INTEGERS { output.state before.all mid.sentence after.sentence after.block +continue.sentence } +FUNCTION {init.state.consts} +{ #0 'before.all := +#1 'mid.sentence := +#2 'after.sentence := +#3 'after.block := +#4 'continue.sentence := +} +STRINGS { s t } +FUNCTION {output.nonnull} +{ 's := +output.state continue.sentence = +{ " " * write$ } +{ 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$ +} +if$ +continue.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 {output.bibitem} +{ newline$ +"\bibitem{" write$ +cite$ write$ +"}" write$ +newline$ +"" +before.all 'output.state := +} +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 {new.clause} +{ output.state after.sentence = +'skip$ +{ output.state after.block = +'skip$ +{ output.state before.all = +'skip$ +{ mid.sentence 'output.state := } +if$ +} +if$ +} +if$ +} +FUNCTION {not} +{ { #0 } +{ #1 } +if$ +} +FUNCTION {and} +{ 'skip$ +{ pop$ #0 } +if$ +} +FUNCTION {or} +{ { pop$ #1 } +'skip$ +if$ +} +FUNCTION {new.block.checka} +{ empty$ +'skip$ +'new.block +if$ +} +FUNCTION {new.block.checkb} +{ empty$ +swap$ empty$ +and +'skip$ +'new.block +if$ +} +FUNCTION {new.sentence.checka} +{ empty$ +'skip$ +'new.sentence +if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ +swap$ empty$ +and +'skip$ +'new.sentence +if$ +} +FUNCTION {new.clause.checka} +{ empty$ +'skip$ +'new.clause +if$ +} +FUNCTION {new.clause.checkb} +{ empty$ +swap$ empty$ +and +'skip$ +'new.clause +if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ +{ pop$ "" } +'skip$ +if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{2}{" swap$ * "}" * } +if$ +} +FUNCTION {capitalize} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{0}{" swap$ * "}" * } +if$ +} +FUNCTION {boldface} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{3}{" swap$ * "}" * } +if$ +} +FUNCTION {quote} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{1}{" swap$ * "}" * } +if$ +} +FUNCTION {parentheses} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{5}{" swap$ * "}" * } +if$ +} +INTEGERS { nameptr namesleft numnames } +FUNCTION {format.names} +{ 's := +#1 'nameptr := +s num.names$ 'numnames := +numnames 'namesleft := +{ namesleft #0 > } +{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := +nameptr #1 > +{ namesleft #1 > +{ ", " * t * } +{ numnames #2 > +{ "\abphrase{1}" * } +'skip$ +if$ +t "others" = +{ "\abphrase{2}" * } +{ "\abphrase{0}" * t * } +if$ +} +if$ +} +'t +if$ +nameptr #1 + 'nameptr := +namesleft #1 - 'namesleft := +} +while$ +} +FUNCTION {format.authors} +{ author empty$ +{ "" } +{ author format.names capitalize } +if$ +} +FUNCTION {format.editors} +{ editor empty$ +{ "" } +{ editor format.names capitalize +editor num.names$ #1 > +{ "\abphrase{3}" * } +{ "\abphrase{4}" * } +if$ +} +if$ +} +FUNCTION {format.title} +{ title empty$ +{ "" } +{ title "t" change.case$ } +if$ +} +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ +{ month empty$ +{ "" } +{ "there's a month but no year in " cite$ * warning$ +month parentheses +} +if$ +} +{ month empty$ +{ year parentheses } +{ month " " * year * parentheses } +if$ +} +if$ +} +FUNCTION {format.btitle} +{ title quote +} +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < +{ "~" } +{ " " } +if$ +swap$ * * +} +FUNCTION {either.or.check} +{ empty$ +'pop$ +{ "can't use both " swap$ * " fields in " * cite$ * warning$ } +if$ +} +FUNCTION {format.bvolume} +{ volume empty$ +{ "" } +{ "\abphrase{8}" volume tie.or.space.connect +series empty$ +'skip$ +{ "\abphrase{5}" * series quote * } +if$ +"volume and number" number either.or.check +} +if$ +} +FUNCTION {format.number.series} +{ volume empty$ +{ number empty$ +{ series field.or.null } +{ output.state mid.sentence = output.state continue.sentence = or +{ "\abphrase{10}" } +{ "\abphrase{11}" } +if$ +number tie.or.space.connect +series empty$ +{ "there's a number but no series in " cite$ * warning$ } +{ "\abphrase{6}" * series * } +if$ +} +if$ +} +{ "" } +if$ +} +FUNCTION {format.edition} +{ edition empty$ +{ "" } +{ output.state mid.sentence = output.state continue.sentence = or +{ edition "l" change.case$ "\abphrase{12}" * } +{ edition "t" change.case$ "\abphrase{12}" * } +if$ +} +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 empty$ +{ "" } +{ pages multi.page.check +{ "\abphrase{13}" pages n.dashify tie.or.space.connect } +{ "\abphrase{14}" pages tie.or.space.connect } +if$ +} +if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null boldface +number empty$ +'skip$ +{ "\abtype{4}{" number * "}" * * +volume empty$ +{ "there's a number but no volume in " cite$ * warning$ } +'skip$ +if$ +} +if$ +pages empty$ +'skip$ +{ duplicate$ empty$ +{ pop$ format.pages } +{ ", " * pages n.dashify * } +if$ +} +if$ +} +FUNCTION {format.chapter.pages} +{ chapter empty$ +'format.pages +{ type empty$ +{ "\abphrase{15}" } +{ type "l" change.case$ } +if$ +chapter tie.or.space.connect +pages empty$ +'skip$ +{ ", " * format.pages * } +if$ +} +if$ +} +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ +{ "" } +{ editor empty$ +{ "\abphrase{7}" booktitle quote * } +{ "\abphrase{7}" format.editors * ", " * booktitle quote * } +if$ +} +if$ +} +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ +month empty$ year empty$ note empty$ +and and and and and +key empty$ not and +{ "all relevant fields are empty in " cite$ * warning$ } +'skip$ +if$ +} +FUNCTION {format.thesis.type} +{ type empty$ +'skip$ +{ pop$ +type "t" change.case$ +} +if$ +} +FUNCTION {format.tr.number} +{ type empty$ +{ "\abphrase{16}" } +'type +if$ +number empty$ +{ "t" change.case$ } +{ number tie.or.space.connect } +if$ +} +FUNCTION {format.article.crossref} +{ key empty$ +{ journal empty$ +{ "need key or journal for " cite$ * " to crossref " * crossref * +warning$ +"" +} +{ "\abphrase{7}" journal emphasize * } +if$ +} +{ "\abphrase{7}" key * } +if$ +" \cite{" * crossref * "}" * +} +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ +editor num.names$ duplicate$ +#2 > +{ pop$ "\abphrase{2}" * } +{ #2 < +'skip$ +{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = +{ "\abphrase{2}" * } +{ "\abphrase{0}" * editor #2 "{vv~}{ll}" format.name$ * } +if$ +} +if$ +} +if$ +} +FUNCTION {format.book.crossref} +{ volume empty$ +{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$ +"\abphrase{7}" +} +{ "\abphrase{9}" volume tie.or.space.connect +"\abphrase{5}" * +} +if$ +editor empty$ +editor field.or.null author field.or.null = +or +{ key empty$ +{ series empty$ +{ "need editor, key, or series for " cite$ * " to crossref " * +crossref * warning$ +"" * +} +{ series quote * } +if$ +} +{ key * } +if$ +} +{ format.crossref.editor * } +if$ +" \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ +editor field.or.null author field.or.null = +or +{ key empty$ +{ booktitle empty$ +{ "need editor, key, or booktitle for " cite$ * " to crossref " * +crossref * warning$ +"" +} +{ "\abphrase{7}" booktitle quote * } +if$ +} +{ "\abphrase{7}" key * } +if$ +} +{ "\abphrase{7}" format.crossref.editor * } +if$ +" \cite{" * crossref * "}" * +} +FUNCTION {article} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +crossref missing$ +{ journal emphasize "journal" output.check +format.vol.num.pages output +format.date "year" output.check +} +{ format.article.crossref output.nonnull +new.clause +format.pages output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {book} +{ output.bibitem +author empty$ +{ format.editors "author and editor" output.check } +{ format.authors output.nonnull +crossref missing$ +{ "author and editor" editor either.or.check } +'skip$ +if$ +} +if$ +new.block +format.btitle "title" output.check +crossref missing$ +{ new.clause +format.bvolume output +new.block +format.number.series output +new.sentence +publisher "publisher" output.check +address new.clause.checka +address output +} +{ new.block +format.book.crossref output.nonnull +} +if$ +edition new.clause.checka +format.edition output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {booklet} +{ output.bibitem +format.authors output +new.block +format.title "title" output.check +howpublished address new.block.checkb +howpublished output +address new.clause.checka +address output +format.date output +new.block +note output +fin.entry +} +FUNCTION {inbook} +{ output.bibitem +author empty$ +{ format.editors "author and editor" output.check } +{ format.authors output.nonnull +crossref missing$ +{ "author and editor" editor either.or.check } +'skip$ +if$ +} +if$ +new.block +format.btitle "title" output.check +new.clause +crossref missing$ +{ format.bvolume output +new.clause +format.chapter.pages "chapter and pages" output.check +new.block +format.number.series output +new.sentence +publisher "publisher" output.check +address new.clause.checka +address output +} +{ format.chapter.pages "chapter and pages" output.check +new.block +format.book.crossref output.nonnull +} +if$ +edition new.clause.checka +format.edition output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {incollection} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +crossref missing$ +{ format.in.ed.booktitle "booktitle" output.check +new.clause +format.bvolume output +new.clause +format.number.series output +new.clause +format.chapter.pages output +new.sentence +publisher "publisher" output.check +address new.clause.checka +address output +edition new.clause.checka +format.edition output +format.date "year" output.check +} +{ format.incoll.inproc.crossref output.nonnull +new.clause +format.chapter.pages output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +crossref missing$ +{ format.in.ed.booktitle "booktitle" output.check +volume new.clause.checka +format.bvolume output +number series new.clause.checkb +format.number.series output +pages new.clause.checka +format.pages output +address empty$ +{ organization publisher new.sentence.checkb +organization output +publisher new.clause.checka +publisher output +format.date "year" output.check +} +{ new.clause +address output.nonnull +format.date "year" output.check +new.sentence +organization output +new.clause +publisher output +} +if$ +} +{ format.incoll.inproc.crossref output.nonnull +new.clause +format.pages output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem +author empty$ +{ organization empty$ +'skip$ +{ organization output.nonnull +new.clause +address output +} +if$ +} +{ format.authors output.nonnull } +if$ +new.block +format.btitle "title" output.check +author empty$ +{ organization empty$ +{ address new.block.checka +address output +} +'skip$ +if$ +} +{ organization address new.block.checkb +organization output +address new.clause.checka +address output +} +if$ +edition new.clause.checka +format.edition output +format.date output +new.block +note output +fin.entry +} +FUNCTION {mastersthesis} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +"\abphrase{17}" format.thesis.type output.nonnull +new.clause +school "school" output.check +address new.clause.checka +address output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {misc} +{ output.bibitem +format.authors output +title howpublished new.block.checkb +format.title output +howpublished new.block.checka +howpublished output +format.date output +new.block +note output +fin.entry +empty.misc.check +} +FUNCTION {phdthesis} +{ output.bibitem +format.authors "author" output.check +new.block +format.btitle "title" output.check +new.block +"\abphrase{18}" format.thesis.type output.nonnull +new.clause +school "school" output.check +address new.clause.checka +address output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {proceedings} +{ output.bibitem +editor empty$ +{ organization output } +{ format.editors output.nonnull } +if$ +new.block +format.btitle "title" output.check +volume new.clause.checka +format.bvolume output +number series new.clause.checkb +format.number.series output +address empty$ +{ editor empty$ +{ publisher new.sentence.checka } +{ organization publisher new.sentence.checkb +organization output +publisher new.clause.checka +} +if$ +publisher output +format.date "year" output.check +} +{ new.clause +address output.nonnull +format.date "year" output.check +new.sentence +editor empty$ +'skip$ +{ organization output +new.clause +} +if$ +publisher output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {techreport} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +format.tr.number output.nonnull +new.clause +institution "institution" output.check +address new.clause.checka +address output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {unpublished} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +note "note" output.check +format.date output +fin.entry +} +FUNCTION {default.type} { misc } +MACRO {jan} {"\abmonth{1}"} +MACRO {feb} {"\abmonth{2}"} +MACRO {mar} {"\abmonth{3}"} +MACRO {apr} {"\abmonth{4}"} +MACRO {may} {"\abmonth{5}"} +MACRO {jun} {"\abmonth{6}"} +MACRO {jul} {"\abmonth{7}"} +MACRO {aug} {"\abmonth{8}"} +MACRO {sep} {"\abmonth{9}"} +MACRO {oct} {"\abmonth{10}"} +MACRO {nov} {"\abmonth{11}"} +MACRO {dec} {"\abmonth{12}"} +MACRO {first} {"\abedition{1}"} +MACRO {second} {"\abedition{2}"} +MACRO {third} {"\abedition{3}"} +MACRO {fourth} {"\abedition{4}"} +MACRO {fifth} {"\abedition{5}"} +MACRO {sixth} {"\abedition{6}"} +MACRO {seventh} {"\abedition{7}"} +MACRO {eighth} {"\abedition{8}"} +MACRO {ninth} {"\abedition{9}"} +MACRO {tenth} {"\abedition{10}"} +MACRO {section} {"\abchapter{0}"} +MACRO {paragraph} {"\abchapter{1}"} +MACRO {appendix} {"\abchapter{2}"} +MACRO {part} {"\abchapter{3}"} +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 {sort.format.names} +{ 's := +#1 'nameptr := +"" +s num.names$ 'numnames := +numnames 'namesleft := +{ namesleft #0 > } +{ nameptr #1 > +{ " " * } +'skip$ +if$ +s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := +nameptr numnames = t "others" = and +{ "et al" * } +{ 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 {author.organization.sort} +{ author empty$ +{ organization empty$ +{ key empty$ +{ "to sort, need author, organization, or key in " cite$ * warning$ +"" +} +{ key sortify } +if$ +} +{ "The " #4 organization chop.word sortify } +if$ +} +{ author sort.format.names } +if$ +} +FUNCTION {editor.organization.sort} +{ editor empty$ +{ organization empty$ +{ key empty$ +{ "to sort, need editor, organization, or key in " cite$ * warning$ +"" +} +{ key sortify } +if$ +} +{ "The " #4 organization chop.word sortify } +if$ +} +{ editor sort.format.names } +if$ +} +FUNCTION {presort} +{ type$ "book" = +type$ "inbook" = +or +'author.editor.sort +{ type$ "proceedings" = +'editor.organization.sort +{ type$ "manual" = +'author.organization.sort +'author.sort +if$ +} +if$ +} +if$ +" " +* +year field.or.null sortify +* +" " +* +title field.or.null +sort.format.title +* +#1 entry.max$ substring$ +'sort.key$ := +} +ITERATE {presort} +SORT +STRINGS { longest.label } +INTEGERS { number.label longest.label.width } +FUNCTION {initialize.longest.label} +{ "" 'longest.label := +#1 'number.label := +#0 'longest.label.width := +} +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := +number.label #1 + 'number.label := +label width$ longest.label.width > +{ label 'longest.label := +label width$ 'longest.label.width := +} +'skip$ +if$ +} +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} +FUNCTION {begin.bib} +{ +"\newif\ifabfull\abfullfalse" write$ newline$ +"\input apreambl" write$ newline$ +preamble$ empty$ +'skip$ +{ preamble$ write$ newline$ } +if$ +"\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ +"\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/abstyles/aalpha.bst b/Master/texmf-dist/bibtex/bst/abstyles/aalpha.bst new file mode 100644 index 00000000000..c5442664c6c --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/abstyles/aalpha.bst @@ -0,0 +1,1211 @@ +% BibTeX bibliography style `AALPHA' +ENTRY +{ address +author +booktitle +chapter +edition +editor +howpublished +institution +journal +key +month +note +number +organization +pages +publisher +school +series +title +type +volume +year +} +{} +{ label extra.label sort.label } +INTEGERS { output.state before.all mid.sentence after.sentence after.block +continue.sentence } +FUNCTION {init.state.consts} +{ #0 'before.all := +#1 'mid.sentence := +#2 'after.sentence := +#3 'after.block := +#4 'continue.sentence := +} +STRINGS { s t } +FUNCTION {output.nonnull} +{ 's := +output.state continue.sentence = +{ " " * write$ } +{ 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$ +} +if$ +continue.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 {output.bibitem} +{ newline$ +"\bibitem[" write$ +label write$ +"]{" write$ +cite$ write$ +"}" write$ +newline$ +"" +before.all 'output.state := +} +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 {new.clause} +{ output.state after.sentence = +'skip$ +{ output.state after.block = +'skip$ +{ output.state before.all = +'skip$ +{ mid.sentence 'output.state := } +if$ +} +if$ +} +if$ +} +FUNCTION {not} +{ { #0 } +{ #1 } +if$ +} +FUNCTION {and} +{ 'skip$ +{ pop$ #0 } +if$ +} +FUNCTION {or} +{ { pop$ #1 } +'skip$ +if$ +} +FUNCTION {new.block.checka} +{ empty$ +'skip$ +'new.block +if$ +} +FUNCTION {new.block.checkb} +{ empty$ +swap$ empty$ +and +'skip$ +'new.block +if$ +} +FUNCTION {new.sentence.checka} +{ empty$ +'skip$ +'new.sentence +if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ +swap$ empty$ +and +'skip$ +'new.sentence +if$ +} +FUNCTION {new.clause.checka} +{ empty$ +'skip$ +'new.clause +if$ +} +FUNCTION {new.clause.checkb} +{ empty$ +swap$ empty$ +and +'skip$ +'new.clause +if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ +{ pop$ "" } +'skip$ +if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{2}{" swap$ * "}" * } +if$ +} +FUNCTION {capitalize} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{0}{" swap$ * "}" * } +if$ +} +FUNCTION {boldface} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{3}{" swap$ * "}" * } +if$ +} +FUNCTION {quote} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{1}{" swap$ * "}" * } +if$ +} +FUNCTION {parentheses} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{5}{" swap$ * "}" * } +if$ +} +INTEGERS { nameptr namesleft numnames } +FUNCTION {format.names} +{ 's := +#1 'nameptr := +s num.names$ 'numnames := +numnames 'namesleft := +{ namesleft #0 > } +{ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := +nameptr #1 > +{ namesleft #1 > +{ ", " * t * } +{ numnames #2 > +{ "\abphrase{1}" * } +'skip$ +if$ +t "others" = +{ "\abphrase{2}" * } +{ "\abphrase{0}" * t * } +if$ +} +if$ +} +'t +if$ +nameptr #1 + 'nameptr := +namesleft #1 - 'namesleft := +} +while$ +} +FUNCTION {format.authors} +{ author empty$ +{ "" } +{ author format.names capitalize } +if$ +} +FUNCTION {format.editors} +{ editor empty$ +{ "" } +{ editor format.names capitalize +editor num.names$ #1 > +{ "\abphrase{3}" * } +{ "\abphrase{4}" * } +if$ +} +if$ +} +FUNCTION {format.title} +{ title empty$ +{ "" } +{ title "t" change.case$ } +if$ +} +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ +{ month empty$ +{ "" } +{ "there's a month but no year in " cite$ * warning$ +month parentheses +} +if$ +} +{ month empty$ +{ year parentheses } +{ month " " * year * parentheses } +if$ +} +if$ +} +FUNCTION {format.btitle} +{ title quote +} +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < +{ "~" } +{ " " } +if$ +swap$ * * +} +FUNCTION {either.or.check} +{ empty$ +'pop$ +{ "can't use both " swap$ * " fields in " * cite$ * warning$ } +if$ +} +FUNCTION {format.bvolume} +{ volume empty$ +{ "" } +{ "\abphrase{8}" volume tie.or.space.connect +series empty$ +'skip$ +{ "\abphrase{5}" * series quote * } +if$ +"volume and number" number either.or.check +} +if$ +} +FUNCTION {format.number.series} +{ volume empty$ +{ number empty$ +{ series field.or.null } +{ output.state mid.sentence = output.state continue.sentence = or +{ "\abphrase{10}" } +{ "\abphrase{11}" } +if$ +number tie.or.space.connect +series empty$ +{ "there's a number but no series in " cite$ * warning$ } +{ "\abphrase{6}" * series * } +if$ +} +if$ +} +{ "" } +if$ +} +FUNCTION {format.edition} +{ edition empty$ +{ "" } +{ output.state mid.sentence = output.state continue.sentence = or +{ edition "l" change.case$ "\abphrase{12}" * } +{ edition "t" change.case$ "\abphrase{12}" * } +if$ +} +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 empty$ +{ "" } +{ pages multi.page.check +{ "\abphrase{13}" pages n.dashify tie.or.space.connect } +{ "\abphrase{14}" pages tie.or.space.connect } +if$ +} +if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null boldface +number empty$ +'skip$ +{ "\abtype{4}{" number * "}" * * +volume empty$ +{ "there's a number but no volume in " cite$ * warning$ } +'skip$ +if$ +} +if$ +pages empty$ +'skip$ +{ duplicate$ empty$ +{ pop$ format.pages } +{ ", " * pages n.dashify * } +if$ +} +if$ +} +FUNCTION {format.chapter.pages} +{ chapter empty$ +'format.pages +{ type empty$ +{ "\abphrase{15}" } +{ type "l" change.case$ } +if$ +chapter tie.or.space.connect +pages empty$ +'skip$ +{ ", " * format.pages * } +if$ +} +if$ +} +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ +{ "" } +{ editor empty$ +{ "\abphrase{7}" booktitle quote * } +{ "\abphrase{7}" format.editors * ", " * booktitle quote * } +if$ +} +if$ +} +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ +month empty$ year empty$ note empty$ +and and and and and +key empty$ not and +{ "all relevant fields are empty in " cite$ * warning$ } +'skip$ +if$ +} +FUNCTION {format.thesis.type} +{ type empty$ +'skip$ +{ pop$ +type "t" change.case$ +} +if$ +} +FUNCTION {format.tr.number} +{ type empty$ +{ "\abphrase{16}" } +'type +if$ +number empty$ +{ "t" change.case$ } +{ number tie.or.space.connect } +if$ +} +FUNCTION {format.article.crossref} +{ key empty$ +{ journal empty$ +{ "need key or journal for " cite$ * " to crossref " * crossref * +warning$ +"" +} +{ "\abphrase{7}" journal emphasize * } +if$ +} +{ "\abphrase{7}" key * } +if$ +" \cite{" * crossref * "}" * +} +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ +editor num.names$ duplicate$ +#2 > +{ pop$ "\abphrase{2}" * } +{ #2 < +'skip$ +{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = +{ "\abphrase{2}" * } +{ "\abphrase{0}" * editor #2 "{vv~}{ll}" format.name$ * } +if$ +} +if$ +} +if$ +} +FUNCTION {format.book.crossref} +{ volume empty$ +{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$ +"\abphrase{7}" +} +{ "\abphrase{9}" volume tie.or.space.connect +"\abphrase{5}" * +} +if$ +editor empty$ +editor field.or.null author field.or.null = +or +{ key empty$ +{ series empty$ +{ "need editor, key, or series for " cite$ * " to crossref " * +crossref * warning$ +"" * +} +{ series quote * } +if$ +} +{ key * } +if$ +} +{ format.crossref.editor * } +if$ +" \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ +editor field.or.null author field.or.null = +or +{ key empty$ +{ booktitle empty$ +{ "need editor, key, or booktitle for " cite$ * " to crossref " * +crossref * warning$ +"" +} +{ "\abphrase{7}" booktitle quote * } +if$ +} +{ "\abphrase{7}" key * } +if$ +} +{ "\abphrase{7}" format.crossref.editor * } +if$ +" \cite{" * crossref * "}" * +} +FUNCTION {article} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +crossref missing$ +{ journal emphasize "journal" output.check +format.vol.num.pages output +format.date "year" output.check +} +{ format.article.crossref output.nonnull +new.clause +format.pages output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {book} +{ output.bibitem +author empty$ +{ format.editors "author and editor" output.check } +{ format.authors output.nonnull +crossref missing$ +{ "author and editor" editor either.or.check } +'skip$ +if$ +} +if$ +new.block +format.btitle "title" output.check +crossref missing$ +{ new.clause +format.bvolume output +new.block +format.number.series output +new.sentence +publisher "publisher" output.check +address new.clause.checka +address output +} +{ new.block +format.book.crossref output.nonnull +} +if$ +edition new.clause.checka +format.edition output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {booklet} +{ output.bibitem +format.authors output +new.block +format.title "title" output.check +howpublished address new.block.checkb +howpublished output +address new.clause.checka +address output +format.date output +new.block +note output +fin.entry +} +FUNCTION {inbook} +{ output.bibitem +author empty$ +{ format.editors "author and editor" output.check } +{ format.authors output.nonnull +crossref missing$ +{ "author and editor" editor either.or.check } +'skip$ +if$ +} +if$ +new.block +format.btitle "title" output.check +new.clause +crossref missing$ +{ format.bvolume output +new.clause +format.chapter.pages "chapter and pages" output.check +new.block +format.number.series output +new.sentence +publisher "publisher" output.check +address new.clause.checka +address output +} +{ format.chapter.pages "chapter and pages" output.check +new.block +format.book.crossref output.nonnull +} +if$ +edition new.clause.checka +format.edition output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {incollection} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +crossref missing$ +{ format.in.ed.booktitle "booktitle" output.check +new.clause +format.bvolume output +new.clause +format.number.series output +new.clause +format.chapter.pages output +new.sentence +publisher "publisher" output.check +address new.clause.checka +address output +edition new.clause.checka +format.edition output +format.date "year" output.check +} +{ format.incoll.inproc.crossref output.nonnull +new.clause +format.chapter.pages output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +crossref missing$ +{ format.in.ed.booktitle "booktitle" output.check +volume new.clause.checka +format.bvolume output +number series new.clause.checkb +format.number.series output +pages new.clause.checka +format.pages output +address empty$ +{ organization publisher new.sentence.checkb +organization output +publisher new.clause.checka +publisher output +format.date "year" output.check +} +{ new.clause +address output.nonnull +format.date "year" output.check +new.sentence +organization output +new.clause +publisher output +} +if$ +} +{ format.incoll.inproc.crossref output.nonnull +new.clause +format.pages output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem +author empty$ +{ organization empty$ +'skip$ +{ organization output.nonnull +new.clause +address output +} +if$ +} +{ format.authors output.nonnull } +if$ +new.block +format.btitle "title" output.check +author empty$ +{ organization empty$ +{ address new.block.checka +address output +} +'skip$ +if$ +} +{ organization address new.block.checkb +organization output +address new.clause.checka +address output +} +if$ +edition new.clause.checka +format.edition output +format.date output +new.block +note output +fin.entry +} +FUNCTION {mastersthesis} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +"\abphrase{17}" format.thesis.type output.nonnull +new.clause +school "school" output.check +address new.clause.checka +address output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {misc} +{ output.bibitem +format.authors output +title howpublished new.block.checkb +format.title output +howpublished new.block.checka +howpublished output +format.date output +new.block +note output +fin.entry +empty.misc.check +} +FUNCTION {phdthesis} +{ output.bibitem +format.authors "author" output.check +new.block +format.btitle "title" output.check +new.block +"\abphrase{18}" format.thesis.type output.nonnull +new.clause +school "school" output.check +address new.clause.checka +address output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {proceedings} +{ output.bibitem +editor empty$ +{ organization output } +{ format.editors output.nonnull } +if$ +new.block +format.btitle "title" output.check +volume new.clause.checka +format.bvolume output +number series new.clause.checkb +format.number.series output +address empty$ +{ editor empty$ +{ publisher new.sentence.checka } +{ organization publisher new.sentence.checkb +organization output +publisher new.clause.checka +} +if$ +publisher output +format.date "year" output.check +} +{ new.clause +address output.nonnull +format.date "year" output.check +new.sentence +editor empty$ +'skip$ +{ organization output +new.clause +} +if$ +publisher output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {techreport} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +format.tr.number output.nonnull +new.clause +institution "institution" output.check +address new.clause.checka +address output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {unpublished} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +note "note" output.check +format.date output +fin.entry +} +FUNCTION {default.type} { misc } +MACRO {jan} {"\abmonth{1}"} +MACRO {feb} {"\abmonth{2}"} +MACRO {mar} {"\abmonth{3}"} +MACRO {apr} {"\abmonth{4}"} +MACRO {may} {"\abmonth{5}"} +MACRO {jun} {"\abmonth{6}"} +MACRO {jul} {"\abmonth{7}"} +MACRO {aug} {"\abmonth{8}"} +MACRO {sep} {"\abmonth{9}"} +MACRO {oct} {"\abmonth{10}"} +MACRO {nov} {"\abmonth{11}"} +MACRO {dec} {"\abmonth{12}"} +MACRO {first} {"\abedition{1}"} +MACRO {second} {"\abedition{2}"} +MACRO {third} {"\abedition{3}"} +MACRO {fourth} {"\abedition{4}"} +MACRO {fifth} {"\abedition{5}"} +MACRO {sixth} {"\abedition{6}"} +MACRO {seventh} {"\abedition{7}"} +MACRO {eighth} {"\abedition{8}"} +MACRO {ninth} {"\abedition{9}"} +MACRO {tenth} {"\abedition{10}"} +MACRO {section} {"\abchapter{0}"} +MACRO {paragraph} {"\abchapter{1}"} +MACRO {appendix} {"\abchapter{2}"} +MACRO {part} {"\abchapter{3}"} +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$ +} +INTEGERS { et.al.char.used } +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} +EXECUTE {initialize.et.al.char.used} +FUNCTION {format.lab.names} +{ 's := +s num.names$ 'numnames := +numnames #1 > +{ numnames #4 > +{ #3 'namesleft := } +{ numnames 'namesleft := } +if$ +#1 'nameptr := +"" +{ namesleft #0 > } +{ nameptr numnames = +{ s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = +{ "{\etalchar{+}}" * +#1 'et.al.char.used := +} +{ s nameptr "{v{}}{l{}}" format.name$ * } +if$ +} +{ s nameptr "{v{}}{l{}}" format.name$ * } +if$ +nameptr #1 + 'nameptr := +namesleft #1 - 'namesleft := +} +while$ +numnames #4 > +{ "{\etalchar{+}}" * +#1 'et.al.char.used := +} +'skip$ +if$ +} +{ s #1 "{v{}}{l{}}" format.name$ +duplicate$ text.length$ #2 < +{ pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } +'skip$ +if$ +} +if$ +} +FUNCTION {author.key.label} +{ author empty$ +{ key empty$ +{ cite$ #1 #3 substring$ } +{ key #3 text.prefix$ } +if$ +} +{ author format.lab.names } +if$ +} +FUNCTION {author.editor.key.label} +{ author empty$ +{ editor empty$ +{ key empty$ +{ cite$ #1 #3 substring$ } +{ key #3 text.prefix$ } +if$ +} +{ editor format.lab.names } +if$ +} +{ author format.lab.names } +if$ +} +FUNCTION {author.key.organization.label} +{ author empty$ +{ key empty$ +{ organization empty$ +{ cite$ #1 #3 substring$ } +{ "The " #4 organization chop.word #3 text.prefix$ } +if$ +} +{ key #3 text.prefix$ } +if$ +} +{ author format.lab.names } +if$ +} +FUNCTION {editor.key.organization.label} +{ editor empty$ +{ key empty$ +{ organization empty$ +{ cite$ #1 #3 substring$ } +{ "The " #4 organization chop.word #3 text.prefix$ } +if$ +} +{ key #3 text.prefix$ } +if$ +} +{ editor format.lab.names } +if$ +} +FUNCTION {calc.label} +{ type$ "book" = +type$ "inbook" = +or +'author.editor.key.label +{ type$ "proceedings" = +'editor.key.organization.label +{ type$ "manual" = +'author.key.organization.label +'author.key.label +if$ +} +if$ +} +if$ +duplicate$ +year field.or.null purify$ #-1 #2 substring$ +* +'label := +year field.or.null purify$ #-1 #4 substring$ +* +sortify 'sort.label := +} +FUNCTION {sort.format.names} +{ 's := +#1 'nameptr := +"" +s num.names$ 'numnames := +numnames 'namesleft := +{ namesleft #0 > } +{ nameptr #1 > +{ " " * } +'skip$ +if$ +s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := +nameptr numnames = t "others" = and +{ "et al" * } +{ 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 {author.organization.sort} +{ author empty$ +{ organization empty$ +{ key empty$ +{ "to sort, need author, organization, or key in " cite$ * warning$ +"" +} +{ key sortify } +if$ +} +{ "The " #4 organization chop.word sortify } +if$ +} +{ author sort.format.names } +if$ +} +FUNCTION {editor.organization.sort} +{ editor empty$ +{ organization empty$ +{ key empty$ +{ "to sort, need editor, organization, or key in " cite$ * warning$ +"" +} +{ key sortify } +if$ +} +{ "The " #4 organization chop.word sortify } +if$ +} +{ editor sort.format.names } +if$ +} +FUNCTION {presort} +{ calc.label +sort.label +" " +* +type$ "book" = +type$ "inbook" = +or +'author.editor.sort +{ type$ "proceedings" = +'editor.organization.sort +{ type$ "manual" = +'author.organization.sort +'author.sort +if$ +} +if$ +} +if$ +* +" " +* +year field.or.null sortify +* +" " +* +title field.or.null +sort.format.title +* +#1 entry.max$ substring$ +'sort.key$ := +} +ITERATE {presort} +SORT +STRINGS { longest.label last.sort.label next.extra } +INTEGERS { longest.label.width last.extra.num } +FUNCTION {initialize.longest.label} +{ "" 'longest.label := +#0 int.to.chr$ 'last.sort.label := +"" 'next.extra := +#0 'longest.label.width := +#0 'last.extra.num := +} +FUNCTION {forward.pass} +{ last.sort.label sort.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 := +sort.label 'last.sort.label := +} +if$ +} +FUNCTION {reverse.pass} +{ next.extra "b" = +{ "a" 'extra.label := } +'skip$ +if$ +label extra.label * 'label := +label width$ longest.label.width > +{ label 'longest.label := +label width$ 'longest.label.width := +} +'skip$ +if$ +extra.label 'next.extra := +} +EXECUTE {initialize.longest.label} +ITERATE {forward.pass} +REVERSE {reverse.pass} +FUNCTION {begin.bib} +{ +"\newif\ifabfull\abfulltrue" write$ newline$ +"\input apreambl" write$ newline$ +et.al.char.used +{ "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } +'skip$ +if$ +preamble$ empty$ +'skip$ +{ preamble$ write$ newline$ } +if$ +"\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ +"\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/abstyles/anotit.bst b/Master/texmf-dist/bibtex/bst/abstyles/anotit.bst new file mode 100644 index 00000000000..6e8ec41b53e --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/abstyles/anotit.bst @@ -0,0 +1,1075 @@ +% BibTeX bibliography style `ANOTIT' +ENTRY +{ address +author +booktitle +chapter +edition +editor +howpublished +institution +journal +key +month +note +number +organization +pages +publisher +school +series +title +type +volume +year +} +{} +{ label } +INTEGERS { output.state before.all mid.sentence after.sentence after.block +continue.sentence } +FUNCTION {init.state.consts} +{ #0 'before.all := +#1 'mid.sentence := +#2 'after.sentence := +#3 'after.block := +#4 'continue.sentence := +} +STRINGS { s t } +FUNCTION {output.nonnull} +{ 's := +output.state continue.sentence = +{ " " * write$ } +{ 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$ +} +if$ +continue.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 {output.bibitem} +{ newline$ +"\bibitem{" write$ +cite$ write$ +"}" write$ +newline$ +"" +before.all 'output.state := +} +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 {new.clause} +{ output.state after.sentence = +'skip$ +{ output.state after.block = +'skip$ +{ output.state before.all = +'skip$ +{ mid.sentence 'output.state := } +if$ +} +if$ +} +if$ +} +FUNCTION {not} +{ { #0 } +{ #1 } +if$ +} +FUNCTION {and} +{ 'skip$ +{ pop$ #0 } +if$ +} +FUNCTION {or} +{ { pop$ #1 } +'skip$ +if$ +} +FUNCTION {new.block.checka} +{ empty$ +'skip$ +'new.block +if$ +} +FUNCTION {new.block.checkb} +{ empty$ +swap$ empty$ +and +'skip$ +'new.block +if$ +} +FUNCTION {new.sentence.checka} +{ empty$ +'skip$ +'new.sentence +if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ +swap$ empty$ +and +'skip$ +'new.sentence +if$ +} +FUNCTION {new.clause.checka} +{ empty$ +'skip$ +'new.clause +if$ +} +FUNCTION {new.clause.checkb} +{ empty$ +swap$ empty$ +and +'skip$ +'new.clause +if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ +{ pop$ "" } +'skip$ +if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{2}{" swap$ * "}" * } +if$ +} +FUNCTION {capitalize} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{0}{" swap$ * "}" * } +if$ +} +FUNCTION {boldface} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{3}{" swap$ * "}" * } +if$ +} +FUNCTION {quote} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{1}{" swap$ * "}" * } +if$ +} +FUNCTION {parentheses} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{5}{" swap$ * "}" * } +if$ +} +INTEGERS { nameptr namesleft numnames } +FUNCTION {format.names} +{ 's := +#1 'nameptr := +s num.names$ 'numnames := +numnames 'namesleft := +{ namesleft #0 > } +{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := +nameptr #1 > +{ namesleft #1 > +{ ", " * t * } +{ numnames #2 > +{ "\abphrase{1}" * } +'skip$ +if$ +t "others" = +{ "\abphrase{2}" * } +{ "\abphrase{0}" * t * } +if$ +} +if$ +} +'t +if$ +nameptr #1 + 'nameptr := +namesleft #1 - 'namesleft := +} +while$ +} +FUNCTION {format.authors} +{ author empty$ +{ "" } +{ author format.names capitalize } +if$ +} +FUNCTION {format.editors} +{ editor empty$ +{ "" } +{ editor format.names capitalize +editor num.names$ #1 > +{ "\abphrase{3}" * } +{ "\abphrase{4}" * } +if$ +} +if$ +} +FUNCTION {format.title} +{ title empty$ +{ "" } +{ title "t" change.case$ } +if$ +} +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ +{ month empty$ +{ "" } +{ "there's a month but no year in " cite$ * warning$ +month parentheses +} +if$ +} +{ month empty$ +{ year parentheses } +{ month " " * year * parentheses } +if$ +} +if$ +} +FUNCTION {format.btitle} +{ title quote +} +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < +{ "~" } +{ " " } +if$ +swap$ * * +} +FUNCTION {either.or.check} +{ empty$ +'pop$ +{ "can't use both " swap$ * " fields in " * cite$ * warning$ } +if$ +} +FUNCTION {format.bvolume} +{ volume empty$ +{ "" } +{ "\abphrase{8}" volume tie.or.space.connect +series empty$ +'skip$ +{ "\abphrase{5}" * series quote * } +if$ +"volume and number" number either.or.check +} +if$ +} +FUNCTION {format.number.series} +{ volume empty$ +{ number empty$ +{ series field.or.null } +{ output.state mid.sentence = output.state continue.sentence = or +{ "\abphrase{10}" } +{ "\abphrase{11}" } +if$ +number tie.or.space.connect +series empty$ +{ "there's a number but no series in " cite$ * warning$ } +{ "\abphrase{6}" * series * } +if$ +} +if$ +} +{ "" } +if$ +} +FUNCTION {format.edition} +{ edition empty$ +{ "" } +{ output.state mid.sentence = output.state continue.sentence = or +{ edition "l" change.case$ "\abphrase{12}" * } +{ edition "t" change.case$ "\abphrase{12}" * } +if$ +} +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 empty$ +{ "" } +{ pages multi.page.check +{ "\abphrase{13}" pages n.dashify tie.or.space.connect } +{ "\abphrase{14}" pages tie.or.space.connect } +if$ +} +if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null boldface +number empty$ +'skip$ +{ "\abtype{4}{" number * "}" * * +volume empty$ +{ "there's a number but no volume in " cite$ * warning$ } +'skip$ +if$ +} +if$ +pages empty$ +'skip$ +{ duplicate$ empty$ +{ pop$ format.pages } +{ ", " * pages n.dashify * } +if$ +} +if$ +} +FUNCTION {format.chapter.pages} +{ chapter empty$ +'format.pages +{ type empty$ +{ "\abphrase{15}" } +{ type "l" change.case$ } +if$ +chapter tie.or.space.connect +pages empty$ +'skip$ +{ ", " * format.pages * } +if$ +} +if$ +} +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ +{ "" } +{ editor empty$ +{ "\abphrase{7}" booktitle quote * } +{ "\abphrase{7}" format.editors * ", " * booktitle quote * } +if$ +} +if$ +} +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ +month empty$ year empty$ note empty$ +and and and and and +key empty$ not and +{ "all relevant fields are empty in " cite$ * warning$ } +'skip$ +if$ +} +FUNCTION {format.thesis.type} +{ type empty$ +'skip$ +{ pop$ +type "t" change.case$ +} +if$ +} +FUNCTION {format.tr.number} +{ type empty$ +{ "\abphrase{16}" } +'type +if$ +number empty$ +{ "t" change.case$ } +{ number tie.or.space.connect } +if$ +} +FUNCTION {format.article.crossref} +{ key empty$ +{ journal empty$ +{ "need key or journal for " cite$ * " to crossref " * crossref * +warning$ +"" +} +{ "\abphrase{7}" journal emphasize * } +if$ +} +{ "\abphrase{7}" key * } +if$ +" \cite{" * crossref * "}" * +} +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ +editor num.names$ duplicate$ +#2 > +{ pop$ "\abphrase{2}" * } +{ #2 < +'skip$ +{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = +{ "\abphrase{2}" * } +{ "\abphrase{0}" * editor #2 "{vv~}{ll}" format.name$ * } +if$ +} +if$ +} +if$ +} +FUNCTION {format.book.crossref} +{ volume empty$ +{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$ +"\abphrase{7}" +} +{ "\abphrase{9}" volume tie.or.space.connect +"\abphrase{5}" * +} +if$ +editor empty$ +editor field.or.null author field.or.null = +or +{ key empty$ +{ series empty$ +{ "need editor, key, or series for " cite$ * " to crossref " * +crossref * warning$ +"" * +} +{ series quote * } +if$ +} +{ key * } +if$ +} +{ format.crossref.editor * } +if$ +" \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ +editor field.or.null author field.or.null = +or +{ key empty$ +{ booktitle empty$ +{ "need editor, key, or booktitle for " cite$ * " to crossref " * +crossref * warning$ +"" +} +{ "\abphrase{7}" booktitle quote * } +if$ +} +{ "\abphrase{7}" key * } +if$ +} +{ "\abphrase{7}" format.crossref.editor * } +if$ +" \cite{" * crossref * "}" * +} +FUNCTION {article} +{ output.bibitem +format.authors "author" output.check +new.block +crossref missing$ +{ journal emphasize "journal" output.check +format.vol.num.pages output +format.date "year" output.check +} +{ format.article.crossref output.nonnull +new.clause +format.pages output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {book} +{ output.bibitem +author empty$ +{ format.editors "author and editor" output.check } +{ format.authors output.nonnull +crossref missing$ +{ "author and editor" editor either.or.check } +'skip$ +if$ +} +if$ +new.block +format.btitle "title" output.check +crossref missing$ +{ new.clause +format.bvolume output +new.block +format.number.series output +new.sentence +publisher "publisher" output.check +address new.clause.checka +address output +} +{ new.block +format.book.crossref output.nonnull +} +if$ +edition new.clause.checka +format.edition output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {booklet} +{ output.bibitem +format.authors output +new.block +format.title "title" output.check +howpublished address new.block.checkb +howpublished output +address new.clause.checka +address output +format.date output +new.block +note output +fin.entry +} +FUNCTION {inbook} +{ output.bibitem +author empty$ +{ format.editors "author and editor" output.check } +{ format.authors output.nonnull +crossref missing$ +{ "author and editor" editor either.or.check } +'skip$ +if$ +} +if$ +new.block +format.btitle "title" output.check +new.clause +crossref missing$ +{ format.bvolume output +new.clause +format.chapter.pages "chapter and pages" output.check +new.block +format.number.series output +new.sentence +publisher "publisher" output.check +address new.clause.checka +address output +} +{ format.chapter.pages "chapter and pages" output.check +new.block +format.book.crossref output.nonnull +} +if$ +edition new.clause.checka +format.edition output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {incollection} +{ output.bibitem +format.authors "author" output.check +new.block +chapter empty$ pages empty$ and +{ +format.title "title" output.check +new.block +} +'skip$ +if$ +crossref missing$ +{ format.in.ed.booktitle "booktitle" output.check +new.clause +format.bvolume output +new.clause +format.number.series output +new.clause +format.chapter.pages output +new.sentence +publisher "publisher" output.check +address new.clause.checka +address output +edition new.clause.checka +format.edition output +format.date "year" output.check +} +{ format.incoll.inproc.crossref output.nonnull +new.clause +format.chapter.pages output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem +format.authors "author" output.check +new.block +pages empty$ +{ +format.title "title" output.check +new.block +} +'skip$ +if$ +crossref missing$ +{ format.in.ed.booktitle "booktitle" output.check +volume new.clause.checka +format.bvolume output +number series new.clause.checkb +format.number.series output +pages new.clause.checka +format.pages output +address empty$ +{ organization publisher new.sentence.checkb +organization output +publisher new.clause.checka +publisher output +format.date "year" output.check +} +{ new.clause +address output.nonnull +format.date "year" output.check +new.sentence +organization output +new.clause +publisher output +} +if$ +} +{ format.incoll.inproc.crossref output.nonnull +new.clause +format.pages output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem +author empty$ +{ organization empty$ +'skip$ +{ organization output.nonnull +new.clause +address output +} +if$ +} +{ format.authors output.nonnull } +if$ +new.block +format.btitle "title" output.check +author empty$ +{ organization empty$ +{ address new.block.checka +address output +} +'skip$ +if$ +} +{ organization address new.block.checkb +organization output +address new.clause.checka +address output +} +if$ +edition new.clause.checka +format.edition output +format.date output +new.block +note output +fin.entry +} +FUNCTION {mastersthesis} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +"\abphrase{17}" format.thesis.type output.nonnull +new.clause +school "school" output.check +address new.clause.checka +address output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {misc} +{ output.bibitem +format.authors output +title howpublished new.block.checkb +format.title output +howpublished new.block.checka +howpublished output +format.date output +new.block +note output +fin.entry +empty.misc.check +} +FUNCTION {phdthesis} +{ output.bibitem +format.authors "author" output.check +new.block +format.btitle "title" output.check +new.block +"\abphrase{18}" format.thesis.type output.nonnull +new.clause +school "school" output.check +address new.clause.checka +address output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {proceedings} +{ output.bibitem +editor empty$ +{ organization output } +{ format.editors output.nonnull } +if$ +new.block +format.btitle "title" output.check +volume new.clause.checka +format.bvolume output +number series new.clause.checkb +format.number.series output +address empty$ +{ editor empty$ +{ publisher new.sentence.checka } +{ organization publisher new.sentence.checkb +organization output +publisher new.clause.checka +} +if$ +publisher output +format.date "year" output.check +} +{ new.clause +address output.nonnull +format.date "year" output.check +new.sentence +editor empty$ +'skip$ +{ organization output +new.clause +} +if$ +publisher output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {techreport} +{ output.bibitem +format.authors "author" output.check +new.block +number empty$ +{ +format.title "title" output.check +new.block +} +'skip$ +if$ +format.tr.number output.nonnull +new.clause +institution "institution" output.check +address new.clause.checka +address output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {unpublished} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +note "note" output.check +format.date output +fin.entry +} +FUNCTION {default.type} { misc } +MACRO {jan} {"\abmonth{1}"} +MACRO {feb} {"\abmonth{2}"} +MACRO {mar} {"\abmonth{3}"} +MACRO {apr} {"\abmonth{4}"} +MACRO {may} {"\abmonth{5}"} +MACRO {jun} {"\abmonth{6}"} +MACRO {jul} {"\abmonth{7}"} +MACRO {aug} {"\abmonth{8}"} +MACRO {sep} {"\abmonth{9}"} +MACRO {oct} {"\abmonth{10}"} +MACRO {nov} {"\abmonth{11}"} +MACRO {dec} {"\abmonth{12}"} +MACRO {first} {"\abedition{1}"} +MACRO {second} {"\abedition{2}"} +MACRO {third} {"\abedition{3}"} +MACRO {fourth} {"\abedition{4}"} +MACRO {fifth} {"\abedition{5}"} +MACRO {sixth} {"\abedition{6}"} +MACRO {seventh} {"\abedition{7}"} +MACRO {eighth} {"\abedition{8}"} +MACRO {ninth} {"\abedition{9}"} +MACRO {tenth} {"\abedition{10}"} +MACRO {section} {"\abchapter{0}"} +MACRO {paragraph} {"\abchapter{1}"} +MACRO {appendix} {"\abchapter{2}"} +MACRO {part} {"\abchapter{3}"} +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 {sort.format.names} +{ 's := +#1 'nameptr := +"" +s num.names$ 'numnames := +numnames 'namesleft := +{ namesleft #0 > } +{ nameptr #1 > +{ " " * } +'skip$ +if$ +s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := +nameptr numnames = t "others" = and +{ "et al" * } +{ 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 {author.organization.sort} +{ author empty$ +{ organization empty$ +{ key empty$ +{ "to sort, need author, organization, or key in " cite$ * warning$ +"" +} +{ key sortify } +if$ +} +{ "The " #4 organization chop.word sortify } +if$ +} +{ author sort.format.names } +if$ +} +FUNCTION {editor.organization.sort} +{ editor empty$ +{ organization empty$ +{ key empty$ +{ "to sort, need editor, organization, or key in " cite$ * warning$ +"" +} +{ key sortify } +if$ +} +{ "The " #4 organization chop.word sortify } +if$ +} +{ editor sort.format.names } +if$ +} +FUNCTION {presort} +{ type$ "book" = +type$ "inbook" = +or +'author.editor.sort +{ type$ "proceedings" = +'editor.organization.sort +{ type$ "manual" = +'author.organization.sort +'author.sort +if$ +} +if$ +} +if$ +" " +* +year field.or.null sortify +* +" " +* +title field.or.null +sort.format.title +* +#1 entry.max$ substring$ +'sort.key$ := +} +ITERATE {presort} +SORT +STRINGS { longest.label } +INTEGERS { number.label longest.label.width } +FUNCTION {initialize.longest.label} +{ "" 'longest.label := +#1 'number.label := +#0 'longest.label.width := +} +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := +number.label #1 + 'number.label := +label width$ longest.label.width > +{ label 'longest.label := +label width$ 'longest.label.width := +} +'skip$ +if$ +} +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} +FUNCTION {begin.bib} +{ +"\newif\ifabfull\abfullfalse" write$ newline$ +"\input apreambl" write$ newline$ +preamble$ empty$ +'skip$ +{ preamble$ write$ newline$ } +if$ +"\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ +"\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/abstyles/aplain.bst b/Master/texmf-dist/bibtex/bst/abstyles/aplain.bst new file mode 100644 index 00000000000..f9ac9f4a0af --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/abstyles/aplain.bst @@ -0,0 +1,1062 @@ +% BibTeX bibliography style `APLAIN' +ENTRY +{ address +author +booktitle +chapter +edition +editor +howpublished +institution +journal +key +month +note +number +organization +pages +publisher +school +series +title +type +volume +year +} +{} +{ label } +INTEGERS { output.state before.all mid.sentence after.sentence after.block +continue.sentence } +FUNCTION {init.state.consts} +{ #0 'before.all := +#1 'mid.sentence := +#2 'after.sentence := +#3 'after.block := +#4 'continue.sentence := +} +STRINGS { s t } +FUNCTION {output.nonnull} +{ 's := +output.state continue.sentence = +{ " " * write$ } +{ 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$ +} +if$ +continue.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 {output.bibitem} +{ newline$ +"\bibitem{" write$ +cite$ write$ +"}" write$ +newline$ +"" +before.all 'output.state := +} +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 {new.clause} +{ output.state after.sentence = +'skip$ +{ output.state after.block = +'skip$ +{ output.state before.all = +'skip$ +{ mid.sentence 'output.state := } +if$ +} +if$ +} +if$ +} +FUNCTION {not} +{ { #0 } +{ #1 } +if$ +} +FUNCTION {and} +{ 'skip$ +{ pop$ #0 } +if$ +} +FUNCTION {or} +{ { pop$ #1 } +'skip$ +if$ +} +FUNCTION {new.block.checka} +{ empty$ +'skip$ +'new.block +if$ +} +FUNCTION {new.block.checkb} +{ empty$ +swap$ empty$ +and +'skip$ +'new.block +if$ +} +FUNCTION {new.sentence.checka} +{ empty$ +'skip$ +'new.sentence +if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ +swap$ empty$ +and +'skip$ +'new.sentence +if$ +} +FUNCTION {new.clause.checka} +{ empty$ +'skip$ +'new.clause +if$ +} +FUNCTION {new.clause.checkb} +{ empty$ +swap$ empty$ +and +'skip$ +'new.clause +if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ +{ pop$ "" } +'skip$ +if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{2}{" swap$ * "}" * } +if$ +} +FUNCTION {capitalize} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{0}{" swap$ * "}" * } +if$ +} +FUNCTION {boldface} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{3}{" swap$ * "}" * } +if$ +} +FUNCTION {quote} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{1}{" swap$ * "}" * } +if$ +} +FUNCTION {parentheses} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{5}{" swap$ * "}" * } +if$ +} +INTEGERS { nameptr namesleft numnames } +FUNCTION {format.names} +{ 's := +#1 'nameptr := +s num.names$ 'numnames := +numnames 'namesleft := +{ namesleft #0 > } +{ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := +nameptr #1 > +{ namesleft #1 > +{ ", " * t * } +{ numnames #2 > +{ "\abphrase{1}" * } +'skip$ +if$ +t "others" = +{ "\abphrase{2}" * } +{ "\abphrase{0}" * t * } +if$ +} +if$ +} +'t +if$ +nameptr #1 + 'nameptr := +namesleft #1 - 'namesleft := +} +while$ +} +FUNCTION {format.authors} +{ author empty$ +{ "" } +{ author format.names capitalize } +if$ +} +FUNCTION {format.editors} +{ editor empty$ +{ "" } +{ editor format.names capitalize +editor num.names$ #1 > +{ "\abphrase{3}" * } +{ "\abphrase{4}" * } +if$ +} +if$ +} +FUNCTION {format.title} +{ title empty$ +{ "" } +{ title "t" change.case$ } +if$ +} +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ +{ month empty$ +{ "" } +{ "there's a month but no year in " cite$ * warning$ +month parentheses +} +if$ +} +{ month empty$ +{ year parentheses } +{ month " " * year * parentheses } +if$ +} +if$ +} +FUNCTION {format.btitle} +{ title quote +} +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < +{ "~" } +{ " " } +if$ +swap$ * * +} +FUNCTION {either.or.check} +{ empty$ +'pop$ +{ "can't use both " swap$ * " fields in " * cite$ * warning$ } +if$ +} +FUNCTION {format.bvolume} +{ volume empty$ +{ "" } +{ "\abphrase{8}" volume tie.or.space.connect +series empty$ +'skip$ +{ "\abphrase{5}" * series quote * } +if$ +"volume and number" number either.or.check +} +if$ +} +FUNCTION {format.number.series} +{ volume empty$ +{ number empty$ +{ series field.or.null } +{ output.state mid.sentence = output.state continue.sentence = or +{ "\abphrase{10}" } +{ "\abphrase{11}" } +if$ +number tie.or.space.connect +series empty$ +{ "there's a number but no series in " cite$ * warning$ } +{ "\abphrase{6}" * series * } +if$ +} +if$ +} +{ "" } +if$ +} +FUNCTION {format.edition} +{ edition empty$ +{ "" } +{ output.state mid.sentence = output.state continue.sentence = or +{ edition "l" change.case$ "\abphrase{12}" * } +{ edition "t" change.case$ "\abphrase{12}" * } +if$ +} +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 empty$ +{ "" } +{ pages multi.page.check +{ "\abphrase{13}" pages n.dashify tie.or.space.connect } +{ "\abphrase{14}" pages tie.or.space.connect } +if$ +} +if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null boldface +number empty$ +'skip$ +{ "\abtype{4}{" number * "}" * * +volume empty$ +{ "there's a number but no volume in " cite$ * warning$ } +'skip$ +if$ +} +if$ +pages empty$ +'skip$ +{ duplicate$ empty$ +{ pop$ format.pages } +{ ", " * pages n.dashify * } +if$ +} +if$ +} +FUNCTION {format.chapter.pages} +{ chapter empty$ +'format.pages +{ type empty$ +{ "\abphrase{15}" } +{ type "l" change.case$ } +if$ +chapter tie.or.space.connect +pages empty$ +'skip$ +{ ", " * format.pages * } +if$ +} +if$ +} +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ +{ "" } +{ editor empty$ +{ "\abphrase{7}" booktitle quote * } +{ "\abphrase{7}" format.editors * ", " * booktitle quote * } +if$ +} +if$ +} +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ +month empty$ year empty$ note empty$ +and and and and and +key empty$ not and +{ "all relevant fields are empty in " cite$ * warning$ } +'skip$ +if$ +} +FUNCTION {format.thesis.type} +{ type empty$ +'skip$ +{ pop$ +type "t" change.case$ +} +if$ +} +FUNCTION {format.tr.number} +{ type empty$ +{ "\abphrase{16}" } +'type +if$ +number empty$ +{ "t" change.case$ } +{ number tie.or.space.connect } +if$ +} +FUNCTION {format.article.crossref} +{ key empty$ +{ journal empty$ +{ "need key or journal for " cite$ * " to crossref " * crossref * +warning$ +"" +} +{ "\abphrase{7}" journal emphasize * } +if$ +} +{ "\abphrase{7}" key * } +if$ +" \cite{" * crossref * "}" * +} +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ +editor num.names$ duplicate$ +#2 > +{ pop$ "\abphrase{2}" * } +{ #2 < +'skip$ +{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = +{ "\abphrase{2}" * } +{ "\abphrase{0}" * editor #2 "{vv~}{ll}" format.name$ * } +if$ +} +if$ +} +if$ +} +FUNCTION {format.book.crossref} +{ volume empty$ +{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$ +"\abphrase{7}" +} +{ "\abphrase{9}" volume tie.or.space.connect +"\abphrase{5}" * +} +if$ +editor empty$ +editor field.or.null author field.or.null = +or +{ key empty$ +{ series empty$ +{ "need editor, key, or series for " cite$ * " to crossref " * +crossref * warning$ +"" * +} +{ series quote * } +if$ +} +{ key * } +if$ +} +{ format.crossref.editor * } +if$ +" \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ +editor field.or.null author field.or.null = +or +{ key empty$ +{ booktitle empty$ +{ "need editor, key, or booktitle for " cite$ * " to crossref " * +crossref * warning$ +"" +} +{ "\abphrase{7}" booktitle quote * } +if$ +} +{ "\abphrase{7}" key * } +if$ +} +{ "\abphrase{7}" format.crossref.editor * } +if$ +" \cite{" * crossref * "}" * +} +FUNCTION {article} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +crossref missing$ +{ journal emphasize "journal" output.check +format.vol.num.pages output +format.date "year" output.check +} +{ format.article.crossref output.nonnull +new.clause +format.pages output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {book} +{ output.bibitem +author empty$ +{ format.editors "author and editor" output.check } +{ format.authors output.nonnull +crossref missing$ +{ "author and editor" editor either.or.check } +'skip$ +if$ +} +if$ +new.block +format.btitle "title" output.check +crossref missing$ +{ new.clause +format.bvolume output +new.block +format.number.series output +new.sentence +publisher "publisher" output.check +address new.clause.checka +address output +} +{ new.block +format.book.crossref output.nonnull +} +if$ +edition new.clause.checka +format.edition output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {booklet} +{ output.bibitem +format.authors output +new.block +format.title "title" output.check +howpublished address new.block.checkb +howpublished output +address new.clause.checka +address output +format.date output +new.block +note output +fin.entry +} +FUNCTION {inbook} +{ output.bibitem +author empty$ +{ format.editors "author and editor" output.check } +{ format.authors output.nonnull +crossref missing$ +{ "author and editor" editor either.or.check } +'skip$ +if$ +} +if$ +new.block +format.btitle "title" output.check +new.clause +crossref missing$ +{ format.bvolume output +new.clause +format.chapter.pages "chapter and pages" output.check +new.block +format.number.series output +new.sentence +publisher "publisher" output.check +address new.clause.checka +address output +} +{ format.chapter.pages "chapter and pages" output.check +new.block +format.book.crossref output.nonnull +} +if$ +edition new.clause.checka +format.edition output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {incollection} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +crossref missing$ +{ format.in.ed.booktitle "booktitle" output.check +new.clause +format.bvolume output +new.clause +format.number.series output +new.clause +format.chapter.pages output +new.sentence +publisher "publisher" output.check +address new.clause.checka +address output +edition new.clause.checka +format.edition output +format.date "year" output.check +} +{ format.incoll.inproc.crossref output.nonnull +new.clause +format.chapter.pages output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +crossref missing$ +{ format.in.ed.booktitle "booktitle" output.check +volume new.clause.checka +format.bvolume output +number series new.clause.checkb +format.number.series output +pages new.clause.checka +format.pages output +address empty$ +{ organization publisher new.sentence.checkb +organization output +publisher new.clause.checka +publisher output +format.date "year" output.check +} +{ new.clause +address output.nonnull +format.date "year" output.check +new.sentence +organization output +new.clause +publisher output +} +if$ +} +{ format.incoll.inproc.crossref output.nonnull +new.clause +format.pages output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem +author empty$ +{ organization empty$ +'skip$ +{ organization output.nonnull +new.clause +address output +} +if$ +} +{ format.authors output.nonnull } +if$ +new.block +format.btitle "title" output.check +author empty$ +{ organization empty$ +{ address new.block.checka +address output +} +'skip$ +if$ +} +{ organization address new.block.checkb +organization output +address new.clause.checka +address output +} +if$ +edition new.clause.checka +format.edition output +format.date output +new.block +note output +fin.entry +} +FUNCTION {mastersthesis} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +"\abphrase{17}" format.thesis.type output.nonnull +new.clause +school "school" output.check +address new.clause.checka +address output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {misc} +{ output.bibitem +format.authors output +title howpublished new.block.checkb +format.title output +howpublished new.block.checka +howpublished output +format.date output +new.block +note output +fin.entry +empty.misc.check +} +FUNCTION {phdthesis} +{ output.bibitem +format.authors "author" output.check +new.block +format.btitle "title" output.check +new.block +"\abphrase{18}" format.thesis.type output.nonnull +new.clause +school "school" output.check +address new.clause.checka +address output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {proceedings} +{ output.bibitem +editor empty$ +{ organization output } +{ format.editors output.nonnull } +if$ +new.block +format.btitle "title" output.check +volume new.clause.checka +format.bvolume output +number series new.clause.checkb +format.number.series output +address empty$ +{ editor empty$ +{ publisher new.sentence.checka } +{ organization publisher new.sentence.checkb +organization output +publisher new.clause.checka +} +if$ +publisher output +format.date "year" output.check +} +{ new.clause +address output.nonnull +format.date "year" output.check +new.sentence +editor empty$ +'skip$ +{ organization output +new.clause +} +if$ +publisher output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {techreport} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +format.tr.number output.nonnull +new.clause +institution "institution" output.check +address new.clause.checka +address output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {unpublished} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +note "note" output.check +format.date output +fin.entry +} +FUNCTION {default.type} { misc } +MACRO {jan} {"\abmonth{1}"} +MACRO {feb} {"\abmonth{2}"} +MACRO {mar} {"\abmonth{3}"} +MACRO {apr} {"\abmonth{4}"} +MACRO {may} {"\abmonth{5}"} +MACRO {jun} {"\abmonth{6}"} +MACRO {jul} {"\abmonth{7}"} +MACRO {aug} {"\abmonth{8}"} +MACRO {sep} {"\abmonth{9}"} +MACRO {oct} {"\abmonth{10}"} +MACRO {nov} {"\abmonth{11}"} +MACRO {dec} {"\abmonth{12}"} +MACRO {first} {"\abedition{1}"} +MACRO {second} {"\abedition{2}"} +MACRO {third} {"\abedition{3}"} +MACRO {fourth} {"\abedition{4}"} +MACRO {fifth} {"\abedition{5}"} +MACRO {sixth} {"\abedition{6}"} +MACRO {seventh} {"\abedition{7}"} +MACRO {eighth} {"\abedition{8}"} +MACRO {ninth} {"\abedition{9}"} +MACRO {tenth} {"\abedition{10}"} +MACRO {section} {"\abchapter{0}"} +MACRO {paragraph} {"\abchapter{1}"} +MACRO {appendix} {"\abchapter{2}"} +MACRO {part} {"\abchapter{3}"} +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 {sort.format.names} +{ 's := +#1 'nameptr := +"" +s num.names$ 'numnames := +numnames 'namesleft := +{ namesleft #0 > } +{ nameptr #1 > +{ " " * } +'skip$ +if$ +s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := +nameptr numnames = t "others" = and +{ "et al" * } +{ 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 {author.organization.sort} +{ author empty$ +{ organization empty$ +{ key empty$ +{ "to sort, need author, organization, or key in " cite$ * warning$ +"" +} +{ key sortify } +if$ +} +{ "The " #4 organization chop.word sortify } +if$ +} +{ author sort.format.names } +if$ +} +FUNCTION {editor.organization.sort} +{ editor empty$ +{ organization empty$ +{ key empty$ +{ "to sort, need editor, organization, or key in " cite$ * warning$ +"" +} +{ key sortify } +if$ +} +{ "The " #4 organization chop.word sortify } +if$ +} +{ editor sort.format.names } +if$ +} +FUNCTION {presort} +{ type$ "book" = +type$ "inbook" = +or +'author.editor.sort +{ type$ "proceedings" = +'editor.organization.sort +{ type$ "manual" = +'author.organization.sort +'author.sort +if$ +} +if$ +} +if$ +" " +* +year field.or.null sortify +* +" " +* +title field.or.null +sort.format.title +* +#1 entry.max$ substring$ +'sort.key$ := +} +ITERATE {presort} +SORT +STRINGS { longest.label } +INTEGERS { number.label longest.label.width } +FUNCTION {initialize.longest.label} +{ "" 'longest.label := +#1 'number.label := +#0 'longest.label.width := +} +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := +number.label #1 + 'number.label := +label width$ longest.label.width > +{ label 'longest.label := +label width$ 'longest.label.width := +} +'skip$ +if$ +} +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} +FUNCTION {begin.bib} +{ +"\newif\ifabfull\abfulltrue" write$ newline$ +"\input apreambl" write$ newline$ +preamble$ empty$ +'skip$ +{ preamble$ write$ newline$ } +if$ +"\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ +"\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/abstyles/aunsnot.bst b/Master/texmf-dist/bibtex/bst/abstyles/aunsnot.bst new file mode 100644 index 00000000000..6a918d201e5 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/abstyles/aunsnot.bst @@ -0,0 +1,941 @@ +% BibTeX bibliography style `AUNSNOT' +ENTRY +{ address +author +booktitle +chapter +edition +editor +howpublished +institution +journal +key +month +note +number +organization +pages +publisher +school +series +title +type +volume +year +} +{} +{ label } +INTEGERS { output.state before.all mid.sentence after.sentence after.block +continue.sentence } +FUNCTION {init.state.consts} +{ #0 'before.all := +#1 'mid.sentence := +#2 'after.sentence := +#3 'after.block := +#4 'continue.sentence := +} +STRINGS { s t } +FUNCTION {output.nonnull} +{ 's := +output.state continue.sentence = +{ " " * write$ } +{ 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$ +} +if$ +continue.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 {output.bibitem} +{ newline$ +"\bibitem{" write$ +cite$ write$ +"}" write$ +newline$ +"" +before.all 'output.state := +} +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 {new.clause} +{ output.state after.sentence = +'skip$ +{ output.state after.block = +'skip$ +{ output.state before.all = +'skip$ +{ mid.sentence 'output.state := } +if$ +} +if$ +} +if$ +} +FUNCTION {not} +{ { #0 } +{ #1 } +if$ +} +FUNCTION {and} +{ 'skip$ +{ pop$ #0 } +if$ +} +FUNCTION {or} +{ { pop$ #1 } +'skip$ +if$ +} +FUNCTION {new.block.checka} +{ empty$ +'skip$ +'new.block +if$ +} +FUNCTION {new.block.checkb} +{ empty$ +swap$ empty$ +and +'skip$ +'new.block +if$ +} +FUNCTION {new.sentence.checka} +{ empty$ +'skip$ +'new.sentence +if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ +swap$ empty$ +and +'skip$ +'new.sentence +if$ +} +FUNCTION {new.clause.checka} +{ empty$ +'skip$ +'new.clause +if$ +} +FUNCTION {new.clause.checkb} +{ empty$ +swap$ empty$ +and +'skip$ +'new.clause +if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ +{ pop$ "" } +'skip$ +if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{2}{" swap$ * "}" * } +if$ +} +FUNCTION {capitalize} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{0}{" swap$ * "}" * } +if$ +} +FUNCTION {boldface} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{3}{" swap$ * "}" * } +if$ +} +FUNCTION {quote} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{1}{" swap$ * "}" * } +if$ +} +FUNCTION {parentheses} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{5}{" swap$ * "}" * } +if$ +} +INTEGERS { nameptr namesleft numnames } +FUNCTION {format.names} +{ 's := +#1 'nameptr := +s num.names$ 'numnames := +numnames 'namesleft := +{ namesleft #0 > } +{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := +nameptr #1 > +{ namesleft #1 > +{ ", " * t * } +{ numnames #2 > +{ "\abphrase{1}" * } +'skip$ +if$ +t "others" = +{ "\abphrase{2}" * } +{ "\abphrase{0}" * t * } +if$ +} +if$ +} +'t +if$ +nameptr #1 + 'nameptr := +namesleft #1 - 'namesleft := +} +while$ +} +FUNCTION {format.authors} +{ author empty$ +{ "" } +{ author format.names capitalize } +if$ +} +FUNCTION {format.editors} +{ editor empty$ +{ "" } +{ editor format.names capitalize +editor num.names$ #1 > +{ "\abphrase{3}" * } +{ "\abphrase{4}" * } +if$ +} +if$ +} +FUNCTION {format.title} +{ title empty$ +{ "" } +{ title "t" change.case$ } +if$ +} +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ +{ month empty$ +{ "" } +{ "there's a month but no year in " cite$ * warning$ +month parentheses +} +if$ +} +{ month empty$ +{ year parentheses } +{ month " " * year * parentheses } +if$ +} +if$ +} +FUNCTION {format.btitle} +{ title quote +} +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < +{ "~" } +{ " " } +if$ +swap$ * * +} +FUNCTION {either.or.check} +{ empty$ +'pop$ +{ "can't use both " swap$ * " fields in " * cite$ * warning$ } +if$ +} +FUNCTION {format.bvolume} +{ volume empty$ +{ "" } +{ "\abphrase{8}" volume tie.or.space.connect +series empty$ +'skip$ +{ "\abphrase{5}" * series quote * } +if$ +"volume and number" number either.or.check +} +if$ +} +FUNCTION {format.number.series} +{ volume empty$ +{ number empty$ +{ series field.or.null } +{ output.state mid.sentence = output.state continue.sentence = or +{ "\abphrase{10}" } +{ "\abphrase{11}" } +if$ +number tie.or.space.connect +series empty$ +{ "there's a number but no series in " cite$ * warning$ } +{ "\abphrase{6}" * series * } +if$ +} +if$ +} +{ "" } +if$ +} +FUNCTION {format.edition} +{ edition empty$ +{ "" } +{ output.state mid.sentence = output.state continue.sentence = or +{ edition "l" change.case$ "\abphrase{12}" * } +{ edition "t" change.case$ "\abphrase{12}" * } +if$ +} +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 empty$ +{ "" } +{ pages multi.page.check +{ "\abphrase{13}" pages n.dashify tie.or.space.connect } +{ "\abphrase{14}" pages tie.or.space.connect } +if$ +} +if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null boldface +number empty$ +'skip$ +{ "\abtype{4}{" number * "}" * * +volume empty$ +{ "there's a number but no volume in " cite$ * warning$ } +'skip$ +if$ +} +if$ +pages empty$ +'skip$ +{ duplicate$ empty$ +{ pop$ format.pages } +{ ", " * pages n.dashify * } +if$ +} +if$ +} +FUNCTION {format.chapter.pages} +{ chapter empty$ +'format.pages +{ type empty$ +{ "\abphrase{15}" } +{ type "l" change.case$ } +if$ +chapter tie.or.space.connect +pages empty$ +'skip$ +{ ", " * format.pages * } +if$ +} +if$ +} +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ +{ "" } +{ editor empty$ +{ "\abphrase{7}" booktitle quote * } +{ "\abphrase{7}" format.editors * ", " * booktitle quote * } +if$ +} +if$ +} +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ +month empty$ year empty$ note empty$ +and and and and and +{ "all relevant fields are empty in " cite$ * warning$ } +'skip$ +if$ +} +FUNCTION {format.thesis.type} +{ type empty$ +'skip$ +{ pop$ +type "t" change.case$ +} +if$ +} +FUNCTION {format.tr.number} +{ type empty$ +{ "\abphrase{16}" } +'type +if$ +number empty$ +{ "t" change.case$ } +{ number tie.or.space.connect } +if$ +} +FUNCTION {format.article.crossref} +{ key empty$ +{ journal empty$ +{ "need key or journal for " cite$ * " to crossref " * crossref * +warning$ +"" +} +{ "\abphrase{7}" journal emphasize * } +if$ +} +{ "\abphrase{7}" key * } +if$ +" \cite{" * crossref * "}" * +} +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ +editor num.names$ duplicate$ +#2 > +{ pop$ "\abphrase{2}" * } +{ #2 < +'skip$ +{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = +{ "\abphrase{2}" * } +{ "\abphrase{0}" * editor #2 "{vv~}{ll}" format.name$ * } +if$ +} +if$ +} +if$ +} +FUNCTION {format.book.crossref} +{ volume empty$ +{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$ +"\abphrase{7}" +} +{ "\abphrase{9}" volume tie.or.space.connect +"\abphrase{5}" * +} +if$ +editor empty$ +editor field.or.null author field.or.null = +or +{ key empty$ +{ series empty$ +{ "need editor, key, or series for " cite$ * " to crossref " * +crossref * warning$ +"" * +} +{ series quote * } +if$ +} +{ key * } +if$ +} +{ format.crossref.editor * } +if$ +" \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ +editor field.or.null author field.or.null = +or +{ key empty$ +{ booktitle empty$ +{ "need editor, key, or booktitle for " cite$ * " to crossref " * +crossref * warning$ +"" +} +{ "\abphrase{7}" booktitle quote * } +if$ +} +{ "\abphrase{7}" key * } +if$ +} +{ "\abphrase{7}" format.crossref.editor * } +if$ +" \cite{" * crossref * "}" * +} +FUNCTION {article} +{ output.bibitem +format.authors "author" output.check +new.block +crossref missing$ +{ journal emphasize "journal" output.check +format.vol.num.pages output +format.date "year" output.check +} +{ format.article.crossref output.nonnull +new.clause +format.pages output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {book} +{ output.bibitem +author empty$ +{ format.editors "author and editor" output.check } +{ format.authors output.nonnull +crossref missing$ +{ "author and editor" editor either.or.check } +'skip$ +if$ +} +if$ +new.block +format.btitle "title" output.check +crossref missing$ +{ new.clause +format.bvolume output +new.block +format.number.series output +new.sentence +publisher "publisher" output.check +address new.clause.checka +address output +} +{ new.block +format.book.crossref output.nonnull +} +if$ +edition new.clause.checka +format.edition output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {booklet} +{ output.bibitem +format.authors output +new.block +format.title "title" output.check +howpublished address new.block.checkb +howpublished output +address new.clause.checka +address output +format.date output +new.block +note output +fin.entry +} +FUNCTION {inbook} +{ output.bibitem +author empty$ +{ format.editors "author and editor" output.check } +{ format.authors output.nonnull +crossref missing$ +{ "author and editor" editor either.or.check } +'skip$ +if$ +} +if$ +new.block +format.btitle "title" output.check +new.clause +crossref missing$ +{ format.bvolume output +new.clause +format.chapter.pages "chapter and pages" output.check +new.block +format.number.series output +new.sentence +publisher "publisher" output.check +address new.clause.checka +address output +} +{ format.chapter.pages "chapter and pages" output.check +new.block +format.book.crossref output.nonnull +} +if$ +edition new.clause.checka +format.edition output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {incollection} +{ output.bibitem +format.authors "author" output.check +new.block +chapter empty$ pages empty$ and +{ +format.title "title" output.check +new.block +} +'skip$ +if$ +crossref missing$ +{ format.in.ed.booktitle "booktitle" output.check +new.clause +format.bvolume output +new.clause +format.number.series output +new.clause +format.chapter.pages output +new.sentence +publisher "publisher" output.check +address new.clause.checka +address output +edition new.clause.checka +format.edition output +format.date "year" output.check +} +{ format.incoll.inproc.crossref output.nonnull +new.clause +format.chapter.pages output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem +format.authors "author" output.check +new.block +pages empty$ +{ +format.title "title" output.check +new.block +} +'skip$ +if$ +crossref missing$ +{ format.in.ed.booktitle "booktitle" output.check +volume new.clause.checka +format.bvolume output +number series new.clause.checkb +format.number.series output +pages new.clause.checka +format.pages output +address empty$ +{ organization publisher new.sentence.checkb +organization output +publisher new.clause.checka +publisher output +format.date "year" output.check +} +{ new.clause +address output.nonnull +format.date "year" output.check +new.sentence +organization output +new.clause +publisher output +} +if$ +} +{ format.incoll.inproc.crossref output.nonnull +new.clause +format.pages output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem +author empty$ +{ organization empty$ +'skip$ +{ organization output.nonnull +new.clause +address output +} +if$ +} +{ format.authors output.nonnull } +if$ +new.block +format.btitle "title" output.check +author empty$ +{ organization empty$ +{ address new.block.checka +address output +} +'skip$ +if$ +} +{ organization address new.block.checkb +organization output +address new.clause.checka +address output +} +if$ +edition new.clause.checka +format.edition output +format.date output +new.block +note output +fin.entry +} +FUNCTION {mastersthesis} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +"\abphrase{17}" format.thesis.type output.nonnull +new.clause +school "school" output.check +address new.clause.checka +address output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {misc} +{ output.bibitem +format.authors output +title howpublished new.block.checkb +format.title output +howpublished new.block.checka +howpublished output +format.date output +new.block +note output +fin.entry +empty.misc.check +} +FUNCTION {phdthesis} +{ output.bibitem +format.authors "author" output.check +new.block +format.btitle "title" output.check +new.block +"\abphrase{18}" format.thesis.type output.nonnull +new.clause +school "school" output.check +address new.clause.checka +address output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {proceedings} +{ output.bibitem +editor empty$ +{ organization output } +{ format.editors output.nonnull } +if$ +new.block +format.btitle "title" output.check +volume new.clause.checka +format.bvolume output +number series new.clause.checkb +format.number.series output +address empty$ +{ editor empty$ +{ publisher new.sentence.checka } +{ organization publisher new.sentence.checkb +organization output +publisher new.clause.checka +} +if$ +publisher output +format.date "year" output.check +} +{ new.clause +address output.nonnull +format.date "year" output.check +new.sentence +editor empty$ +'skip$ +{ organization output +new.clause +} +if$ +publisher output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {techreport} +{ output.bibitem +format.authors "author" output.check +new.block +number empty$ +{ +format.title "title" output.check +new.block +} +'skip$ +if$ +format.tr.number output.nonnull +new.clause +institution "institution" output.check +address new.clause.checka +address output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {unpublished} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +note "note" output.check +format.date output +fin.entry +} +FUNCTION {default.type} { misc } +MACRO {jan} {"\abmonth{1}"} +MACRO {feb} {"\abmonth{2}"} +MACRO {mar} {"\abmonth{3}"} +MACRO {apr} {"\abmonth{4}"} +MACRO {may} {"\abmonth{5}"} +MACRO {jun} {"\abmonth{6}"} +MACRO {jul} {"\abmonth{7}"} +MACRO {aug} {"\abmonth{8}"} +MACRO {sep} {"\abmonth{9}"} +MACRO {oct} {"\abmonth{10}"} +MACRO {nov} {"\abmonth{11}"} +MACRO {dec} {"\abmonth{12}"} +MACRO {first} {"\abedition{1}"} +MACRO {second} {"\abedition{2}"} +MACRO {third} {"\abedition{3}"} +MACRO {fourth} {"\abedition{4}"} +MACRO {fifth} {"\abedition{5}"} +MACRO {sixth} {"\abedition{6}"} +MACRO {seventh} {"\abedition{7}"} +MACRO {eighth} {"\abedition{8}"} +MACRO {ninth} {"\abedition{9}"} +MACRO {tenth} {"\abedition{10}"} +MACRO {section} {"\abchapter{0}"} +MACRO {paragraph} {"\abchapter{1}"} +MACRO {appendix} {"\abchapter{2}"} +MACRO {part} {"\abchapter{3}"} +READ +STRINGS { longest.label } +INTEGERS { number.label longest.label.width } +FUNCTION {initialize.longest.label} +{ "" 'longest.label := +#1 'number.label := +#0 'longest.label.width := +} +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := +number.label #1 + 'number.label := +label width$ longest.label.width > +{ label 'longest.label := +label width$ 'longest.label.width := +} +'skip$ +if$ +} +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} +FUNCTION {begin.bib} +{ +"\newif\ifabfull\abfullfalse" write$ newline$ +"\input apreambl" write$ newline$ +preamble$ empty$ +'skip$ +{ preamble$ write$ newline$ } +if$ +"\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ +"\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/abstyles/aunsrt.bst b/Master/texmf-dist/bibtex/bst/abstyles/aunsrt.bst new file mode 100644 index 00000000000..a610403e428 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/abstyles/aunsrt.bst @@ -0,0 +1,928 @@ +% BibTeX bibliography style `AUNSRT' +ENTRY +{ address +author +booktitle +chapter +edition +editor +howpublished +institution +journal +key +month +note +number +organization +pages +publisher +school +series +title +type +volume +year +} +{} +{ label } +INTEGERS { output.state before.all mid.sentence after.sentence after.block +continue.sentence } +FUNCTION {init.state.consts} +{ #0 'before.all := +#1 'mid.sentence := +#2 'after.sentence := +#3 'after.block := +#4 'continue.sentence := +} +STRINGS { s t } +FUNCTION {output.nonnull} +{ 's := +output.state continue.sentence = +{ " " * write$ } +{ 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$ +} +if$ +continue.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 {output.bibitem} +{ newline$ +"\bibitem{" write$ +cite$ write$ +"}" write$ +newline$ +"" +before.all 'output.state := +} +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 {new.clause} +{ output.state after.sentence = +'skip$ +{ output.state after.block = +'skip$ +{ output.state before.all = +'skip$ +{ mid.sentence 'output.state := } +if$ +} +if$ +} +if$ +} +FUNCTION {not} +{ { #0 } +{ #1 } +if$ +} +FUNCTION {and} +{ 'skip$ +{ pop$ #0 } +if$ +} +FUNCTION {or} +{ { pop$ #1 } +'skip$ +if$ +} +FUNCTION {new.block.checka} +{ empty$ +'skip$ +'new.block +if$ +} +FUNCTION {new.block.checkb} +{ empty$ +swap$ empty$ +and +'skip$ +'new.block +if$ +} +FUNCTION {new.sentence.checka} +{ empty$ +'skip$ +'new.sentence +if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ +swap$ empty$ +and +'skip$ +'new.sentence +if$ +} +FUNCTION {new.clause.checka} +{ empty$ +'skip$ +'new.clause +if$ +} +FUNCTION {new.clause.checkb} +{ empty$ +swap$ empty$ +and +'skip$ +'new.clause +if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ +{ pop$ "" } +'skip$ +if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{2}{" swap$ * "}" * } +if$ +} +FUNCTION {capitalize} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{0}{" swap$ * "}" * } +if$ +} +FUNCTION {boldface} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{3}{" swap$ * "}" * } +if$ +} +FUNCTION {quote} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{1}{" swap$ * "}" * } +if$ +} +FUNCTION {parentheses} +{ duplicate$ empty$ +{ pop$ "" } +{ "\abtype{5}{" swap$ * "}" * } +if$ +} +INTEGERS { nameptr namesleft numnames } +FUNCTION {format.names} +{ 's := +#1 'nameptr := +s num.names$ 'numnames := +numnames 'namesleft := +{ namesleft #0 > } +{ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := +nameptr #1 > +{ namesleft #1 > +{ ", " * t * } +{ numnames #2 > +{ "\abphrase{1}" * } +'skip$ +if$ +t "others" = +{ "\abphrase{2}" * } +{ "\abphrase{0}" * t * } +if$ +} +if$ +} +'t +if$ +nameptr #1 + 'nameptr := +namesleft #1 - 'namesleft := +} +while$ +} +FUNCTION {format.authors} +{ author empty$ +{ "" } +{ author format.names capitalize } +if$ +} +FUNCTION {format.editors} +{ editor empty$ +{ "" } +{ editor format.names capitalize +editor num.names$ #1 > +{ "\abphrase{3}" * } +{ "\abphrase{4}" * } +if$ +} +if$ +} +FUNCTION {format.title} +{ title empty$ +{ "" } +{ title "t" change.case$ } +if$ +} +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ +{ month empty$ +{ "" } +{ "there's a month but no year in " cite$ * warning$ +month parentheses +} +if$ +} +{ month empty$ +{ year parentheses } +{ month " " * year * parentheses } +if$ +} +if$ +} +FUNCTION {format.btitle} +{ title quote +} +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < +{ "~" } +{ " " } +if$ +swap$ * * +} +FUNCTION {either.or.check} +{ empty$ +'pop$ +{ "can't use both " swap$ * " fields in " * cite$ * warning$ } +if$ +} +FUNCTION {format.bvolume} +{ volume empty$ +{ "" } +{ "\abphrase{8}" volume tie.or.space.connect +series empty$ +'skip$ +{ "\abphrase{5}" * series quote * } +if$ +"volume and number" number either.or.check +} +if$ +} +FUNCTION {format.number.series} +{ volume empty$ +{ number empty$ +{ series field.or.null } +{ output.state mid.sentence = output.state continue.sentence = or +{ "\abphrase{10}" } +{ "\abphrase{11}" } +if$ +number tie.or.space.connect +series empty$ +{ "there's a number but no series in " cite$ * warning$ } +{ "\abphrase{6}" * series * } +if$ +} +if$ +} +{ "" } +if$ +} +FUNCTION {format.edition} +{ edition empty$ +{ "" } +{ output.state mid.sentence = output.state continue.sentence = or +{ edition "l" change.case$ "\abphrase{12}" * } +{ edition "t" change.case$ "\abphrase{12}" * } +if$ +} +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 empty$ +{ "" } +{ pages multi.page.check +{ "\abphrase{13}" pages n.dashify tie.or.space.connect } +{ "\abphrase{14}" pages tie.or.space.connect } +if$ +} +if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null boldface +number empty$ +'skip$ +{ "\abtype{4}{" number * "}" * * +volume empty$ +{ "there's a number but no volume in " cite$ * warning$ } +'skip$ +if$ +} +if$ +pages empty$ +'skip$ +{ duplicate$ empty$ +{ pop$ format.pages } +{ ", " * pages n.dashify * } +if$ +} +if$ +} +FUNCTION {format.chapter.pages} +{ chapter empty$ +'format.pages +{ type empty$ +{ "\abphrase{15}" } +{ type "l" change.case$ } +if$ +chapter tie.or.space.connect +pages empty$ +'skip$ +{ ", " * format.pages * } +if$ +} +if$ +} +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ +{ "" } +{ editor empty$ +{ "\abphrase{7}" booktitle quote * } +{ "\abphrase{7}" format.editors * ", " * booktitle quote * } +if$ +} +if$ +} +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ +month empty$ year empty$ note empty$ +and and and and and +{ "all relevant fields are empty in " cite$ * warning$ } +'skip$ +if$ +} +FUNCTION {format.thesis.type} +{ type empty$ +'skip$ +{ pop$ +type "t" change.case$ +} +if$ +} +FUNCTION {format.tr.number} +{ type empty$ +{ "\abphrase{16}" } +'type +if$ +number empty$ +{ "t" change.case$ } +{ number tie.or.space.connect } +if$ +} +FUNCTION {format.article.crossref} +{ key empty$ +{ journal empty$ +{ "need key or journal for " cite$ * " to crossref " * crossref * +warning$ +"" +} +{ "\abphrase{7}" journal emphasize * } +if$ +} +{ "\abphrase{7}" key * } +if$ +" \cite{" * crossref * "}" * +} +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ +editor num.names$ duplicate$ +#2 > +{ pop$ "\abphrase{2}" * } +{ #2 < +'skip$ +{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = +{ "\abphrase{2}" * } +{ "\abphrase{0}" * editor #2 "{vv~}{ll}" format.name$ * } +if$ +} +if$ +} +if$ +} +FUNCTION {format.book.crossref} +{ volume empty$ +{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$ +"\abphrase{7}" +} +{ "\abphrase{9}" volume tie.or.space.connect +"\abphrase{5}" * +} +if$ +editor empty$ +editor field.or.null author field.or.null = +or +{ key empty$ +{ series empty$ +{ "need editor, key, or series for " cite$ * " to crossref " * +crossref * warning$ +"" * +} +{ series quote * } +if$ +} +{ key * } +if$ +} +{ format.crossref.editor * } +if$ +" \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ +editor field.or.null author field.or.null = +or +{ key empty$ +{ booktitle empty$ +{ "need editor, key, or booktitle for " cite$ * " to crossref " * +crossref * warning$ +"" +} +{ "\abphrase{7}" booktitle quote * } +if$ +} +{ "\abphrase{7}" key * } +if$ +} +{ "\abphrase{7}" format.crossref.editor * } +if$ +" \cite{" * crossref * "}" * +} +FUNCTION {article} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +crossref missing$ +{ journal emphasize "journal" output.check +format.vol.num.pages output +format.date "year" output.check +} +{ format.article.crossref output.nonnull +new.clause +format.pages output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {book} +{ output.bibitem +author empty$ +{ format.editors "author and editor" output.check } +{ format.authors output.nonnull +crossref missing$ +{ "author and editor" editor either.or.check } +'skip$ +if$ +} +if$ +new.block +format.btitle "title" output.check +crossref missing$ +{ new.clause +format.bvolume output +new.block +format.number.series output +new.sentence +publisher "publisher" output.check +address new.clause.checka +address output +} +{ new.block +format.book.crossref output.nonnull +} +if$ +edition new.clause.checka +format.edition output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {booklet} +{ output.bibitem +format.authors output +new.block +format.title "title" output.check +howpublished address new.block.checkb +howpublished output +address new.clause.checka +address output +format.date output +new.block +note output +fin.entry +} +FUNCTION {inbook} +{ output.bibitem +author empty$ +{ format.editors "author and editor" output.check } +{ format.authors output.nonnull +crossref missing$ +{ "author and editor" editor either.or.check } +'skip$ +if$ +} +if$ +new.block +format.btitle "title" output.check +new.clause +crossref missing$ +{ format.bvolume output +new.clause +format.chapter.pages "chapter and pages" output.check +new.block +format.number.series output +new.sentence +publisher "publisher" output.check +address new.clause.checka +address output +} +{ format.chapter.pages "chapter and pages" output.check +new.block +format.book.crossref output.nonnull +} +if$ +edition new.clause.checka +format.edition output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {incollection} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +crossref missing$ +{ format.in.ed.booktitle "booktitle" output.check +new.clause +format.bvolume output +new.clause +format.number.series output +new.clause +format.chapter.pages output +new.sentence +publisher "publisher" output.check +address new.clause.checka +address output +edition new.clause.checka +format.edition output +format.date "year" output.check +} +{ format.incoll.inproc.crossref output.nonnull +new.clause +format.chapter.pages output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +crossref missing$ +{ format.in.ed.booktitle "booktitle" output.check +volume new.clause.checka +format.bvolume output +number series new.clause.checkb +format.number.series output +pages new.clause.checka +format.pages output +address empty$ +{ organization publisher new.sentence.checkb +organization output +publisher new.clause.checka +publisher output +format.date "year" output.check +} +{ new.clause +address output.nonnull +format.date "year" output.check +new.sentence +organization output +new.clause +publisher output +} +if$ +} +{ format.incoll.inproc.crossref output.nonnull +new.clause +format.pages output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem +author empty$ +{ organization empty$ +'skip$ +{ organization output.nonnull +new.clause +address output +} +if$ +} +{ format.authors output.nonnull } +if$ +new.block +format.btitle "title" output.check +author empty$ +{ organization empty$ +{ address new.block.checka +address output +} +'skip$ +if$ +} +{ organization address new.block.checkb +organization output +address new.clause.checka +address output +} +if$ +edition new.clause.checka +format.edition output +format.date output +new.block +note output +fin.entry +} +FUNCTION {mastersthesis} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +"\abphrase{17}" format.thesis.type output.nonnull +new.clause +school "school" output.check +address new.clause.checka +address output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {misc} +{ output.bibitem +format.authors output +title howpublished new.block.checkb +format.title output +howpublished new.block.checka +howpublished output +format.date output +new.block +note output +fin.entry +empty.misc.check +} +FUNCTION {phdthesis} +{ output.bibitem +format.authors "author" output.check +new.block +format.btitle "title" output.check +new.block +"\abphrase{18}" format.thesis.type output.nonnull +new.clause +school "school" output.check +address new.clause.checka +address output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {proceedings} +{ output.bibitem +editor empty$ +{ organization output } +{ format.editors output.nonnull } +if$ +new.block +format.btitle "title" output.check +volume new.clause.checka +format.bvolume output +number series new.clause.checkb +format.number.series output +address empty$ +{ editor empty$ +{ publisher new.sentence.checka } +{ organization publisher new.sentence.checkb +organization output +publisher new.clause.checka +} +if$ +publisher output +format.date "year" output.check +} +{ new.clause +address output.nonnull +format.date "year" output.check +new.sentence +editor empty$ +'skip$ +{ organization output +new.clause +} +if$ +publisher output +} +if$ +new.block +note output +fin.entry +} +FUNCTION {techreport} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +format.tr.number output.nonnull +new.clause +institution "institution" output.check +address new.clause.checka +address output +format.date "year" output.check +new.block +note output +fin.entry +} +FUNCTION {unpublished} +{ output.bibitem +format.authors "author" output.check +new.block +format.title "title" output.check +new.block +note "note" output.check +format.date output +fin.entry +} +FUNCTION {default.type} { misc } +MACRO {jan} {"\abmonth{1}"} +MACRO {feb} {"\abmonth{2}"} +MACRO {mar} {"\abmonth{3}"} +MACRO {apr} {"\abmonth{4}"} +MACRO {may} {"\abmonth{5}"} +MACRO {jun} {"\abmonth{6}"} +MACRO {jul} {"\abmonth{7}"} +MACRO {aug} {"\abmonth{8}"} +MACRO {sep} {"\abmonth{9}"} +MACRO {oct} {"\abmonth{10}"} +MACRO {nov} {"\abmonth{11}"} +MACRO {dec} {"\abmonth{12}"} +MACRO {first} {"\abedition{1}"} +MACRO {second} {"\abedition{2}"} +MACRO {third} {"\abedition{3}"} +MACRO {fourth} {"\abedition{4}"} +MACRO {fifth} {"\abedition{5}"} +MACRO {sixth} {"\abedition{6}"} +MACRO {seventh} {"\abedition{7}"} +MACRO {eighth} {"\abedition{8}"} +MACRO {ninth} {"\abedition{9}"} +MACRO {tenth} {"\abedition{10}"} +MACRO {section} {"\abchapter{0}"} +MACRO {paragraph} {"\abchapter{1}"} +MACRO {appendix} {"\abchapter{2}"} +MACRO {part} {"\abchapter{3}"} +READ +STRINGS { longest.label } +INTEGERS { number.label longest.label.width } +FUNCTION {initialize.longest.label} +{ "" 'longest.label := +#1 'number.label := +#0 'longest.label.width := +} +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := +number.label #1 + 'number.label := +label width$ longest.label.width > +{ label 'longest.label := +label width$ 'longest.label.width := +} +'skip$ +if$ +} +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} +FUNCTION {begin.bib} +{ +"\newif\ifabfull\abfulltrue" write$ newline$ +"\input apreambl" write$ newline$ +preamble$ empty$ +'skip$ +{ preamble$ write$ newline$ } +if$ +"\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ +"\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/achemso/achemso.bst b/Master/texmf-dist/bibtex/bst/achemso/achemso.bst new file mode 100644 index 00000000000..fa59deec2ac --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/achemso/achemso.bst @@ -0,0 +1,943 @@ +%% +%% This is file `achemso.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% achemso.dtx (with options: `huvudkod') +%% +%% Copyright (c) 1995-97 by Mats Dahlgren . +%% All rights reserved. See the file `achemso.ins' for information +%% on how you may (re-)distribute the `achemso' package files. +%% +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + annotate + } + {} + { label } + +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 = + { ", " * 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ skip$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +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$ "" } + { "\textit{" swap$ * "}" * } + if$ +} + +FUNCTION {emphasizec} +{ duplicate$ empty$ + { pop$ "" } + { "\textit{" swap$ * ",}" * } + if$ +} + +FUNCTION {emphasizesc} +{ duplicate$ empty$ + { pop$ "" } + { "\textit{" swap$ * ";}" * } + if$ +} + +FUNCTION {slantc} +{ duplicate$ empty$ + { pop$ "" } + { "\textsl{" swap$ * ",}" * } + if$ +} + +FUNCTION {emboldenc} +{ duplicate$ empty$ + { pop$ "" } + { "\textbf{" swap$ * ",}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +INTEGERS { etal } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames #15 > + s numnames "{ll}" format.name$ "others" = numnames #1 > and + or 'etal := + etal + { #1 #1 + 'namesleft := } + { numnames 'namesleft := } + if$ + { namesleft #0 > } + { s nameptr "{vv~}{ll,}{~jj,}{~f.}" format.name$ 't := + nameptr #1 > +{ namesleft #1 > + { ";\ \ " * t * } + { nameptr #2 > +{ "" * } +'skip$ + if$ + t "others" = + etal or +{ " \textit{et al.}\ " * } +{ ";\ \ " * t * } + if$ + } + if$ +} +'t + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > +{ ",\ \ Eds.; " * } +{ ",\ \ Ed.; " * } + if$ + } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { "" } + 'year + if$ +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ +'skip$ +{ " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ +{ series field.or.null } + { series empty$ + { "there's a number but no series in " cite$ * warning$ } + { series " " * number * "; " * } + if$ +} + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition " ed.;" * } + 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 empty$ + { "" } + { pages multi.page.check +{ "pages" pages n.dashify tie.or.space.connect } +{ "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.pages.a} +{ pages empty$ + { "" } + { "page" pages tie.or.space.connect } + if$ +} + +FUNCTION {format.yr.vol.pages} +{ year field.or.null emboldenc + " " swap$ * * + volume field.or.null slantc + " " swap$ * * + pages empty$ + 'skip$ + { duplicate$ empty$ +{ pop$ format.pages.a } +{ " " * pages * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ +{ "Chapter" } +{ type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ +'skip$ +{ ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis} +{ type empty$ + {"Thesis,"} + {type " thesis," * } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ +{ "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" +} +{ "In " journal * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < +'skip$ +{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ +} + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ +{ series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "\textit{" * series * "}" * } + if$ +} +{ key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ +{ booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In \textit{" booktitle * ",}" * } + if$ +} +{ "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {in.book} + { "In " output + booktitle emphasize + volume empty$ + {skip$} + {", Vol.~" * volume *} + if$ + edition empty$ + {";" * output} + {"," * output + edition " ed.;\" * output} + if$ + editor missing$ + { skip$ } + { format.editors output } + if$ + format.number.series output + new.sentence + publisher ":" * "publisher" output.check + address "," * "address" output.check +} + +FUNCTION {book.vol.ed} +{ "" volume empty$ + {skip$} + {" Vol.~" * volume *} + if$ + edition empty$ + {";" * output} + {"," * output + edition " ed.;\" * output} + if$ +} + +FUNCTION {thesis.affilation} +{ school "," * "school" output.check + institution empty$ + 'skip$ + {institution "," * output} + if$ +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + crossref missing$ + { journal field.or.null emphasize + format.yr.vol.pages + output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + note output + fin.entry +} + +FUNCTION {submitted} +{ output.bibitem + format.authors "author" output.check + new.block + "submitted for publication in" output + note empty$ + { journal emphasize "journal" output.check } + { journal emphasizec "journal" output.check + note output } + if$ + fin.entry +} + +FUNCTION {inpress} +{ output.bibitem + format.authors "author" output.check + journal emphasizec "journal" output.check + "in press" output + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ +{ "author and editor" editor either.or.check } +'skip$ + if$ + } + if$ + booktitle empty$ + { title emphasizesc output } + { booktitle emphasizesc output } + if$ + crossref missing$ + { format.bvolume output + format.number.series output + new.sentence + publisher ":" * "publisher" output.check + address "," * "address" output.check + } + { format.book.crossref output.nonnull } + if$ + format.edition output + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors "author" output.check + " ``" title * "'', " * "title" output.check + howpublished empty$ + { skip$ } + { howpublished "," * output} + if$ + address empty$ + { skip$ } + { address "," * output} + if$ + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + format.authors "author" output.check + " " title * ". " * "title" output.check + in.book + chapter empty$ + {format.date "year" output.check} + {year empty$ + { "empty year field in " * cite$ * warning$ } + { year "; " * output + format.chapter.pages output } + if$ + } + if$ + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + " " title * ". " * "title" output.check + in.book + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {inproceedings} { inbook } + +FUNCTION {conference} { inbook } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ +'skip$ +{ organization ", " * address * output +} + if$ + } + { format.authors output.nonnull } + if$ + "``" title * "'', " * "title" output.check + author empty$ + { organization empty$ +{ address empty$ + 'skip$ + { address "," * output } + if$ +} +'skip$ + if$ + } + { organization empty$ + 'skip$ + { organization "," * output + address empty$ + 'skip$ + { address "," * output } + if$ + } + if$ + } + if$ + format.edition output + format.date output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + "``" title * "'', " * "title" output.check + "Master's thesis, " output + thesis.affilation + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title empty$ + 'skip$ + { "``" title * "'', " * output } + if$ + howpublished empty$ + 'skip$ + {howpublished "," * output } + if$ + format.date output + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + title emphasizec "title" output.check + format.thesis output.nonnull + thesis.affilation + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + booktitle empty$ + { title emphasizec output } + { booktitle emphasizec output } + if$ + book.vol.ed + format.number.series output + publisher empty$ + { address empty$ + { format.date "year" output.check } + { address "," * output + format.date "year" output.check } + if$ + } + { address empty$ + { publisher "," * output + format.date "year" output.check } + { publisher ": " * address * "," * output + format.date "year" output.check } + if$ + } + if$ + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + "``" title * "'', " * "title" output.check + type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { ", " * } + { " " * number * "," * } + if$ + output.nonnull + institution "," * "institution" output.check + address empty$ + { skip$ } + { address "," * output } + if$ + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + note empty$ + { "Unpublished data" output } + { year empty$ + { note output } + { note ", " * year * output } + if$ } + if$ + fin.entry +} + +FUNCTION {remark} +{ output.bibitem + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} +MACRO {feb} {"Feb."} +MACRO {mar} {"Mar."} +MACRO {apr} {"Apr."} +MACRO {may} {"May"} +MACRO {jun} {"June"} +MACRO {jul} {"July"} +MACRO {aug} {"Aug."} +MACRO {sep} {"Sept."} +MACRO {oct} {"Oct."} +MACRO {nov} {"Nov."} +MACRO {dec} {"Dec."} + +MACRO {acchemr} {"Acc.\ Chem.\ Res."} +MACRO {aacsa} {"Adv.\ {ACS} Abstr."} +MACRO {anchem} {"Anal.\ Chem."} +MACRO {bioch} {"Biochemistry"} +MACRO {bicoc} {"Bioconj.\ Chem."} % *** +MACRO {bitech} {"Biotechnol.\ Progr."} % *** +MACRO {chemeng} {"Chem.\ Eng.\ News"} +MACRO {chs} {"Chem.\ Health Safety"} % *** +MACRO {crt} {"Chem.\ Res.\ Tox."} % *** +MACRO {chemrev} {"Chem.\ Rev."} % *** +MACRO {cmat} {"Chem.\ Mat."} % *** +MACRO {chemtech} {"{CHEMTECH}"} % *** +MACRO {enfu} {"Energy \&{} Fuels"} % *** +MACRO {envst} {"Environ.\ Sci.\ Technol."} +MACRO {iecf} {"Ind.\ Eng.\ Chem.\ Fundam."} +MACRO {iecpdd} {"Ind.\ Eng.\ Chem.\ Proc.\ Des.\ Dev."} +MACRO {iecprd} {"Ind.\ Eng.\ Chem.\ Prod.\ Res.\ Dev."} +MACRO {iecr} {"Ind.\ Eng.\ Chem.\ Res."} % *** +MACRO {inor} {"Inorg.\ Chem."} +MACRO {jafc} {"J.~Agric.\ Food Chem."} +MACRO {jacs} {"J.~Am.\ Chem.\ Soc."} +MACRO {jced} {"J.~Chem.\ Eng.\ Data"} +MACRO {jcics} {"J.~Chem.\ Inf.\ Comput.\ Sci."} +MACRO {jmc} {"J.~Med.\ Chem."} +MACRO {joc} {"J.~Org.\ Chem."} +MACRO {jps} {"J.~Pharm.\ Sci."} +MACRO {jpcrd} {"J.~Phys.\ Chem.\ Ref.\ Data"} % *** +MACRO {jpc} {"J.~Phys.\ Chem."} +MACRO {lang} {"Langmuir"} +MACRO {macro} {"Macromolecules"} +MACRO {orgmet} {"Organometallics"} + +MACRO {jft} {"J.~Chem.\ Soc., Faraday Trans."} +MACRO {jft1} {"J.~Chem.\ Soc., Faraday Trans. 1"} +MACRO {jft2} {"J.~Chem.\ Soc., Faraday Trans. 2"} +MACRO {tfs} {"Trans.\ Faraday Soc."} +MACRO {jcis} {"J.~Colloid Interface Sci."} +MACRO {acis} {"Adv.~Colloid Interface Sci."} +MACRO {cs} {"Colloids Surf."} +MACRO {csa} {"Colloids Surf.\ A:\ Physicochem.\ Eng.\ Apects"} +MACRO {csb} {"Colloids Surf.\ B:\ Biointerfaces"} +MACRO {pcps} {"Progr.\ Colloid Polym.\ Sci."} +MACRO {jmr} {"J.~Magn.\ Reson."} +MACRO {jmra} {"J.~Magn.\ Reson.\ A"} +MACRO {jmrb} {"J.~Magn.\ Reson.\ B"} +MACRO {sci} {"Science"} +MACRO {nat} {"Nature (London)"} +MACRO {jcch} {"J.~Comput.\ Chem."} +MACRO {cca} {"Croat.\ Chem.\ Acta"} + +MACRO {poly} {"Polymer"} +MACRO {ajp} {"Am.\ J.\ Phys."} +MACRO {rsi} {"Rev.\ Sci.\ Instrum."} +MACRO {jcp} {"J.~Chem.\ Phys."} +MACRO {cpl} {"Chem.\ Phys.\ Lett."} +MACRO {molph} {"Mol.\ Phys."} +MACRO {pac} {"Pure Appl.\ Chem."} +MACRO {jbc} {"J.~Biol.\ Chem."} +MACRO {tl} {"Tetrahedron Lett.\"} +MACRO {psisoe} {"Proc.\ SPIE-Int.\ Soc.\ Opt.\ Eng."} +MACRO {prb} {"Phys.\ Rev.\ B:\ Condens.\ Matter"} +MACRO {jap} {"J.~Appl.\ Phys."} +MACRO {pnac} {"Proc.\ Natl.\ Acad.\ Sci.\ U.~S.~A. "} +MACRO {bba} {"Biochim.\ Biophys.\ Acta"} +MACRO {nar} {"Nucleic.\ Acid Res."} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\providecommand{\refin}[1]{\\ \textbf{Referenced in:} #1}" + write$ newline$ + "\begin{thebibliography}{" longest.label * "}" * 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 file `achemso.bst'. diff --git a/Master/texmf-dist/bibtex/bst/achemso/achemsol.bst b/Master/texmf-dist/bibtex/bst/achemso/achemsol.bst new file mode 100644 index 00000000000..76dd071dd1c --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/achemso/achemsol.bst @@ -0,0 +1,966 @@ +%% +%% This is file `achemsol.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% achemso.dtx (with options: `listhuvudkod') +%% +%% Copyright (c) 1995-97 by Mats Dahlgren . +%% All rights reserved. See the file `achemso.ins' for information +%% on how you may (re-)distribute the `achemso' package files. +%% +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + annotate + } + {} + { label } + +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 = + { ", " * 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ skip$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +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$ "" } + { "\textit{" swap$ * "}" * } + if$ +} + +FUNCTION {emphasizec} +{ duplicate$ empty$ + { pop$ "" } + { "\textit{" swap$ * ",}" * } + if$ +} + +FUNCTION {emphasizesc} +{ duplicate$ empty$ + { pop$ "" } + { "\textit{" swap$ * ";}" * } + if$ +} + +FUNCTION {slantc} +{ duplicate$ empty$ + { pop$ "" } + { "\textsl{" swap$ * ",}" * } + if$ +} + +FUNCTION {emboldenc} +{ duplicate$ empty$ + { pop$ "" } + { "\textbf{" swap$ * ",}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +INTEGERS { etal } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames #15 > + s numnames "{ll}" format.name$ "others" = numnames #1 > and + or 'etal := + etal + { #1 #1 + 'namesleft := } + { numnames 'namesleft := } + if$ + { namesleft #0 > } + { s nameptr "{vv~}{ll,}{~jj,}{~f.}" format.name$ 't := + nameptr #1 > +{ namesleft #1 > + { ";\ \ " * t * } + { nameptr #2 > +{ "" * } +'skip$ + if$ + t "others" = + etal or +{ " \textit{et al.}\ " * } +{ ";\ \ " * t * } + if$ + } + if$ +} +'t + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > +{ ",\ \ Eds.; " * } +{ ",\ \ Ed.; " * } + if$ + } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { "" } + 'year + if$ +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ +'skip$ +{ " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ +{ series field.or.null } + { series empty$ + { "there's a number but no series in " cite$ * warning$ } + { series " " * number * "; " * } + if$ +} + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition " ed.;" * } + 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 empty$ + { "" } + { pages multi.page.check +{ "pages" pages n.dashify tie.or.space.connect } +{ "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.pages.a} +{ pages empty$ + { "" } + { "page" pages tie.or.space.connect } + if$ +} + +FUNCTION {format.yr.vol.pages} +{ year field.or.null emboldenc + " " swap$ * * + volume field.or.null slantc + " " swap$ * * + pages empty$ + 'skip$ + { duplicate$ empty$ +{ pop$ format.pages.a } +{ " " * pages * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ +{ "Chapter" } +{ type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ +'skip$ +{ ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis} +{ type empty$ + {"Thesis,"} + {type " thesis," * } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ +{ "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" +} +{ "In " journal * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < +'skip$ +{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ +} + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ +{ series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "\textit{" * series * "}" * } + if$ +} +{ key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ +{ booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In \textit{" booktitle * ",}" * } + if$ +} +{ "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {in.book} + { "In " output + booktitle emphasize + volume empty$ + {skip$} + {", Vol.~" * volume *} + if$ + edition empty$ + {";" * output} + {"," * output + edition " ed.;\" * output} + if$ + editor missing$ + { skip$ } + { format.editors output } + if$ + format.number.series output + new.sentence + publisher ":" * "publisher" output.check + address "," * "address" output.check +} + +FUNCTION {book.vol.ed} +{ "" volume empty$ + {skip$} + {" Vol.~" * volume *} + if$ + edition empty$ + {";" * output} + {"," * output + edition " ed.;\" * output} + if$ +} + +FUNCTION {thesis.affilation} +{ school "," * "school" output.check + institution empty$ + 'skip$ + {institution "," * output} + if$ +} + +FUNCTION {add.note} +{ annotate empty$ + 'skip$ + { new.block + "{\footnotesize " annotate * "}" * output } + if$ +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + crossref missing$ + { journal field.or.null emphasize + format.yr.vol.pages + output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + note output + add.note + fin.entry +} + +FUNCTION {submitted} +{ output.bibitem + format.authors "author" output.check + new.block + "submitted for publication in" output + note empty$ + { journal emphasize "journal" output.check } + { journal emphasizec "journal" output.check + note output } + if$ + add.note + fin.entry +} + +FUNCTION {inpress} +{ output.bibitem + format.authors "author" output.check + journal emphasizec "journal" output.check + "in press" output + note output + add.note + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ +{ "author and editor" editor either.or.check } +'skip$ + if$ + } + if$ + booktitle empty$ + { title emphasizesc output } + { booktitle emphasizesc output } + if$ + crossref missing$ + { format.bvolume output + format.number.series output + new.sentence + publisher ":" * "publisher" output.check + address "," * "address" output.check + } + { format.book.crossref output.nonnull } + if$ + format.edition output + format.date "year" output.check + note output + add.note + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors "author" output.check + " ``" title * "'', " * "title" output.check + howpublished empty$ + { skip$ } + { howpublished "," * output} + if$ + address empty$ + { skip$ } + { address "," * output} + if$ + format.date "year" output.check + note output + add.note + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + format.authors "author" output.check + " " title * ". " * "title" output.check + in.book + chapter empty$ + {format.date "year" output.check} + {year empty$ + { "empty year field in " * cite$ * warning$ } + { year "; " * output + format.chapter.pages output } + if$ + } + if$ + note output + add.note + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + " " title * ". " * "title" output.check + in.book + format.date "year" output.check + note output + add.note + fin.entry +} + +FUNCTION {inproceedings} { inbook } + +FUNCTION {conference} { inbook } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ +'skip$ +{ organization ", " * address * output +} + if$ + } + { format.authors output.nonnull } + if$ + "``" title * "'', " * "title" output.check + author empty$ + { organization empty$ +{ address empty$ + 'skip$ + { address "," * output } + if$ +} +'skip$ + if$ + } + { organization empty$ + 'skip$ + { organization "," * output + address empty$ + 'skip$ + { address "," * output } + if$ + } + if$ + } + if$ + format.edition output + format.date output + note output + add.note + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + "``" title * "'', " * "title" output.check + "Master's thesis, " output + thesis.affilation + format.date "year" output.check + note output + add.note + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title empty$ + 'skip$ + { "``" title * "'', " * output } + if$ + howpublished empty$ + 'skip$ + {howpublished "," * output } + if$ + format.date output + note output + add.note + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + title emphasizec "title" output.check + format.thesis output.nonnull + thesis.affilation + format.date "year" output.check + note output + add.note + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + booktitle empty$ + { title emphasizec output } + { booktitle emphasizec output } + if$ + book.vol.ed + format.number.series output + publisher empty$ + { address empty$ + { format.date "year" output.check } + { address "," * output + format.date "year" output.check } + if$ + } + { address empty$ + { publisher "," * output + format.date "year" output.check } + { publisher ": " * address * "," * output + format.date "year" output.check } + if$ + } + if$ + note output + add.note + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + "``" title * "'', " * "title" output.check + type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { ", " * } + { " " * number * "," * } + if$ + output.nonnull + institution "," * "institution" output.check + address empty$ + { skip$ } + { address "," * output } + if$ + format.date "year" output.check + note output + add.note + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + note empty$ + { "Unpublished data" output } + { year empty$ + { note output } + { note ", " * year * output } + if$ } + if$ + add.note + fin.entry +} + +FUNCTION {remark} +{ output.bibitem + note "note" output.check + add.note + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} +MACRO {feb} {"Feb."} +MACRO {mar} {"Mar."} +MACRO {apr} {"Apr."} +MACRO {may} {"May"} +MACRO {jun} {"June"} +MACRO {jul} {"July"} +MACRO {aug} {"Aug."} +MACRO {sep} {"Sept."} +MACRO {oct} {"Oct."} +MACRO {nov} {"Nov."} +MACRO {dec} {"Dec."} + +MACRO {acchemr} {"Acc.\ Chem.\ Res."} +MACRO {aacsa} {"Adv.\ {ACS} Abstr."} +MACRO {anchem} {"Anal.\ Chem."} +MACRO {bioch} {"Biochemistry"} +MACRO {bicoc} {"Bioconj.\ Chem."} % *** +MACRO {bitech} {"Biotechnol.\ Progr."} % *** +MACRO {chemeng} {"Chem.\ Eng.\ News"} +MACRO {chs} {"Chem.\ Health Safety"} % *** +MACRO {crt} {"Chem.\ Res.\ Tox."} % *** +MACRO {chemrev} {"Chem.\ Rev."} % *** +MACRO {cmat} {"Chem.\ Mat."} % *** +MACRO {chemtech} {"{CHEMTECH}"} % *** +MACRO {enfu} {"Energy \&{} Fuels"} % *** +MACRO {envst} {"Environ.\ Sci.\ Technol."} +MACRO {iecf} {"Ind.\ Eng.\ Chem.\ Fundam."} +MACRO {iecpdd} {"Ind.\ Eng.\ Chem.\ Proc.\ Des.\ Dev."} +MACRO {iecprd} {"Ind.\ Eng.\ Chem.\ Prod.\ Res.\ Dev."} +MACRO {iecr} {"Ind.\ Eng.\ Chem.\ Res."} % *** +MACRO {inor} {"Inorg.\ Chem."} +MACRO {jafc} {"J.~Agric.\ Food Chem."} +MACRO {jacs} {"J.~Am.\ Chem.\ Soc."} +MACRO {jced} {"J.~Chem.\ Eng.\ Data"} +MACRO {jcics} {"J.~Chem.\ Inf.\ Comput.\ Sci."} +MACRO {jmc} {"J.~Med.\ Chem."} +MACRO {joc} {"J.~Org.\ Chem."} +MACRO {jps} {"J.~Pharm.\ Sci."} +MACRO {jpcrd} {"J.~Phys.\ Chem.\ Ref.\ Data"} % *** +MACRO {jpc} {"J.~Phys.\ Chem."} +MACRO {lang} {"Langmuir"} +MACRO {macro} {"Macromolecules"} +MACRO {orgmet} {"Organometallics"} + +MACRO {jft} {"J.~Chem.\ Soc., Faraday Trans."} +MACRO {jft1} {"J.~Chem.\ Soc., Faraday Trans. 1"} +MACRO {jft2} {"J.~Chem.\ Soc., Faraday Trans. 2"} +MACRO {tfs} {"Trans.\ Faraday Soc."} +MACRO {jcis} {"J.~Colloid Interface Sci."} +MACRO {acis} {"Adv.~Colloid Interface Sci."} +MACRO {cs} {"Colloids Surf."} +MACRO {csa} {"Colloids Surf.\ A:\ Physicochem.\ Eng.\ Apects"} +MACRO {csb} {"Colloids Surf.\ B:\ Biointerfaces"} +MACRO {pcps} {"Progr.\ Colloid Polym.\ Sci."} +MACRO {jmr} {"J.~Magn.\ Reson."} +MACRO {jmra} {"J.~Magn.\ Reson.\ A"} +MACRO {jmrb} {"J.~Magn.\ Reson.\ B"} +MACRO {sci} {"Science"} +MACRO {nat} {"Nature (London)"} +MACRO {jcch} {"J.~Comput.\ Chem."} +MACRO {cca} {"Croat.\ Chem.\ Acta"} + +MACRO {poly} {"Polymer"} +MACRO {ajp} {"Am.\ J.\ Phys."} +MACRO {rsi} {"Rev.\ Sci.\ Instrum."} +MACRO {jcp} {"J.~Chem.\ Phys."} +MACRO {cpl} {"Chem.\ Phys.\ Lett."} +MACRO {molph} {"Mol.\ Phys."} +MACRO {pac} {"Pure Appl.\ Chem."} +MACRO {jbc} {"J.~Biol.\ Chem."} +MACRO {tl} {"Tetrahedron Lett.\"} +MACRO {psisoe} {"Proc.\ SPIE-Int.\ Soc.\ Opt.\ Eng."} +MACRO {prb} {"Phys.\ Rev.\ B:\ Condens.\ Matter"} +MACRO {jap} {"J.~Appl.\ Phys."} +MACRO {pnac} {"Proc.\ Natl.\ Acad.\ Sci.\ U.~S.~A. "} +MACRO {bba} {"Biochim.\ Biophys.\ Acta"} +MACRO {nar} {"Nucleic.\ Acid Res."} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\providecommand{\refin}[1]{\\ \textbf{Referenced in:} #1}" + write$ newline$ + "\begin{thebibliography}{" longest.label * "}" * 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 file `achemsol.bst'. diff --git a/Master/texmf-dist/bibtex/bst/acmtrans/acmtrans.bst b/Master/texmf-dist/bibtex/bst/acmtrans/acmtrans.bst new file mode 100644 index 00000000000..f9720fd4a94 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/acmtrans/acmtrans.bst @@ -0,0 +1,1768 @@ +% "ACM Transactions" BibTeX style, acmtrans.bst +% for BibTeX version 0.99c, LaTeX version 3.141 +% Revised 28-MARCH-1996 +% Revised 30-JUNE-1995 +% Revised 15-JAN-1996 +% $Header: acmtrans.bst,v 1.2 96/01/17 09:05:38 boyland Exp $ +% +% Hacked by John T. Boyland at University of California, Berkeley +% (with assistance by John R. Hauser) +% Hacked by Andrew W. Appel and Rebecca L. Davies at Princeton University, +% based on a "chicago.bst" by Glenn Paulley at U. Waterloo, +% which was based on "newapa.bst" found at ymir.claremont.edu. +% +% Citation format: [author-last-name year] +% [author-last-name and author-last-name year] +% [author-last-name, author-last-name, and author-last-name year] +% [author-last-name et al. year] +% [author-last-name] +% author-last-name [year] +% [author-last-name and author-last-name] +% [author-last-name et al.] +% [year] or [year,year] +% year or year,year +% +% Reference list ordering: alphabetical by author or whatever passes +% for author in the absence of one. +% +% This BibTeX style has support for abbreviated author lists and for +% year-only citations. This is done by having the citations +% actually look like +% +% \citeauthoryear{full-author-info}{abbrev-author-info}{year} +% +% The LaTeX style has to have the following (or similar) +% +% \let\@internalcite\cite +% \def\fullcite{\def\citeauthoryear##1##2##3{##1, ##3}\@internalcite} +% \def\fullciteA{\def\citeauthoryear##1##2##3{##1}\@internalcite} +% \def\shortcite{\def\citeauthoryear##1##2##3{##2, ##3}\@internalcite} +% \def\shortciteA{\def\citeauthoryear##1##2##3{##2}\@internalcite} +% \def\citeyear{\def\citeauthoryear##1##2##3{##3}\@internalcite} +% +% These TeX macro definitions are found in acmtrans.sty. Additional +% commands to manipulate different components of a citation can be defined +% so that, for example, you can list author's names without parentheses +% if using a citation as a noun or object in a sentence. +% +% Features of acmtrans.bst: +% ======================== +% +% - all authors appear last name first. +% - all pages are listed xx-xx, (no pp.) and are at the end of the reference +% - publishers are identified as publisher, address +% - conferences papers (inproceedings) may give city of conference, +% date of conference, and journal that the proceedings appear in. +% - months abbreviated to max four letters (eg. Mar.) +% - volume of a series indicated after the title of the series +% - editors appear after edited title and are identified by a trailing "Eds." +% not in parentheses. Editor names are not given in small caps. +% (unless there is no author line) +% - names terminated with a period even if there is no first name. +% - editions are indicated trailing after the work, not in parentheses. +% - "et al." citations have a protected period to avoid bad spacing (jrh) +% - "address" required when publisher given +% - series (roman) and volume are in a sentence separate from (book-)title +% +% +% Features of chicago.bst: +% ======================= +% +% - full names used in citations, but abbreviated citations are available +% (see above) +% - if an entry has a "month", then the month and year are also printed +% as part of that bibitem. +% - all conjunctions use "and" instead of "\&" +% - major modification from Chicago Manual of Style (13th ed.) is that +% only the first author in a reference appears last name first- +% additional authors appear as J. Q. Public. +% - pages are listed as "pp. xx-xx" in all entry types except +% article entries. +% - book, inbook, and manual use "location: publisher" (or organization) +% for address and publisher. All other types list publishers separately. +% - "pp." are used to identify page numbers for all entry types except +% articles. +% - organization is used as a citation label if neither author nor editor +% is present (for manuals). +% - "et al." is used for long author and editor lists, or when "others" +% is used. +% +% Modifications and bug fixes from newapa.bst: +% =========================================== +% +% - added month, year to bib entries if month is present +% - fixed bug with In proceedings, added necessary comma after title +% - all conjunctions changed to "and" from "\&" +% - fixed bug with author labels in my.full.label: "et al." now is +% generated when "others" is an author name +% - major modification from Chicago Manual of Style (13th ed.) is that +% only the first author in a reference appears last name first- +% additional authors appear as J. Q. Public. +% - pages are listed as "pp. xx-xx" in all entry types except +% article entries. Unnecessary (IMHO) "()" around page numbers +% were removed, and page numbers now don't end with a period. +% - created chicago.sty for use with this bibstyle (required). +% - fixed bugs in FUNCTION {format.vol.num.pages} for missing volume, +% number, and /or pages. Renamed to format.jour.vol. +% - fixed bug in formatting booktitles: additional period an error if +% book has a volume. +% - fixed bug: editors usually given redundant period before next clause +% (format.editors.dot) removed. +% - added label support for organizations, if both author and editor +% are missing (from alpha.bst). If organization is too long, then +% the key field is used for abbreviated citations. +% - In proceedings or books of several volumes, no comma was written +% between the "Volume x" and the page numbers (this was intentional +% in newapa.bst). Fixed. +% - Some journals may not have volumes/numbers, only month/year (eg. +% IEEE Computer). Fixed bug in article style that assumed volume/number +% was always present. +% +% Original documentation for newapa.sty: +% ===================================== +% +% This version was made by modifying the master file made by +% Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU), and the 'named' BibTeX +% style of Peter F. Patel-Schneider. +% +% Copyright (C) 1985, all rights reserved. +% Copying of this file is authorized only if either +% (1) you make absolutely no changes to your copy, including name, or +% (2) if you do make changes, you name it something other than 'newapa.bst'. +% There are undoubtably bugs in this style. If you make bug fixes, +% improvements, etc. please let me know. My e-mail address is: +% spencer@cgrg.ohio.state.edu or 71160.3141@compuserve.com +% +% This style was made from 'plain.bst', 'named.bst', and 'apalike.bst', +% with lots of tweaking to make it look like APA style, along with tips +% from Young Ryu and Brian Reiser's modifications of 'apalike.bst'. + +ENTRY + { address + author + booktitle + chapter + city % jtb: added + date % jtb: added + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label.year extra.label sort.year sort.label } + +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 u } + +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 +} + +% Use a colon to separate output. Used only for address/publisher +% combination in book/inbook types, address/institution for manuals, +% and organization:publisher for proceedings (inproceedings). +% +FUNCTION {output.nonnull.colon} +{ '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.colon} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull.colon + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.check.colon} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull.colon + if$ +} + +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ + " " year * extra.label * + mid.sentence 'output.state := + } + 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +% +% Emphasize the top string on the stack. +% +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +% +% Emphasize the top string on the stack, but add a trailing space. +% +FUNCTION {emphasize.space} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "\/}" * } + if$ +} + +% +% Emphasize the top string on stack, add a trailing comma and space. +% +FUNCTION {emphasize.comma} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * ",\/}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } +% +% Format bibliographical entries with the first author last name first, +% and subsequent authors with initials followed by last name. +% All names are formatted in this routine. +% + +FUNCTION {format.names} +{ 's := + #1 'nameptr := % nameptr = 1; + s num.names$ 'numnames := % numnames = num.name$(s); + numnames 'namesleft := + { namesleft #0 > } + + { nameptr #1 = + {"{\sc " s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ * "}" * 't := } + {"{\sc " s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ * "}" * 't := } + if$ + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "{\sc others}" = + { " {\sc et~al\mbox{.}}" * } % jrh: avoid spacing problems + { " {\sc and} " * t * } % from Chicago Manual of Style + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := % nameptr += 1; + namesleft #1 - 'namesleft := % namesleft =- 1; + } + while$ +} + +FUNCTION {my.full.label} +{ 's := + #1 'nameptr := % nameptr = 1; + s num.names$ 'numnames := % numnames = num.name$(s); + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{vv~}{ll}" format.name$ 't := % get the next name + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al\mbox{.}" * } % jrh: avoid spacing problems + { " and " * t * } % from Chicago Manual of Style + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := % nameptr += 1; + namesleft #1 - 'namesleft := % namesleft =- 1; + } + while$ + +} + +FUNCTION {format.names.fml} +% +% Format names in "familiar" format, with first initial followed by +% last name. Like format.names, ALL names are formatted. +% jtb: The names are NOT put in small caps +% +{ 's := + #1 'nameptr := % nameptr = 1; + s num.names$ 'numnames := % numnames = num.name$(s); + numnames 'namesleft := + { namesleft #0 > } + + { "{" s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ * "}" * 't := + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "{others}" = + { " {et~al\mbox{.}}" * } + { " {and} " * t * } +% { " {\&} " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := % nameptr += 1; + namesleft #1 - 'namesleft := % namesleft =- 1; + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names add.period$} % jtb: add period if none before + if$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +% +% Format editor names for use in the "in" types: inbook, incollection, +% inproceedings: first initial, then last names. When editors are the +% LABEL for an entry, then format.editor is used which lists editors +% by last name first. +% +FUNCTION {format.editors.fml} +{ editor empty$ + { "" } + { editor format.names.fml + editor num.names$ #1 > + { ", Eds." * } % jtb: removed parentheses + { ", Ed." * } % jtb: removed parentheses + if$ + } + if$ +} + +% +% Format editor names for use in labels, last names first. +% +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", Eds." * } % jtb: removed parentheses + { ", Ed." * } % jtb: removed parentheses + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +% Note that the APA style requres case changes +% in article titles. The following does not +% change cases. If you perfer it, uncomment the +% following and comment out the above. + +%FUNCTION {format.title} +%{ title empty$ +% { "" } +% { title } +% if$ +%} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ edition empty$ + { title emphasize } + { title empty$ + { title emphasize } % jtb: what is this supposed to do ?!? + { "{\em " title * "\/}, " * edition * " ed." * } % jtb: no parens for ed. + if$ + } + if$ +} + +FUNCTION {format.emphasize.booktitle} +{ edition empty$ + { booktitle emphasize } + { booktitle empty$ + { booktitle emphasize } % jtb: what is this supposed to do ?!? + { "{\em " booktitle * "\/}, " * edition * " ed." * } % jtb: no ()s for ed. + if$ + } + if$ + } + +% jtb: if the preceding string (the title of the conference) is non-empty, +% jtb: append the location, otherwise leave empty (so as to trigger the +% jtb: error message in output.check +FUNCTION {format.city} +{ duplicate$ empty$ + { } + { city empty$ + { date empty$ + { } + { " (" * date * ")" * } + if$ + } + { date empty$ + { " (" * city * ")" * } + { " (" * city * ", " * date * ")" * } + if$ + } + if$ + } + if$ +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +% jtb: If there is a series, this is added and the volume trails after it. +% jtb: Otherwise, "Vol" is Capitalized. +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { series empty$ + { "Vol." volume tie.or.space.connect} + { series ", " * "vol." volume tie.or.space.connect *} + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "Number" } % gnp - changed to mixed case always + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + 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 empty$ + { "" } + { pages multi.page.check + { pages n.dashify } % gnp - removed () % jtb: removed pp. + { pages } + if$ + } + if$ +} + +% By Young (and Spencer) +% GNP - fixed bugs with missing volume, number, and/or pages +% +% Format journal, volume, number, pages for article types. +% +FUNCTION {format.jour.vol} +{ journal empty$ + { "no journal in " cite$ * warning$ + "" } + { journal emphasize.space } + if$ + number empty$ + { volume empty$ + { "no number and no volume in " cite$ * warning$ + "" * } + { "~{\em " * Volume * "}" * } + if$ + } + { volume empty$ + {"no volume for " cite$ * warning$ + "~" * number * } + { "~" * + volume emphasize.comma + "~" * number * * } + if$ + month empty$ + {} + {" (" * month * ")" *} + if$ + } + if$ + pages empty$ + {"page numbers missing in " cite$ * warning$ + "" * } % gnp - place a null string on the stack for output + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } % gnp - removed pp. for articles + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "Chapter" } % gnp - changed to mixed case + { type "t" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + {"page numbers missing in " cite$ * warning$} % gnp - added check + { ", " * format.pages * } + if$ + } + if$ +} + +% jtb: format for collections or proceedings not appearing in a journal +FUNCTION {format.in.emphasize.booktitle} +{ booktitle empty$ + { "" } + { "In " format.emphasize.booktitle * } + if$ +} + +% jtb: format for proceedings appearing in a journal +FUNCTION {format.in.booktitle} +{ booktitle empty$ + { "" } + { "In " booktitle * } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " format.emphasize.booktitle * } + % jtb: swapped editor location + { "In " format.emphasize.booktitle * ", " * format.editors.fml * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ +% {pop$ + {{ "" } + type "t" change.case$} + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. Rep." } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "See" + "\citeN{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al\mbox{.}" * } % jrh: avoid spacing problems + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al\mbox{.}" * } % jrh: avoid spacing problems + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect % gnp - changed to mixed case + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \citeN{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ "See" + " \citeN{" * crossref * "}" * +} + +% format.lab.names: +% +% determines "short" names for the abbreviated author information. +% "Long" labels are created in calc.label, using the routine my.full.label +% to format author and editor fields. +% +% There are 4 cases for labels. (n=3 in the example) +% a) one author Foo +% b) one to n Foo, Bar and Baz +% c) use of "and others" Foo, Bar et al. +% d) more than n Foo et al. +% +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #2 > % change number to number of others allowed before + % forcing "et al". + { s #1 "{vv~}{ll}" format.name$ " et~al\mbox{.}" * } % jrh: \mbox{} added + { + numnames #1 - 'namesleft := + #2 'nameptr := + s #1 "{vv~}{ll}" format.name$ + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al\mbox{.}" * } % jrh: avoid spacing problems + { " and " * s nameptr "{vv~}{ll}" format.name$ * } + if$ + } + { ", " * s nameptr "{vv~}{ll}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { "no key, author in " cite$ * warning$ + cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { "no key, editor in " cite$ * warning$ + cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +% +% added - gnp. Provide label formatting by organization if author is null. +% +{ author empty$ + { organization empty$ + { key empty$ + { "no key, author or organization in " cite$ * warning$ + cite$ #1 #3 substring$ } + 'key + if$ + } + { organization } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +% +% added - gnp. Provide label formatting by organization if editor is null. +% +{ editor empty$ + { organization empty$ + { key empty$ + { "no key, editor or organization in " cite$ * warning$ + cite$ #1 #3 substring$ } + 'key + if$ + } + { organization } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { "no key, author, or editor in " cite$ * warning$ + cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {calc.label} +% +% Changed - GNP. See also author.organization.sort, editor.organization.sort +% Form label for BibTeX entry. The classification of which fields are used +% for which type of entry (book, inbook, etc.) are taken from alpha.bst. +% The change here from newapa is to also include organization as a +% citation label if author or editor is missing. +% +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + + author empty$ % generate the full label citation information. + { editor empty$ + { organization empty$ + { "no author, editor, or organization in " cite$ * warning$ + "??" } + { organization } + if$ + } + { editor my.full.label } + if$ + } + { author my.full.label } + if$ + +% leave label on the stack, to be popped when required. + + "}{" * swap$ * "}{" * +% year field.or.null purify$ #-1 #4 substring$ * +% +% save the year for sort processing afterwards (adding a, b, c, etc.) +% + year field.or.null purify$ #-1 #4 substring$ + 'label.year := +} + +FUNCTION {output.bibitem} +{ newline$ + + "\bibitem[\protect\citeauthoryear{" write$ + calc.label write$ + sort.year write$ + "}]{" write$ + + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {article} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + crossref missing$ + { format.jour.vol output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors + "author and editor" output.check } + { format.authors + output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + output.year.check % added + new.block + format.btitle + "title" output.check + crossref missing$ + { new.sentence % jtb: start a new sentence for series/volume + format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address "address" output.check % jtb: require address + } + { new.block + format.book.crossref output.nonnull + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + howpublished output + address output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors + "author and editor" output.check + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + output.year.check % added + new.block + format.btitle + "title" output.check + crossref missing$ + { new.sentence % jtb: start a new sentence for series/volume + format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address "address" output.check % jtb: require address + format.chapter.pages + "chapter and pages" output.check % jtb: moved from before publisher + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle + "booktitle" output.check + new.sentence % jtb: start a new sentence for series/volume + format.bvolume output + format.number.series output + new.sentence + publisher "publisher" output.check + address "address" output.check % jtb: require address + format.chapter.pages output % gnp - was special.output.nonnull +% left out comma before page numbers + % jtb: moved from before publisher + } + { format.incoll.inproc.crossref + output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + crossref missing$ + { journal missing$ % jtb: proceedings appearing in journals + { format.in.emphasize.booktitle format.city "booktitle" output.check + format.editors.fml output + new.sentence % jtb: start a new sentence for series/volume + format.bvolume output + format.number.series output + new.sentence + organization output + publisher "publisher" output.check % jtb: require publisher (?) + address "address" output.check % jtb: require address + format.pages output % jtb: moved from before publisher + } + % jtb: new: + { format.in.booktitle format.city "booktitle" output.check + format.editors.fml output + new.sentence + format.jour.vol output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { editor empty$ + { organization "organization" output.check + organization format.key output } % if all else fails, use key + { format.editors "author and editor" output.check } + if$ + } + { format.authors output.nonnull } + if$ + output.year.check % added + new.block + format.btitle + "title" output.check + organization address new.block.checkb + % jtb: back to normal style: organization, address + organization "organization" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + "M.S.\ thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % added + output.year.check % added + title howpublished new.block.checkb + format.title output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + format.thesis.type "Ph.D. thesis" output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output + organization format.key output } % gnp - changed from author format.key + { format.editors output.nonnull } + if$ +% author format.key output % gnp - removed (should be either +% editor or organization + output.year.check % added (newapa) + new.block + format.btitle format.city "title" output.check % jtb: added city + new.sentence + format.bvolume output + format.number.series output + new.sentence + organization output + % jtb: normal order: publisher, address + publisher output + address output + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + format.tr.number output % jtb: moved month ... + institution "institution" output.check + address output + new.sentence + month output % jtb: ... to here (no parens) + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} % jtb: corrected: was "March" + +MACRO {apr} {"Apr."} % jtb: corrected: was "April" + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Comput. Surv."} + +MACRO {acmlett} {"ACM Lett. Program. Lang. Syst."} + +MACRO {acta} {"Acta Inf."} + +MACRO {ai} {"Artificial Intelligence"} + +MACRO {al} {"Ada Lett."} + +MACRO {acr} {"Adv. Comput. Res."} + +MACRO {bit} {"Bit"} + +MACRO {cacm} {"Commun. ACM"} + +MACRO {cj} {"Comput. J."} + +MACRO {cn} {"Comput. Netw."} + +MACRO {cl} {"Comput. Lang."} + +MACRO {ibmjrd} {"IBM J. Res. and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ict} {"Inf. Contr."} + +MACRO {ieebcs} {"IEE/BCS Softw. Eng. J."} + +MACRO {ieees} {"IEEE Softw."} + +MACRO {ieeese} {"IEEE Trans. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ieeetpds} {"IEEE Trans. Parall. Distrib. Syst."} + +MACRO {ieeetit} {"IEEE Trans. Inf. Theory"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {icp} {"Inf. Comput."} + +MACRO {ist} {"Inf. Softw. Tech."} + +MACRO {ijsa} {"Int. J. Supercomput. Appl."} + +MACRO {ijpp} {"Int. J. Parallel Program."} + +MACRO {jlp} {"J. Logic Program."} + +MACRO {jfp} {"J. Funct. Program."} + +MACRO {jcss} {"J. Comput. Syst. Sci."} + +MACRO {jsmrp} {"J. Softw. Maint. Res. Pract."} + +MACRO {jss} {"J. Syst. Softw."} + +MACRO {jlc} {"J. Logic and Comput."} + +MACRO {jlsc} {"J. Lisp Symb. Comput."} + +MACRO {lpls} {"Lett. Program. Lang. Syst."} + +MACRO {mor} {"Math. Oper. Res."} + +MACRO {mscs} {"Math. Struct. Comput. Sci."} + +MACRO {mst} {"Math. Syst. Theor."} % jtb: was Math. Syst. Theory + % jtb: (if you ask me, I prefer the old way) +MACRO {ngc} {"New Gen. Comput."} + +MACRO {scp} {"Sci. Comput. Program."} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {spe} {"Softw. Pract. Exper."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Graphics"} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Program. Lang. Syst."} + +MACRO {tcs} {"Theor. Comput. Sci."} % jtb: was Theor. Comp. Sci. + +MACRO {tr} {"Tech. Rep."} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { " et~al" * } + { 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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { "missing author in " cite$ * warning$ + 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 {author.organization.sort} +% +% added - GNP. Stack author or organization for sorting (from alpha.bst). +% Unlike alpha.bst, we need entire names, not abbreviations +% +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { organization sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +% +% added - GNP. Stack editor or organization for sorting (from alpha.bst). +% Unlike alpha.bst, we need entire names, not abbreviations +% +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { organization sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +% +% Presort creates the bibentry's label via a call to calc.label, and then +% sorts the entries based on entry type. Chicago.bst adds support for +% including organizations as the sort key; the following is stolen from +% alpha.bst. +% +{ calc.label sortify % recalculate bibitem label + year field.or.null purify$ #-1 #4 substring$ * % add year + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + #1 entry.max$ substring$ % added for newapa + 'sort.label := % added for newapa + sort.label % added for newapa + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT % by label, year, author/editor, title + +STRINGS { last.label next.extra } + +INTEGERS { last.extra.num } + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +% +% Pass through all entries, comparing current entry to last one. +% Need to concatenate year to the stack (done by calc.label) to determine +% if two entries are the same (see presort) +% +{ last.label + calc.label year field.or.null purify$ #-1 #4 substring$ * % add year + #1 entry.max$ substring$ = % are they equal? + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + calc.label year field.or.null purify$ #-1 #4 substring$ * % add year + #1 entry.max$ substring$ 'last.label := % assign to last.label + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label.year extra.label * 'sort.year := + extra.label 'next.extra := +} + +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 % by sort.label, year, title --- giving final bib. order. + +FUNCTION {begin.bib} + +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ +} + + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + + + + + + + + + + + + + + diff --git a/Master/texmf-dist/bibtex/bst/adrconv/adrconv.bst b/Master/texmf-dist/bibtex/bst/adrconv/adrconv.bst new file mode 100644 index 00000000000..2535490a3ea --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/adrconv/adrconv.bst @@ -0,0 +1,151 @@ +%% +%% This is file `adrconv.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% adrconv.dtx (with options: `bst,conv') +%% Copyright (c) 2001 Axel Kielhorn +%% +%% This file will generate fast loadable files from adrconv.dtx when +%% run through LaTeX or TeX. +%% +%% This file is part of the adrconv bundle. +%% +%% This file can be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.2 of the license +%% or (at you option) any later version. +%% The latest version of this license is in +%% http://www.latex-procejt.org/lppl.txt +%% and version 1.2 or later ist part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% The adrconv bundle consists at least of the files adrconv.dtx, +%% adrconv.ins and adrguide.tex. +%% +%% You are NOT ALLOWED to change this file. +%% +%% You are NOT ALLOWED to distribute this file without adrconv.dtx, +%% adrconv.ins or adrguide.tex. +ENTRY + { name + title + organization + city + zip + country + street + phone + mobile + fax + url + email + note + key + birthday + nbirthday + } + {} + { adr.char } +INTEGERS { cur.adr.char } +FUNCTION {get.names} +{ name empty$ + { organization empty$ + { "{}{}" } + { organization "{}" * } + if$ + } + { "{" name #1 "{ll}" format.name$ "}" * * + "{" name #1 "{ff}{ vv}" format.name$ "}" * * * + } + if$ +} +FUNCTION {print.adrchr} +{ adr.char chr.to.int$ cur.adr.char > + { newline$ "\adrchar{" adr.char "}" * * write$ newline$ + adr.char chr.to.int$ 'cur.adr.char := + } + 'skip$ + if$ +} +FUNCTION{format.phone.and.mobile} +{ phone empty$ + { + mobile empty$ + { "" } + { mobile } + if$ + }{ + mobile empty$ + { phone } + { phone "\\" mobile * * } + if$ + } + if$ +} +FUNCTION{address} +{ + print.adrchr + "\adrentry" write$ + get.names write$ newline$ + "{" + street empty$ + { "" } + { street " \\ " *} + if$ + * + zip empty$ + { "" } + { zip } + if$ + " " * * + city empty$ + { "" } + { city } + if$ + "}{" * * + format.phone.and.mobile + "}{}{}{}{" * * + key empty$ + { "" } + { key } + if$ + "}" * * write$ newline$ +} +FUNCTION{presort} +{ + name empty$ + { organization empty$ + { key empty$ + { "No name, organization, or key to sort " cite$ * warning$ + "???" + } + { key } + if$ + } + { organization } + if$ + } + { name #1 "{ll},{f }{v }{, j}" format.name$ } + if$ + duplicate$ + 'sort.key$ := + #1 #1 substring$ + 'adr.char := +} +READ +ITERATE {presort} +SORT +FUNCTION {begin.bib} +{ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + #0 'cur.adr.char := +} +EXECUTE {begin.bib} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ } +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/adrconv/adrfax.bst b/Master/texmf-dist/bibtex/bst/adrconv/adrfax.bst new file mode 100644 index 00000000000..b4f0f9f7c93 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/adrconv/adrfax.bst @@ -0,0 +1,150 @@ +%% +%% This is file `adrfax.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% adrconv.dtx (with options: `bst,fax') +%% Copyright (c) 2001 Axel Kielhorn +%% +%% This file will generate fast loadable files from adrconv.dtx when +%% run through LaTeX or TeX. +%% +%% This file is part of the adrconv bundle. +%% +%% This file can be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.2 of the license +%% or (at you option) any later version. +%% The latest version of this license is in +%% http://www.latex-procejt.org/lppl.txt +%% and version 1.2 or later ist part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% The adrconv bundle consists at least of the files adrconv.dtx, +%% adrconv.ins and adrguide.tex. +%% +%% You are NOT ALLOWED to change this file. +%% +%% You are NOT ALLOWED to distribute this file without adrconv.dtx, +%% adrconv.ins or adrguide.tex. +ENTRY + { name + title + organization + city + zip + country + street + phone + mobile + fax + url + email + note + key + birthday + nbirthday + } + {} + { adr.char } +INTEGERS { cur.adr.char } +FUNCTION {get.names} +{ name empty$ + { organization empty$ + { "{}{}" } + { organization "{}" * } + if$ + } + { "{" name #1 "{ll}" format.name$ "}" * * + "{" name #1 "{ff}{ vv}" format.name$ "}" * * * + } + if$ +} +FUNCTION {print.adrchr} +{ adr.char chr.to.int$ cur.adr.char > + { newline$ "\adrchar{" adr.char "}" * * write$ newline$ + adr.char chr.to.int$ 'cur.adr.char := + } + 'skip$ + if$ +} +FUNCTION{format.phone.and.fax} +{ phone empty$ + { "" } + { phone } + if$ + fax empty$ + 'skip$ + { phone empty$ + { fax * } + { "\\Fax:\\" fax * * } + if$ + } + if$ +} +FUNCTION{address} +{ + print.adrchr + "\adrentry" write$ + get.names write$ newline$ + "{" + street empty$ + { "" } + { street " \\ " *} + if$ + * + zip empty$ + { "" } + { zip } + if$ + " " * * + city empty$ + { "" } + { city } + if$ + "}{" * * + format.phone.and.fax + "}{}{}{}{" * * + key empty$ + { "" } + { key } + if$ + "}" * * write$ newline$ +} +FUNCTION{presort} +{ + name empty$ + { organization empty$ + { key empty$ + { "No name, organization, or key to sort " cite$ * warning$ + "???" + } + { key } + if$ + } + { organization } + if$ + } + { name #1 "{ll},{f }{v }{, j}" format.name$ } + if$ + duplicate$ + 'sort.key$ := + #1 #1 substring$ + 'adr.char := +} +READ +ITERATE {presort} +SORT +FUNCTION {begin.bib} +{ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + #0 'cur.adr.char := +} +EXECUTE {begin.bib} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ } +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/adrconv/birthday.bst b/Master/texmf-dist/bibtex/bst/adrconv/birthday.bst new file mode 100644 index 00000000000..9fe2a9029bb --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/adrconv/birthday.bst @@ -0,0 +1,158 @@ +%% +%% This is file `birthday.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% adrconv.dtx (with options: `bst,birthday') +%% Copyright (c) 2001 Axel Kielhorn +%% +%% This file will generate fast loadable files from adrconv.dtx when +%% run through LaTeX or TeX. +%% +%% This file is part of the adrconv bundle. +%% +%% This file can be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.2 of the license +%% or (at you option) any later version. +%% The latest version of this license is in +%% http://www.latex-procejt.org/lppl.txt +%% and version 1.2 or later ist part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% The adrconv bundle consists at least of the files adrconv.dtx, +%% adrconv.ins and adrguide.tex. +%% +%% You are NOT ALLOWED to change this file. +%% +%% You are NOT ALLOWED to distribute this file without adrconv.dtx, +%% adrconv.ins or adrguide.tex. +ENTRY + { name + title + organization + city + zip + country + street + phone + mobile + fax + url + email + note + key + birthday + nbirthday + } + {} + { b.month } +STRINGS { cur.month num.index alpha.index } +FUNCTION {get.names} +{ name empty$ + { organization empty$ + { "{}{}" } + { organization "{}" * } + if$ + } + { "{" name #1 "{ll}" format.name$ "}" * * + "{" name #1 "{ff}{ vv}" format.name$ "}" * * * + } + if$ +} +FUNCTION {print.adrchr} +{ b.month cur.month = + 'skip$ + { newline$ "\adrchar{\convdate{" b.month "}}" * * write$ newline$ + b.month 'cur.month := + } + if$ +} +FUNCTION{format.phone.and.mobile} +{ phone empty$ + { + mobile empty$ + { "" } + { mobile } + if$ + }{ + mobile empty$ + { phone } + { phone "\\" mobile * * } + if$ + } + if$ +} +FUNCTION{address} +{ + nbirthday empty$ + 'skip$ + { + print.adrchr + "\adrentry" write$ + get.names write$ newline$ + "{" + street empty$ + { "" } + { street " \\ " *} + if$ + * + zip empty$ + { "" } + { zip } + if$ + " " * * + city empty$ + { "" } + { city } + if$ + "}{" * * + format.phone.and.mobile + "}{}{}{}{" * * + birthday empty$ + { "" } + { birthday } + if$ + "}{" * * + key empty$ + { "" } + { "" } + if$ + "}" * * write$ newline$ + } + if$ +} +FUNCTION{presort} +{ nbirthday empty$ + { "" } + { nbirthday } + if$ + duplicate$ + 'sort.key$ := + #1 #2 substring$ + 'b.month := +} +READ +ITERATE {presort} +SORT +FUNCTION {begin.bib} +{ + "\def\convdate#1{\ifcase#1 \or 1 \or 2 \or 3 \or 4 \or 5 " + "\or 6 \or 7 \or 8 \or 9 \or 10 \or 11 \or 12 \fi}" * 'num.index := + "\def\convdate#1{\ifcase#1 \or Januar \or Februar \or " + " M{^^b a}rz \or April \or Mai \or Juni \or Juli " + "\or August \or September \or Oktober \or November \or Dezember \fi}" + * * 'alpha.index := + alpha.index write$ + newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "00" 'cur.month := +} +EXECUTE {begin.bib} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ } +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/adrconv/email.bst b/Master/texmf-dist/bibtex/bst/adrconv/email.bst new file mode 100644 index 00000000000..47cc1fe4ba6 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/adrconv/email.bst @@ -0,0 +1,141 @@ +%% +%% This is file `email.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% adrconv.dtx (with options: `bst,email') +%% Copyright (c) 2001 Axel Kielhorn +%% +%% This file will generate fast loadable files from adrconv.dtx when +%% run through LaTeX or TeX. +%% +%% This file is part of the adrconv bundle. +%% +%% This file can be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.2 of the license +%% or (at you option) any later version. +%% The latest version of this license is in +%% http://www.latex-procejt.org/lppl.txt +%% and version 1.2 or later ist part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% The adrconv bundle consists at least of the files adrconv.dtx, +%% adrconv.ins and adrguide.tex. +%% +%% You are NOT ALLOWED to change this file. +%% +%% You are NOT ALLOWED to distribute this file without adrconv.dtx, +%% adrconv.ins or adrguide.tex. +ENTRY + { name + title + organization + city + zip + country + street + phone + mobile + fax + url + email + note + key + birthday + nbirthday + } + {} + { adr.char } +INTEGERS { cur.adr.char } +FUNCTION {get.names} +{ name empty$ + { organization empty$ + { "{}{}" } + { organization "{}" * } + if$ + } + { "{" name #1 "{ll}" format.name$ "}" * * + "{" name #1 "{ff}{ vv}" format.name$ "}" * * * + } + if$ +} +FUNCTION {print.adrchr} +{ adr.char chr.to.int$ cur.adr.char > + { newline$ "\adrchar{" adr.char "}" * * write$ newline$ + adr.char chr.to.int$ 'cur.adr.char := + } + 'skip$ + if$ +} +FUNCTION{address} +{ + print.adrchr + "\adrentry" write$ + get.names write$ newline$ + "{" + street empty$ + { "" } + { street " \\ " *} + if$ + * + zip empty$ + { "" } + { zip } + if$ + " " * * + city empty$ + { "" } + { city } + if$ + "}{" * * + email empty$ + { "" } + { email } + if$ + "}{}{}{}{" * * + key empty$ + { "" } + { key } + if$ + "}" * * write$ newline$ +} +FUNCTION{presort} +{ + name empty$ + { organization empty$ + { key empty$ + { "No name, organization, or key to sort " cite$ * warning$ + "???" + } + { key } + if$ + } + { organization } + if$ + } + { name #1 "{ll},{f }{v }{, j}" format.name$ } + if$ + duplicate$ + 'sort.key$ := + #1 #1 substring$ + 'adr.char := +} +READ +ITERATE {presort} +SORT +FUNCTION {begin.bib} +{ + "\def\sbscrpt{\_} \catcode`\_=\active \let_=\sbscrpt" + write$ newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + #0 'cur.adr.char := +} +EXECUTE {begin.bib} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ } +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/aguplus/agu.bst b/Master/texmf-dist/bibtex/bst/aguplus/agu.bst new file mode 100644 index 00000000000..58c1cf94722 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/aguplus/agu.bst @@ -0,0 +1,1714 @@ +%% +%% This is file `agu.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `head,ay,nat,seq-key,nm-rev1,nmlm,x9,m1,lab,lab-it,keyxyr,blkyear,note-yr,thtit-a,trnum-it,vol-it,vnum-x,volp-com,pgsep-c,num-xser,pre-edn,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,{}') +%% physjour.mbs (with options: `ay,nat,seq-key,nm-rev1,nmlm,x9,m1,lab,lab-it,keyxyr,blkyear,note-yr,thtit-a,trnum-it,vol-it,vnum-x,volp-com,pgsep-c,num-xser,pre-edn,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,{}') +%% geojour.mbs (with options: `ay,nat,seq-key,nm-rev1,nmlm,x9,m1,lab,lab-it,keyxyr,blkyear,note-yr,thtit-a,trnum-it,vol-it,vnum-x,volp-com,pgsep-c,num-xser,pre-edn,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,{}') +%% merlin.mbs (with options: `tail,ay,nat,seq-key,nm-rev1,nmlm,x9,m1,lab,lab-it,keyxyr,blkyear,note-yr,thtit-a,trnum-it,vol-it,vnum-x,volp-com,pgsep-c,num-xser,pre-edn,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,{}') +%% ---------------------------------------- +%% *** For journals of the American Geophysical Union *** +%% *** NOTE: this version limits number of authors in ref list to +%% *** maximum of 9; if more there, only First et al are listed +%% *** Use agufull.bst instead for complete list +%% *** +%% *** Version 2.1d from 1999/05/20 +%% *** Book editors done right as P. James (Ed.), +%% *** Missing italics with some authors fixed +%% *** +%% *** Version 2.1c from 1999/02/11 +%% *** This version does not crash older BibTeX installations with +%% *** more than 3000 wiz-functions +%% *** +%% *** Version 2.1b from 1997/11/18 +%% *** (page numbers over 9999 are broken with commas, as 12,345) +%% *** +%% *** Version 2.1a from 1997/05/26 +%% *** (contains improvements from copy editor comments, +%% *** notes added with first word lowercase (bug in 2.1 fixed) +%% *** and journal `number' never output +%% *** abbreviation for grl corrected) +%% *** +%% +%% Copyright 1994-1999 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}[1999/05/20 3.89 (PWD)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % 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 + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + 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 {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$ "" } + { "{\it " swap$ * "\/}" * } + if$ +} + + +FUNCTION {cite.name.font} +{ emphasize } + +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. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "ed." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + + %------------------------------------------------------------------- + % Begin module: + % \ProvidesFile{physjour.mbs}[1999/02/24 2.0d (PWD)] +MACRO {aa}{"Astron. \& Astrophys."} +MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} +MACRO {aph} {"Acta Phys."} +MACRO {advp} {"Adv. Phys."} +MACRO {ajp} {"Amer. J. Phys."} +MACRO {ajm} {"Amer. J. Math."} +MACRO {amsci} {"Amer. Sci."} +MACRO {anofd} {"Ann. Fluid Dyn."} +MACRO {am} {"Ann. Math."} +MACRO {ap} {"Ann. Phys. (NY)"} +MACRO {adp} {"Ann. Phys. (Leipzig)"} +MACRO {ao} {"Appl. Opt."} +MACRO {apl} {"Appl. Phys. Lett."} +MACRO {app} {"Astroparticle Phys."} +MACRO {apj} {"Astrophys. J."} +MACRO {apjsup} {"Astrophys. J. Suppl. Ser."} +MACRO {baps} {"Bull. Amer. Phys. Soc."} +MACRO {cmp} {"Comm. Math. Phys."} +MACRO {cpam} {"Commun. Pure Appl. Math."} +MACRO {cppcf} {"Comm. Plasma Phys. \& Controlled Fusion"} +MACRO {cpc} {"Comp. Phys. Comm."} +MACRO {cqg} {"Class. Quant. Grav."} +MACRO {cra} {"C. R. Acad. Sci. A"} +MACRO {fed} {"Fusion Eng. \& Design"} +MACRO {ft} {"Fusion Tech."} +MACRO {grg} {"Gen. Relativ. Gravit."} +MACRO {ieeens} {"IEEE Trans. Nucl. Sci."} +MACRO {ieeeps} {"IEEE Trans. Plasma Sci."} +MACRO {ijimw} {"Interntl. J. Infrared \& Millimeter Waves"} +MACRO {ip} {"Infrared Phys."} +MACRO {irp} {"Infrared Phys."} +MACRO {jap} {"J. Appl. Phys."} +MACRO {jasa} {"J. Acoust. Soc. America"} +MACRO {jcp} {"J. Comp. Phys."} +MACRO {jetp} {"Sov. Phys.--JETP"} +MACRO {jfe} {"J. Fusion Energy"} +MACRO {jfm} {"J. Fluid Mech."} +MACRO {jmp} {"J. Math. Phys."} +MACRO {jne} {"J. Nucl. Energy"} +MACRO {jnec} {"J. Nucl. Energy, C: Plasma Phys., Accelerators, Thermonucl. Res."} +MACRO {jnm} {"J. Nucl. Mat."} +MACRO {jpc} {"J. Phys. Chem."} +MACRO {jpp} {"J. Plasma Phys."} +MACRO {jpsj} {"J. Phys. Soc. Japan"} +MACRO {jsi} {"J. Sci. Instrum."} +MACRO {jvst} {"J. Vac. Sci. \& Tech."} +MACRO {nat} {"Nature"} +MACRO {nature} {"Nature"} +MACRO {nedf} {"Nucl. Eng. \& Design/Fusion"} +MACRO {nf} {"Nucl. Fusion"} +MACRO {nim} {"Nucl. Inst. \& Meth."} +MACRO {nimpr} {"Nucl. Inst. \& Meth. in Phys. Res."} +MACRO {np} {"Nucl. Phys."} +MACRO {npb} {"Nucl. Phys. B"} +MACRO {nt/f} {"Nucl. Tech./Fusion"} +MACRO {npbpc} {"Nucl. Phys. B (Proc. Suppl.)"} +MACRO {inc} {"Nuovo Cimento"} +MACRO {nc} {"Nuovo Cimento"} +MACRO {pf} {"Phys. Fluids"} +MACRO {pfa} {"Phys. Fluids A: Fluid Dyn."} +MACRO {pfb} {"Phys. Fluids B: Plasma Phys."} +MACRO {pl} {"Phys. Lett."} +MACRO {pla} {"Phys. Lett. A"} +MACRO {plb} {"Phys. Lett. B"} +MACRO {prep} {"Phys. Rep."} +MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"} +MACRO {pp} {"Phys. Plasmas"} +MACRO {ppcf} {"Plasma Phys. \& Controlled Fusion"} +MACRO {phitrsl} {"Philos. Trans. Roy. Soc. London"} +MACRO {prl} {"Phys. Rev. Lett."} +MACRO {pr} {"Phys. Rev."} +MACRO {physrev} {"Phys. Rev."} +MACRO {pra} {"Phys. Rev. A"} +MACRO {prb} {"Phys. Rev. B"} +MACRO {prc} {"Phys. Rev. C"} +MACRO {prd} {"Phys. Rev. D"} +MACRO {pre} {"Phys. Rev. E"} +MACRO {ps} {"Phys. Scripta"} +MACRO {procrsl} {"Proc. Roy. Soc. London"} +MACRO {rmp} {"Rev. Mod. Phys."} +MACRO {rsi} {"Rev. Sci. Inst."} +MACRO {science} {"Science"} +MACRO {sciam} {"Sci. Am."} +MACRO {sam} {"Stud. Appl. Math."} +MACRO {sjpp} {"Sov. J. Plasma Phys."} +MACRO {spd} {"Sov. Phys.--Doklady"} +MACRO {sptp} {"Sov. Phys.--Tech. Phys."} +MACRO {spu} {"Sov. Phys.--Uspeki"} + % End module: physjour.mbs + %------------------------------------------------------------------- + % Begin module: + % \ProvidesFile{geojour.mbs}[1999/02/24 2.0e (PWD)] +MACRO {aisr} {"Adv. Space Res."} +MACRO {ag} {"Ann. Geophys."} +MACRO {anigeo} {"Ann. Geofis."} +MACRO {angl} {"Ann. Glaciol."} +MACRO {andmet} {"Ann. d. Meteor."} +MACRO {andgeo} {"Ann. d. Geophys."} +MACRO {andphy} {"Ann. d. Phys."} +MACRO {afmgb} {"Arch. Meteor. Geophys. Bioklimatol."} +MACRO {atph} {"Atm\'osphera"} +MACRO {aao} {"Atmos.-Ocean"} +MACRO {ass}{"Astrophys. Space Sci."} +MACRO {atenv} {"Atmos. Environ."} +MACRO {aujag} {"Aust. J. Agric. Res."} +MACRO {aumet} {"Aust. Meteor. Mag."} +MACRO {blmet} {"Bound.-Layer Meteor."} +MACRO {bams} {"Bull. Amer. Meteor. Soc."} +MACRO {cch} {"Clim. Change"} +MACRO {cdyn} {"Climate Dyn."} +MACRO {cbul} {"Climatol. Bull."} +MACRO {cap} {"Contrib. Atmos. Phys."} +MACRO {dsr} {"Deep-Sea Res."} +MACRO {dhz} {"Dtsch. Hydrogr. Z."} +MACRO {dao} {"Dyn. Atmos. Oceans"} +MACRO {eco} {"Ecology"} +MACRO {empl}{"Earth, Moon and Planets"} +MACRO {envres} {"Environ. Res."} +MACRO {envst} {"Environ. Sci. Technol."} +MACRO {ecms} {"Estuarine Coastal Mar. Sci."} +MACRO {expa}{"Exper. Astron."} +MACRO {geoint} {"Geofis. Int."} +MACRO {geopub} {"Geofys. Publ."} +MACRO {geogeo} {"Geol. Geofiz."} +MACRO {gafd} {"Geophys. Astrophys. Fluid Dyn."} +MACRO {gfd} {"Geophys. Fluid Dyn."} +MACRO {geomag} {"Geophys. Mag."} +MACRO {georl} {"Geophys. Res. Lett."} +MACRO {grl} {"Geophys. Res. Lett."} +MACRO {ga} {"Geophysica"} +MACRO {gs} {"Geophysics"} +MACRO {ieeetap} {"IEEE Trans. Antennas Propag."} +MACRO {ijawp} {"Int. J. Air Water Pollut."} +MACRO {ijc} {"Int. J. Climatol."} +MACRO {ijrs} {"Int. J. Remote Sensing"} +MACRO {jam} {"J. Appl. Meteor."} +MACRO {jaot} {"J. Atmos. Ocean. Technol."} +MACRO {jatp} {"J. Atmos. Terr. Phys."} +MACRO {jce} {"J. Climate"} +MACRO {jcam} {"J. Climate Appl. Meteor."} +MACRO {jcm} {"J. Climate Meteor."} +MACRO {jcy} {"J. Climatol."} +MACRO {jgr} {"J. Geophys. Res."} +MACRO {jga} {"J. Glaciol."} +MACRO {jh} {"J. Hydrol."} +MACRO {jmr} {"J. Mar. Res."} +MACRO {jmrj} {"J. Meteor. Res. Japan"} +MACRO {jm} {"J. Meteor."} +MACRO {jpo} {"J. Phys. Oceanogr."} +MACRO {jra} {"J. Rech. Atmos."} +MACRO {jaes} {"J. Aeronaut. Sci."} +MACRO {japca} {"J. Air Pollut. Control Assoc."} +MACRO {jas} {"J. Atmos. Sci."} +MACRO {jmts} {"J. Mar. Technol. Soc."} +MACRO {jmsj} {"J. Meteor. Soc. Japan"} +MACRO {josj} {"J. Oceanogr. Soc. Japan"} +MACRO {jwm} {"J. Wea. Mod."} +MACRO {lao} {"Limnol. Oceanogr."} +MACRO {mwl} {"Mar. Wea. Log"} +MACRO {mau} {"Mausam"} +MACRO {meteor} {"``Meteor'' Forschungsergeb."} +MACRO {map} {"Met. Atmos. Phys."} +MACRO {metmag} {"Meteor. Mag."} +MACRO {metmon} {"Meteor. Monogr."} +MACRO {metrun} {"Meteor. Rundsch."} +MACRO {metzeit} {"Meteor. Z."} +MACRO {metgid} {"Meteor. Gidrol."} +MACRO {mwr} {"Mon. Wea. Rev."} +MACRO {nwd} {"Natl. Wea. Dig."} +MACRO {nzjmfr} {"N. Z. J. Mar. Freshwater Res."} +MACRO {npg} {"Nonlin. Proc. Geophys."} +MACRO {om} {"Oceanogr. Meteor."} +MACRO {ocac} {"Oceanol. Acta"} +MACRO {oceanus} {"Oceanus"} +MACRO {paleoc} {"Paleoceanography"} +MACRO {pce} {"Physics and Chemistry of the Earth"} +MACRO {pmg} {"Pap. Meteor. Geophys."} +MACRO {ppom} {"Pap. Phys. Oceanogr. Meteor."} +MACRO {physzeit} {"Phys. Z."} +MACRO {pps} {"Planet. Space Sci."} +MACRO {pss} {"Planet. Space Sci."} +MACRO {pag} {"Pure Appl. Geophys."} +MACRO {qjrms} {"Quart. J. Roy. Meteor. Soc."} +MACRO {quatres} {"Quat. Res."} +MACRO {rsci} {"Radio Sci."} +MACRO {rse} {"Remote Sens. Environ."} +MACRO {rgeo} {"Rev. Geophys."} +MACRO {rgsp} {"Rev. Geophys. Space Phys."} +MACRO {rdgeo} {"Rev. Geofis."} +MACRO {revmeta} {"Rev. Meteor."} +MACRO {sgp}{"Surveys in Geophys."} +MACRO {sp} {"Solar Phys."} +MACRO {ssr} {"Space Sci. Rev."} +MACRO {tellus} {"Tellus"} +MACRO {tac} {"Theor. Appl. Climatol."} +MACRO {tagu} {"Trans. Am. Geophys. Union (EOS)"} +MACRO {wrr} {"Water Resour. Res."} +MACRO {weather} {"Weather"} +MACRO {wafc} {"Wea. Forecasting"} +MACRO {ww} {"Weatherwise"} +MACRO {wmob} {"WMO Bull."} +MACRO {zeitmet} {"Z. Meteor."} + % End module: geojour.mbs +%% Copyright 1994-1999 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. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ } + { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ } + if$ + 't := + nameptr #1 > + { + nameptr #1 + #1 + = + numnames #9 + > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + "," * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.names.ed} +{ 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" + format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + + " " * bbl.etal * + } + { bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + " (" * + editor num.names$ #1 > + 'bbl.editors + 'bbl.editor + if$ + capitalize + * ")" * + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + } + 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$ * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ + } + 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 #9 + > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + cite.name.font + } + { + numnames #2 > + { "," * } + 'skip$ + if$ + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + t "others" = + 'skip$ + { cite.name.font } + if$ +} + +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 duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ + extra.label * +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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.connect + series empty$ + 'skip$ + { bbl.of space.word * series 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 } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + bbl.in space.word * series * + } + if$ + } + if$ + } + { "" } + if$ +} + + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " " * bbl.edition * } + { edition "t" change.case$ " " * bbl.edition * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { bbl.pages pages n.dashify tie.or.space.connect } + { bbl.page pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.journal.pages} +{ pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { + ", " * + pages n.dashify * + } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + emphasize + format.journal.pages +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in booktitle emphasize * + ", " * + bbl.edby + * " " * + format.in.editors * + } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { bbl.volume volume tie.or.space.connect + bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + t empty$ + { address empty$ + 'skip$ + { address * } + if$ + } + { t * + address empty$ + 'skip$ + { ", " * address * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.publisher.address} +{ publisher empty$ + { "empty publisher in " cite$ * warning$ + "" + } + { publisher } + if$ + format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization empty$ + { "" } + { organization } + if$ + format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + crossref missing$ + { journal + emphasize + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + 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.edition output + format.publisher.address output + } + { + format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.title "title" output.check + howpublished output + address output + format.date "year" output.check + 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.edition output + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.edition output + format.chapter.pages output + format.publisher.address output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + publisher empty$ + { format.organization.address output } + { organization output + format.publisher.address output + } + if$ + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + 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 output + address output + format.edition output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.title output + howpublished output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + 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 output + format.publisher.address output + } + if$ + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + format.tr.number emphasize output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + format.date "year" output.check + 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 * + cite.name.font + "others" 't := + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + cite.name.font + "others" 't := + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ + t "others" = + 'skip$ + { cite.name.font } + 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$ "" } + 'skip$ + 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 #9 + > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { numnames #2 > nameptr #2 = and + { "zz" * year field.or.null * " " * } + 'skip$ + if$ + 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 + * + " " + * + cite$ + * + #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 + * + " " + * + cite$ + * + #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$ + "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" + 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 `agu.bst'. diff --git a/Master/texmf-dist/bibtex/bst/aguplus/agufull.bst b/Master/texmf-dist/bibtex/bst/aguplus/agufull.bst new file mode 100644 index 00000000000..4fa3b80e582 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/aguplus/agufull.bst @@ -0,0 +1,1689 @@ +%% +%% This is file `agufull.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `head,ay,nat,seq-key,nm-rev1,lab,lab-it,keyxyr,blkyear,note-yr,thtit-a,trnum-it,vol-it,vnum-x,volp-com,pgsep-c,num-xser,pre-edn,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,{}') +%% physjour.mbs (with options: `ay,nat,seq-key,nm-rev1,lab,lab-it,keyxyr,blkyear,note-yr,thtit-a,trnum-it,vol-it,vnum-x,volp-com,pgsep-c,num-xser,pre-edn,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,{}') +%% geojour.mbs (with options: `ay,nat,seq-key,nm-rev1,lab,lab-it,keyxyr,blkyear,note-yr,thtit-a,trnum-it,vol-it,vnum-x,volp-com,pgsep-c,num-xser,pre-edn,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,{}') +%% merlin.mbs (with options: `tail,ay,nat,seq-key,nm-rev1,lab,lab-it,keyxyr,blkyear,note-yr,thtit-a,trnum-it,vol-it,vnum-x,volp-com,pgsep-c,num-xser,pre-edn,edpar,bkedcap,edby,blk-com,pp,ed,abr,ednx,xedn,jabr,and-com,em-it,{}') +%% ---------------------------------------- +%% *** For journals of the American Geophysical Union *** +%% *** NOTE: this version does not limit the number of authors in ref list. +%% *** Use agu.bst to limit authors to maximum 9. +%% *** +%% *** Version 2.1d from 1999/05/20 +%% *** Book editors done right as P. James (Ed.), +%% *** Missing italics with some authors fixed +%% *** +%% *** Version 2.1c from 1999/02/11 +%% *** This version does not crash older BibTeX installations with +%% *** more than 3000 wiz-functions +%% *** +%% *** Version 2.1b from 1997/11/18 +%% *** (page numbers over 9999 are broken with commas, as 12,345) +%% *** +%% *** Version 2.1a from 1997/05/26 +%% *** (contains improvements from copy editor comments, +%% *** notes added with first word lowercase (bug in 2.1 fixed) +%% *** and journal `number' never output +%% *** abbreviation for grl corrected) +%% *** +%% +%% Copyright 1994-1999 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}[1999/05/20 3.89 (PWD)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % 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 + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + 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 {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$ "" } + { "{\it " swap$ * "\/}" * } + if$ +} + + +FUNCTION {cite.name.font} +{ emphasize } + +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. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "ed." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + + %------------------------------------------------------------------- + % Begin module: + % \ProvidesFile{physjour.mbs}[1999/02/24 2.0d (PWD)] +MACRO {aa}{"Astron. \& Astrophys."} +MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} +MACRO {aph} {"Acta Phys."} +MACRO {advp} {"Adv. Phys."} +MACRO {ajp} {"Amer. J. Phys."} +MACRO {ajm} {"Amer. J. Math."} +MACRO {amsci} {"Amer. Sci."} +MACRO {anofd} {"Ann. Fluid Dyn."} +MACRO {am} {"Ann. Math."} +MACRO {ap} {"Ann. Phys. (NY)"} +MACRO {adp} {"Ann. Phys. (Leipzig)"} +MACRO {ao} {"Appl. Opt."} +MACRO {apl} {"Appl. Phys. Lett."} +MACRO {app} {"Astroparticle Phys."} +MACRO {apj} {"Astrophys. J."} +MACRO {apjsup} {"Astrophys. J. Suppl. Ser."} +MACRO {baps} {"Bull. Amer. Phys. Soc."} +MACRO {cmp} {"Comm. Math. Phys."} +MACRO {cpam} {"Commun. Pure Appl. Math."} +MACRO {cppcf} {"Comm. Plasma Phys. \& Controlled Fusion"} +MACRO {cpc} {"Comp. Phys. Comm."} +MACRO {cqg} {"Class. Quant. Grav."} +MACRO {cra} {"C. R. Acad. Sci. A"} +MACRO {fed} {"Fusion Eng. \& Design"} +MACRO {ft} {"Fusion Tech."} +MACRO {grg} {"Gen. Relativ. Gravit."} +MACRO {ieeens} {"IEEE Trans. Nucl. Sci."} +MACRO {ieeeps} {"IEEE Trans. Plasma Sci."} +MACRO {ijimw} {"Interntl. J. Infrared \& Millimeter Waves"} +MACRO {ip} {"Infrared Phys."} +MACRO {irp} {"Infrared Phys."} +MACRO {jap} {"J. Appl. Phys."} +MACRO {jasa} {"J. Acoust. Soc. America"} +MACRO {jcp} {"J. Comp. Phys."} +MACRO {jetp} {"Sov. Phys.--JETP"} +MACRO {jfe} {"J. Fusion Energy"} +MACRO {jfm} {"J. Fluid Mech."} +MACRO {jmp} {"J. Math. Phys."} +MACRO {jne} {"J. Nucl. Energy"} +MACRO {jnec} {"J. Nucl. Energy, C: Plasma Phys., Accelerators, Thermonucl. Res."} +MACRO {jnm} {"J. Nucl. Mat."} +MACRO {jpc} {"J. Phys. Chem."} +MACRO {jpp} {"J. Plasma Phys."} +MACRO {jpsj} {"J. Phys. Soc. Japan"} +MACRO {jsi} {"J. Sci. Instrum."} +MACRO {jvst} {"J. Vac. Sci. \& Tech."} +MACRO {nat} {"Nature"} +MACRO {nature} {"Nature"} +MACRO {nedf} {"Nucl. Eng. \& Design/Fusion"} +MACRO {nf} {"Nucl. Fusion"} +MACRO {nim} {"Nucl. Inst. \& Meth."} +MACRO {nimpr} {"Nucl. Inst. \& Meth. in Phys. Res."} +MACRO {np} {"Nucl. Phys."} +MACRO {npb} {"Nucl. Phys. B"} +MACRO {nt/f} {"Nucl. Tech./Fusion"} +MACRO {npbpc} {"Nucl. Phys. B (Proc. Suppl.)"} +MACRO {inc} {"Nuovo Cimento"} +MACRO {nc} {"Nuovo Cimento"} +MACRO {pf} {"Phys. Fluids"} +MACRO {pfa} {"Phys. Fluids A: Fluid Dyn."} +MACRO {pfb} {"Phys. Fluids B: Plasma Phys."} +MACRO {pl} {"Phys. Lett."} +MACRO {pla} {"Phys. Lett. A"} +MACRO {plb} {"Phys. Lett. B"} +MACRO {prep} {"Phys. Rep."} +MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"} +MACRO {pp} {"Phys. Plasmas"} +MACRO {ppcf} {"Plasma Phys. \& Controlled Fusion"} +MACRO {phitrsl} {"Philos. Trans. Roy. Soc. London"} +MACRO {prl} {"Phys. Rev. Lett."} +MACRO {pr} {"Phys. Rev."} +MACRO {physrev} {"Phys. Rev."} +MACRO {pra} {"Phys. Rev. A"} +MACRO {prb} {"Phys. Rev. B"} +MACRO {prc} {"Phys. Rev. C"} +MACRO {prd} {"Phys. Rev. D"} +MACRO {pre} {"Phys. Rev. E"} +MACRO {ps} {"Phys. Scripta"} +MACRO {procrsl} {"Proc. Roy. Soc. London"} +MACRO {rmp} {"Rev. Mod. Phys."} +MACRO {rsi} {"Rev. Sci. Inst."} +MACRO {science} {"Science"} +MACRO {sciam} {"Sci. Am."} +MACRO {sam} {"Stud. Appl. Math."} +MACRO {sjpp} {"Sov. J. Plasma Phys."} +MACRO {spd} {"Sov. Phys.--Doklady"} +MACRO {sptp} {"Sov. Phys.--Tech. Phys."} +MACRO {spu} {"Sov. Phys.--Uspeki"} + % End module: physjour.mbs + %------------------------------------------------------------------- + % Begin module: + % \ProvidesFile{geojour.mbs}[1999/02/24 2.0e (PWD)] +MACRO {aisr} {"Adv. Space Res."} +MACRO {ag} {"Ann. Geophys."} +MACRO {anigeo} {"Ann. Geofis."} +MACRO {angl} {"Ann. Glaciol."} +MACRO {andmet} {"Ann. d. Meteor."} +MACRO {andgeo} {"Ann. d. Geophys."} +MACRO {andphy} {"Ann. d. Phys."} +MACRO {afmgb} {"Arch. Meteor. Geophys. Bioklimatol."} +MACRO {atph} {"Atm\'osphera"} +MACRO {aao} {"Atmos.-Ocean"} +MACRO {ass}{"Astrophys. Space Sci."} +MACRO {atenv} {"Atmos. Environ."} +MACRO {aujag} {"Aust. J. Agric. Res."} +MACRO {aumet} {"Aust. Meteor. Mag."} +MACRO {blmet} {"Bound.-Layer Meteor."} +MACRO {bams} {"Bull. Amer. Meteor. Soc."} +MACRO {cch} {"Clim. Change"} +MACRO {cdyn} {"Climate Dyn."} +MACRO {cbul} {"Climatol. Bull."} +MACRO {cap} {"Contrib. Atmos. Phys."} +MACRO {dsr} {"Deep-Sea Res."} +MACRO {dhz} {"Dtsch. Hydrogr. Z."} +MACRO {dao} {"Dyn. Atmos. Oceans"} +MACRO {eco} {"Ecology"} +MACRO {empl}{"Earth, Moon and Planets"} +MACRO {envres} {"Environ. Res."} +MACRO {envst} {"Environ. Sci. Technol."} +MACRO {ecms} {"Estuarine Coastal Mar. Sci."} +MACRO {expa}{"Exper. Astron."} +MACRO {geoint} {"Geofis. Int."} +MACRO {geopub} {"Geofys. Publ."} +MACRO {geogeo} {"Geol. Geofiz."} +MACRO {gafd} {"Geophys. Astrophys. Fluid Dyn."} +MACRO {gfd} {"Geophys. Fluid Dyn."} +MACRO {geomag} {"Geophys. Mag."} +MACRO {georl} {"Geophys. Res. Lett."} +MACRO {grl} {"Geophys. Res. Lett."} +MACRO {ga} {"Geophysica"} +MACRO {gs} {"Geophysics"} +MACRO {ieeetap} {"IEEE Trans. Antennas Propag."} +MACRO {ijawp} {"Int. J. Air Water Pollut."} +MACRO {ijc} {"Int. J. Climatol."} +MACRO {ijrs} {"Int. J. Remote Sensing"} +MACRO {jam} {"J. Appl. Meteor."} +MACRO {jaot} {"J. Atmos. Ocean. Technol."} +MACRO {jatp} {"J. Atmos. Terr. Phys."} +MACRO {jce} {"J. Climate"} +MACRO {jcam} {"J. Climate Appl. Meteor."} +MACRO {jcm} {"J. Climate Meteor."} +MACRO {jcy} {"J. Climatol."} +MACRO {jgr} {"J. Geophys. Res."} +MACRO {jga} {"J. Glaciol."} +MACRO {jh} {"J. Hydrol."} +MACRO {jmr} {"J. Mar. Res."} +MACRO {jmrj} {"J. Meteor. Res. Japan"} +MACRO {jm} {"J. Meteor."} +MACRO {jpo} {"J. Phys. Oceanogr."} +MACRO {jra} {"J. Rech. Atmos."} +MACRO {jaes} {"J. Aeronaut. Sci."} +MACRO {japca} {"J. Air Pollut. Control Assoc."} +MACRO {jas} {"J. Atmos. Sci."} +MACRO {jmts} {"J. Mar. Technol. Soc."} +MACRO {jmsj} {"J. Meteor. Soc. Japan"} +MACRO {josj} {"J. Oceanogr. Soc. Japan"} +MACRO {jwm} {"J. Wea. Mod."} +MACRO {lao} {"Limnol. Oceanogr."} +MACRO {mwl} {"Mar. Wea. Log"} +MACRO {mau} {"Mausam"} +MACRO {meteor} {"``Meteor'' Forschungsergeb."} +MACRO {map} {"Met. Atmos. Phys."} +MACRO {metmag} {"Meteor. Mag."} +MACRO {metmon} {"Meteor. Monogr."} +MACRO {metrun} {"Meteor. Rundsch."} +MACRO {metzeit} {"Meteor. Z."} +MACRO {metgid} {"Meteor. Gidrol."} +MACRO {mwr} {"Mon. Wea. Rev."} +MACRO {nwd} {"Natl. Wea. Dig."} +MACRO {nzjmfr} {"N. Z. J. Mar. Freshwater Res."} +MACRO {npg} {"Nonlin. Proc. Geophys."} +MACRO {om} {"Oceanogr. Meteor."} +MACRO {ocac} {"Oceanol. Acta"} +MACRO {oceanus} {"Oceanus"} +MACRO {paleoc} {"Paleoceanography"} +MACRO {pce} {"Physics and Chemistry of the Earth"} +MACRO {pmg} {"Pap. Meteor. Geophys."} +MACRO {ppom} {"Pap. Phys. Oceanogr. Meteor."} +MACRO {physzeit} {"Phys. Z."} +MACRO {pps} {"Planet. Space Sci."} +MACRO {pss} {"Planet. Space Sci."} +MACRO {pag} {"Pure Appl. Geophys."} +MACRO {qjrms} {"Quart. J. Roy. Meteor. Soc."} +MACRO {quatres} {"Quat. Res."} +MACRO {rsci} {"Radio Sci."} +MACRO {rse} {"Remote Sens. Environ."} +MACRO {rgeo} {"Rev. Geophys."} +MACRO {rgsp} {"Rev. Geophys. Space Phys."} +MACRO {rdgeo} {"Rev. Geofis."} +MACRO {revmeta} {"Rev. Meteor."} +MACRO {sgp}{"Surveys in Geophys."} +MACRO {sp} {"Solar Phys."} +MACRO {ssr} {"Space Sci. Rev."} +MACRO {tellus} {"Tellus"} +MACRO {tac} {"Theor. Appl. Climatol."} +MACRO {tagu} {"Trans. Am. Geophys. Union (EOS)"} +MACRO {wrr} {"Water Resour. Res."} +MACRO {weather} {"Weather"} +MACRO {wafc} {"Wea. Forecasting"} +MACRO {ww} {"Weatherwise"} +MACRO {wmob} {"WMO Bull."} +MACRO {zeitmet} {"Z. Meteor."} + % End module: geojour.mbs +%% Copyright 1994-1999 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. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ } + { s nameptr "{vv~}{ll}{, f.}{, jj}" format.name$ } + if$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + "," * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.names.ed} +{ 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" + format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + + " " * bbl.etal * + } + { bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + " (" * + editor num.names$ #1 > + 'bbl.editors + 'bbl.editor + if$ + capitalize + * ")" * + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + } + 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$ * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ + } + 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 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + cite.name.font + } + { + numnames #2 > + { "," * } + 'skip$ + if$ + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + t "others" = + 'skip$ + { cite.name.font } + if$ +} + +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 duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ + extra.label * +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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.connect + series empty$ + 'skip$ + { bbl.of space.word * series 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 } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + bbl.in space.word * series * + } + if$ + } + if$ + } + { "" } + if$ +} + + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " " * bbl.edition * } + { edition "t" change.case$ " " * bbl.edition * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { bbl.pages pages n.dashify tie.or.space.connect } + { bbl.page pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.journal.pages} +{ pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { + ", " * + pages n.dashify * + } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + emphasize + format.journal.pages +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in booktitle emphasize * + ", " * + bbl.edby + * " " * + format.in.editors * + } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { bbl.volume volume tie.or.space.connect + bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + t empty$ + { address empty$ + 'skip$ + { address * } + if$ + } + { t * + address empty$ + 'skip$ + { ", " * address * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.publisher.address} +{ publisher empty$ + { "empty publisher in " cite$ * warning$ + "" + } + { publisher } + if$ + format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization empty$ + { "" } + { organization } + if$ + format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + crossref missing$ + { journal + emphasize + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + 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.edition output + format.publisher.address output + } + { + format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.title "title" output.check + howpublished output + address output + format.date "year" output.check + 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.edition output + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.edition output + format.chapter.pages output + format.publisher.address output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + publisher empty$ + { format.organization.address output } + { organization output + format.publisher.address output + } + if$ + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + 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 output + address output + format.edition output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.title output + howpublished output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + 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 output + format.publisher.address output + } + if$ + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + format.tr.number emphasize output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + format.date "year" output.check + 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 * + cite.name.font + "others" 't := + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + cite.name.font + "others" 't := + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ + t "others" = + 'skip$ + { cite.name.font } + 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$ "" } + 'skip$ + 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 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { numnames #2 > nameptr #2 = and + { "zz" * year field.or.null * " " * } + 'skip$ + if$ + 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 + * + " " + * + cite$ + * + #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 + * + " " + * + cite$ + * + #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$ + "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" + 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 `agufull.bst'. diff --git a/Master/texmf-dist/bibtex/bst/aiaa/aiaa.bst b/Master/texmf-dist/bibtex/bst/aiaa/aiaa.bst new file mode 100644 index 00000000000..9468497536d --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/aiaa/aiaa.bst @@ -0,0 +1,1255 @@ +%% +%% This is file `aiaa.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% aiaa.dtx (with options: `bibstyle') +%% +%% Welcome to the AIAA LaTeX package. +%% +%% For further details and support, read the Users Manual, aiaa.pdf. +%% +%% This software is released under the terms of the LaTeX Project Public +%% License. Copyright (C) 2004 by Bil Kleb, Bill Wood, and Erich Knausenberger. +%% +%% Description: LaTeX package for AIAA technical conference papers. +%% Keywords: LaTeX, class, AIAA, BibTeX, bibliographic-style +%% Author: Bil Kleb, Bill Wood, Erich Knausenberger +%% Maintainer: same +%% Version: 3.6 <23 May 2004> +%% +%% Run (PDF)LaTeX on `aiaa.dtx' to obtain a Users Manual and code +%% documentation. Note: to get detailed code documentation you need to +%% comment out the \OnlyDescription line in `aiaa.dtx'. +%% +%% See `aiaa.ins' and the Users Manual for installation instructions. +%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "\/}" * } + if$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.editors} +{ "editors" } + +FUNCTION {bbl.editor} +{ "editor" } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "ed." } + +FUNCTION {bbl.volume} +{ "Vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "No." } + +FUNCTION {bbl.nr} +{ "No." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {jan-feb} {"Jan.-Feb."} + +MACRO {mar-apr} {"Mar.-Apr."} + +MACRO {may-jun} {"May-Jun."} + +MACRO {jul-aug} {"Jul.-Aug."} + +MACRO {sep-oct} {"Sep.-Oct."} + +MACRO {nov-dec} {"Nov.-Dec."} + +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +MACRO {jsr} {"Journal of Spacecraft and Rockets"} + +MACRO {aa} {"Aerospace America"} + +MACRO {Sb} {"Space News"} + +MACRO {awst} {"Aviation Week \& Space Technology"} + +MACRO {jcp} {"Journal of Computational Physics"} + +MACRO {ijcfd} {"International Journal of Computational Fluid Dynamics"} + +MACRO {ijnme} {"International Journal for Numerical Methods in Engineering"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, jj}{, f.}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { bbl.and space.word * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.names.ed} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" + format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { bbl.and space.word * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { + author format.names + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { + editor format.names + editor num.names$ #1 > + { ", " * bbl.editors * } + { ", " * bbl.editor * } + if$ + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title + "\enquote{" swap$ * + non.stop + { ",} " * } + { "} " * } + if$ + } + if$ +} + +FUNCTION {end.quote.title} +{ title empty$ + 'skip$ + { before.all 'output.state := } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ '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} +{ "" } + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s eng.ord 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { bbl.pages pages n.dashify tie.or.space.connect } + { bbl.page pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.journal.pages} +{ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * bbl.pages "~" * * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + volume empty$ + 'skip$ + { bbl.volume "~" * swap$ * } + if$ + number empty$ + 'skip$ + { + ", " bbl.nr * number tie.or.space.connect * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + { "" } + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in booktitle emphasize * + ", " * + bbl.edby + * + " " * + format.in.editors * + } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { word.in journal emphasize * } + if$ + } + { word.in key * " " *} + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { bbl.and space.word * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { bbl.volume volume tie.or.space.connect + bbl.of space.word * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series emphasize * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { word.in booktitle emphasize * } + if$ + } + { word.in key * " " *} + if$ + } + { word.in format.crossref.editor * " " *} + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.publisher} +{ publisher empty$ + { "empty publisher in " cite$ * warning$ } + 'skip$ + if$ + "" + address empty$ publisher empty$ and + 'skip$ + { + publisher empty$ + { address empty$ + 'skip$ + { address * } + if$ + } + { publisher * + address empty$ + 'skip$ + { ", " * address * } + if$ + } + if$ + } + if$ + output +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + end.quote.title + crossref missing$ + { journal + emphasize + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.journal.pages + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + } + { 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 + } + { + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.title "title" output.check + end.quote.title + howpublished output + address output + format.date output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + } + { 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 + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.pages "pages" output.check + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + format.publisher + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.pages "pages" output.check + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + publisher empty$ + { organization output + address output + } + { organization output + format.publisher + } + if$ + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.pages "pages" output.check + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + format.btitle "title" output.check + author empty$ + { organization empty$ + { + address output + } + 'skip$ + if$ + } + { + organization output + address output + } + if$ + format.edition output + format.date output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + end.quote.title + howpublished output + format.date output + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + end.quote.title + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + end.quote.title + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * + write$ newline$ + "\newcommand{\enquote}[1]{``#1''}" + 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 file `aiaa.bst'. diff --git a/Master/texmf-dist/bibtex/bst/amslatex/amsalpha.bst b/Master/texmf-dist/bibtex/bst/amslatex/amsalpha.bst new file mode 100644 index 00000000000..af9f6b43876 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/amslatex/amsalpha.bst @@ -0,0 +1,1404 @@ +%%% ==================================================================== +%%% @BibTeX-style-file{ +%%% filename = "amsalpha.bst", +%%% version = "2.0", +%%% date = "2000/03/27", +%%% time = "13:49:36 EST", +%%% checksum = "00166 1404 4124 29978", +%%% author = "American Mathematical Society", +%%% address = "American Mathematical Society, +%%% Technical Support, +%%% Electronic Products and Services, +%%% P. O. Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% telephone = "401-455-4080 or (in the USA and Canada) +%%% 800-321-4AMS (321-4267)", +%%% FAX = "401-331-3842", +%%% email = "tech-support@ams.org (Internet)", +%%% copyright = "Copyright 1995 American Mathematical Society, +%%% all rights reserved. Copying of this file is +%%% authorized only if either: +%%% (1) you make absolutely no changes to your copy, +%%% including name; OR +%%% (2) if you do make changes, you first rename it +%%% to some other name.", +%%% codetable = "ISO/ASCII", +%%% keywords = "bibtex, bibliography, amslatex, ams-latex", +%%% supported = "yes", +%%% abstract = "BibTeX bibliography style `amsalpha' for BibTeX +%%% versions 0.99a or later and LaTeX version 2e. +%%% Produces alphabetic-label bibliography items in +%%% a form typical for American Mathematical Society +%%% publications.", +%%% docstring = "The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== + +% See the file btxbst.doc for extra documentation other than +% what is included here. And see btxhak.tex for a description +% of the BibTeX language and how to use it. + +% This defines the types of fields that can occur in a database entry +% for this particular bibliography style. Except for `language', +% this is the standard list from alpha.bst. + +%% Types of entries currently allowed in a BibTeX file: +%% +%% ARTICLE -- An article from a journal or magazine. +%% +%% BOOK -- A book with an explicit publisher. +%% +%% BOOKLET -- A work that is printed and bound, +%% but without a named publisher or sponsoring institution. +%% +%% CONFERENCE -- The same as INPROCEEDINGS, +%% included for Scribe compatibility. +%% +%% INBOOK -- A part of a book, +%% which may be a chapter (or section or whatever) and/or a range of pages. +%% +%% INCOLLECTION -- A part of a book having its own title. +%% +%% INPROCEEDINGS -- An article in a conference proceedings. +%% +%% MANUAL -- Technical documentation. +%% +%% MASTERSTHESIS -- A Master's thesis. +%% +%% MISC -- Use this type when nothing else fits. +%% +%% PHDTHESIS -- A PhD thesis. +%% +%% PROCEEDINGS -- The proceedings of a conference. +%% +%% TECHREPORT -- A report published by a school or other institution, +%% usually numbered within a series. +%% +%% UNPUBLISHED -- A document having an author and title, but not formally +%% published. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + language + month + mrnumber + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label bysame } + +% Removed after.sentence, after.block---not needed. + +INTEGERS { output.state before.all mid.sentence } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := +} + +% Scratch variables: + +STRINGS { s t } + +% Utility functions + +FUNCTION {shows} +{ duplicate$ ":::: `" swap$ * "'" * top$ +} + +FUNCTION {showstack} +{"STACK=====================================================================" +top$ +stack$ +"ENDSTACK==================================================================" +top$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +% n.dashify is used to make sure page ranges get the TeX code +% (two hyphens) for en-dashes. + +FUNCTION {n.dashify} +{ '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$ +} + +% tie.or.space.connect connects two items with a ~ if the +% second item is less than 3 letters long, otherwise it just puts an +% ordinary space. + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {add.space.if.necessary} +{ duplicate$ "" = + 'skip$ + { " " * } + if$ +} + +% either.or.check gives a warning if two mutually exclusive fields +% were used in the database. + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +% output.nonnull is called by output. + +FUNCTION {output.nonnull} +% remove the top item from the stack because it's in the way. +{ 's := + output.state mid.sentence = +% If we're in mid-sentence, add a comma to the new top item and write it + { ", " * write$ } +% Otherwise, if we're at the beginning of a bibitem, + { output.state before.all = +% just write out the top item from the stack; + 'write$ +% and the last alternative is that we're at the end of the current +% bibitem, so we add a period to the top stack item and write it out. + { add.period$ " " * write$ } + if$ + mid.sentence 'output.state := + } + if$ +% Put the top item back on the stack that we removed earlier. + s +} + +% Output checks to see if the stack top is empty; if not, it +% calls output.nonnull to write it out. + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +% Standard warning message for a missing or empty field. For the user +% we call any such field `missing' without respect to the distinction +% made by BibTeX between missing and empty. + +FUNCTION {missing.warning} +{ "missing " swap$ * " in " * cite$ * warning$ } + +% Output.check is like output except that it gives a warning on-screen +% if the given field in the database entry is empty. t is the field +% name. + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ t missing.warning } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ +% This empty string is the first thing that will be written +% the next time write$ is called. Done this way because each +% item is saved on the stack until we find out what punctuation +% should be added after it. Therefore we need an empty first item. + "" + before.all 'output.state := +} + +FUNCTION {output.nonempty.mrnumber} +{ duplicate$ missing$ + { pop$ "" } + 'skip$ + if$ + duplicate$ empty$ + 'pop$ + { " \MR{" swap$ * "}" * write$ } + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + mrnumber output.nonempty.mrnumber + newline$ +} + +% Removed new.block, new.block.checka, new.block.checkb, new.sentence, +% new.sentence.checka, and new.sentence.checkb functions here, since they +% don't seem to be needed in the AMS style. Also moved some real +% basic functions like `and' and 'or' earlier in the file. + +INTEGERS { nameptr namesleft numnames } + +% The extra section to write out a language field was added +% for AMSPLAIN.BST. Not present in plain.bst. + +FUNCTION {format.language} +{ language empty$ + { "" } + { " (" language * ")" * } + if$ +} + +% This version of format.names puts names in the format +% +% First von Last, Jr. +% +% (i.e., first name first, no abbreviating to initials). + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { bysame "\bysame" = + { bysame } + { author format.names } + if$ + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { " (eds.)" * } + { " (ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.nonauthor.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ emphasize } + if$ +} + +FUNCTION {format.journal.vol.year} +{ journal empty$ + { "" "journal name" missing.warning } + { journal + volume empty$ + 'skip$ + { " \textbf{" * volume * "}" * } + if$ + year empty$ + { "year" missing.warning } + { " (" * year * ")" * } + if$ + } + if$ +} + +% For formatting the issue number for a journal article. + +FUNCTION {format.number} +{ number empty$ + { "" } + { "no.~" number * } + if$ +} + +% For formatting miscellaneous dates + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +%% The volume, series and number information is sort of tricky. +%% This code handles it as follows: +%% If the series is present, and the volume, but not the number, +%% then we do "\emph{Book title}, Series Name, vol. 000" +%% If the series is present, and the number, but not the volume, +%% then we do "\emph{Book title}, Series Name, no. 000" +%% If the series is present, and both number and volume, +%% then we do "\emph{Book title}, vol. XX, Series Name, no. 000" +%% Finally, if the series is absent, +%% then we do "\emph{Book title}, vol. XX" +%% or "\emph{Book title}, no. 000" +%% and if both volume and number are present, give a warning message. + +FUNCTION {format.bookvolume.series.number} +{ volume empty$ + { "" % Push the empty string as a placeholder in case everything else + % is empty too. + series empty$ + 'skip$ + { pop$ series } % if series is not empty put in stack + if$ + number empty$ + 'skip$ + { duplicate$ empty$ % if no preceding material, + 'skip$ % do nothing, otherwise + { ", " * } % add a comma and space to separate. + if$ + "no." number tie.or.space.connect * % add the number information + } + if$ + } +%% If the volume is NOT EMPTY: + { "vol." volume tie.or.space.connect % vol. XX + number empty$ + { series empty$ + 'skip$ + { series ", " * swap$ *} % Series Name, vol. XX + if$ + } + { series empty$ + { "can't use both volume and number if series info is missing" + warning$ + "in BibTeX entry type `" type$ * "'" * top$ + } + { ", " * series * ", no." * number tie.or.space.connect } + if$ + } + if$ + } + if$ + +} % end of format.bookvolume.series.number + +%% format.inproc.title.where.editors is used by inproceedings entry types + +%% No case changing or emphasizing for the title. We want initial +%% caps, roman. +%% We add parentheses around the address (place where conference +%% was held). +%% Likewise we add parentheses around the editors' names. + +FUNCTION {format.inproc.title.address.editors} +{ booktitle empty$ + { "" } + { booktitle + address empty$ + 'skip$ + { add.space.if.necessary "(" * address * ")" * } + if$ + editor empty$ + 'skip$ + { add.space.if.necessary "(" * format.nonauthor.editors * ")" * } + if$ + } + if$ +} + +%% format.incoll.title.editors is similar to format.inproc... but +%% omits the address. For collections that are not proceedings volumes. + +FUNCTION {format.incoll.title.editors} +{ booktitle empty$ + { "" } + { editor empty$ + { booktitle } + { booktitle + add.space.if.necessary "(" * format.nonauthor.editors * ")" * + } + if$ + } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " ed." * } + { edition "t" change.case$ " ed." * } + if$ + } + 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 empty$ + { "" } + { pages n.dashify } + if$ +} + +FUNCTION {format.book.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.book.pages + { type empty$ + { "ch.~" } + { type "l" change.case$ " " * } + if$ + chapter * + pages empty$ + 'skip$ + { ", " * format.book.pages * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +% The format.crossref functions haven't been paid much attention +% at the present time (June 1990) and could probably use some +% work. MJD + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in " journal * } + if$ + } + { "in " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "vol." volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "in \emph{" booktitle * "}" * } + if$ + } + { "in " key * } + if$ + } + { "in " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% The main functions for each entry type. + +% journal, vol and year are formatted together because they are +% not separated by commas. + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.journal.vol.year "journal, volume, and year" output.check + format.number output + format.pages "pages" output.check + } + { format.article.crossref output.nonnull + format.pages "pages" output.check + } + if$ + format.language * + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.title "title" output.check + format.edition output + crossref missing$ + { format.bookvolume.series.number output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.language * + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.title "title" output.check + howpublished output + address output + format.date output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.title "title" output.check + format.edition output + crossref missing$ + { format.bookvolume.series.number output + format.chapter.pages "chapter and pages" output.check + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.language * + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.incoll.title.editors "booktitle" output.check + format.bookvolume.series.number output + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + note output + format.book.pages output + format.language * + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.inproc.title.address.editors "booktitle" output.check + format.bookvolume.series.number output + organization output + publisher output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + note output + format.book.pages output + format.language * + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + format.title "title" output.check + author empty$ + { organization empty$ + { address output } + 'skip$ + if$ + } + { organization output + address output + } + if$ + format.edition output + format.date output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + note output + format.book.pages output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + howpublished output + format.date output + note output + format.book.pages output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + "Ph.D. thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + note output + format.book.pages output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + format.title "title" output.check + format.bookvolume.series.number output + address empty$ + { editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + if$ + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +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$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label + sort.label + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { + longest.label last.sort.label next.extra prev.author this.author +} + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := + "abcxyz" 'prev.author := + "" 'this.author := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ + author empty$ { editor empty$ { "" } 'editor if$ } 'author if$ + 'this.author := + this.author prev.author = + { "\bysame" 'bysame := } + { "" 'bysame := + this.author "" = + { "abcxyz" } + 'this.author + if$ + 'prev.author := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {begin.bib} +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\providecommand{\bysame}{\leavevmode\hbox to3em{\hrulefill}\thinspace}" + write$ newline$ + "\providecommand{\MR}{\relax\ifhmode\unskip\space\fi MR }" + write$ newline$ + "% \MRhref is called by the amsart/book/proc definition of \MR." + write$ newline$ + "\providecommand{\MRhref}[2]{%" + write$ newline$ + " \href{http://www.ams.org/mathscinet-getitem?mr=#1}{#2}" + write$ newline$ + "}" + write$ newline$ + "\providecommand{\href}[2]{#2}" + write$ newline$ + "\begin{thebibliography}{" longest.label * "}" * + write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} diff --git a/Master/texmf-dist/bibtex/bst/amslatex/amsplain.bst b/Master/texmf-dist/bibtex/bst/amslatex/amsplain.bst new file mode 100644 index 00000000000..3098bee32c3 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/amslatex/amsplain.bst @@ -0,0 +1,1255 @@ +%%% ==================================================================== +%%% @BibTeX-style-file{ +%%% filename = "amsplain.bst", +%%% version = "2.0", +%%% date = "2000/03/27", +%%% time = "13:49:29 EST", +%%% checksum = "37449 1255 3734 27098", +%%% author = "American Mathematical Society", +%%% address = "American Mathematical Society, +%%% Technical Support, +%%% Electronic Products and Services, +%%% P. O. Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% telephone = "401-455-4080 or (in the USA and Canada) +%%% 800-321-4AMS (321-4267)", +%%% FAX = "401-331-3842", +%%% email = "tech-support@ams.org (Internet)", +%%% copyright = "Copyright 1995 American Mathematical Society, +%%% all rights reserved. Copying of this file is +%%% authorized only if either: +%%% (1) you make absolutely no changes to your copy, +%%% including name; OR +%%% (2) if you do make changes, you first rename it +%%% to some other name.", +%%% codetable = "ISO/ASCII", +%%% keywords = "bibtex, bibliography, amslatex, ams-latex", +%%% supported = "yes", +%%% abstract = "BibTeX bibliography style `amsplain' for BibTeX +%%% versions 0.99a or later and LaTeX version 2e. +%%% Produces numeric-label bibliography items in +%%% a form typical for American Mathematical Society +%%% publications.", +%%% docstring = "The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== + +% See the file btxbst.doc for extra documentation other than +% what is included here. And see btxhak.tex for a description +% of the BibTeX language and how to use it. + +% This defines the types of fields that can occur in a database entry +% for this particular bibliography style. Except for `language', +% this is the standard list from plain.bst. + +%% Types of entries currently allowed in a BibTeX file: +%% +%% ARTICLE -- An article from a journal or magazine. +%% +%% BOOK -- A book with an explicit publisher. +%% +%% BOOKLET -- A work that is printed and bound, +%% but without a named publisher or sponsoring institution. +%% +%% CONFERENCE -- The same as INPROCEEDINGS, +%% included for Scribe compatibility. +%% +%% INBOOK -- A part of a book, +%% which may be a chapter (or section or whatever) and/or a range of pages. +%% +%% INCOLLECTION -- A part of a book having its own title. +%% +%% INPROCEEDINGS -- An article in a conference proceedings. +%% +%% MANUAL -- Technical documentation. +%% +%% MASTERSTHESIS -- A Master's thesis. +%% +%% MISC -- Use this type when nothing else fits. +%% +%% PHDTHESIS -- A PhD thesis. +%% +%% PROCEEDINGS -- The proceedings of a conference. +%% +%% TECHREPORT -- A report published by a school or other institution, +%% usually numbered within a series. +%% +%% UNPUBLISHED -- A document having an author and title, but not formally +%% published. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + language + month + mrnumber + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label bysame } + +% Removed after.sentence, after.block---not needed. + +INTEGERS { output.state before.all mid.sentence } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := +} + +% Scratch variables: + +STRINGS { s t } + +% Utility functions + +FUNCTION {shows} +{ duplicate$ ":::: `" swap$ * "'" * top$ +} + +FUNCTION {showstack} +{"STACK=====================================================================" +top$ +stack$ +"ENDSTACK==================================================================" +top$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +% n.dashify is used to make sure page ranges get the TeX code +% (two hyphens) for en-dashes. + +FUNCTION {n.dashify} +{ '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$ +} + +% tie.or.space.connect connects two items with a ~ if the +% second item is less than 3 letters long, otherwise it just puts an +% ordinary space. + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {add.space.if.necessary} +{ duplicate$ "" = + 'skip$ + { " " * } + if$ +} + +% either.or.check gives a warning if two mutually exclusive fields +% were used in the database. + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +% output.nonnull is called by output. + +FUNCTION {output.nonnull} +% remove the top item from the stack because it's in the way. +{ 's := + output.state mid.sentence = +% If we're in mid-sentence, add a comma to the new top item and write it + { ", " * write$ } +% Otherwise, if we're at the beginning of a bibitem, + { output.state before.all = +% just write out the top item from the stack; + 'write$ +% and the last alternative is that we're at the end of the current +% bibitem, so we add a period to the top stack item and write it out. + { add.period$ " " * write$ } + if$ + mid.sentence 'output.state := + } + if$ +% Put the top item back on the stack that we removed earlier. + s +} + +% Output checks to see if the stack top is empty; if not, it +% calls output.nonnull to write it out. + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +% Standard warning message for a missing or empty field. For the user +% we call any such field `missing' without respect to the distinction +% made by BibTeX between missing and empty. + +FUNCTION {missing.warning} +{ "missing " swap$ * " in " * cite$ * warning$ } + +% Output.check is like output except that it gives a warning on-screen +% if the given field in the database entry is empty. t is the field +% name. + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ t missing.warning } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ +% This empty string is the first thing that will be written +% the next time write$ is called. Done this way because each +% item is saved on the stack until we find out what punctuation +% should be added after it. Therefore we need an empty first item. + "" + before.all 'output.state := +} + +FUNCTION {output.nonempty.mrnumber} +{ duplicate$ missing$ + { pop$ "" } + 'skip$ + if$ + duplicate$ empty$ + 'pop$ + { " \MR{" swap$ * "}" * write$ } + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + mrnumber output.nonempty.mrnumber + newline$ +} + +% Removed new.block, new.block.checka, new.block.checkb, new.sentence, +% new.sentence.checka, and new.sentence.checkb functions here, since they +% don't seem to be needed in the AMS style. Also moved some real +% basic functions like `and' and 'or' earlier in the file. + +INTEGERS { nameptr namesleft numnames } + +% The extra section to write out a language field was added +% for AMSPLAIN.BST. Not present in plain.bst. + +FUNCTION {format.language} +{ language empty$ + { "" } + { " (" language * ")" * } + if$ +} + +% This version of format.names puts names in the format +% +% First von Last, Jr. +% +% (i.e., first name first, no abbreviating to initials). + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { bysame "\bysame" = + {"\bysame"} + { author format.names } + if$ + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { " (eds.)" * } + { " (ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.nonauthor.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ emphasize } + if$ +} + +FUNCTION {format.journal.vol.year} +{ journal empty$ + { "journal name" missing.warning ""} + { journal } + if$ + volume empty$ + 'skip$ + { " \textbf{" * volume * "}" * } + if$ + year empty$ + { "year" missing.warning } + { " (" * year * ")" * } + if$ +} + +% For formatting the issue number for a journal article. + +FUNCTION {format.number} +{ number empty$ + { "" } + { "no.~" number * } + if$ +} + +% For formatting miscellaneous dates + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +%% The volume, series and number information is sort of tricky. +%% This code handles it as follows: +%% If the series is present, and the volume, but not the number, +%% then we do "\emph{Book title}, Series Name, vol. 000" +%% If the series is present, and the number, but not the volume, +%% then we do "\emph{Book title}, Series Name, no. 000" +%% If the series is present, and both number and volume, +%% then we do "\emph{Book title}, vol. XX, Series Name, no. 000" +%% Finally, if the series is absent, +%% then we do "\emph{Book title}, vol. XX" +%% or "\emph{Book title}, no. 000" +%% and if both volume and number are present, give a warning message. + +FUNCTION {format.bookvolume.series.number} +{ volume empty$ + { "" % Push the empty string as a placeholder in case everything else + % is empty too. + series empty$ + 'skip$ + { pop$ series } % if series is not empty put in stack + if$ + number empty$ + 'skip$ + { duplicate$ empty$ % if no preceding material, + 'skip$ % do nothing, otherwise + { ", " * } % add a comma and space to separate. + if$ + "no." number tie.or.space.connect * % add the number information + } + if$ + } +%% If the volume is NOT EMPTY: + { "vol." volume tie.or.space.connect % vol. XX + number empty$ + { series empty$ + 'skip$ + { series ", " * swap$ *} % Series Name, vol. XX + if$ + } + { series empty$ + { "can't use both volume and number if series info is missing" + warning$ + "in BibTeX entry type `" type$ * "'" * top$ + } + { ", " * series * ", no." * number tie.or.space.connect } + if$ + } + if$ + } + if$ + +} % end of format.bookvolume.series.number + +%% format.inproc.title.where.editors is used by inproceedings entry types + +%% No case changing or emphasizing for the title. We want initial +%% caps, roman. +%% We add parentheses around the address (place where conference +%% was held). +%% Likewise we add parentheses around the editors' names. + +FUNCTION {format.inproc.title.address.editors} +{ booktitle empty$ + { "" } + { booktitle + address empty$ + 'skip$ + { add.space.if.necessary "(" * address * ")" * } + if$ + editor empty$ + 'skip$ + { add.space.if.necessary "(" * format.nonauthor.editors * ")" * } + if$ + } + if$ +} + +%% format.incoll.title.editors is similar to format.inproc... but +%% omits the address. For collections that are not proceedings volumes. + +FUNCTION {format.incoll.title.editors} +{ booktitle empty$ + { "" } + { editor empty$ + { booktitle } + { booktitle + add.space.if.necessary "(" * format.nonauthor.editors * ")" * + } + if$ + } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " ed." * } + { edition "t" change.case$ " ed." * } + if$ + } + 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 empty$ + { "" } + { pages n.dashify } + if$ +} + +FUNCTION {format.book.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.book.pages + { type empty$ + { "ch.~" } + { type "l" change.case$ " " * } + if$ + chapter * + pages empty$ + 'skip$ + { ", " * format.book.pages * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +% The format.crossref functions haven't been paid much attention +% at the present time (June 1990) and could probably use some +% work. MJD + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in " journal * } + if$ + } + { "in " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "vol." volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "in \emph{" booktitle * "}" * } + if$ + } + { "in " key * } + if$ + } + { "in " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% The main functions for each entry type. + +% journal, vol and year are formatted together because they are +% not separated by commas. + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.journal.vol.year output + format.number output + format.pages "pages" output.check + } + { format.article.crossref output.nonnull + format.pages "pages" output.check + } + if$ + format.language * + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.title "title" output.check + format.edition output + crossref missing$ + { format.bookvolume.series.number output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.language * + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.title "title" output.check + howpublished output + address output + format.date output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.title "title" output.check + format.edition output + crossref missing$ + { format.bookvolume.series.number output + format.chapter.pages "chapter and pages" output.check + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.language * + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.incoll.title.editors "booktitle" output.check + format.bookvolume.series.number output + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + note output + format.book.pages output + format.language * + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.inproc.title.address.editors "booktitle" output.check + format.bookvolume.series.number output + organization output + publisher output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + note output + format.book.pages output + format.language * + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + format.title "title" output.check + author empty$ + { organization empty$ + { address output } + 'skip$ + if$ + } + { organization output + address output + } + if$ + format.edition output + format.date output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + note output + format.book.pages output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + howpublished output + format.date output + note output + format.book.pages output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + "Ph.D. thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + note output + format.book.pages output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + format.title "title" output.check + format.bookvolume.series.number output + address empty$ + { editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + if$ + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label prev.author this.author } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := + "abcxyz" 'prev.author := + "" 'this.author := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + author empty$ + { editor empty$ + { "" } + 'editor + if$ + } + 'author + if$ + 'this.author := + this.author prev.author = + { "\bysame" 'bysame := } + { "" 'bysame := + this.author "" = + { "abcxyz" } + 'this.author + if$ + 'prev.author := + } + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {write.lines} +{ { duplicate$ "." = NOT } + { write$ newline$ } + while$ + pop$ +} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\providecommand{\bysame}{\leavevmode\hbox to3em{\hrulefill}\thinspace}" + write$ newline$ + "\providecommand{\MR}{\relax\ifhmode\unskip\space\fi MR }" + write$ newline$ + "% \MRhref is called by the amsart/book/proc definition of \MR." + write$ newline$ + "\providecommand{\MRhref}[2]{%" + write$ newline$ + " \href{http://www.ams.org/mathscinet-getitem?mr=#1}{#2}" + write$ newline$ + "}" + write$ newline$ + "\providecommand{\href}[2]{#2}" + write$ newline$ + "\begin{thebibliography}{" longest.label * "}" * + write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} diff --git a/Master/texmf-dist/bibtex/bst/amslatex/amsra.bst b/Master/texmf-dist/bibtex/bst/amslatex/amsra.bst new file mode 100644 index 00000000000..a770f5a0a2c --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/amslatex/amsra.bst @@ -0,0 +1,775 @@ +%% +%% This is file `amsra.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% amsxport.dtx (with options: `bst,sort,alpha') +%% +%%% ==================================================================== +%%% @BibTeX-source-file{ +%%% filename = "amsxport.dtx", +%%% version = "2.00", +%%% date = "2004/06/28", +%%% time = "14:50:12 EDT", +%%% author = "Michael J Downes", +%%% address = "American Mathematical Society, +%%% Publications Technical Group, +%%% PO Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% email = "tech-support at ams.org", +%%% URL = "http://www.ams.org/", +%%% abstract = "The BibTeX style file amsxport.bst produces .bbl +%%% entries where most of the database structure is +%%% retained. This is intended for processing by a smart +%%% bibliography package such as the amsrefs package.", +%%% checksum = "40425 1822 6396 51551", +%%% docstring = "The checksum field, produced by Robert Solovay's +%%% checksum utility, gives CRC-16 checksum, lines, +%%% words, and characters.", +%%% } +%%% ==================================================================== +ENTRY + { + address institution number status + archive isbn organization subtitle + author issn pages title + booktitle journal part translator + chapter key pii type + date language preprint url + edition meeting publisher volume + editor month review xid + eprint mrnumber school year + howpublished note series + } + { } + { label } +MACRO {jan} {"-01"} +MACRO {feb} {"-02"} +MACRO {mar} {"-03"} +MACRO {apr} {"-04"} +MACRO {may} {"-05"} +MACRO {jun} {"-06"} +MACRO {jul} {"-07"} +MACRO {aug} {"-08"} +MACRO {sep} {"-09"} +MACRO {oct} {"-10"} +MACRO {nov} {"-11"} +MACRO {dec} {"-12"} +STRINGS { p s t l } +INTEGERS { len ptr } + +FUNCTION {NOT} { { #0 } { #1 } if$ } + +FUNCTION {AND} { 'skip$ { pop$ #0 } if$ } + +FUNCTION {OR} { { pop$ #1 } 'skip$ if$ } + +FUNCTION {TRUE} { #1 } + +FUNCTION {FALSE} { #0 } + +FUNCTION {incr.ptr} { ptr #1 + 'ptr := } + +FUNCTION {current.char} { ptr #1 substring$ } +FUNCTION {copy.two.chars} { t * incr.ptr s current.char * incr.ptr } + +FUNCTION {is.digit} { + chr.to.int$ + duplicate$ + "0" chr.to.int$ #1 - > + swap$ + "9" chr.to.int$ #1 + < + AND +} + +FUNCTION {is.lowercase.letter} { + chr.to.int$ duplicate$ + "a" chr.to.int$ #1 - > + swap$ + "z" chr.to.int$ #1 + < + AND +} +FUNCTION {is.uppercase.letter} { + chr.to.int$ duplicate$ + "A" chr.to.int$ #1 - > + swap$ + "Z" chr.to.int$ #1 + < + AND +} +FUNCTION {is.letter} { + duplicate$ + is.lowercase.letter + { pop$ TRUE } + { is.uppercase.letter } + if$ +} +FUNCTION {skip.accent} { pop$ incr.ptr } +FUNCTION {strip.label} { + 's := + #1 'ptr := + "" + { s ptr #1 substring$ duplicate$ empty$ NOT } + { duplicate$ is.letter + { * } + { duplicate$ "\" = + { skip.accent } + 'pop$ + if$ + } + if$ + incr.ptr + } + while$ + pop$ +} +FUNCTION {sortify} { + purify$ + "l" change.case$ +} +FUNCTION {rpad} { + swap$ + 'l := + l text.length$ - 'len := + { len #0 > } + { + l " " * 'l := + len #1 - 'len := + } + while$ + l +} +FUNCTION {lpad} { + swap$ + 'l := + l text.length$ - 'len := + { len #0 > } + { + " " l * 'l := + len #1 - 'len := + } + while$ + l +} +FUNCTION {field.or.null} { + duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {missing.or.empty} { duplicate$ missing$ swap$ empty$ OR } + +FUNCTION {append.ndash.and.skip.hyphens} { + "\ndash " * + incr.ptr + { s current.char "-" = } + { incr.ptr } + while$ +} +FUNCTION {n.dashify} { + 's := + #1 'ptr := + "" + { s current.char 't := t "" = NOT } + { t "\" = + { copy.two.chars } + { t "-" = + { append.ndash.and.skip.hyphens } + { t * incr.ptr } + if$ + } + if$ + } + while$ +} +FUNCTION {missing.warning} { + "missing " swap$ * " in " * cite$ * warning$ +} + +INTEGERS { string.ptr } + +FUNCTION {string.length} { + #1 'string.ptr := + { duplicate$ string.ptr #1 substring$ "" = 'FALSE 'TRUE if$ } + { string.ptr #1 + 'string.ptr := } + while$ + pop$ + string.ptr #1 - +} +FUNCTION {format.title}{ + duplicate$ + missing.or.empty + { pop$ "" } + { "t" change.case$ } + if$ +} +FUNCTION {start.field} { + #12 lpad "={" * write$ +} +FUNCTION {fin.field} { "}," write$ newline$ } + +FUNCTION {write.field} { + duplicate$ + missing$ + { pop$ missing.warning } + { duplicate$ empty$ + { pop$ missing.warning } + { swap$ start.field write$ fin.field } + if$ + } + if$ +} +FUNCTION {optional.field} { + duplicate$ + missing.or.empty + { pop$ pop$ } + { swap$ start.field write$ fin.field } + if$ +} +FUNCTION {optional.title.field} { + duplicate$ + missing.or.empty + { pop$ pop$ } + { format.title swap$ start.field write$ fin.field } + if$ +} +FUNCTION {optional.pages.field} { + duplicate$ + missing.or.empty + { pop$ pop$ } + { swap$ start.field + n.dashify + write$ fin.field + } + if$ +} +FUNCTION {optional.mr.field} { + duplicate$ + missing.or.empty + { pop$ pop$ } + { + swap$ start.field + "\MR{" swap$ * "}" * write$ fin.field + } + if$ +} +FUNCTION {remove.ordinal.suffix} { + 's := + s string.length 'len := + #1 'ptr := + { ptr len < s ptr #1 substring$ is.digit AND } + 'incr.ptr + while$ + s ptr global.max$ substring$ 'p := + p "st" = + { TRUE } + { p "nd" = + { TRUE } + { p "rd" = + { TRUE } + { p "th" = + { TRUE } + { FALSE } + if$ + } + if$ + } + if$ + } + if$ + { s #1 ptr #1 - substring$ } + { s } + if$ +} +FUNCTION {optional.edition.field} { + duplicate$ missing.or.empty + { pop$ pop$ } + { swap$ start.field + remove.ordinal.suffix + write$ fin.field + } + if$ +} +INTEGERS { nameptr numnames namesleft } +STRINGS { namelist fieldname } +FUNCTION {format.name} { "{vv~}{ll}{, ff}{, jj}" format.name$ } + +FUNCTION {optional.name.field}{ + duplicate$ missing.or.empty + { pop$ pop$ } + { swap$ 'fieldname := + duplicate$ num.names$ + 'namesleft := + #1 'ptr := + { namesleft #0 > } + { fieldname start.field + duplicate$ ptr format.name write$ + fin.field + ptr #1 + 'ptr := + namesleft #1 - 'namesleft := + } + while$ + pop$ + } + if$ +} +FUNCTION {assemble.date.field} +{ date missing$ + { year missing.or.empty + { status missing.or.empty + { "No year or other date information for " + cite$ * warning$ } + 'skip$ + if$ + "status" + } + { year month missing$ { "" } { month } if$ * } + if$ + } + { date } + if$ + duplicate$ "status" = + { pop$ pop$ } + { swap$ start.field write$ fin.field } + if$ +} +FUNCTION {optional.journal.field} { + duplicate$ missing.or.empty + { pop$ pop$ } + { + 's := + start.field + #1 'ptr := + s current.char is.lowercase.letter + { + s "/" * 's := + { s ptr #1 substring$ "/" = NOT } + { incr.ptr } + while$ + s ptr #1 + #1 substring$ empty$ + { s #1 ptr #1 - substring$ } + { + s #1 ptr #1 - substring$ + write$ + fin.field + "ISSN" start.field + s ptr #1 + #9 substring$ + } + if$ + } + { s } + if$ + write$ + fin.field + } + if$ +} +FUNCTION {optional.type.field} +{ duplicate$ missing.or.empty + { type$ "mastersthesis" = { "Master's Thesis" } + { type$ "phdthesis" = { "Ph.D. Thesis" } + { "" } if$ } if$ + swap$ pop$ + } + 'skip$ + if$ + duplicate$ empty$ + { pop$ pop$ } + { swap$ start.field write$ fin.field } + if$ +} +FUNCTION {url.note.status.review} { + "url" url optional.field + "note" note optional.field + "status" status optional.field + "review" review optional.field + "review" mrnumber optional.mr.field +} +FUNCTION {start.entry} { + newline$ + "\bib{" cite$ * "}{" * + type$ "mastersthesis" = type$ "phdthesis" = OR + { "thesis" } + { type$ } + if$ + * "}{" * write$ + newline$ +} +FUNCTION {fin.entry} { + "}" write$ + newline$ +} +FUNCTION {article} { + start.entry + "author" author optional.name.field + "translator" translator optional.name.field + "title" title format.title write.field + "subtitle" subtitle optional.title.field + "language" language optional.field + "organization" organization optional.field + "how" howpublished optional.field + "date" assemble.date.field + "ISSN" issn optional.field + "journal" journal optional.journal.field + "volume" volume optional.field + "number" number optional.field + "pages" pages optional.pages.field + "PII" pii optional.field + "archive" archive optional.field + "eprint" eprint optional.field + "preprint" preprint optional.field + url.note.status.review + fin.entry +} +FUNCTION {inproceedings} { + start.entry + "author" author optional.name.field + "translator" translator optional.name.field + "title" title format.title write.field + "subtitle" subtitle optional.title.field + "language" language optional.field + "organization" organization optional.field + "how" howpublished optional.field + "date" assemble.date.field + "xid" xid optional.field + "conference" meeting optional.field + "booktitle" booktitle optional.title.field + "edition" edition optional.edition.field + "editor" editor optional.name.field + "series" series optional.field + "volume" volume optional.field + "publisher" publisher optional.field + "address" address optional.field + "pages" pages optional.pages.field + url.note.status.review + fin.entry +} +FUNCTION {inbook} { inproceedings } +FUNCTION {incollection} { inproceedings } +FUNCTION {conference} { inproceedings } +FUNCTION {book} { + start.entry + "author" author optional.name.field + "editor" editor optional.name.field + "translator" translator optional.name.field + "title" title missing$ { booktitle } { title } if$ + format.title write.field + "subtitle" subtitle optional.title.field + "type" type optional.type.field + "language" language optional.field + "conference" meeting optional.field + "edition" edition optional.edition.field + "series" series optional.field + "publisher" publisher optional.field + organization missing.or.empty + { "institution" institution optional.field } + { "organization" organization optional.field } + if$ + "address" address optional.field + "how" howpublished optional.field + "date" year write.field + "volume" volume optional.field + "number" number optional.field + "ISBN" isbn optional.field + url.note.status.review + fin.entry +} +FUNCTION {booklet} { book } +FUNCTION {manual} { book } +FUNCTION {mastersthesis} { book } + +FUNCTION {phdthesis} { book } + +FUNCTION {proceedings} { book } + +FUNCTION {collection} { book } + +FUNCTION {techreport} { book } + +FUNCTION {unpublished} { book } + +FUNCTION {misc} { book } + +FUNCTION {default.type} { misc } + + +READ + +FUNCTION {chop.word} { + 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {sort.format.title} { + 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {format.lab.names} { + 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ +{ cite$ #1 #3 substring$ } +{ key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ +{ key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ +} +{ editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ +{ organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ +} +{ key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ +{ organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ +} +{ key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label}{ + type$ "book" = type$ "inbook" = OR + 'author.editor.key.label + { type$ "proceedings" = +'editor.key.organization.label +{ type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ +} + if$ + } + if$ + strip.label + sortify + year field.or.null + #3 #8 substring$ + purify$ * + 'label := +} +FUNCTION {sort.format.names} { + 's := + #1 'ptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { ptr #1 > + { " " * } + 'skip$ + if$ + s ptr "{ll}{ ff}{ jj}" format.name$ 't := + ptr numnames = t "others" = AND + { "et al" } + { t sortify } + if$ + #20 rpad * + ptr #1 + 'ptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {sort.warning} { + "to sort, need " swap$ * " or key in " * cite$ * warning$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "author" sort.warning + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "author, editor," sort.warning + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "author, organization," sort.warning + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "editor, organization," sort.warning + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} { + calc.label + label #20 rpad + type$ "book" = type$ "inbook" = OR type$ "collection" = OR + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * " " * + title field.or.null sort.format.title * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {presort} + +SORT +FUNCTION {write.with.newlines} +{ 's := #1 'ptr := + { s ptr #2 + #1 substring$ "" = NOT } + { s ptr #3 substring$ "^^M" = + { s #1 ptr #1 - substring$ write$ newline$ + ptr #3 + 'ptr := + s ptr global.max$ substring$ 's := + #1 'ptr := + } + { incr.ptr } + if$ + } + while$ + s write$ newline$ +} +FUNCTION {begin.bib} { + preamble$ empty$ + 'skip$ + { preamble$ write.with.newlines } + if$ + "% \bib, bibdiv, biblist are defined by the amsrefs package." + write$ newline$ + "\begin{bibdiv}" write$ newline$ + "\begin{biblist}" write$ newline$ +} +FUNCTION {end.bib} { + newline$ + "\end{biblist}" write$ newline$ + "\end{bibdiv}" write$ newline$ +} +EXECUTE {begin.bib} + +ITERATE {call.type$} + +EXECUTE {end.bib} +%% +%% +%% End of file `amsra.bst'. diff --git a/Master/texmf-dist/bibtex/bst/amslatex/amsrn.bst b/Master/texmf-dist/bibtex/bst/amslatex/amsrn.bst new file mode 100644 index 00000000000..505f15b6d2d --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/amslatex/amsrn.bst @@ -0,0 +1,660 @@ +%% +%% This is file `amsrn.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% amsxport.dtx (with options: `bst,sort,plain') +%% +%%% ==================================================================== +%%% @BibTeX-source-file{ +%%% filename = "amsxport.dtx", +%%% version = "2.00", +%%% date = "2004/06/28", +%%% time = "14:50:12 EDT", +%%% author = "Michael J Downes", +%%% address = "American Mathematical Society, +%%% Publications Technical Group, +%%% PO Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% email = "tech-support at ams.org", +%%% URL = "http://www.ams.org/", +%%% abstract = "The BibTeX style file amsxport.bst produces .bbl +%%% entries where most of the database structure is +%%% retained. This is intended for processing by a smart +%%% bibliography package such as the amsrefs package.", +%%% checksum = "40425 1822 6396 51551", +%%% docstring = "The checksum field, produced by Robert Solovay's +%%% checksum utility, gives CRC-16 checksum, lines, +%%% words, and characters.", +%%% } +%%% ==================================================================== +ENTRY + { + address institution number status + archive isbn organization subtitle + author issn pages title + booktitle journal part translator + chapter key pii type + date language preprint url + edition meeting publisher volume + editor month review xid + eprint mrnumber school year + howpublished note series + } + { } + { label } +MACRO {jan} {"-01"} +MACRO {feb} {"-02"} +MACRO {mar} {"-03"} +MACRO {apr} {"-04"} +MACRO {may} {"-05"} +MACRO {jun} {"-06"} +MACRO {jul} {"-07"} +MACRO {aug} {"-08"} +MACRO {sep} {"-09"} +MACRO {oct} {"-10"} +MACRO {nov} {"-11"} +MACRO {dec} {"-12"} +STRINGS { p s t l } +INTEGERS { len ptr } + +FUNCTION {NOT} { { #0 } { #1 } if$ } + +FUNCTION {AND} { 'skip$ { pop$ #0 } if$ } + +FUNCTION {OR} { { pop$ #1 } 'skip$ if$ } + +FUNCTION {TRUE} { #1 } + +FUNCTION {FALSE} { #0 } + +FUNCTION {incr.ptr} { ptr #1 + 'ptr := } + +FUNCTION {current.char} { ptr #1 substring$ } +FUNCTION {copy.two.chars} { t * incr.ptr s current.char * incr.ptr } + +FUNCTION {is.digit} { + chr.to.int$ + duplicate$ + "0" chr.to.int$ #1 - > + swap$ + "9" chr.to.int$ #1 + < + AND +} + +FUNCTION {is.lowercase.letter} { + chr.to.int$ duplicate$ + "a" chr.to.int$ #1 - > + swap$ + "z" chr.to.int$ #1 + < + AND +} +FUNCTION {is.uppercase.letter} { + chr.to.int$ duplicate$ + "A" chr.to.int$ #1 - > + swap$ + "Z" chr.to.int$ #1 + < + AND +} +FUNCTION {is.letter} { + duplicate$ + is.lowercase.letter + { pop$ TRUE } + { is.uppercase.letter } + if$ +} +FUNCTION {skip.accent} { pop$ incr.ptr } +FUNCTION {strip.label} { + 's := + #1 'ptr := + "" + { s ptr #1 substring$ duplicate$ empty$ NOT } + { duplicate$ is.letter + { * } + { duplicate$ "\" = + { skip.accent } + 'pop$ + if$ + } + if$ + incr.ptr + } + while$ + pop$ +} +FUNCTION {sortify} { + purify$ + "l" change.case$ +} +FUNCTION {rpad} { + swap$ + 'l := + l text.length$ - 'len := + { len #0 > } + { + l " " * 'l := + len #1 - 'len := + } + while$ + l +} +FUNCTION {lpad} { + swap$ + 'l := + l text.length$ - 'len := + { len #0 > } + { + " " l * 'l := + len #1 - 'len := + } + while$ + l +} +FUNCTION {field.or.null} { + duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {missing.or.empty} { duplicate$ missing$ swap$ empty$ OR } + +FUNCTION {append.ndash.and.skip.hyphens} { + "\ndash " * + incr.ptr + { s current.char "-" = } + { incr.ptr } + while$ +} +FUNCTION {n.dashify} { + 's := + #1 'ptr := + "" + { s current.char 't := t "" = NOT } + { t "\" = + { copy.two.chars } + { t "-" = + { append.ndash.and.skip.hyphens } + { t * incr.ptr } + if$ + } + if$ + } + while$ +} +FUNCTION {missing.warning} { + "missing " swap$ * " in " * cite$ * warning$ +} + +INTEGERS { string.ptr } + +FUNCTION {string.length} { + #1 'string.ptr := + { duplicate$ string.ptr #1 substring$ "" = 'FALSE 'TRUE if$ } + { string.ptr #1 + 'string.ptr := } + while$ + pop$ + string.ptr #1 - +} +FUNCTION {format.title}{ + duplicate$ + missing.or.empty + { pop$ "" } + { "t" change.case$ } + if$ +} +FUNCTION {start.field} { + #12 lpad "={" * write$ +} +FUNCTION {fin.field} { "}," write$ newline$ } + +FUNCTION {write.field} { + duplicate$ + missing$ + { pop$ missing.warning } + { duplicate$ empty$ + { pop$ missing.warning } + { swap$ start.field write$ fin.field } + if$ + } + if$ +} +FUNCTION {optional.field} { + duplicate$ + missing.or.empty + { pop$ pop$ } + { swap$ start.field write$ fin.field } + if$ +} +FUNCTION {optional.title.field} { + duplicate$ + missing.or.empty + { pop$ pop$ } + { format.title swap$ start.field write$ fin.field } + if$ +} +FUNCTION {optional.pages.field} { + duplicate$ + missing.or.empty + { pop$ pop$ } + { swap$ start.field + n.dashify + write$ fin.field + } + if$ +} +FUNCTION {optional.mr.field} { + duplicate$ + missing.or.empty + { pop$ pop$ } + { + swap$ start.field + "\MR{" swap$ * "}" * write$ fin.field + } + if$ +} +FUNCTION {remove.ordinal.suffix} { + 's := + s string.length 'len := + #1 'ptr := + { ptr len < s ptr #1 substring$ is.digit AND } + 'incr.ptr + while$ + s ptr global.max$ substring$ 'p := + p "st" = + { TRUE } + { p "nd" = + { TRUE } + { p "rd" = + { TRUE } + { p "th" = + { TRUE } + { FALSE } + if$ + } + if$ + } + if$ + } + if$ + { s #1 ptr #1 - substring$ } + { s } + if$ +} +FUNCTION {optional.edition.field} { + duplicate$ missing.or.empty + { pop$ pop$ } + { swap$ start.field + remove.ordinal.suffix + write$ fin.field + } + if$ +} +INTEGERS { nameptr numnames namesleft } +STRINGS { namelist fieldname } +FUNCTION {format.name} { "{vv~}{ll}{, ff}{, jj}" format.name$ } + +FUNCTION {optional.name.field}{ + duplicate$ missing.or.empty + { pop$ pop$ } + { swap$ 'fieldname := + duplicate$ num.names$ + 'namesleft := + #1 'ptr := + { namesleft #0 > } + { fieldname start.field + duplicate$ ptr format.name write$ + fin.field + ptr #1 + 'ptr := + namesleft #1 - 'namesleft := + } + while$ + pop$ + } + if$ +} +FUNCTION {assemble.date.field} +{ date missing$ + { year missing.or.empty + { status missing.or.empty + { "No year or other date information for " + cite$ * warning$ } + 'skip$ + if$ + "status" + } + { year month missing$ { "" } { month } if$ * } + if$ + } + { date } + if$ + duplicate$ "status" = + { pop$ pop$ } + { swap$ start.field write$ fin.field } + if$ +} +FUNCTION {optional.journal.field} { + duplicate$ missing.or.empty + { pop$ pop$ } + { + 's := + start.field + #1 'ptr := + s current.char is.lowercase.letter + { + s "/" * 's := + { s ptr #1 substring$ "/" = NOT } + { incr.ptr } + while$ + s ptr #1 + #1 substring$ empty$ + { s #1 ptr #1 - substring$ } + { + s #1 ptr #1 - substring$ + write$ + fin.field + "ISSN" start.field + s ptr #1 + #9 substring$ + } + if$ + } + { s } + if$ + write$ + fin.field + } + if$ +} +FUNCTION {optional.type.field} +{ duplicate$ missing.or.empty + { type$ "mastersthesis" = { "Master's Thesis" } + { type$ "phdthesis" = { "Ph.D. Thesis" } + { "" } if$ } if$ + swap$ pop$ + } + 'skip$ + if$ + duplicate$ empty$ + { pop$ pop$ } + { swap$ start.field write$ fin.field } + if$ +} +FUNCTION {url.note.status.review} { + "url" url optional.field + "note" note optional.field + "status" status optional.field + "review" review optional.field + "review" mrnumber optional.mr.field +} +FUNCTION {start.entry} { + newline$ + "\bib{" cite$ * "}{" * + type$ "mastersthesis" = type$ "phdthesis" = OR + { "thesis" } + { type$ } + if$ + * "}{" * write$ + newline$ +} +FUNCTION {fin.entry} { + "}" write$ + newline$ +} +FUNCTION {article} { + start.entry + "author" author optional.name.field + "translator" translator optional.name.field + "title" title format.title write.field + "subtitle" subtitle optional.title.field + "language" language optional.field + "organization" organization optional.field + "how" howpublished optional.field + "date" assemble.date.field + "ISSN" issn optional.field + "journal" journal optional.journal.field + "volume" volume optional.field + "number" number optional.field + "pages" pages optional.pages.field + "PII" pii optional.field + "archive" archive optional.field + "eprint" eprint optional.field + "preprint" preprint optional.field + url.note.status.review + fin.entry +} +FUNCTION {inproceedings} { + start.entry + "author" author optional.name.field + "translator" translator optional.name.field + "title" title format.title write.field + "subtitle" subtitle optional.title.field + "language" language optional.field + "organization" organization optional.field + "how" howpublished optional.field + "date" assemble.date.field + "xid" xid optional.field + "conference" meeting optional.field + "booktitle" booktitle optional.title.field + "edition" edition optional.edition.field + "editor" editor optional.name.field + "series" series optional.field + "volume" volume optional.field + "publisher" publisher optional.field + "address" address optional.field + "pages" pages optional.pages.field + url.note.status.review + fin.entry +} +FUNCTION {inbook} { inproceedings } +FUNCTION {incollection} { inproceedings } +FUNCTION {conference} { inproceedings } +FUNCTION {book} { + start.entry + "author" author optional.name.field + "editor" editor optional.name.field + "translator" translator optional.name.field + "title" title missing$ { booktitle } { title } if$ + format.title write.field + "subtitle" subtitle optional.title.field + "type" type optional.type.field + "language" language optional.field + "conference" meeting optional.field + "edition" edition optional.edition.field + "series" series optional.field + "publisher" publisher optional.field + organization missing.or.empty + { "institution" institution optional.field } + { "organization" organization optional.field } + if$ + "address" address optional.field + "how" howpublished optional.field + "date" year write.field + "volume" volume optional.field + "number" number optional.field + "ISBN" isbn optional.field + url.note.status.review + fin.entry +} +FUNCTION {booklet} { book } +FUNCTION {manual} { book } +FUNCTION {mastersthesis} { book } + +FUNCTION {phdthesis} { book } + +FUNCTION {proceedings} { book } + +FUNCTION {collection} { book } + +FUNCTION {techreport} { book } + +FUNCTION {unpublished} { book } + +FUNCTION {misc} { book } + +FUNCTION {default.type} { misc } + + +READ + +FUNCTION {chop.word} { + 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {sort.format.title} { + 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {sort.format.names} { + 's := + #1 'ptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { ptr #1 > + { " " * } + 'skip$ + if$ + s ptr "{ll}{ ff}{ jj}" format.name$ 't := + ptr numnames = t "others" = AND + { "et al" } + { t sortify } + if$ + #20 rpad * + ptr #1 + 'ptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {sort.warning} { + "to sort, need " swap$ * " or key in " * cite$ * warning$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "author" sort.warning + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "author, editor," sort.warning + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "author, organization," sort.warning + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "editor, organization," sort.warning + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} { + type$ "book" = type$ "inbook" = OR type$ "collection" = OR + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + year field.or.null sortify #12 rpad * " " * + title field.or.null sort.format.title * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {presort} + +SORT +FUNCTION {write.with.newlines} +{ 's := #1 'ptr := + { s ptr #2 + #1 substring$ "" = NOT } + { s ptr #3 substring$ "^^M" = + { s #1 ptr #1 - substring$ write$ newline$ + ptr #3 + 'ptr := + s ptr global.max$ substring$ 's := + #1 'ptr := + } + { incr.ptr } + if$ + } + while$ + s write$ newline$ +} +FUNCTION {begin.bib} { + preamble$ empty$ + 'skip$ + { preamble$ write.with.newlines } + if$ + "% \bib, bibdiv, biblist are defined by the amsrefs package." + write$ newline$ + "\begin{bibdiv}" write$ newline$ + "\begin{biblist}" write$ newline$ +} +FUNCTION {end.bib} { + newline$ + "\end{biblist}" write$ newline$ + "\end{bibdiv}" write$ newline$ +} +EXECUTE {begin.bib} + +ITERATE {call.type$} + +EXECUTE {end.bib} +%% +%% +%% End of file `amsrn.bst'. diff --git a/Master/texmf-dist/bibtex/bst/amslatex/amsrs.bst b/Master/texmf-dist/bibtex/bst/amslatex/amsrs.bst new file mode 100644 index 00000000000..4f090f7af73 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/amslatex/amsrs.bst @@ -0,0 +1,773 @@ +%% +%% This is file `amsrs.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% amsxport.dtx (with options: `bst,sort,short') +%% +%%% ==================================================================== +%%% @BibTeX-source-file{ +%%% filename = "amsxport.dtx", +%%% version = "2.00", +%%% date = "2004/06/28", +%%% time = "14:50:12 EDT", +%%% author = "Michael J Downes", +%%% address = "American Mathematical Society, +%%% Publications Technical Group, +%%% PO Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% email = "tech-support at ams.org", +%%% URL = "http://www.ams.org/", +%%% abstract = "The BibTeX style file amsxport.bst produces .bbl +%%% entries where most of the database structure is +%%% retained. This is intended for processing by a smart +%%% bibliography package such as the amsrefs package.", +%%% checksum = "40425 1822 6396 51551", +%%% docstring = "The checksum field, produced by Robert Solovay's +%%% checksum utility, gives CRC-16 checksum, lines, +%%% words, and characters.", +%%% } +%%% ==================================================================== +ENTRY + { + address institution number status + archive isbn organization subtitle + author issn pages title + booktitle journal part translator + chapter key pii type + date language preprint url + edition meeting publisher volume + editor month review xid + eprint mrnumber school year + howpublished note series + } + { } + { label } +MACRO {jan} {"-01"} +MACRO {feb} {"-02"} +MACRO {mar} {"-03"} +MACRO {apr} {"-04"} +MACRO {may} {"-05"} +MACRO {jun} {"-06"} +MACRO {jul} {"-07"} +MACRO {aug} {"-08"} +MACRO {sep} {"-09"} +MACRO {oct} {"-10"} +MACRO {nov} {"-11"} +MACRO {dec} {"-12"} +STRINGS { p s t l } +INTEGERS { len ptr } + +FUNCTION {NOT} { { #0 } { #1 } if$ } + +FUNCTION {AND} { 'skip$ { pop$ #0 } if$ } + +FUNCTION {OR} { { pop$ #1 } 'skip$ if$ } + +FUNCTION {TRUE} { #1 } + +FUNCTION {FALSE} { #0 } + +FUNCTION {incr.ptr} { ptr #1 + 'ptr := } + +FUNCTION {current.char} { ptr #1 substring$ } +FUNCTION {copy.two.chars} { t * incr.ptr s current.char * incr.ptr } + +FUNCTION {is.digit} { + chr.to.int$ + duplicate$ + "0" chr.to.int$ #1 - > + swap$ + "9" chr.to.int$ #1 + < + AND +} + +FUNCTION {is.lowercase.letter} { + chr.to.int$ duplicate$ + "a" chr.to.int$ #1 - > + swap$ + "z" chr.to.int$ #1 + < + AND +} +FUNCTION {is.uppercase.letter} { + chr.to.int$ duplicate$ + "A" chr.to.int$ #1 - > + swap$ + "Z" chr.to.int$ #1 + < + AND +} +FUNCTION {is.letter} { + duplicate$ + is.lowercase.letter + { pop$ TRUE } + { is.uppercase.letter } + if$ +} +FUNCTION {skip.accent} { pop$ incr.ptr } +FUNCTION {strip.label} { + 's := + #1 'ptr := + "" + { s ptr #1 substring$ duplicate$ empty$ NOT } + { duplicate$ is.letter + { * } + { duplicate$ "\" = + { skip.accent } + 'pop$ + if$ + } + if$ + incr.ptr + } + while$ + pop$ +} +FUNCTION {sortify} { + purify$ + "l" change.case$ +} +FUNCTION {rpad} { + swap$ + 'l := + l text.length$ - 'len := + { len #0 > } + { + l " " * 'l := + len #1 - 'len := + } + while$ + l +} +FUNCTION {lpad} { + swap$ + 'l := + l text.length$ - 'len := + { len #0 > } + { + " " l * 'l := + len #1 - 'len := + } + while$ + l +} +FUNCTION {field.or.null} { + duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {missing.or.empty} { duplicate$ missing$ swap$ empty$ OR } + +FUNCTION {append.ndash.and.skip.hyphens} { + "\ndash " * + incr.ptr + { s current.char "-" = } + { incr.ptr } + while$ +} +FUNCTION {n.dashify} { + 's := + #1 'ptr := + "" + { s current.char 't := t "" = NOT } + { t "\" = + { copy.two.chars } + { t "-" = + { append.ndash.and.skip.hyphens } + { t * incr.ptr } + if$ + } + if$ + } + while$ +} +FUNCTION {missing.warning} { + "missing " swap$ * " in " * cite$ * warning$ +} + +INTEGERS { string.ptr } + +FUNCTION {string.length} { + #1 'string.ptr := + { duplicate$ string.ptr #1 substring$ "" = 'FALSE 'TRUE if$ } + { string.ptr #1 + 'string.ptr := } + while$ + pop$ + string.ptr #1 - +} +FUNCTION {format.title}{ + duplicate$ + missing.or.empty + { pop$ "" } + { "t" change.case$ } + if$ +} +FUNCTION {start.field} { + #12 lpad "={" * write$ +} +FUNCTION {fin.field} { "}," write$ newline$ } + +FUNCTION {write.field} { + duplicate$ + missing$ + { pop$ missing.warning } + { duplicate$ empty$ + { pop$ missing.warning } + { swap$ start.field write$ fin.field } + if$ + } + if$ +} +FUNCTION {optional.field} { + duplicate$ + missing.or.empty + { pop$ pop$ } + { swap$ start.field write$ fin.field } + if$ +} +FUNCTION {optional.title.field} { + duplicate$ + missing.or.empty + { pop$ pop$ } + { format.title swap$ start.field write$ fin.field } + if$ +} +FUNCTION {optional.pages.field} { + duplicate$ + missing.or.empty + { pop$ pop$ } + { swap$ start.field + n.dashify + write$ fin.field + } + if$ +} +FUNCTION {optional.mr.field} { + duplicate$ + missing.or.empty + { pop$ pop$ } + { + swap$ start.field + "\MR{" swap$ * "}" * write$ fin.field + } + if$ +} +FUNCTION {remove.ordinal.suffix} { + 's := + s string.length 'len := + #1 'ptr := + { ptr len < s ptr #1 substring$ is.digit AND } + 'incr.ptr + while$ + s ptr global.max$ substring$ 'p := + p "st" = + { TRUE } + { p "nd" = + { TRUE } + { p "rd" = + { TRUE } + { p "th" = + { TRUE } + { FALSE } + if$ + } + if$ + } + if$ + } + if$ + { s #1 ptr #1 - substring$ } + { s } + if$ +} +FUNCTION {optional.edition.field} { + duplicate$ missing.or.empty + { pop$ pop$ } + { swap$ start.field + remove.ordinal.suffix + write$ fin.field + } + if$ +} +INTEGERS { nameptr numnames namesleft } +STRINGS { namelist fieldname } +FUNCTION {format.name} { "{vv~}{ll}{, ff}{, jj}" format.name$ } + +FUNCTION {optional.name.field}{ + duplicate$ missing.or.empty + { pop$ pop$ } + { swap$ 'fieldname := + duplicate$ num.names$ + 'namesleft := + #1 'ptr := + { namesleft #0 > } + { fieldname start.field + duplicate$ ptr format.name write$ + fin.field + ptr #1 + 'ptr := + namesleft #1 - 'namesleft := + } + while$ + pop$ + } + if$ +} +FUNCTION {assemble.date.field} +{ date missing$ + { year missing.or.empty + { status missing.or.empty + { "No year or other date information for " + cite$ * warning$ } + 'skip$ + if$ + "status" + } + { year month missing$ { "" } { month } if$ * } + if$ + } + { date } + if$ + duplicate$ "status" = + { pop$ pop$ } + { swap$ start.field write$ fin.field } + if$ +} +FUNCTION {optional.journal.field} { + duplicate$ missing.or.empty + { pop$ pop$ } + { + 's := + start.field + #1 'ptr := + s current.char is.lowercase.letter + { + s "/" * 's := + { s ptr #1 substring$ "/" = NOT } + { incr.ptr } + while$ + s ptr #1 + #1 substring$ empty$ + { s #1 ptr #1 - substring$ } + { + s #1 ptr #1 - substring$ + write$ + fin.field + "ISSN" start.field + s ptr #1 + #9 substring$ + } + if$ + } + { s } + if$ + write$ + fin.field + } + if$ +} +FUNCTION {optional.type.field} +{ duplicate$ missing.or.empty + { type$ "mastersthesis" = { "Master's Thesis" } + { type$ "phdthesis" = { "Ph.D. Thesis" } + { "" } if$ } if$ + swap$ pop$ + } + 'skip$ + if$ + duplicate$ empty$ + { pop$ pop$ } + { swap$ start.field write$ fin.field } + if$ +} +FUNCTION {url.note.status.review} { + "url" url optional.field + "note" note optional.field + "status" status optional.field + "review" review optional.field + "review" mrnumber optional.mr.field +} +FUNCTION {start.entry} { + newline$ + "\bib{" cite$ * "}{" * + type$ "mastersthesis" = type$ "phdthesis" = OR + { "thesis" } + { type$ } + if$ + * "}{" * write$ + newline$ +} +FUNCTION {fin.entry} { + "}" write$ + newline$ +} +FUNCTION {article} { + start.entry + "author" author optional.name.field + "translator" translator optional.name.field + "title" title format.title write.field + "subtitle" subtitle optional.title.field + "language" language optional.field + "organization" organization optional.field + "how" howpublished optional.field + "date" assemble.date.field + "ISSN" issn optional.field + "journal" journal optional.journal.field + "volume" volume optional.field + "number" number optional.field + "pages" pages optional.pages.field + "PII" pii optional.field + "archive" archive optional.field + "eprint" eprint optional.field + "preprint" preprint optional.field + url.note.status.review + fin.entry +} +FUNCTION {inproceedings} { + start.entry + "author" author optional.name.field + "translator" translator optional.name.field + "title" title format.title write.field + "subtitle" subtitle optional.title.field + "language" language optional.field + "organization" organization optional.field + "how" howpublished optional.field + "date" assemble.date.field + "xid" xid optional.field + "conference" meeting optional.field + "booktitle" booktitle optional.title.field + "edition" edition optional.edition.field + "editor" editor optional.name.field + "series" series optional.field + "volume" volume optional.field + "publisher" publisher optional.field + "address" address optional.field + "pages" pages optional.pages.field + url.note.status.review + fin.entry +} +FUNCTION {inbook} { inproceedings } +FUNCTION {incollection} { inproceedings } +FUNCTION {conference} { inproceedings } +FUNCTION {book} { + start.entry + "author" author optional.name.field + "editor" editor optional.name.field + "translator" translator optional.name.field + "title" title missing$ { booktitle } { title } if$ + format.title write.field + "subtitle" subtitle optional.title.field + "type" type optional.type.field + "language" language optional.field + "conference" meeting optional.field + "edition" edition optional.edition.field + "series" series optional.field + "publisher" publisher optional.field + organization missing.or.empty + { "institution" institution optional.field } + { "organization" organization optional.field } + if$ + "address" address optional.field + "how" howpublished optional.field + "date" year write.field + "volume" volume optional.field + "number" number optional.field + "ISBN" isbn optional.field + url.note.status.review + fin.entry +} +FUNCTION {booklet} { book } +FUNCTION {manual} { book } +FUNCTION {mastersthesis} { book } + +FUNCTION {phdthesis} { book } + +FUNCTION {proceedings} { book } + +FUNCTION {collection} { book } + +FUNCTION {techreport} { book } + +FUNCTION {unpublished} { book } + +FUNCTION {misc} { book } + +FUNCTION {default.type} { misc } + + +READ + +FUNCTION {chop.word} { + 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {sort.format.title} { + 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {format.lab.names} { + 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #1 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ +{ cite$ #1 #3 substring$ } +{ key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ +{ key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ +} +{ editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ +{ organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ +} +{ key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ +{ organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ +} +{ key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label}{ + type$ "book" = type$ "inbook" = OR + 'author.editor.key.label + { type$ "proceedings" = +'editor.key.organization.label +{ type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ +} + if$ + } + if$ + strip.label + sortify + 'label := +} +FUNCTION {sort.format.names} { + 's := + #1 'ptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { ptr #1 > + { " " * } + 'skip$ + if$ + s ptr "{ll}{ ff}{ jj}" format.name$ 't := + ptr numnames = t "others" = AND + { "et al" } + { t sortify } + if$ + #20 rpad * + ptr #1 + 'ptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {sort.warning} { + "to sort, need " swap$ * " or key in " * cite$ * warning$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "author" sort.warning + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "author, editor," sort.warning + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "author, organization," sort.warning + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "editor, organization," sort.warning + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} { + calc.label + label #20 rpad + type$ "book" = type$ "inbook" = OR type$ "collection" = OR + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * " " * + year field.or.null sortify #12 rpad * " " * + title field.or.null sort.format.title * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {presort} + +SORT +FUNCTION {write.with.newlines} +{ 's := #1 'ptr := + { s ptr #2 + #1 substring$ "" = NOT } + { s ptr #3 substring$ "^^M" = + { s #1 ptr #1 - substring$ write$ newline$ + ptr #3 + 'ptr := + s ptr global.max$ substring$ 's := + #1 'ptr := + } + { incr.ptr } + if$ + } + while$ + s write$ newline$ +} +FUNCTION {begin.bib} { + preamble$ empty$ + 'skip$ + { preamble$ write.with.newlines } + if$ + "% \bib, bibdiv, biblist are defined by the amsrefs package." + write$ newline$ + "\begin{bibdiv}" write$ newline$ + "\begin{biblist}" write$ newline$ +} +FUNCTION {end.bib} { + newline$ + "\end{biblist}" write$ newline$ + "\end{bibdiv}" write$ newline$ +} +EXECUTE {begin.bib} + +ITERATE {call.type$} + +EXECUTE {end.bib} +%% +%% +%% End of file `amsrs.bst'. diff --git a/Master/texmf-dist/bibtex/bst/amslatex/amsru.bst b/Master/texmf-dist/bibtex/bst/amslatex/amsru.bst new file mode 100644 index 00000000000..28371381afb --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/amslatex/amsru.bst @@ -0,0 +1,536 @@ +%% +%% This is file `amsru.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% amsxport.dtx (with options: `bst,plain') +%% +%%% ==================================================================== +%%% @BibTeX-source-file{ +%%% filename = "amsxport.dtx", +%%% version = "2.00", +%%% date = "2004/06/28", +%%% time = "14:50:12 EDT", +%%% author = "Michael J Downes", +%%% address = "American Mathematical Society, +%%% Publications Technical Group, +%%% PO Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% email = "tech-support at ams.org", +%%% URL = "http://www.ams.org/", +%%% abstract = "The BibTeX style file amsxport.bst produces .bbl +%%% entries where most of the database structure is +%%% retained. This is intended for processing by a smart +%%% bibliography package such as the amsrefs package.", +%%% checksum = "40425 1822 6396 51551", +%%% docstring = "The checksum field, produced by Robert Solovay's +%%% checksum utility, gives CRC-16 checksum, lines, +%%% words, and characters.", +%%% } +%%% ==================================================================== +ENTRY + { + address institution number status + archive isbn organization subtitle + author issn pages title + booktitle journal part translator + chapter key pii type + date language preprint url + edition meeting publisher volume + editor month review xid + eprint mrnumber school year + howpublished note series + } + { } + { label } +MACRO {jan} {"-01"} +MACRO {feb} {"-02"} +MACRO {mar} {"-03"} +MACRO {apr} {"-04"} +MACRO {may} {"-05"} +MACRO {jun} {"-06"} +MACRO {jul} {"-07"} +MACRO {aug} {"-08"} +MACRO {sep} {"-09"} +MACRO {oct} {"-10"} +MACRO {nov} {"-11"} +MACRO {dec} {"-12"} +STRINGS { p s t l } +INTEGERS { len ptr } + +FUNCTION {NOT} { { #0 } { #1 } if$ } + +FUNCTION {AND} { 'skip$ { pop$ #0 } if$ } + +FUNCTION {OR} { { pop$ #1 } 'skip$ if$ } + +FUNCTION {TRUE} { #1 } + +FUNCTION {FALSE} { #0 } + +FUNCTION {incr.ptr} { ptr #1 + 'ptr := } + +FUNCTION {current.char} { ptr #1 substring$ } +FUNCTION {copy.two.chars} { t * incr.ptr s current.char * incr.ptr } + +FUNCTION {is.digit} { + chr.to.int$ + duplicate$ + "0" chr.to.int$ #1 - > + swap$ + "9" chr.to.int$ #1 + < + AND +} + +FUNCTION {is.lowercase.letter} { + chr.to.int$ duplicate$ + "a" chr.to.int$ #1 - > + swap$ + "z" chr.to.int$ #1 + < + AND +} +FUNCTION {is.uppercase.letter} { + chr.to.int$ duplicate$ + "A" chr.to.int$ #1 - > + swap$ + "Z" chr.to.int$ #1 + < + AND +} +FUNCTION {is.letter} { + duplicate$ + is.lowercase.letter + { pop$ TRUE } + { is.uppercase.letter } + if$ +} +FUNCTION {skip.accent} { pop$ incr.ptr } +FUNCTION {strip.label} { + 's := + #1 'ptr := + "" + { s ptr #1 substring$ duplicate$ empty$ NOT } + { duplicate$ is.letter + { * } + { duplicate$ "\" = + { skip.accent } + 'pop$ + if$ + } + if$ + incr.ptr + } + while$ + pop$ +} +FUNCTION {sortify} { + purify$ + "l" change.case$ +} +FUNCTION {rpad} { + swap$ + 'l := + l text.length$ - 'len := + { len #0 > } + { + l " " * 'l := + len #1 - 'len := + } + while$ + l +} +FUNCTION {lpad} { + swap$ + 'l := + l text.length$ - 'len := + { len #0 > } + { + " " l * 'l := + len #1 - 'len := + } + while$ + l +} +FUNCTION {field.or.null} { + duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {missing.or.empty} { duplicate$ missing$ swap$ empty$ OR } + +FUNCTION {append.ndash.and.skip.hyphens} { + "\ndash " * + incr.ptr + { s current.char "-" = } + { incr.ptr } + while$ +} +FUNCTION {n.dashify} { + 's := + #1 'ptr := + "" + { s current.char 't := t "" = NOT } + { t "\" = + { copy.two.chars } + { t "-" = + { append.ndash.and.skip.hyphens } + { t * incr.ptr } + if$ + } + if$ + } + while$ +} +FUNCTION {missing.warning} { + "missing " swap$ * " in " * cite$ * warning$ +} + +INTEGERS { string.ptr } + +FUNCTION {string.length} { + #1 'string.ptr := + { duplicate$ string.ptr #1 substring$ "" = 'FALSE 'TRUE if$ } + { string.ptr #1 + 'string.ptr := } + while$ + pop$ + string.ptr #1 - +} +FUNCTION {format.title}{ + duplicate$ + missing.or.empty + { pop$ "" } + { "t" change.case$ } + if$ +} +FUNCTION {start.field} { + #12 lpad "={" * write$ +} +FUNCTION {fin.field} { "}," write$ newline$ } + +FUNCTION {write.field} { + duplicate$ + missing$ + { pop$ missing.warning } + { duplicate$ empty$ + { pop$ missing.warning } + { swap$ start.field write$ fin.field } + if$ + } + if$ +} +FUNCTION {optional.field} { + duplicate$ + missing.or.empty + { pop$ pop$ } + { swap$ start.field write$ fin.field } + if$ +} +FUNCTION {optional.title.field} { + duplicate$ + missing.or.empty + { pop$ pop$ } + { format.title swap$ start.field write$ fin.field } + if$ +} +FUNCTION {optional.pages.field} { + duplicate$ + missing.or.empty + { pop$ pop$ } + { swap$ start.field + n.dashify + write$ fin.field + } + if$ +} +FUNCTION {optional.mr.field} { + duplicate$ + missing.or.empty + { pop$ pop$ } + { + swap$ start.field + "\MR{" swap$ * "}" * write$ fin.field + } + if$ +} +FUNCTION {remove.ordinal.suffix} { + 's := + s string.length 'len := + #1 'ptr := + { ptr len < s ptr #1 substring$ is.digit AND } + 'incr.ptr + while$ + s ptr global.max$ substring$ 'p := + p "st" = + { TRUE } + { p "nd" = + { TRUE } + { p "rd" = + { TRUE } + { p "th" = + { TRUE } + { FALSE } + if$ + } + if$ + } + if$ + } + if$ + { s #1 ptr #1 - substring$ } + { s } + if$ +} +FUNCTION {optional.edition.field} { + duplicate$ missing.or.empty + { pop$ pop$ } + { swap$ start.field + remove.ordinal.suffix + write$ fin.field + } + if$ +} +INTEGERS { nameptr numnames namesleft } +STRINGS { namelist fieldname } +FUNCTION {format.name} { "{vv~}{ll}{, ff}{, jj}" format.name$ } + +FUNCTION {optional.name.field}{ + duplicate$ missing.or.empty + { pop$ pop$ } + { swap$ 'fieldname := + duplicate$ num.names$ + 'namesleft := + #1 'ptr := + { namesleft #0 > } + { fieldname start.field + duplicate$ ptr format.name write$ + fin.field + ptr #1 + 'ptr := + namesleft #1 - 'namesleft := + } + while$ + pop$ + } + if$ +} +FUNCTION {assemble.date.field} +{ date missing$ + { year missing.or.empty + { status missing.or.empty + { "No year or other date information for " + cite$ * warning$ } + 'skip$ + if$ + "status" + } + { year month missing$ { "" } { month } if$ * } + if$ + } + { date } + if$ + duplicate$ "status" = + { pop$ pop$ } + { swap$ start.field write$ fin.field } + if$ +} +FUNCTION {optional.journal.field} { + duplicate$ missing.or.empty + { pop$ pop$ } + { + 's := + start.field + #1 'ptr := + s current.char is.lowercase.letter + { + s "/" * 's := + { s ptr #1 substring$ "/" = NOT } + { incr.ptr } + while$ + s ptr #1 + #1 substring$ empty$ + { s #1 ptr #1 - substring$ } + { + s #1 ptr #1 - substring$ + write$ + fin.field + "ISSN" start.field + s ptr #1 + #9 substring$ + } + if$ + } + { s } + if$ + write$ + fin.field + } + if$ +} +FUNCTION {optional.type.field} +{ duplicate$ missing.or.empty + { type$ "mastersthesis" = { "Master's Thesis" } + { type$ "phdthesis" = { "Ph.D. Thesis" } + { "" } if$ } if$ + swap$ pop$ + } + 'skip$ + if$ + duplicate$ empty$ + { pop$ pop$ } + { swap$ start.field write$ fin.field } + if$ +} +FUNCTION {url.note.status.review} { + "url" url optional.field + "note" note optional.field + "status" status optional.field + "review" review optional.field + "review" mrnumber optional.mr.field +} +FUNCTION {start.entry} { + newline$ + "\bib{" cite$ * "}{" * + type$ "mastersthesis" = type$ "phdthesis" = OR + { "thesis" } + { type$ } + if$ + * "}{" * write$ + newline$ +} +FUNCTION {fin.entry} { + "}" write$ + newline$ +} +FUNCTION {article} { + start.entry + "author" author optional.name.field + "translator" translator optional.name.field + "title" title format.title write.field + "subtitle" subtitle optional.title.field + "language" language optional.field + "organization" organization optional.field + "how" howpublished optional.field + "date" assemble.date.field + "ISSN" issn optional.field + "journal" journal optional.journal.field + "volume" volume optional.field + "number" number optional.field + "pages" pages optional.pages.field + "PII" pii optional.field + "archive" archive optional.field + "eprint" eprint optional.field + "preprint" preprint optional.field + url.note.status.review + fin.entry +} +FUNCTION {inproceedings} { + start.entry + "author" author optional.name.field + "translator" translator optional.name.field + "title" title format.title write.field + "subtitle" subtitle optional.title.field + "language" language optional.field + "organization" organization optional.field + "how" howpublished optional.field + "date" assemble.date.field + "xid" xid optional.field + "conference" meeting optional.field + "booktitle" booktitle optional.title.field + "edition" edition optional.edition.field + "editor" editor optional.name.field + "series" series optional.field + "volume" volume optional.field + "publisher" publisher optional.field + "address" address optional.field + "pages" pages optional.pages.field + url.note.status.review + fin.entry +} +FUNCTION {inbook} { inproceedings } +FUNCTION {incollection} { inproceedings } +FUNCTION {conference} { inproceedings } +FUNCTION {book} { + start.entry + "author" author optional.name.field + "editor" editor optional.name.field + "translator" translator optional.name.field + "title" title missing$ { booktitle } { title } if$ + format.title write.field + "subtitle" subtitle optional.title.field + "type" type optional.type.field + "language" language optional.field + "conference" meeting optional.field + "edition" edition optional.edition.field + "series" series optional.field + "publisher" publisher optional.field + organization missing.or.empty + { "institution" institution optional.field } + { "organization" organization optional.field } + if$ + "address" address optional.field + "how" howpublished optional.field + "date" year write.field + "volume" volume optional.field + "number" number optional.field + "ISBN" isbn optional.field + url.note.status.review + fin.entry +} +FUNCTION {booklet} { book } +FUNCTION {manual} { book } +FUNCTION {mastersthesis} { book } + +FUNCTION {phdthesis} { book } + +FUNCTION {proceedings} { book } + +FUNCTION {collection} { book } + +FUNCTION {techreport} { book } + +FUNCTION {unpublished} { book } + +FUNCTION {misc} { book } + +FUNCTION {default.type} { misc } + + +READ + +FUNCTION {write.with.newlines} +{ 's := #1 'ptr := + { s ptr #2 + #1 substring$ "" = NOT } + { s ptr #3 substring$ "^^M" = + { s #1 ptr #1 - substring$ write$ newline$ + ptr #3 + 'ptr := + s ptr global.max$ substring$ 's := + #1 'ptr := + } + { incr.ptr } + if$ + } + while$ + s write$ newline$ +} +FUNCTION {begin.bib} { + preamble$ empty$ + 'skip$ + { preamble$ write.with.newlines } + if$ + "% \bib, bibdiv, biblist are defined by the amsrefs package." + write$ newline$ + "\begin{bibdiv}" write$ newline$ + "\begin{biblist}" write$ newline$ +} +FUNCTION {end.bib} { + newline$ + "\end{biblist}" write$ newline$ + "\end{bibdiv}" write$ newline$ +} +EXECUTE {begin.bib} + +ITERATE {call.type$} + +EXECUTE {end.bib} +%% +%% +%% End of file `amsru.bst'. diff --git a/Master/texmf-dist/bibtex/bst/amslatex/amsry.bst b/Master/texmf-dist/bibtex/bst/amslatex/amsry.bst new file mode 100644 index 00000000000..7e8a03e3035 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/amslatex/amsry.bst @@ -0,0 +1,774 @@ +%% +%% This is file `amsry.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% amsxport.dtx (with options: `bst,sort,alpha,y2k') +%% +%%% ==================================================================== +%%% @BibTeX-source-file{ +%%% filename = "amsxport.dtx", +%%% version = "2.00", +%%% date = "2004/06/28", +%%% time = "14:50:12 EDT", +%%% author = "Michael J Downes", +%%% address = "American Mathematical Society, +%%% Publications Technical Group, +%%% PO Box 6248, +%%% Providence, RI 02940, +%%% USA", +%%% email = "tech-support at ams.org", +%%% URL = "http://www.ams.org/", +%%% abstract = "The BibTeX style file amsxport.bst produces .bbl +%%% entries where most of the database structure is +%%% retained. This is intended for processing by a smart +%%% bibliography package such as the amsrefs package.", +%%% checksum = "40425 1822 6396 51551", +%%% docstring = "The checksum field, produced by Robert Solovay's +%%% checksum utility, gives CRC-16 checksum, lines, +%%% words, and characters.", +%%% } +%%% ==================================================================== +ENTRY + { + address institution number status + archive isbn organization subtitle + author issn pages title + booktitle journal part translator + chapter key pii type + date language preprint url + edition meeting publisher volume + editor month review xid + eprint mrnumber school year + howpublished note series + } + { } + { label } +MACRO {jan} {"-01"} +MACRO {feb} {"-02"} +MACRO {mar} {"-03"} +MACRO {apr} {"-04"} +MACRO {may} {"-05"} +MACRO {jun} {"-06"} +MACRO {jul} {"-07"} +MACRO {aug} {"-08"} +MACRO {sep} {"-09"} +MACRO {oct} {"-10"} +MACRO {nov} {"-11"} +MACRO {dec} {"-12"} +STRINGS { p s t l } +INTEGERS { len ptr } + +FUNCTION {NOT} { { #0 } { #1 } if$ } + +FUNCTION {AND} { 'skip$ { pop$ #0 } if$ } + +FUNCTION {OR} { { pop$ #1 } 'skip$ if$ } + +FUNCTION {TRUE} { #1 } + +FUNCTION {FALSE} { #0 } + +FUNCTION {incr.ptr} { ptr #1 + 'ptr := } + +FUNCTION {current.char} { ptr #1 substring$ } +FUNCTION {copy.two.chars} { t * incr.ptr s current.char * incr.ptr } + +FUNCTION {is.digit} { + chr.to.int$ + duplicate$ + "0" chr.to.int$ #1 - > + swap$ + "9" chr.to.int$ #1 + < + AND +} + +FUNCTION {is.lowercase.letter} { + chr.to.int$ duplicate$ + "a" chr.to.int$ #1 - > + swap$ + "z" chr.to.int$ #1 + < + AND +} +FUNCTION {is.uppercase.letter} { + chr.to.int$ duplicate$ + "A" chr.to.int$ #1 - > + swap$ + "Z" chr.to.int$ #1 + < + AND +} +FUNCTION {is.letter} { + duplicate$ + is.lowercase.letter + { pop$ TRUE } + { is.uppercase.letter } + if$ +} +FUNCTION {skip.accent} { pop$ incr.ptr } +FUNCTION {strip.label} { + 's := + #1 'ptr := + "" + { s ptr #1 substring$ duplicate$ empty$ NOT } + { duplicate$ is.letter + { * } + { duplicate$ "\" = + { skip.accent } + 'pop$ + if$ + } + if$ + incr.ptr + } + while$ + pop$ +} +FUNCTION {sortify} { + purify$ + "l" change.case$ +} +FUNCTION {rpad} { + swap$ + 'l := + l text.length$ - 'len := + { len #0 > } + { + l " " * 'l := + len #1 - 'len := + } + while$ + l +} +FUNCTION {lpad} { + swap$ + 'l := + l text.length$ - 'len := + { len #0 > } + { + " " l * 'l := + len #1 - 'len := + } + while$ + l +} +FUNCTION {field.or.null} { + duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {missing.or.empty} { duplicate$ missing$ swap$ empty$ OR } + +FUNCTION {append.ndash.and.skip.hyphens} { + "\ndash " * + incr.ptr + { s current.char "-" = } + { incr.ptr } + while$ +} +FUNCTION {n.dashify} { + 's := + #1 'ptr := + "" + { s current.char 't := t "" = NOT } + { t "\" = + { copy.two.chars } + { t "-" = + { append.ndash.and.skip.hyphens } + { t * incr.ptr } + if$ + } + if$ + } + while$ +} +FUNCTION {missing.warning} { + "missing " swap$ * " in " * cite$ * warning$ +} + +INTEGERS { string.ptr } + +FUNCTION {string.length} { + #1 'string.ptr := + { duplicate$ string.ptr #1 substring$ "" = 'FALSE 'TRUE if$ } + { string.ptr #1 + 'string.ptr := } + while$ + pop$ + string.ptr #1 - +} +FUNCTION {format.title}{ + duplicate$ + missing.or.empty + { pop$ "" } + { "t" change.case$ } + if$ +} +FUNCTION {start.field} { + #12 lpad "={" * write$ +} +FUNCTION {fin.field} { "}," write$ newline$ } + +FUNCTION {write.field} { + duplicate$ + missing$ + { pop$ missing.warning } + { duplicate$ empty$ + { pop$ missing.warning } + { swap$ start.field write$ fin.field } + if$ + } + if$ +} +FUNCTION {optional.field} { + duplicate$ + missing.or.empty + { pop$ pop$ } + { swap$ start.field write$ fin.field } + if$ +} +FUNCTION {optional.title.field} { + duplicate$ + missing.or.empty + { pop$ pop$ } + { format.title swap$ start.field write$ fin.field } + if$ +} +FUNCTION {optional.pages.field} { + duplicate$ + missing.or.empty + { pop$ pop$ } + { swap$ start.field + n.dashify + write$ fin.field + } + if$ +} +FUNCTION {optional.mr.field} { + duplicate$ + missing.or.empty + { pop$ pop$ } + { + swap$ start.field + "\MR{" swap$ * "}" * write$ fin.field + } + if$ +} +FUNCTION {remove.ordinal.suffix} { + 's := + s string.length 'len := + #1 'ptr := + { ptr len < s ptr #1 substring$ is.digit AND } + 'incr.ptr + while$ + s ptr global.max$ substring$ 'p := + p "st" = + { TRUE } + { p "nd" = + { TRUE } + { p "rd" = + { TRUE } + { p "th" = + { TRUE } + { FALSE } + if$ + } + if$ + } + if$ + } + if$ + { s #1 ptr #1 - substring$ } + { s } + if$ +} +FUNCTION {optional.edition.field} { + duplicate$ missing.or.empty + { pop$ pop$ } + { swap$ start.field + remove.ordinal.suffix + write$ fin.field + } + if$ +} +INTEGERS { nameptr numnames namesleft } +STRINGS { namelist fieldname } +FUNCTION {format.name} { "{vv~}{ll}{, ff}{, jj}" format.name$ } + +FUNCTION {optional.name.field}{ + duplicate$ missing.or.empty + { pop$ pop$ } + { swap$ 'fieldname := + duplicate$ num.names$ + 'namesleft := + #1 'ptr := + { namesleft #0 > } + { fieldname start.field + duplicate$ ptr format.name write$ + fin.field + ptr #1 + 'ptr := + namesleft #1 - 'namesleft := + } + while$ + pop$ + } + if$ +} +FUNCTION {assemble.date.field} +{ date missing$ + { year missing.or.empty + { status missing.or.empty + { "No year or other date information for " + cite$ * warning$ } + 'skip$ + if$ + "status" + } + { year month missing$ { "" } { month } if$ * } + if$ + } + { date } + if$ + duplicate$ "status" = + { pop$ pop$ } + { swap$ start.field write$ fin.field } + if$ +} +FUNCTION {optional.journal.field} { + duplicate$ missing.or.empty + { pop$ pop$ } + { + 's := + start.field + #1 'ptr := + s current.char is.lowercase.letter + { + s "/" * 's := + { s ptr #1 substring$ "/" = NOT } + { incr.ptr } + while$ + s ptr #1 + #1 substring$ empty$ + { s #1 ptr #1 - substring$ } + { + s #1 ptr #1 - substring$ + write$ + fin.field + "ISSN" start.field + s ptr #1 + #9 substring$ + } + if$ + } + { s } + if$ + write$ + fin.field + } + if$ +} +FUNCTION {optional.type.field} +{ duplicate$ missing.or.empty + { type$ "mastersthesis" = { "Master's Thesis" } + { type$ "phdthesis" = { "Ph.D. Thesis" } + { "" } if$ } if$ + swap$ pop$ + } + 'skip$ + if$ + duplicate$ empty$ + { pop$ pop$ } + { swap$ start.field write$ fin.field } + if$ +} +FUNCTION {url.note.status.review} { + "url" url optional.field + "note" note optional.field + "status" status optional.field + "review" review optional.field + "review" mrnumber optional.mr.field +} +FUNCTION {start.entry} { + newline$ + "\bib{" cite$ * "}{" * + type$ "mastersthesis" = type$ "phdthesis" = OR + { "thesis" } + { type$ } + if$ + * "}{" * write$ + newline$ +} +FUNCTION {fin.entry} { + "}" write$ + newline$ +} +FUNCTION {article} { + start.entry + "author" author optional.name.field + "translator" translator optional.name.field + "title" title format.title write.field + "subtitle" subtitle optional.title.field + "language" language optional.field + "organization" organization optional.field + "how" howpublished optional.field + "date" assemble.date.field + "ISSN" issn optional.field + "journal" journal optional.journal.field + "volume" volume optional.field + "number" number optional.field + "pages" pages optional.pages.field + "PII" pii optional.field + "archive" archive optional.field + "eprint" eprint optional.field + "preprint" preprint optional.field + url.note.status.review + fin.entry +} +FUNCTION {inproceedings} { + start.entry + "author" author optional.name.field + "translator" translator optional.name.field + "title" title format.title write.field + "subtitle" subtitle optional.title.field + "language" language optional.field + "organization" organization optional.field + "how" howpublished optional.field + "date" assemble.date.field + "xid" xid optional.field + "conference" meeting optional.field + "booktitle" booktitle optional.title.field + "edition" edition optional.edition.field + "editor" editor optional.name.field + "series" series optional.field + "volume" volume optional.field + "publisher" publisher optional.field + "address" address optional.field + "pages" pages optional.pages.field + url.note.status.review + fin.entry +} +FUNCTION {inbook} { inproceedings } +FUNCTION {incollection} { inproceedings } +FUNCTION {conference} { inproceedings } +FUNCTION {book} { + start.entry + "author" author optional.name.field + "editor" editor optional.name.field + "translator" translator optional.name.field + "title" title missing$ { booktitle } { title } if$ + format.title write.field + "subtitle" subtitle optional.title.field + "type" type optional.type.field + "language" language optional.field + "conference" meeting optional.field + "edition" edition optional.edition.field + "series" series optional.field + "publisher" publisher optional.field + organization missing.or.empty + { "institution" institution optional.field } + { "organization" organization optional.field } + if$ + "address" address optional.field + "how" howpublished optional.field + "date" year write.field + "volume" volume optional.field + "number" number optional.field + "ISBN" isbn optional.field + url.note.status.review + fin.entry +} +FUNCTION {booklet} { book } +FUNCTION {manual} { book } +FUNCTION {mastersthesis} { book } + +FUNCTION {phdthesis} { book } + +FUNCTION {proceedings} { book } + +FUNCTION {collection} { book } + +FUNCTION {techreport} { book } + +FUNCTION {unpublished} { book } + +FUNCTION {misc} { book } + +FUNCTION {default.type} { misc } + + +READ + +FUNCTION {chop.word} { + 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} +FUNCTION {sort.format.title} { + 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +FUNCTION {format.lab.names} { + 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ +{ cite$ #1 #3 substring$ } +{ key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ +{ key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ +} +{ editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ +{ organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ +} +{ key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ +{ organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ +} +{ key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label}{ + type$ "book" = type$ "inbook" = OR + 'author.editor.key.label + { type$ "proceedings" = +'editor.key.organization.label +{ type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ +} + if$ + } + if$ + strip.label + sortify + year field.or.null + purify$ * + 'label := +} +FUNCTION {sort.format.names} { + 's := + #1 'ptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { ptr #1 > + { " " * } + 'skip$ + if$ + s ptr "{ll}{ ff}{ jj}" format.name$ 't := + ptr numnames = t "others" = AND + { "et al" } + { t sortify } + if$ + #20 rpad * + ptr #1 + 'ptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {sort.warning} { + "to sort, need " swap$ * " or key in " * cite$ * warning$ +} +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "author" sort.warning + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "author, editor," sort.warning + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "author, organization," sort.warning + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "editor, organization," sort.warning + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort} { + calc.label + label #20 rpad + type$ "book" = type$ "inbook" = OR type$ "collection" = OR + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * " " * + title field.or.null sort.format.title * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {presort} + +SORT +FUNCTION {write.with.newlines} +{ 's := #1 'ptr := + { s ptr #2 + #1 substring$ "" = NOT } + { s ptr #3 substring$ "^^M" = + { s #1 ptr #1 - substring$ write$ newline$ + ptr #3 + 'ptr := + s ptr global.max$ substring$ 's := + #1 'ptr := + } + { incr.ptr } + if$ + } + while$ + s write$ newline$ +} +FUNCTION {begin.bib} { + preamble$ empty$ + 'skip$ + { preamble$ write.with.newlines } + if$ + "% \bib, bibdiv, biblist are defined by the amsrefs package." + write$ newline$ + "\begin{bibdiv}" write$ newline$ + "\begin{biblist}" write$ newline$ +} +FUNCTION {end.bib} { + newline$ + "\end{biblist}" write$ newline$ + "\end{bibdiv}" write$ newline$ +} +EXECUTE {begin.bib} + +ITERATE {call.type$} + +EXECUTE {end.bib} +%% +%% +%% End of file `amsry.bst'. diff --git a/Master/texmf-dist/bibtex/bst/apacite/apacite.bst b/Master/texmf-dist/bibtex/bst/apacite/apacite.bst new file mode 100644 index 00000000000..0097506a45e --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/apacite/apacite.bst @@ -0,0 +1,5091 @@ +% \iffalse meta-comment +% +% This is file `apacite.bst'. +% +% Copyright 1994-2005 Erik Meijer and any individual authors listed +% elsewhere in this file. All rights reserved. +% +% This file is part of the `apacite' package. +% ------------------------------------------- +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2003/12/01 or later. +% +% The list of all files belonging to the `apacite' package, with a +% short description, is given in the file `manifest.txt'. +% +% \fi + +%% apacite.bst : reference list according to APA manual +%% Written by Erik Meijer +%% This version: [2005/06/08] + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% DECLARATION OF FIELDS, INTEGERS, AND STRINGS FOR EACH % +% ENTRY % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +ENTRY + { address + annote % not used + author + booktitle % for articles in books + chair % for lectures + chapter % for incollection, esp. internet documents + day + edition + editor + englishtitle % english translation of title in other language + firstkey % key for first citation + howpublished + institution % for technical reports + journal + key % key for second and later citations, or all + % citations if firstkey is missing + month + note + number % number of journal or report + organization % for unpublished + % + % for reprints, translations, etc. + % + originaladdress + originalbooktitle + originaledition + originaleditor + originaljournal + originalnumber + originalpages + originalpublisher + originalvolume + originalyear + % + % back to normal + % + pages + publisher + school % for theses + series % not used + symposium % for lectures + text % for literals + title + translator % translator of book (or article) + type % type of phdthesis (e.g., Doctoral dissertation) + % or type of article (e.g., Letter to the editor) + % etc. + volume + year + } + { title.number % for sorting titles + cite.initials % dummy (0-1) indicating whether or not + % initials of the 1st author must + % be used for citing + cite.num.names.full % number of names to be cited for full and + cite.num.names.short % short cite + add.to.year % For a, b, c, etc. after year + % in multiple citations with same author-year + } + { year.label % For sorting entries by year + author.year.sort.label % For sorting entries and checking whether + % initials should be added, how many authors + % should be cited and whether a, b, etc. + % after year is necessary + title.sort.label % for sorting titles + } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% DECLARATION OF GLOBAL INTEGERS AND STRINGS % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +INTEGERS { len pos name.max old.number numnames numnames.old + nameptr lastname format.num.names cite.initials.old + cite.num.names.old add.to.year.old forward + multiresult dot + } + +STRINGS { s t u old.label field + aut1f aut1s aut1f.old aut1s.old + aut2 aut2.old + aut3 aut3.old + aut4 aut4.old + aut5 aut5.old + aut6 aut6.old + year.label.old + } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% A small function for testing purposes. + +FUNCTION {test} { #0 } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% A small function (ideally replaced by a user-definable +% MACRO) that indicates whether index entries must be +% generated. + +FUNCTION {make.index} { #0 } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% MONTH MACROS % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +MACRO {jan} {"{\APACSortNoop{01}}January"} + +MACRO {feb} {"{\APACSortNoop{02}}February"} + +MACRO {mar} {"{\APACSortNoop{03}}March"} + +MACRO {apr} {"{\APACSortNoop{04}}April"} + +MACRO {may} {"{\APACSortNoop{05}}May"} + +MACRO {jun} {"{\APACSortNoop{06}}June"} + +MACRO {jul} {"{\APACSortNoop{07}}July"} + +MACRO {aug} {"{\APACSortNoop{08}}August"} + +MACRO {sep} {"{\APACSortNoop{09}}September"} + +MACRO {oct} {"{\APACSortNoop{10}}October"} + +MACRO {nov} {"{\APACSortNoop{11}}November"} + +MACRO {dec} {"{\APACSortNoop{12}}December"} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% LOGICAL `NOT', `AND', AND `OR' % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Logical 'not': +% If the first element on the stack is A then this function +% does the following: +% push { #0 } +% push { #1 } +% So now the first 3 elements of the stack are +% { #1 } { #0 } A +% The first 3 are popped and subjected to 'if': +% If A > 0 then { #0 } is executed, else { #1 } is executed: +% if A > 0 +% then 0 +% else 1 +% So consider integers as logicals, where 1 = true and 0 = false, +% then this does +% (if A then false else true) +% which is a logical 'not'. + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Logical 'and': +% If the first 2 elements on the stack are A B +% then this function does the following: +% push 'skip$ +% push { pop$ #0 } +% So now first 4 elements are +% { pop$ #0 } 'skip$ A B +% The first 3 are popped and subjected to 'if' (B is on top of +% the stack): +% If A > 0 then 'skip$ is executed, else { pop$ #0 } is executed: +% if A > 0 +% then (B stays on top of stack) +% else (B is popped and #0 is pushed) +% So consider integers as logicals, where 1 = true and 0 = false, +% then this does +% (if A then B else false) +% which is a logical 'and'. + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Logical 'or': +% If the first 2 elements on the stack are A B +% then this function does the following: +% push { pop$ #1 } +% push 'skip$ +% So now first 4 elements are +% 'skip$ { pop$ #1 } A B +% The first 3 are popped and subjected to 'if' (B is on top of +% the stack): +% If A > 0 then { pop$ #1 } is executed, else 'skip$ is executed: +% if A > 0 +% then (B is popped and #1 is pushed) +% else (B stays on top of stack) +% So consider integers as logicals, where 1 = true and 0 = false, +% then this does +% (if A then true else B) +% which is a logical 'or'. + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% GENERAL PURPOSE FUNCTIONS FOR FORMATTING % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % issues warning if field is empty + % call with + % "field" field warning.if.empty + % Note that the first field must be between quotes + % because it is the fieldname for use in the warning message. + % +FUNCTION {warning.if.empty} +{ empty$ + { "No " swap$ * " in " * cite$ * warning$ } + { pop$ } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % issues warning if title, type, and howpublished are empty + % +FUNCTION {check.relevant.fields} +{ title empty$ + type empty$ + howpublished empty$ + and + and + { "No title, type, and howpublished in " cite$ * warning$ } + 'skip$ + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % delivers 1 if (both editor and translator + % not empty and not equal to each other) + % 0 if (editor or translator empty) or + % (editor = translator) + % +FUNCTION {editor.ne.trans} +{ translator empty$ + { #0 } + { editor empty$ + { #0 } + { translator editor = + { #0 } + { #1 } + if$ + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Convert integer to string, assume that integer < 100,000 + +FUNCTION {conv.int.to.str} +{ duplicate$ #10 < + { "0000" swap$ int.to.str$ * } + { duplicate$ #100 < + { "000" swap$ int.to.str$ * } + { duplicate$ #1000 < + { "00" swap$ int.to.str$ * } + { duplicate$ #10000 < + { "0" swap$ int.to.str$ * } + { int.to.str$ } + if$ + } + if$ + } + if$ + } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Delivers 1 if possibly editor in author position +% 2 if editor not in author position +% 3 if not applicable: use key +% 0 if unknown type + +FUNCTION {ref.type} +{ type$ "article" = + type$ "magazine" = + type$ "newspaper" = + type$ "book" = + type$ "techreport" = + type$ "unpublished" = + type$ "misc" = + type$ "booklet" = + type$ "manual" = + type$ "proceedings" = + or + or + or + or + or + or + or + or + or + { #1 } + { type$ "incollection" = + type$ "phdthesis" = + type$ "mastersthesis" = + type$ "lecture" = + type$ "inbook" = + type$ "inproceedings" = + type$ "intechreport" = + or + or + or + or + or + or + { #2 } + { type$ "literal" = + { #3 } + { #0 } + if$ + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Delivers 1 if title is formatted as an "article"-type, +% 0 otherwise + +FUNCTION {is.atype} +{ type$ "article" = + type$ "magazine" = + type$ "newspaper" = + type$ "incollection" = + type$ "inbook" = + type$ "inproceedings" = + type$ "intechreport" = + or + or + or + or + or + or + { #1 } + { journal empty$ not + % + type$ "phdthesis" = + type$ "mastersthesis" = + or + % + and + { #1 } + { type$ "misc" = + type empty$ not + and + { type "\bibmessage" = + type "\bibcomputerprogram" = + type "\bibcomputerprogrammanual" = + type "\bibcomputerprogramandmanual" = + type "\bibcomputersoftware" = + type "\bibcomputersoftwaremanual" = + type "\bibcomputersoftwareandmanual" = + type "\bibprogramminglanguage" = + or + or + or + or + or + or + or + { #1 } + { #0 } + if$ + } + { #0 } + if$ + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % connects two strings with connect string + % if one of them empty, then connect string + % is left out + % + % call with S1 S2 connectstring connect.check + % +FUNCTION {connect.check} +{ 'u := + % + % if S2 = "" + % + duplicate$ empty$ + % + % then remove S2 + % + { pop$ + % + % S1 is on top of stack. + % if it is empty, it is replaced by the empty string "" + % + duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ + } + % + % else swap S1 and S2 so that S1 can be checked + % + { swap$ + % + % if S1 is empty, remove S1 so that S2 is left on the + % stack and is the result is given + % + duplicate$ empty$ + { pop$ } + % + % now the real work starts: + % push the connect string "C" + % so that top of stack is "C" "S1" "S2" + % concatenate, so that top of stack is + % "S1+C" "S2" + % + { u * + % + % swap and concatenate + % + swap$ * + } + if$ + } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % connects two strings with space ("\ ") + % if length of second is 3 or larger, + % connects them with non-breaking space ("tie", "~") + % if length of second smaller than 3 + % + % call with S1 S2 tie.or.space.connect + % result: "S1\ S2" or "S1~S2" + % +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % connects two strings with comma (", ") + % if one of them is empty, the comma is left out + % + % call with S1 S2 connect.with.comma.check + % result: "S1, S2" + % +FUNCTION {connect.with.comma.check} +{ ", " connect.check } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % connects two strings with semicolon ("; ") + % if one of them is empty, semicolon is left out + % + % call with S1 S2 connect.with.semicolon.check + % result: "S1; S2" + % +FUNCTION {connect.with.semicolon.check} +{ "; " connect.check } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % connects two strings with colon (": ") + % if one of them is empty, colon is left out + % + % call with S1 S2 connect.with.colon.check + % result: "S1: S2" + % +FUNCTION {connect.with.colon.check} +{ ": " connect.check } + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % connects two strings with space ("\ ") + % + % call with S1 S2 connect.with.space.check + % result: "S1\ S2" + % +FUNCTION {connect.with.space.check} +{ "\ " connect.check } + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % encloses string in pre- and postfix string + % call with + % prefix postfix S enclose.check + % delivers empty string if S empty + % +FUNCTION {enclose.check} +{ duplicate$ empty$ + { pop$ pop$ pop$ + "" + } + { swap$ * * } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % emphasizes top of stack + % call with + % "string" emphasize.check + % +FUNCTION {emphasize.check} +{ "\Bem{" swap$ + "}" swap$ + enclose.check +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % brackets top of stack + % call with + % "string" bracket + % +FUNCTION {bracket.check} +{ "[" swap$ + "]" swap$ + enclose.check +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % parenthesizes top of stack + % call with + % "string" parenthesize + % +FUNCTION {parenthesize.check} +{ "(" swap$ + ")" swap$ + enclose.check +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % checks whether argument is "multiresult": + % whether it contains '-', '+', or ',' characters + % used with pages to check whether pp. or p. must be used + % +FUNCTION {multi.result.check} +{ 't := + #0 'multiresult := + % + % while (not multiresult) and (length(t) > 1) do + % + { multiresult not + t text.length$ #1 > + and + } + % + % if t(1-2) = "--" or t(1) = "+" or "," + % then multiresult = 1 + % else t = t(2-last) + % + { t #1 #2 substring$ 's := + "--" s = + { #1 'multiresult := } + { t #1 #1 substring$ 's := + "+" s = + "," s = + or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + if$ + } + while$ + multiresult +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% GENERAL PURPOSE FUNCTIONS FOR SORTING % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Remove non-alphanumeric characters +% and change to lower case . + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Remove spaces from a string. Used for sorting. +% +% Call with +% string remove.spaces +% +% E.g., +% "fine old day" remove.spaces +% gives "fineoldday" . + +FUNCTION {remove.spaces} +{ % Remove spaces from string. + % Works best if string only contains alphanumeric characters and spaces. + 's := % The original string + s text.length$ 'len := % Its length (no. of characters) + "" 't := % Initialize the transformed string + #0 'pos := + % + % while (pos < len) do + % + { pos len < } + { pos #1 + 'pos := + s pos #1 substring$ 'u := + % + % u is the pos-th character in s + % If it is a space, move to next character, + % else copy character to output. + % + u " " = + 'skip$ + { t u * 't := } + if$ + } + while$ + % + % Now push the result back on the stack + t +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% BASIC OUTPUT FUNCTIONS % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % starting new block by writing what's left on the stack, + % starting a new line and adding some extra space or + % whatever is more defined in \newblock + % +FUNCTION {output.end.block} +{ write$ + newline$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % starting new block by writing what's left on the stack, + % starting a new line and adding some extra space or + % whatever is more defined in \newblock + % +FUNCTION {output.new.block} +{ output.end.block + "\newblock{}" write$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % starting new block by writing what's left on the stack, + % starting a new line and adding some extra space or + % whatever is more defined in \newblock + % +FUNCTION {output.dot.new.block} +{ add.period$ + output.new.block +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Starting new block assuming that stack is empty. +% Starting a new line and adding some extra space or +% whatever is more defined in \newblock + +FUNCTION {start.new.block} +{ newline$ + "\newblock{}" write$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % finish current entry + % by writing what's left on the stack and starting a new line + % +FUNCTION {fin.entry} +{ output.end.block + test + { "\vspace{\baselineskip}" write$ newline$ } + 'skip$ + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% FUNCTIONS FOR SORTING BY AUTHOR (OR SUBSTITUTE), YEAR, % +% TITLE % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%MACRO {sort.name.format} { "{ll{}}{ f{}}{ vv{}}{ jj{}}" } + +FUNCTION {sort.name.format} { "{ll{}}{ f{}}{ vv{}}{ jj{}}" } + +FUNCTION {cite.name.format} { "{ll}" } + +FUNCTION {cite.initials.name.format} { "{f. }{vv }{ll}{ jj}" } + +FUNCTION {author.name.format} { "{ll}{, f.}{ vv}{, jj}" } + +FUNCTION {editor.name.format} { "{f.~}{vv }{ll}{ jj}" } + +FUNCTION {index.name.format} { "{ll}{, f.}{ vv}{, jj}" } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Check whether initials must be added (1). +% Initialization. + +FUNCTION {init.initials} +{ "yyyyy" 'aut1f.old := + "yyyyy" 'aut1s.old := + #0 'cite.initials.old := +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Check whether initials must be added (2). +% Update when author, editor, and key fields are not used. +% +% Call with +% field update.no.initials + +FUNCTION {update.no.initials} +{ 'field := + field 'aut1f.old := + field 'aut1s.old := + #0 'cite.initials.old := +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Check whether initials must be added (3). + +FUNCTION {check.add.initials.aut} +{ % + % If last name is equal to previous last name + % but initials are different, then initials should + % be cited. If initials are also the same, initials + % should be cited if that is the case for the previous + % author . + % + aut1s aut1s.old = + { aut1f aut1f.old = + { cite.initials.old 'cite.initials := } + { #1 'cite.initials := + aut1f 'aut1f.old := + aut1s 'aut1s.old := + cite.initials 'cite.initials.old := + } + if$ + } + { % + % Different last name. + aut1f 'aut1f.old := + aut1s 'aut1s.old := + cite.initials 'cite.initials.old := + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Check whether initials must be added (4). +% Call with +% field check.add.initials.field + +FUNCTION {check.add.initials.field} +{ 'field := + field #1 cite.initials.name.format format.name$ 'aut1f := + field #1 cite.name.format format.name$ 'aut1s := + % + % Now do the actual work + % + check.add.initials.aut +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Check whether initials must be added (4). + +FUNCTION {check.add.initials} +{ % + % Check whether author or editor or other field acts as author. + % Initials are only relevant with author or editor. + % + firstkey empty$ not + { key empty$ not + { % + % Both key and firstkey are nonempty. + % Then, key is treated as last name of first author, + % and firstkey is treated as last name + initials of + % first author . + % + firstkey sortify remove.spaces 'aut1f := + key sortify remove.spaces 'aut1s := + check.add.initials.aut + } + { firstkey sortify remove.spaces update.no.initials } + if$ + } + { key empty$ not + { key sortify remove.spaces update.no.initials } + { % + % No key or firstkey, so find out which field + % to use as author. + % + % Check reference type: + % if result is 1 then possibly editor acts as author + % 2 then editor does not act as author + % 3 then key should have been used + % 0 then unknown reference type + ref.type #2 = + { % + % Format first author with and without initials + author empty$ + { title.sort.label update.no.initials } + { author check.add.initials.field } + if$ + } + { % + % Format first author with and without initials + author empty$ + { editor empty$ + { title.sort.label update.no.initials } + { editor check.add.initials.field } + if$ + } + { author check.add.initials.field } + if$ + } + if$ + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Compute tentative number of names that must be cited (1). +% Call with +% field tentative.cite.num.names.field + +FUNCTION {tentative.cite.num.names.field} +{ 'field := + field num.names$ 'numnames := + numnames #3 < + { % + % 1 or 2 names: always cite all of them. + numnames 'cite.num.names.full := + numnames 'cite.num.names.short := + } + { numnames #6 < + { % + % 3-5 names: cite all of them the first time, + % only the first name later times + numnames 'cite.num.names.full := + #1 'cite.num.names.short := + } + { % + % 6 or more names: cite only the first name + #1 'cite.num.names.full := + #1 'cite.num.names.short := + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Compute tentative number of names that must be cited (2). + +FUNCTION {tentative.cite.num.names} +{ % + % Check whether author or editor or other field acts as author. + % Number of names is only relevant with author or editor. + % + firstkey empty$ not + { + #1 'cite.num.names.full := + #1 'cite.num.names.short := + } + { key empty$ not + { + #1 'cite.num.names.full := + #1 'cite.num.names.short := + } + { % + % No key or firstkey, so find out which field + % to use as author. + % + % Check reference type: + % if result is 1 then possibly editor acts as author + % 2 then editor does not act as author + % 3 then key should have been used + % 0 then unknown reference type + ref.type #2 = + { % + % Format first author with and without initials + author empty$ + { + #1 'cite.num.names.full := + #1 'cite.num.names.short := + } + { author tentative.cite.num.names.field } + if$ + } + { % + % Format first author with and without initials + author empty$ + { editor empty$ + { + #1 'cite.num.names.full := + #1 'cite.num.names.short := + } + { editor tentative.cite.num.names.field } + if$ + } + { author tentative.cite.num.names.field } + if$ + } + if$ + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Initialize "number of names to be cited" before +% looping over entries. + +FUNCTION {init.cite.num.names} +{ #0 'cite.num.names.old := + #0 'numnames.old := + "yyyy" 'year.label.old := + #0 'add.to.year.old := + "" 'aut1f.old := + "" 'aut2.old := + "" 'aut3.old := + "" 'aut4.old := + "" 'aut5.old := + "" 'aut6.old := +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Update "number of names to be cited" . + +FUNCTION {update.cite.num.names} +{ cite.num.names.short 'cite.num.names.old := + numnames 'numnames.old := + year.label 'year.label.old := + add.to.year 'add.to.year.old := + aut1f 'aut1f.old := + aut2 'aut2.old := + aut3 'aut3.old := + aut4 'aut4.old := + aut5 'aut5.old := + aut6 'aut6.old := +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Format (maximally) 6 authors for comparison issues +% to determine number of authors that must be cited. +% It is assumed that the 'field' and 'numnames' variables +% have already been defined. + +FUNCTION {format.6.authors} +{ % + % First author: with initials. + % + field #1 cite.initials.name.format format.name$ 'aut1f := + % + % Second and later authors: without initials. + % + numnames #1 > + name.max #1 > + and + { % + % 2nd author + field #2 cite.name.format format.name$ 'aut2 := + % + numnames #2 > + name.max #2 > + and + { % + % 3nd author + field #3 cite.name.format format.name$ 'aut3 := + % + numnames #3 > + name.max #3 > + and + { % + % 4th author + field #4 cite.name.format format.name$ 'aut4 := + % + numnames #4 > + name.max #4 > + and + { % + % 5th author + field #5 cite.name.format format.name$ 'aut5 := + % + numnames #5 > + name.max #5 > + and + { % + % 6th author + field #6 cite.name.format format.name$ 'aut6 := + } + { % + % 5 authors: 6 is empty + % + "" 'aut6 := + } + if$ + } + { % + % 4 authors: 5-6 are empty + % + "" 'aut5 := + "" 'aut6 := + } + if$ + } + { % + % 3 authors: 4-6 are empty + % + "" 'aut4 := + "" 'aut5 := + "" 'aut6 := + } + if$ + } + { % + % 2 authors: 3-6 are empty + % + "" 'aut3 := + "" 'aut4 := + "" 'aut5 := + "" 'aut6 := + } + if$ + } + { % + % Only 1 author: 2-6 are empty + % + "" 'aut2 := + "" 'aut3 := + "" 'aut4 := + "" 'aut5 := + "" 'aut6 := + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Compute definitive number of names that must be cited +% and whether a's or b's must be added to year (1). +% a's or b's are necessary: update add.to.year variable + +FUNCTION {change.add.to.year} +{ + forward #1 = + { % + % Moving forward: this add.to.year number must be 1 higher than + % previous. + % + add.to.year.old #0 > + { add.to.year.old #1 + 'add.to.year := } + { #2 'add.to.year := } + if$ + } + { % + % Moving backward: this add.to.year number must be 1 lower than + % previous. + % + add.to.year.old #1 - 'add.to.year := + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Compute definitive number of names that must be cited +% and whether a's or b's must be added to year (1). +% Current and/or previous entry has 1 or 2 authors +% or editors acting as authors and they are published in the +% same year. The number of authors does not need to be changed +% in this case, but a's or b's may be necessary. + +FUNCTION {definitive.cite.num.names.1.or.2} +{ % + numnames numnames.old = + { % + % Same number of names: ambiguity could arise. Check whether current + % and previous have the same author(s). + % + aut1f aut1f.old = + { % + % Same first author: if the second author is also the same or if + % there is only one author, a's and b's should be added. + % + aut2 aut2.old = + numnames #2 = + and + % + numnames #1 = + or + { % + % Same author(s): add to year. + % + change.add.to.year + } + { % + % Different second author: no ambiguity possible. + % + skip$ + } + if$ + } + { % + % Different first author: no ambiguity possible. + % + skip$ + } + if$ + } + { % + % Different number of names: no ambiguity possible. + % + skip$ + } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Compute definitive number of names that must be cited +% and whether a's or b's must be added to year (2). +% Both current and previous entries have 3 or more authors +% or editors acting as authors and they are published in the +% same year. + +FUNCTION {definitive.cite.num.names.3.or.more} +{ % + % Check whether current and previous have the same first author. + % + aut1f aut1f.old = + { % + % Same first author: check second author + % + aut2 aut2.old = + { % + % Same 1st & 2nd author: check 3rd. + % + aut3 aut3.old = + { % + % Same 1st-3rd authors: check 4th. + % + numnames.old #3 = + { numnames #3 = + { % + % Both current and previous have 3 authors, which are + % the same, so both have identical author-year + % combinations, so ambiguity should be resolved by + % a's and b's. Check whether more authors were + % necessary for previous one. + % + change.add.to.year + cite.num.names.short cite.num.names.old < + { cite.num.names.old + 'cite.num.names.short := + } + 'skip$ + if$ + } + { % + % Previous has 3 authors, current has more, with same + % first 3, so at least 4 must be used for current to + % make a difference. + % + cite.num.names.short #4 < + { #4 'cite.num.names.short := } + 'skip$ + if$ + } + if$ + } + { numnames #3 = + { % + % Current has 3 authors, previous has more, with same + % first 3, so all 3 of current must be used. + % + numnames 'cite.num.names.short := + } + { % + % Same 1st-3rd author and both current and previous + % have at least 4 authors: check 4th. + % + aut4 aut4.old = + { % + % Same 1st-4th authors: check 5th. + % + numnames.old #4 = + { numnames #4 = + { % + % Both current and previous have 4 authors, + % which are the same, so both have + % identical author-year combinations, so + % ambiguity should be resolved by a's and + % b's. Check whether more authors were + % necessary for previous one. + % + change.add.to.year + cite.num.names.short cite.num.names.old < + { cite.num.names.old + 'cite.num.names.short := + } + 'skip$ + if$ + } + { % + % Previous has 4 authors, current has more, + % with same first 4, so at least 5 must be + % used for current to make a difference. + % + cite.num.names.short #5 < + { #5 'cite.num.names.short := } + 'skip$ + if$ + } + if$ + } + { numnames #4 = + { % + % Current has 4 authors, previous has more, + % with same first 4, so all 4 of current + % must be used. + % + numnames 'cite.num.names.short := + } + { % + % Same 1st-4th author and both current and + % previous have at least 5 authors: check + % 5th. + % + aut5 aut5.old = + { % + % Same 1st-5th authors: check 6th. + % + numnames.old #5 = + { numnames #5 = + { % + % Both current and previous + % have 5 authors, which are the + % same, so both have identical + % author-year combinations, so + % ambiguity should be resolved + % by a's and b's. Check whether + % more authors were necessary + % for previous one. + % + change.add.to.year + cite.num.names.short + cite.num.names.old < + { cite.num.names.old + 'cite.num.names.short := + } + 'skip$ + if$ + } + { % + % Previous has 5 authors, + % current has more, with same + % first 5, so at least 6 must + % be used for current to make + % a difference. + % + cite.num.names.short #6 < + { #6 'cite.num.names.short := } + 'skip$ + if$ + } + if$ + } + { numnames #5 = + { % + % Current has 5 authors, + % previous has more, with same + % first 5, so all 5 of current + % must be used. + % + numnames 'cite.num.names.short := + } + { % + % Same 1st-5th author and both + % current and previous have at + % least 6 authors. If one has + % 6 authors and the other has + % more or the 6th is different, + % 6 should be used (which is + % the maximum). + % + numnames #6 > + numnames.old #6 = + and + % + numnames #6 = + numnames.old #6 > + and + % + or + % + aut6 aut6.old = + not + % + or + { #6 cite.num.names.short < + { #6 + 'cite.num.names.short + := + } + 'skip$ + if$ + } + { % + % The first 6 authors are + % the same and either both + % have 6 or both have more. + % So for all practical + % purposes they have + % identical author-year + % combination, so ambiguity + % should be resolved by a's + % and b's. Check whether + % more authors were + % necessary for previous + % one. + % + change.add.to.year + cite.num.names.short + cite.num.names.old + < + { cite.num.names.old + 'cite.num.names.short + := + } + 'skip$ + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + { % + % Different 4th author: citing 4 authors is + % sufficient for this comparison. + % + cite.num.names.short #4 < + { #4 'cite.num.names.short := } + 'skip$ + if$ + } + if$ + } + if$ + } + if$ + } + { % + % Different 3rd author: citing 3 authors is sufficient for this + % comparison. + % + cite.num.names.short #3 < + { #3 'cite.num.names.short := } + 'skip$ + if$ + } + if$ + } + { % + % Different 2nd author: citing 2 authors is sufficient for this + % comparison. + % + cite.num.names.short #2 < + { #2 'cite.num.names.short := } + 'skip$ + if$ + } + if$ + } + { % + % Different first author: no ambiguity, move to next entry. + % + skip$ + } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Compute definitive number of names that must be cited +% and whether a's or b's must be added to year (3). +% Current entry has an author or editor acting as author. +% +% Call with +% field definitive.cite.num.names.field +% +% What should we do with explicit "others"? Is now ignored. +% If this causes ambiguity that could be resolved, the user +% should have added additional author names. + +FUNCTION {definitive.cite.num.names.field} +{ 'field := + field num.names$ 'numnames := + % + % Format authors + % + format.6.authors + % + % Now compare authors with authors of previous entry. + % + cite.num.names.short numnames.old > + { % + % The previous entry has less authors than already defined + % necessary to be cited. No ambiguity is possible and we're ready. + % + skip$ + } + { % + % Both previous and current entry have at least one author . + % + year.label year.label.old = + { % + % Same year label: possibly ambiguous citation. + % + % First check: current and/or previous have 1 or + % 2 authors. + % + numnames #3 < + numnames.old #3 < + or + % + { definitive.cite.num.names.1.or.2 } + { definitive.cite.num.names.3.or.more } + if$ + } + { % + % Different year label: everything's fine, + % move to next entry. + % + skip$ + } + if$ + } + if$ + % + % If during the previous process the name maximum is exceeded + % (which was not checked), correct this. NOTE: If the name + % maximum is smaller than 6, this could lead to ambiguous + % citations if, e.g., the year and the first 5 authors are + % the same, but the 6th author is different. + % + cite.num.names.short name.max > + { name.max 'cite.num.names.short := } + 'skip$ + if$ + % + % For a "full" cite, the number of names should always be at least + % as large as for a "short" cite. + % + cite.num.names.full cite.num.names.short < + { cite.num.names.short 'cite.num.names.full := } + 'skip$ + if$ + % + % Update "old" variables for next entry. + % + update.cite.num.names +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Compute definitive number of names that must be cited (4) +% and especially whether a's and b's should be added. +% This function is for the situation when author or editor +% are not used and firstkey, key, or something else is +% used to cite the referenced work. +% +% Call with +% formatted.field definitive.cite.no.names + +FUNCTION {definitive.cite.no.names} +{ % + % The formatted field that acts as author is on top + % of the stack. + 'aut1f := + "" 'aut2 := + "" 'aut3 := + "" 'aut4 := + "" 'aut5 := + "" 'aut6 := + #1 'numnames := + % + year.label year.label.old = + { % + % Same year label: possibly ambiguous citation. + % + definitive.cite.num.names.1.or.2 + } + { % + % Different year label: everything's fine, + % move to next entry. + % + skip$ + } + if$ + % + % Update "old" variables for next entry. + % + update.cite.num.names +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Compute definitive number of names that must be cited (5). + +FUNCTION {definitive.cite.num.names} +{ % + % Check whether author or editor or other field acts as author. + % Number of names is only relevant with author or editor. + % + firstkey empty$ not + { firstkey sortify remove.spaces definitive.cite.no.names } + { key empty$ not + { key sortify remove.spaces definitive.cite.no.names } + { % + % No key or firstkey, so find out which field + % to use as author. + % + % Check reference type: + % if result is 1 then possibly editor acts as author + % 2 then editor does not act as author + % 3 then key should have been used + % 0 then unknown reference type + ref.type #2 = + { % + % Format first author with and without initials + author empty$ + { title.sort.label definitive.cite.no.names } + { author definitive.cite.num.names.field } + if$ + } + { % + % Format first author with and without initials + author empty$ + { editor empty$ + { title.sort.label definitive.cite.no.names } + { editor definitive.cite.num.names.field } + if$ + } + { author definitive.cite.num.names.field } + if$ + } + if$ + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Make a tentative year sorting label (without `a' and `b'). + +FUNCTION {make.tentative.year.sort.label} +{ % + % Implicit or explicit ``no date'' is put at the front + % (the year zero; years B.C. will imply complications) + % because these are possibly old works. + % ``In press'' is put at the end. + % + year empty$ + { "0000" 'year.label := } + { year "\bibnodate" = + year "n.d." = + or + { "0000" 'year.label := } + { year "\BIP" = + { "9999" 'year.label := } + { % It is not checked whether the year field + % makes sense. + year sortify remove.spaces 'year.label := + } + if$ + } + if$ + } + if$ + % + % Push year sort label on the stack + year.label +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Give month (converted to number) and day when available. + +FUNCTION {month.number.day} +{ month empty$ + { "" } + { % +% month jan = +% { "01" } +% { month feb = +% { "02" } +% { month mar = +% { "03" } +% { month apr = +% { "04" } +% { month may = +% { "05" } +% { month jun = +% { "06" } +% { month jul = +% { "07" } +% { month aug = +% { "08" } +% { month sep = +% { "09" } +% { month oct = +% { "10" } +% { month nov = +% { "11" } +% { month dec = +% { "12" } +% { % + % Month is something + % else, e.g., "Spring" + % or jul # "/" # aug. + % Currently too + % difficult to figure + % out: user should + % trick the system. + % + month sortify + remove.spaces +% } +% if$ +% } +% if$ +% } +% if$ +% } +% if$ +% } +% if$ +% } +% if$ +% } +% if$ +% } +% if$ +% } +% if$ +% } +% if$ +% } +% if$ +% } +% if$ + % + % Add the day when available. + day empty$ + 'skip$ + { "/" * + day sortify remove.spaces * + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Make tentative sort label with names in field on top of +% the stack. +% +% Call with +% field make.name.sort.label +% where 'field' is the field that takes the author-role. + +FUNCTION {make.name.sort.label} +{ % + % Author or editor-acting-as-author available. + % => Make tentative "short cite with initials" author + % label (L1) of one of the forms + % "Last1 F1" + % "Last1 F1 Last2" + % "Last1 F1 zzzz" ("zzzz" representing et al.) + % => If more than 2 'authors': make label (L2) for 2nd-6th authors + % of one of the forms + % "Last2 Last3" + % "Last2 Last3 Last4" + % "Last2 Last3 Last4 Last5" + % "Last2 Last3 Last4 Last5 Last6" + % "Last2 Last3 Last4 Last5 Last6 zzzz" + % + % Then format year label (L3) of one of the forms: + % "0000" (missing year or explicit 'no date') + % "9999" ('in press') + % year (otherwise; don't use originalyear here yet) + % + % From earlier sorting of titles, we have title number. Convert + % to string, which gives title label (L4) . + % + % Then tentative sorting label (author.year.sort.label) is a + % concatenation of + % L1 + % " " + % L3 + % " " + % L2 + % " " + % L4 + % + % The name field is on top of the stack. + 'field := + % + % numnames is the total number of names contained in field + field num.names$ 'numnames := + % + % Format first author + field #1 sort.name.format format.name$ + % + % Format the second author if there are two, or else "zzzz" = et al. + numnames #1 = + 'skip$ + { numnames #2 = + { % + % Two authors: format second author + field #2 "{ll{}}" format.name$ 's := + s "others" = + { " zzzz" * } % Add "et al."-substitute + { " " * s * } % Add second author + if$ + } + { " zzzz" * } % 3 or more authors: add "et al."-substitute + if$ + } + if$ + " " * % Add spaces + make.tentative.year.sort.label * % Add year (L3). + " " * % Add spaces + % + % Now build up L2 if applicable + numnames #3 < + 'skip$ + { % + % Treat last author slightly differently + numnames name.max > + { name.max 'lastname := + " zzzz" % Push "et al."-substitute on stack + } + { numnames 'lastname := + "" % Push empty string on stack + } + if$ + % + % Names 2 to "last" - 1 + "" % Push empty string on stack + #2 'nameptr := + { nameptr lastname < } + { % Add name no. nameptr + field nameptr "{ll{}}" format.name$ * + " " * + nameptr #1 + 'nameptr := + } + while$ + % + % "Last" author + field lastname "{ll{}}" format.name$ 's := + s "others" = + { "zzzz" * } % Add "et al."-substitute + { s * } % Add last author + if$ + % + swap$ * % Add the previously formatted empty string or + % "et al."-substitute if there are many authors. + * % Add L2 to the earlier labels. + } + if$ + % + " " * % Add spaces + title.number conv.int.to.str * % Add sorted title number (L4). + sortify % Clean up and convert to lowercase + " " * % Add spaces + month.number.day * % Add month and day when available + 'author.year.sort.label := % Assign result to sort label. +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Called by make.tentative.sort.label to make tentative +% sort label if key or firstkey is available or author and +% editor are empty or unusable. +% +% Call with +% field make.field.year.sort.label +% where 'field' is the field that takes the author-role, +% perhaps already subjected to removing articles from the +% beginning. + +FUNCTION {make.field.year.sort.label} +{ % + % 'field' acts as first author (L1), subsequent authors + % are empty (L2). + % + % Then format year label (L3) of one of the forms: + % "0000" (missing year or explicit 'no date') + % "9999" ('in press') + % year (otherwise; don't use originalyear here yet) + % + % From earlier sorting of titles, we have title number. Convert + % to string, which gives title label (L4) . + % + % Then tentative sorting label (author.year.sort.label) is a + % concatenation of + % L1 + % " " + % L3 + % " " + % L2 + % " " + % L4 + % + % 'field' is on top of the stack. It is already supposed to be cleaned + % (i.e., sortified and space-removed), so this is already L1. + " " * % Add spaces to L1 + make.tentative.year.sort.label * % Add year (L3). + " " * % Add spaces + " " * % L2 is empty, add spaces + title.number conv.int.to.str * % Add sorted title number (L4). + sortify % Clean up and convert to lowercase + " " * % Add spaces + month.number.day * % Add month and day when available + 'author.year.sort.label := % Assign result to sort label. +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Called by make.tentative.sort.label to make tentative +% sort label if key or firstkey are not available and +% author or editor may be used + +FUNCTION {make.author.editor.sort.label} +{ author empty$ + { editor empty$ + { % + % Use what has previously been stored in title.sort.label + % as author substitute . + title.sort.label make.field.year.sort.label + } + { editor make.name.sort.label } + if$ + } + { author make.name.sort.label } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Called by make.tentative.sort.label to make tentative +% sort label if key or firstkey are not available and +% author (but not editor) may be used + +FUNCTION {make.author.sort.label} +{ author empty$ + { % + % Use what has previously been stored in title.sort.label + % as author substitute . + title.sort.label make.field.year.sort.label + } + { author make.name.sort.label } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Make tentative label for citing and sorting and do some +% preprocessing. + +FUNCTION {make.tentative.sort.label} +{ % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % General strategy: + % + % Ordinary situation: author or editor-acting-as-author + % available. + % => Make tentative "short cite with initials" author + % label (L1) of one of the forms + % "Last1 F1" + % "Last1 F1 Last2" + % "Last1 F1 zzzz" ("zzzz" representing et al.) + % => If more than 2 'authors': make label (L2) for 2nd-6th authors + % of one of the forms + % "Last2 Last3" + % "Last2 Last3 Last4" + % "Last2 Last3 Last4 Last5" + % "Last2 Last3 Last4 Last5 Last6" + % "Last2 Last3 Last4 Last5 Last6 zzzz" + % When key is available (overrules author and editor fields): + % => L1 = key, L2 = "" + % No author, editor, and key: define title or substitute as key + % and format as key. + % + % Then format year label (L3) of one of the forms: + % "0000" (missing year or explicit 'no date') + % "9999" ('in press') + % year (otherwise; don't use originalyear here yet) + % + % From earlier sorting of titles, we have title number. Convert + % to string, which gives title label (L4) . + % + % Then tentative sorting label (author.year.sort.label) is a + % concatenation of + % L1 + % " " + % L3 + % " " + % L2 + % " " + % L4 + % + % This can then be sorted, from which it can be derived + % whether initials are necessary, how many names must + % be used for short and full citations, and whether "a"'s and + % "b"'s etc. are necessary behind the year labels. + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % key and firstkey overrule author information + % + firstkey empty$ not + { key empty$ not + { % + % Both key and firstkey available: + % for sorting and checking initials, treat key as last + % name and firstkey as initials. + % + key sortify remove.spaces + " " * + firstkey sortify remove.spaces * + make.field.year.sort.label + } + { firstkey sortify remove.spaces make.field.year.sort.label } + if$ + } + { key empty$ not + { key sortify remove.spaces make.field.year.sort.label } + { % + % No key or firstkey, so find out which field + % to use as author. + % + % Check reference type: + % if result is 1 then possibly editor acts as author + % 2 then editor does not act as author + % 3 then key should have been used + % 0 then unknown reference type + ref.type + duplicate$ #1 = + { pop$ + make.author.editor.sort.label + } + { duplicate$ #2 = + { pop$ + make.author.sort.label + } + { #3 = + { "no key in " cite$ * warning$ + make.author.editor.sort.label + } + { make.author.editor.sort.label } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + % + author.year.sort.label 'sort.key$ := +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Make final sort label with names in field on top of +% the stack. +% +% Call with +% field make.definitive.name.sort.label +% +% where 'field' is the field that takes the author-role. + +FUNCTION {make.definitive.name.sort.label} +{ % + % Author or editor-acting-as-author available. + % => Make author-with-initials label (L1) of one of the forms + % "Last1 F1 Last2 F2 ... LastN FN" + % "Last1 F1 Last2 F2 ... Last6 F6 zzzz" + % (where N <= 6 is the total number of authors, and + % "zzzz" represents et al. if there are more than 6 authors) + % No author, editor, and key: define title or substitute as sort key. + % + % The name field is on top of the stack. + 'field := + % + % numnames is the total number of names contained in field + field num.names$ 'numnames := + % + % If there are more than 6 authors, only 6 are mentioned. + numnames name.max > + { name.max 'format.num.names := } + { numnames 'format.num.names := } + if$ + % Initialize stack with empty stringh + "" + % + % Cycle over authors. + #1 'nameptr := + { nameptr format.num.names < } + { % Format author and add spaces + field nameptr sort.name.format format.name$ * + " " * + nameptr #1 + 'nameptr := + } + while$ + % Format last author that must be formatted + field nameptr sort.name.format format.name$ * + % Add et al. if necessary + nameptr numnames < + { " zzzz" * } + 'skip$ + if$ + sortify % Clean up and change case + " " * % Add spaces + year.label * % Add year + " " * % Add spaces + title.number conv.int.to.str * % Add sorted title number + " " * % Add spaces + month.number.day * % Add month and day when available + 'author.year.sort.label := % Assign result to sort label. +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Called to make definitive sort label if author and +% editor are empty or unusable. +% +% Call with +% field make.definitive.field.year.sort.label +% where 'field' is the field that takes the author-role, +% perhaps already subjected to removing articles from the +% beginning. + +FUNCTION {make.definitive.field.year.sort.label} +{ % + % 'field' acts as author (L1). + % + % Then format year label (L2) of one of the forms: + % "0000" (missing year or explicit `no date') + % "9999" (`in press') + % year (otherwise; don't use originalyear here yet) + % + % From earlier sorting of titles, we have title number. Convert + % to string, which gives title label (L3) . + % + % Then tentative sorting label (author.year.sort.label) is a + % concatenation of + % L1 + % " " + % L2 + % " " + % L3 + % + % 'field' is on top of the stack. It is already supposed to be cleaned + % (i.e., sortified and space-removed), so this is already L1. + " " * % Add spaces + year.label * % Add year + " " * % Add spaces + title.number conv.int.to.str * % Add sorted title number + " " * % Add spaces + month.number.day * % Add month and day when available + 'author.year.sort.label := % Assign result to sort label. +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Called by make.final.sort.key if author or editor +% may be used. + +FUNCTION {make.definitive.author.editor.sort.label} +{ author empty$ + { editor empty$ + { % + % Use what has previously been stored in title.sort.label + % as author substitute . + title.sort.label make.definitive.field.year.sort.label + } + { editor make.definitive.name.sort.label } + if$ + } + { author make.definitive.name.sort.label } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Called by make.final.sort.key if author but not editor +% may be used. + +FUNCTION {make.definitive.author.sort.label} +{ author empty$ + { % + % Use what has previously been stored in title.sort.label + % as author substitute . + title.sort.label make.definitive.field.year.sort.label + } + { author make.definitive.name.sort.label } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Make final sort key . + +FUNCTION {make.final.sort.key} +{ % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % General strategy: + % + % Ordinary situation: author or editor-acting-as-author + % available. + % => Make author-with-initials label (L1) of one of the forms + % "Last1 F1 Last2 F2 ... LastN FN" + % "Last1 F1 Last2 F2 ... Last6 F6 zzzz" + % (where N <= 6 is the total number of authors, and + % "zzzz" represents et al. if there are more than 6 authors) + % No author, editor, and key: define title or substitute as sort key. + % + % Then format year label (L2) of one of the forms: + % "0000" (missing year or explicit `no date') + % "9999" (`in press') + % year (otherwise; don't use originalyear here yet) + % Add "/"month"/"day to the latter when available. + % + % From earlier sorting of titles, we have title number. Convert + % to string, which gives title label (L3) . + % + % Then final sorting label (author.year.sort.label) is a + % concatenation of + % L1 + % " " + % L2 + % " " + % L3 + % + % This can then be sorted. + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % + % Find out which field + % to use as author. + % + % Check reference type: + % if result is 1 then possibly editor acts as author + % 2 then editor does not act as author + % 3 then key should have been used + % 0 then unknown reference type + ref.type #2 = + { make.definitive.author.sort.label } + { make.definitive.author.editor.sort.label } + if$ + % + author.year.sort.label 'sort.key$ := +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% FUNCTIONS THAT ALLOW SORTING BY TITLE % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Remove first N characters of string if they are equal to +% teststring . +% +% Call with +% teststring N string chop.word +% +% E.g., +% "A " #2 "A fine old day" chop.word +% gives "fine old day" +% and +% "A " #2 "The fine old day" chop.word +% gives "The fine old day". + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + { s } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Remove "a ", "an ", and "the " from beginning of string. +% +% Call with +% string chop.articles + +FUNCTION {chop.articles} +{ 's := + "a " #2 + "an " #3 + "the " #4 + s + chop.word + chop.word + chop.word +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Format title and other non-name/date entries for sort key. +% +% Call with +% field format.sort.title +% +% Make sure that field is not empty, this is not checked here! + +FUNCTION {format.sort.title} +{ % + % Remove non-alphanumeric characters and change to lower case . + sortify + % + % Remove "a ", "an ", and "the " from the front . + chop.articles #1 entry.max$ substring$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Make title sorting label or substitute. + +FUNCTION {make.sort.title} +{ title empty$ + { text empty$ + { type empty$ + { howpublished empty$ + { note empty$ + { "no title, type, howpublished, or note in " cite$ * + warning$ + " " + } + { note format.sort.title } + if$ + } + { howpublished format.sort.title } + if$ + } + { type format.sort.title } + if$ + } + { text format.sort.title } + if$ + } + { title format.sort.title } + if$ + remove.spaces + 'title.sort.label := + title.sort.label 'sort.key$ := +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Make title number: rank number of sorted title . + +FUNCTION {make.title.number} +{ title.sort.label old.label = + { % + % A tie: old and new label are the same . + old.number 'title.number := + } + { % + % The usual situation: titles are different. + old.number #1 + 'title.number := + title.number 'old.number := + title.sort.label 'old.label := + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% CITATION LABELS % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Some macro strings about commas, etc. between authors + +FUNCTION {comma.between.two} { "\BCBT{}" } + +FUNCTION {comma.between.names} { ", " } + +FUNCTION {comma.before.last} { "\BCBL{}" } + +FUNCTION {and.before.last} { "\ \BBA{} " } + +FUNCTION {et.al.string.cite} { "\ \protect\BOthers{.}" } + +FUNCTION {et.al.string} { "\ \BOthers{.}" } + +FUNCTION {et.al.string.period} { "\ \BOthersPeriod{.}" } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Add author index entry when desired. +% "field" must have been defined before and must contain the +% contents of the relevant author field. +% "nameptr" must also have been defined before. It is the +% number of the author that must be formatted. (So if it is +% #2, then the 2nd author must be formatted.) +% What's on top of the stack (the formatted author) is written +% to the .bbl file. + +FUNCTION {add.name.index} +{ % + % + make.index + { "%" * write$ newline$ + "\protect\AX{" write$ + field nameptr sort.name.format format.name$ sortify write$ newline$ + "@" write$ + field nameptr index.name.format format.name$ "}%" * write$ newline$ + } + { "%" * write$ newline$ } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Citation labels when author or editor may be used. +% Field is on top of the stack. +% +% Call with +% format.num.names field make.name.cite.label + +FUNCTION {make.name.cite.label} +{ 'field := + 'format.num.names := + % + field num.names$ 'numnames := % numnames is the total number of names + % contained in field + % + % It is implicit in the APA manual that if "et al." would refer + % to exactly one author, then this author should be named + % instead of "et al." + % + format.num.names numnames #1 - = + { numnames 'format.num.names := } + 'skip$ + if$ + % + % Format first author: with or without initials + % + #1 'nameptr := + cite.initials #1 = + { field nameptr cite.initials.name.format format.name$ } + { field nameptr cite.name.format format.name$ } + if$ + add.name.index % Add index entry when desired. + % + numnames #1 = + 'skip$ + { format.num.names #1 = + { % + % First author et al. + % + et.al.string.cite write$ + } + { numnames #2 = + { % + % Given that format.num.names > 1, it is 2. + % Format second author. + % + #2 'nameptr := + field nameptr cite.name.format format.name$ 's := + % + % Check if 2nd author is explicit "others". + % If so, insert "et al." string. + % + s "others" = + { et.al.string.cite write$ } % First et al. + { % + % First \& Second + % + and.before.last write$ + s + add.name.index % Add index entry when desired. + } + if$ + } + { % + % 3 or more names, 2 or more must be cited + % + % for nameptr := 2 to format.num.names - 1 do + % + #2 'nameptr := + { nameptr format.num.names < } + { % + % Put comma between consecutive authors + % + comma.between.names write$ + % + % Format and add next author + % + field nameptr cite.name.format format.name$ + add.name.index % Add index entry when desired. + % + % Move to next author + % + nameptr #1 + 'nameptr := + } + while$ + % + % nameptr = format.num.names + % Format this author. + % + field nameptr cite.name.format format.name$ 's := + % + format.num.names numnames = + { % + % This is also the last author. Add (optional) comma. + % + comma.before.last write$ + % + % Check if this author is explicit "others". + % If so, insert "et al." string. + % + s "others" = + { et.al.string.cite write$ } + { and.before.last write$ + s + add.name.index % Add index entry when desired. + } + if$ + } + { % + % This is not the last author. + % Add comma, author name, and "et al." + % + comma.between.names write$ + s + add.name.index % Add index entry when desired. + % + comma.before.last et.al.string.cite * write$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Citation labels when no author, editor, firstkey or key +% is available. + +FUNCTION {make.title.cite.label} +{ % + % Formatting: check if formatted as article title or + % as book title, and insert this formatting. + % + is.atype + { "\APACciteatitle{" } + { "\APACcitebtitle{" } + if$ + % + title empty$ + { text empty$ + { type empty$ + { howpublished empty$ + { note empty$ + { cite$ } + { note } + if$ + } + { howpublished } + if$ + } + { type } + if$ + } + { text } + if$ + } + { title } + if$ + % + % Connect with formatting. + % + * "}" * + % + % Write to output + % + write$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Citation labels when author or editor may be used. + +FUNCTION {make.author.editor.cite.label} +{ author empty$ + { editor empty$ + { % + % No author or editor: + % Use title or other description as citation label. + % + make.title.cite.label + "}{%" write$ newline$ + make.title.cite.label + } + { cite.num.names.full editor make.name.cite.label + "}{%" write$ newline$ + cite.num.names.short editor make.name.cite.label + } + if$ + } + { cite.num.names.full author make.name.cite.label + "}{%" write$ newline$ + cite.num.names.short author make.name.cite.label + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Citation labels when author (but not editor) may be used. + +FUNCTION {make.author.cite.label} +{ author empty$ + { % + % No author: + % Use title or other description as citation label. + % + make.title.cite.label + "}{%" write$ newline$ + make.title.cite.label + } + { cite.num.names.full author make.name.cite.label + "}{%" write$ newline$ + cite.num.names.short author make.name.cite.label + } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Make "a" or "b" supplement to year label when necessary. + +FUNCTION {make.definitive.year.supplement} +{ % + % Add "a", "b", etc. when necessary. + % + add.to.year #0 = + { "" } + { "{\protect" + year empty$ + { "\BCntND" * } + { year "\bibnodate" = + { "\BCntND" * } + { year "\BIP" = + { "\BCntIP" * } + { "\BCnt" * } + if$ + } + if$ + } + if$ + "{" * add.to.year int.to.str$ * "}}" * + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Add \protect if year is \BIP or \bibnodate. + +FUNCTION {protect.year} +{ year empty$ + { "{\protect\bibnodate{}}" } + { year "\bibnodate" = + { "{\protect\bibnodate{}}" } + { year "\BIP" = + { "{\protect\BIP{}}" } + { year } + if$ + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Make year label that is used for citations in text. + +FUNCTION {make.definitive.year.label} +{ "{\protect\APACyear{" + originalyear empty$ + { protect.year } + { originalyear "\bibnodate" = % date of original publication unknown + { translator empty$ + { protect.year } + { year empty$ + { "{\protect\BTRANSL{}~\protect\bibnodate{}}" } % trans. n.d. + { "{\protect\BTRANSL{}}~" protect.year * } % trans. 1931 + if$ + } + if$ + } + { year empty$ + { originalyear "/{\protect\bibnodate{}}" * } % 1923/n.d. + { originalyear year = + { protect.year } + { originalyear "/" * protect.year * } % 1923/1961 + if$ + } + if$ + } + if$ + } + if$ + * "}}%" * write$ newline$ + % + % Add "a", "b", etc. when necessary. + % + "{\protect\APACexlab{" "}}" + make.definitive.year.supplement enclose.check +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Make citation labels: +% - Full formatted author list (or substitute if no author +% available) for first citation; +% - Short formatted author list (ditto) for subsequent +% citations; +% - Year, with originalyear when applicable, and "a" or "b" +% etc. addendum when necessary. + +FUNCTION {make.cite.labels} +{ newline$ + % + % Write a few lines for testing purposes. + % + test + { "\bibitem[]{} \fullciteA{" cite$ * "}" * write$ newline$ + "\bibitem[]{} \citeA{" cite$ * "}" * write$ newline$ + } + 'skip$ + if$ + % + "\bibitem[\protect\citeauthoryear{%" write$ newline$ + % + % When key or firstkey is available, this takes precedence. + % + firstkey empty$ not + { % + % Full cite: firstkey. + % + firstkey write$ + "}{%" write$ newline$ + % + % Short cite: if key is not empty and cite.initials is 0, + % then key, else firstkey. + % + cite.initials #0 = + key empty$ not + and + { key } + { firstkey } + if$ + write$ + } + { key empty$ not + { % + % No firstkey, but key available: + % Both full and short labels are key. + % + key write$ + "}{%" write$ newline$ + key write$ + } + { % No key or firstkey, so find out which field + % to use as author. + % + % Check reference type: + % if result is 1 then possibly editor acts as author + % 2 then editor does not act as author + % 3 then key should have been used + % 0 then unknown reference type + ref.type #2 = + { make.author.cite.label } + { make.author.editor.cite.label } + if$ + } + if$ + } + if$ + "}{%" write$ newline$ + % + % Make year label that's used for citations + % + make.definitive.year.label write$ + "}]{%" write$ newline$ + cite$ write$ + "}%" write$ newline$ + % author.year.sort.label write$ newline$ % for testing purposes + % year.label write$ newline$ % for testing purposes + % + % If the item is used in a meta-analysis, indicate this with + % a star. + % + "\APACinsertmetastar{%" write$ newline$ + cite$ write$ + "}%" write$ newline$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% FORMATTING OF REFERENCE LIST % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% "(Ed.)" or "(Eds.)" postfix. +% editor must not be empty + +FUNCTION {editor.postfix} +{ editor num.names$ #1 > + { "(\BEDS)" } + { "(\BED)" } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% "(Ed. \& Trans.)" postfix +% editor must not be empty + +FUNCTION {editor.trans.postfix} +{ editor num.names$ #1 > + { "(\BEDS{} \BAnd{} \BTRANSS)" } + { "(\BED{} \BAnd{} \BTRANS)" } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % "(Trans.)" postfix + % translator must not be empty + % +FUNCTION {trans.postfix} +{ translator num.names$ #1 > + { "(\BTRANSS)" } + { "(\BTRANS)" } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Format authors (or editors acting as authors) for +% reference list. +% +% Call with +% dot field format.author.names +% where field is the field (string) that contains the authors +% (or editors acting as authors) that must be formatted and +% dot is 1 or 0 indicating whether or not a period must end +% the formatting. + +FUNCTION {format.author.names} +{ 'field := + 'dot := + % + field num.names$ 'numnames := % numnames is the total number of names + % contained in field + numnames 'format.num.names := % Format all authors + format.num.names name.max > % Unless this exceeds the maximum of 6. + { dot + { name.max 'format.num.names := } % Format 6 authors + { cite.num.names.full 'format.num.names := } % Format 1 editor + if$ + } + 'skip$ + if$ + % + % It is kind of explicit in the APA manual that if "et al." would + % refer to exactly one author (the 7th), then this author should + % still be replaced by "et al.", unlike with citations. + % So format.num.names is not adapted. + % + % Format first author + % + #1 'nameptr := + field nameptr author.name.format format.name$ + % + % Add period if required and if this is the only author. + % + numnames #1 = + dot + and + { add.period$ } + 'skip$ + if$ + add.name.index % Add index entry when desired. + % + numnames #1 = + 'skip$ + { format.num.names #1 = + { % + % First author et al. + % + comma.between.two + % + % Add period if required. + % + dot + { et.al.string.period * } + { et.al.string * } + if$ + write$ + } + { numnames #2 = + { % + % Given that format.num.names > 1, it is 2. + % + comma.between.two write$ + % + % Format second author. + % + #2 'nameptr := + field nameptr author.name.format format.name$ 's := + % + % Check if 2nd author is explicit "others". + % If so, insert "et al." string. + % + s "others" = + { % + % First et al. + % Add period if required. + % + dot + { et.al.string.period } + { et.al.string } + if$ + write$ + } + { % + % First \& Second + % + and.before.last write$ + % + % Add period if required. + % + dot + { s add.period$ } + { s } + if$ + add.name.index % Add index entry when desired. + } + if$ + } + { % + % 3 or more names, 2 or more must be cited + % + % for nameptr := 2 to format.num.names - 1 do + % + #2 'nameptr := + { nameptr format.num.names < } + { % + % Put comma between consecutive authors + % + comma.between.names write$ + % + % Format and add next author + % + field nameptr author.name.format format.name$ + add.name.index % Add index entry when desired. + % + % Move to next author + % + nameptr #1 + 'nameptr := + } + while$ + % + % nameptr = format.num.names + % Format this author. + % + field nameptr author.name.format format.name$ 's := + % + format.num.names numnames = + { % + % This is also the last author. Add (optional) comma. + % + comma.before.last write$ + % + % Check if this author is explicit "others". + % If so, insert "et al." string. + % + s "others" = + { % + % Add period if required. + % + dot + { et.al.string.period } + { et.al.string } + if$ + write$ + } + { and.before.last write$ + % + % Add period if required. + % + dot + { s add.period$ } + { s } + if$ + add.name.index % Add index entry when desired. + } + if$ + } + { % + % This is not the last author. + % Add comma, author name, and "et al." + % + comma.between.names write$ + s + add.name.index % Add index entry when desired. + % + comma.before.last + % + % Add period if required. + % + dot + { et.al.string.period * } + { et.al.string * } + if$ + write$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Format authors in reference list, where it is given that +% the author field is not empty. + +FUNCTION {format.authors} +{ #1 author format.author.names + "%" write$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Format editors in reference list in case editors act as +% authors (such as reference to entire edited book) +% +% Letheridge, S., \& Cannon, C. R. (Eds.). +% or +% Letheridge, S. (Ed.). (if only 1 editor) +% +% editor must not be empty + +FUNCTION {format.editors.as.authors} +{ #0 editor format.author.names + "\ " editor.postfix * add.period$ write$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Format editors in reference list in case editors are also +% translators and act as authors (such as reference to entire +% edited book of translated articles) +% +% Letheridge, S., \& Cannon, C. R. (Eds. and Trans.). +% or +% Letheridge, S. (Ed. and Trans.). (if only 1 editor) +% +% editor must not be empty + +FUNCTION {format.ed.trans.as.authors} +{ #0 editor format.author.names + "\ " editor.trans.postfix * add.period$ write$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Format a list of names with the initials before the +% last names (i.e., names in the editor position), +% commas between names (not between 2), +% and ampersand (\&) before last name. +% These names are not put in the author index. +% +% Call with +% field format.editor.names + +FUNCTION {format.editor.names} +{ 'field := + % + field num.names$ 'numnames := % numnames is the total number of names + % contained in field + numnames 'format.num.names := % Format all authors + format.num.names name.max > % Unless this exceeds the maximum of 6. + { #1 'format.num.names := } % Then it becomes 1 (First et al.) + 'skip$ + if$ + % + % Format first editor + % + field #1 editor.name.format format.name$ + % + numnames #1 = + 'skip$ + { format.num.names #1 = + { et.al.string * } % First editor et al., no comma. + { numnames #2 = + { % + % Given that format.num.names > 1, it is 2. + % No comma. Format second editor. + % + field #2 editor.name.format format.name$ 's := + % + % Check if 2nd editor is explicit "others". + % If so, insert "et al." string. + % + s "others" = + { et.al.string * } % First et al. + { and.before.last * s * } % First \& Second + if$ + } + { % + % 3 or more names, 2 or more must be cited + % + % for nameptr := 2 to format.num.names - 1 do + % + #2 'nameptr := + { nameptr format.num.names < } + { % + % Put comma between consecutive editors + % + comma.between.names * + % + % Format and add next editor + % + field nameptr editor.name.format format.name$ * + % + % Move to next editor + % + nameptr #1 + 'nameptr := + } + while$ + % + % nameptr = format.num.names + % Format this editor. + % + field nameptr editor.name.format format.name$ 's := + % + format.num.names numnames = + { % + % This is also the last editor. Add (optional) comma. + % + comma.before.last * + % + % Check if this editor is explicit "others". + % If so, insert "et al." string. + % + s "others" = + { et.al.string * } + { and.before.last * s * } + if$ + } + { % + % This is not the last editor. + % Add comma, editor name, and "et al." + % + comma.between.names * s * + comma.before.last * et.al.string * + } + if$ + } + if$ + } + if$ + } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format editors in case editors do not act as authors + % (such as reference to chapter in edited book) + % + % L. W. Poon (Ed.) (1 editor) + % or + % A. S. Gurman \& D. P. Kniskern (Eds.) (2 editors) + % or + % L. Poon, A. Jones, \& D. P. Smith (Eds.) (>2 editors) + % + % editor must not be empty + % +FUNCTION {format.editors.in.line} +{ editor format.editor.names + editor.postfix connect.with.space.check +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format editors in case editors are also translators + % and do not act as authors + % (such as reference to chapter in edited book + % of translated articles) + % + % L. W. Poon (Ed. and Trans.) (1 editor) + % or + % A. S. Gurman \& D. P. Kniskern (Eds. and Trans.) (2 editors) + % or + % L. Poon, A. Jones, \& D. P. Smith (Eds. and Trans.) (>2 editors) + % + % editor must not be empty + % +FUNCTION {format.editors.trans.in.line} +{ editor format.editor.names + editor.trans.postfix connect.with.space.check +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format translators in case translators act as editors + % (such as reference to chapter in translated book) + % + % L. W. Poon (Trans.) (1 translator) + % or + % A. S. Gurman \& D. P. Kniskern (Trans.) (2 translators) + % or + % L. Poon, A. Jones, \& D. P. Smith (Trans.) (>2 translators) + % + % translator must not be empty + % +FUNCTION {format.translators.in.line} +{ translator format.editor.names + trans.postfix connect.with.space.check +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format translators in case translator does not act as editor + % (such as reference to translated book) + % + % L. Solotaroff, Trans. + % +FUNCTION {format.translators.in.paren.check} +{ translator empty$ + { "" } + { translator format.editor.names + translator num.names$ #1 > + { ", \BTRANSS{}" * } + { ", \BTRANS{}" * } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format editors and translators in case neither act as editor + % (such as reference to edited or translated book with a + % a single author) + % + % L. Solotaroff, Ed. + % L. Solotaroff, Ed. \& Trans. + % L. Solotaroff, Trans. + % L. Solotaroff, Ed. \& S. Prokofieff, Trans. + % +FUNCTION {format.editors.translators.in.paren.check} +{ editor empty$ + { translator empty$ + { "" } + { translator format.editor.names + translator num.names$ #1 > + { ", \BTRANSS{}" * } + { ", \BTRANS{}" * } + if$ + } + if$ + } + { editor format.editor.names + editor num.names$ #1 > + { ", \BEDS{}" * } + { ", \BED{}" * } + if$ + translator empty$ + 'skip$ + { editor translator = + { editor num.names$ #1 > + { " \BAnd{} \BTRANSS" * } + { " \BAnd{} \BTRANS" * } + if$ + } + { " \BAnd{} " * + translator format.editor.names * + translator num.names$ #1 > + { ", \BTRANSS{}" * } + { ", \BTRANS{}" * } + if$ + } + if$ + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % translator of article + % +FUNCTION {format.atrans.check} +{ format.translators.in.paren.check parenthesize.check } + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format "In editor (Ed.), " + % +FUNCTION {format.in.editors} +{ "\BIn{} " + editor empty$ + 'skip$ + { format.editors.in.line * ", " * } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format "In translator (Trans.)," + % +FUNCTION {format.in.trans} +{ "\BIn{} " + translator empty$ + 'skip$ + { format.translators.in.line * ", " * } + if$ +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format "In editor (Ed. and Trans.)" + % or "In editor (Ed.)" if editor not equal to translator + % +FUNCTION {format.in.editors.trans} +{ "\BIn{} " + editor empty$ + { translator empty$ + 'skip$ + { format.translators.in.line * ", " * } + if$ + } + { translator empty$ + { format.editors.in.line * } + { editor translator = + { format.editors.trans.in.line * } + { format.editors.in.line * } + if$ + } + if$ + ", " * + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% DATE % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Formats year (+ extra label) between parentheses (which +% may be redefined by \BBOP and \BBCP). +% Extra label can be used for +% Bentler, P. M. (1983a)
+% Bentler, P. M. (1983b)
+ +FUNCTION {format.year.check} +{ "\BBOP{}" "\BBCP{}" % Opening and closing parentheses + year empty$ + { "\bibnodate{}" } + { year } + if$ + % + % Add "a", "b", etc. when necessary. + % + make.definitive.year.supplement * + % + % Combine everything + % + enclose.check +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Formats year (+ extra label) + month + day between +% parentheses (which may be redefined by \BBOP and \BBCP). +% Extra label can be used for +% Bentler, P. M. (1983a, June 7)
+% Bentler, P. M. (1983b, April 4)
+ +FUNCTION {format.year.month.day.check} +{ "\BBOP{}" "\BBCP{}" % Opening and closing parentheses + year empty$ + { "\bibnodate{}" } + { year } + if$ + % + % Add "a", "b", etc. when necessary. + % + make.definitive.year.supplement * + % + % Add month and day when present. + % + month connect.with.comma.check + day connect.with.space.check + % + % Combine everything + % + enclose.check +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% TITLE FORMATTING % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title of article in journal or book + % no finishing period + % field must be on top of stack + % (so englishtitle can be handled also) + % +FUNCTION {format.atitle.no.dot} +{ "\BBOQ{}" swap$ + "\BBCQ{}" swap$ + duplicate$ empty$ + 'skip$ + { "t" change.case$ } + if$ + enclose.check +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title of article in journal or book + % with finishing period + % field must be on top of stack + % (so englishtitle can be handled also) + % +FUNCTION {format.atitle.dot} +{ "\BBOQ{}" swap$ + "\BBCQ{} " swap$ + duplicate$ empty$ + 'skip$ + { "t" change.case$ add.period$ } + if$ + enclose.check +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title of article in journal or book + % field must be on top of stack + % second element on stack must be connected: + % if that is empty, then atitle.dot + % else atitle.no.dot, connect, and add period + % +FUNCTION {format.atitle.connect} +{ swap$ + duplicate$ empty$ + { pop$ + format.atitle.dot + } + { swap$ + format.atitle.no.dot + swap$ connect.with.space.check + add.period$ + } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title of book or so, no period + % + % call with + % field format.btitle.no.dot + % +FUNCTION {format.btitle.no.dot} +{ duplicate$ empty$ + 'skip$ + { "t" change.case$ emphasize.check } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title of book or so, with period + % (maybe emphasize and add.period$ should be reversed) + % call with + % field format.btitle.dot + % +FUNCTION {format.btitle.dot} +{ duplicate$ empty$ + 'skip$ + { "t" change.case$ add.period$ emphasize.check } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title of book and similar + % field must be on top of stack + % second element on stack must be connected: + % if that is empty, then btitle.dot + % else btitle.no.dot, connect, and add period + % +FUNCTION {format.btitle.connect} +{ swap$ + duplicate$ empty$ + { pop$ + format.btitle.dot + } + { swap$ + format.btitle.no.dot + swap$ connect.with.space.check + add.period$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title of book and similar + % field must be on top of stack + % second element on stack must be connected + % +FUNCTION {format.btitle.connect.no.dot} +{ swap$ + duplicate$ empty$ + { pop$ + format.btitle.no.dot + } + { swap$ + format.btitle.no.dot + swap$ connect.with.space.check + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format englishtitle (of nonenglish article, etc.) + % +FUNCTION {format.etitle.check} +{ englishtitle empty$ + { "" } + { englishtitle "t" change.case$ bracket.check } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format type (of article, etc.) + % +FUNCTION {format.atype.check} +{ type bracket.check } + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format title and englishtitle (of article, etc.) + % +FUNCTION {format.atitle.check} +{ format.etitle.check + title format.atitle.connect +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format title, englishtitle, and type + % (of article, etc.) + % +FUNCTION {format.atitle.type.check} +{ format.etitle.check + format.atype.check connect.with.space.check + title format.atitle.connect +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format title, englishtitle, + % and translator (of article, etc.) + % +FUNCTION {format.atitle.trans.check} +{ format.etitle.check + format.atrans.check connect.with.space.check + title format.atitle.connect +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format title, englishtitle, type, + % and translator (of article, etc.) + % +FUNCTION {format.atitle.type.trans.check} +{ format.etitle.check + format.atype.check connect.with.space.check + format.atrans.check connect.with.space.check + title format.atitle.connect +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format journal, volume, number and pages + % call with + % formatted.pages format.journal.vol.num.pages.check + % +FUNCTION { format.journal.vol.num.pages.check } +{ "journal" journal warning.if.empty + journal emphasize.check + volume emphasize.check connect.with.comma.check + number parenthesize.check "" connect.check + swap$ connect.with.comma.check +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % volume of book, checks whether + % "Volume" or "Volumes" + % + % call with + % field format.bvolume.check + % +FUNCTION {format.bvolume.check} +{ duplicate$ empty$ + 'skip$ + { duplicate$ multi.result.check + { "\BVOLS" swap$ tie.or.space.connect } + { "\BVOL" swap$ tie.or.space.connect } + if$ + } + if$ +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % edition of book, must not be empty + % call with + % field format.edition.check + % +FUNCTION {format.edition.check} +{ duplicate$ empty$ + 'skip$ + { "\BEd" connect.with.space.check } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % volume and edition of book + % +FUNCTION {format.bvol.edition.check} +{ edition format.edition.check + volume format.bvolume.check + connect.with.comma.check +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % volume and edition of book + % +FUNCTION {format.bvol.edition} +{ format.bvol.edition.check + parenthesize.check +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % volume and edition and translator of translated book + % +FUNCTION {format.bvol.edition.trans} +{ format.bvol.edition.check + format.translators.in.paren.check connect.with.semicolon.check + parenthesize.check +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % volume, edition, editor, and translator of (translated) book + % +FUNCTION {format.bvol.edition.editor.trans} +{ format.bvol.edition.check + format.editors.translators.in.paren.check connect.with.semicolon.check + parenthesize.check +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % formats pages by first checking if 1 or more pages + % and prefixing pages with "p." or "pp." (these strings + % are given in the commands \BPG and \BPGS, respectively), + % whichever is applicable, and do a tie or space connect + % + % call with + % field format.bpages.check + % +FUNCTION {format.bpages.check} +{ duplicate$ empty$ + 'skip$ + { duplicate$ multi.result.check + { "\BPGS" swap$ tie.or.space.connect } + { "\BPG" swap$ tie.or.space.connect } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % formats chapters by first checking if 1 or more chapters + % and prefixing pages with "chap." (this string + % is given in the commands \BCHAP and \BCHAPS, respectively), + % whichever is applicable, and do a tie or space connect + % + % call with + % field format.bchapter.check + % +FUNCTION {format.bchapter.check} +{ duplicate$ empty$ + 'skip$ + { duplicate$ multi.result.check + { "\BCHAPS" swap$ tie.or.space.connect } + { "\BCHAP" swap$ tie.or.space.connect } + if$ + } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % volume, edition, and pages or chapter of article in book etc. + % +FUNCTION {format.bvol.edition.pages} +{ format.bvol.edition.check + pages empty$ + { chapter format.bchapter.check connect.with.comma.check } + { pages format.bpages.check connect.with.comma.check } + if$ + parenthesize.check +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title, volume, edition of book + % +FUNCTION {format.btitle.vol.edition} +{ format.etitle.check + format.bvol.edition connect.with.space.check + title format.btitle.connect.no.dot +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title, volume, edition, and translator of book + % +FUNCTION {format.btitle.vol.edition.trans} +{ format.etitle.check + format.bvol.edition.trans connect.with.space.check + title format.btitle.connect.no.dot +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title, volume, edition, editor, and translator of book + % +FUNCTION {format.btitle.vol.edition.editor.trans} +{ format.etitle.check + format.bvol.edition.editor.trans connect.with.space.check + title format.btitle.connect.no.dot +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format address and publisher of book etc. + % + % New York: Wiley + % or + % Wiley (if address empty) + % or + % New York (if publisher empty) + % +FUNCTION {format.address.publisher} +{ address publisher connect.with.colon.check } + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format address and publisher of book etc. + % + % New York: Wiley + % or + % Wiley (if address empty) + % or + % New York (if publisher empty) + % + % warning if no publisher or no address + % +FUNCTION {format.address.publisher.check} +{ "publisher" publisher warning.if.empty + "address" address warning.if.empty + format.address.publisher +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format number as in reports: No. 2017 + % call with + % field format.rnumber.check + % +FUNCTION {format.rnumber.check} +{ duplicate$ empty$ + 'skip$ + { duplicate$ multi.result.check + { "\BNUMS" swap$ tie.or.space.connect } + { "\BNUM" swap$ tie.or.space.connect } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format type and number of a standalone item + % call with + % format.type.number + % +FUNCTION { format.type.number } +{ number empty$ + { type bracket.check } + { type + number format.rnumber.check connect.with.space.check + parenthesize.check + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format howpublished if not empty, + % for various entry types + % call with + % format.howpublished + % +FUNCTION {format.howpublished} +{ howpublished empty$ + 'skip$ + { output.dot.new.block + howpublished + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format howpublished if not empty, + % for misc + % call with + % output.howpublished + % +FUNCTION {output.howpublished} +{ howpublished empty$ + 'skip$ + { howpublished + output.dot.new.block + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% NOTE FORMATTING FUNCTIONS % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format optional note + % +FUNCTION {format.note} +{ note parenthesize.check } + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format original year of publication and note + % (reprint or translation) + % +FUNCTION {format.orig.year.note} +{ originalyear empty$ + { note parenthesize.check } + { originalyear "\bibnodate" = + { note parenthesize.check } + { "\BOWP{} " originalyear * % original work published + note connect.with.semicolon.check + parenthesize.check + } + if$ + } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format original journal of publication and note + % (reprint or translation) + % +FUNCTION {format.orig.journal.note} +{ "\BREPR{} " % reprinted from + originaljournal emphasize.check * + originalyear connect.with.comma.check + originalvolume emphasize.check connect.with.comma.check + originalnumber bracket.check "" connect.check + originalpages connect.with.comma.check + note connect.with.semicolon.check + parenthesize.check +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format original book of publication and note + % (reprint or translation) + % +FUNCTION {format.orig.book.note} +{ "\BREPR{}" % Reprinted from + % + % title of the book the work was originally published in + % + originalbooktitle format.btitle.no.dot connect.with.space.check + % + % volume, edition, pages + % + originaledition format.edition.check connect.with.comma.check + originalvolume format.bvolume.check connect.with.comma.check + originalpages format.bpages.check connect.with.comma.check + % + % editor of the original book + % + originaleditor empty$ + 'skip$ + { "by " originaleditor format.editor.names * + originaleditor num.names$ #1 > + { ", \BEDS{}" * } + { ", \BED{}" * } + if$ + connect.with.comma.check + } + if$ + % + % year of the original publication + % + originalyear connect.with.comma.check + % + originaladdress originalpublisher connect.with.colon.check + connect.with.comma.check + note connect.with.semicolon.check + parenthesize.check +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format information about original publication of reprint + % and format optional note + % +FUNCTION {format.orig.note} +{ originaljournal empty$ + { originalbooktitle empty$ + { note empty$ + { originalyear empty$ + { add.period$ } + { originalyear "\bibnodate" = + { add.period$ } + { output.dot.new.block + format.orig.year.note + } + if$ + } + if$ + } + { output.dot.new.block + format.orig.year.note + } + if$ + } + { output.dot.new.block + format.orig.book.note + } + if$ + } + { output.dot.new.block + format.orig.journal.note + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% PERIODICALS % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % article in periodical: journal, magazine, newspaper, ... + % + % call with + % formatted.pages formatted.date periodical + % +FUNCTION {periodical} +{ % + % author or editor, year, title, englishtitle, type + % + author empty$ + % + % no author: possibly special issue with editors as authors + % (APA manual, ex. 11, p. 121) + % + { editor empty$ + % + % no author or editor: title serves as author. + % title formatted as article title (APA manual not consistent in this, + % compare statement on p. 119: ``treat as book title'' and + % example 8, p. 121: no underlining => article title) + % + { format.atitle.type.trans.check output.new.block + % + % now formatted date on top of stack + % + output.dot.new.block + } + % + % format editor and year, and check if year is present + % format article title and check if title or type present + % + { format.editors.as.authors start.new.block + % + % now formatted date on top of stack + % + output.dot.new.block + format.atitle.type.trans.check output.new.block + } + if$ + } + % + % format author and year, and check if year is present + % format article title and check if title or type present + % + { format.authors start.new.block + % + % now formatted date on top of stack + % + output.dot.new.block + format.atitle.type.trans.check output.new.block + } + if$ + % + % format journal name, volume and issue number, and pages + % and check if journal not empty + % + format.journal.vol.num.pages.check + % + % if not empty, insert howpublished. + % (used if article is retrieved from the internet) + % + format.howpublished + % + % possible reprint and optional note + % + format.orig.note + fin.entry +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % journal article + % +FUNCTION {article} +{ pages format.year.month.day.check periodical } + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % magazine article + % +FUNCTION {magazine} +{ pages format.year.month.day.check periodical } + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % newspaper article + % +FUNCTION {newspaper} +{ pages format.bpages.check format.year.month.day.check periodical } + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % (translation of) entire book + % +FUNCTION {book} +{ % + % author or editor, + % year, title, englishtitle, translator + % + author empty$ + % + % no author: possibly edited book with editors as authors + % + { editor empty$ + % + % no author or editor: title serves as author. + % title formatted as book title + % + { format.btitle.vol.edition.trans + format.type.number connect.with.space.check + output.dot.new.block + format.year.check output.dot.new.block + } + % + % format editor and year, and check if year is present + % format booktitle, volume, and edition and check if title present + % + { translator empty$ + { format.editors.as.authors start.new.block + format.year.check output.dot.new.block + format.btitle.vol.edition + } + % + % format translator correctly + % + { translator editor = + not + { format.editors.as.authors start.new.block + format.year.check output.dot.new.block + format.btitle.vol.edition.trans + } + { format.ed.trans.as.authors start.new.block + format.year.check output.dot.new.block + format.btitle.vol.edition + } + if$ + } + if$ + format.type.number connect.with.space.check + output.dot.new.block + } + if$ + } + % + % format author and year, and check if year is present + % format booktitle, volume, and edition and check if title present + % + { format.authors start.new.block + format.year.check output.dot.new.block + format.btitle.vol.edition.editor.trans + format.type.number connect.with.space.check + output.dot.new.block + } + if$ + % + % format address and publisher, check if address and publisher present + % + format.address.publisher.check + % + % format original publication (of reprint/translation) + % and optional note + % + format.orig.note + fin.entry +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % (translated) article or chapter in edited book + % +FUNCTION {incollection} +{ author empty$ + % + % no author: title serves as author. + % title formatted as article title (APA manual not consistent in this, + % compare statement on p. 119: ``treat as book title'' and + % example 8, p. 121: no underlining => article title) + % + { editor.ne.trans + { format.atitle.type.trans.check } + { format.atitle.type.check } + if$ + output.new.block + % + % format month and day as well when available + % esp. for ``collections'' that are not books, + % such as parts of internet documents + % + format.year.month.day.check output.dot.new.block + } + % + % format author and year, and check if year is present + % format article title and check if title or type present + % + { format.authors start.new.block + format.year.month.day.check output.dot.new.block + editor.ne.trans + { format.atitle.type.trans.check } + { format.atitle.type.check } + if$ + output.new.block + } + if$ + % + % format "In " editor " (Ed. \& Trans.), " + % booktitle, volume, edition, pages + % + format.in.editors.trans + format.bvol.edition.pages + booktitle format.btitle.connect * output.dot.new.block + % + % format address and publisher, check if publisher present + % + format.address.publisher.check + % + % if not empty, insert howpublished. + % (used if article is retrieved from the internet) + % + format.howpublished + % + % format original publication (of reprint/translation) + % and optional note + % + format.orig.note + fin.entry +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% REPORTS % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % technical report number + % +FUNCTION {format.tr.number} +{ type empty$ + { "\BTR{}" } + { type "\bibnotype" = + { "" } + { type } + if$ + } + if$ + number format.rnumber.check connect.with.space.check +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title, volume, edition, report number + % +FUNCTION {format.tr.title.number} +{ format.etitle.check + format.bvol.edition.check + format.tr.number connect.with.semicolon.check + parenthesize.check connect.with.space.check + title format.btitle.connect +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format address and institution of reports etc. + % + % Washington, DC: National Institute of Education + % or + % National Institute of Education (if address empty) + % + % warning if no institution + % +FUNCTION {format.address.institution.check} +{ "institution" institution warning.if.empty + "address" address warning.if.empty + address institution connect.with.colon.check +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % reports + % +FUNCTION {techreport} +{ author empty$ + % + % no author: possibly edited report with editors as authors + % + { editor empty$ + % + % no author or editor: title serves as author. + % title formatted as book title + % + { format.tr.title.number output.dot.new.block + format.year.month.day.check output.dot.new.block + } + % + % format editor and year, and check if year is present + % format report title and check if title present + % format volume, edition, type, and number + % + { format.editors.as.authors start.new.block + format.year.month.day.check output.dot.new.block + format.tr.title.number output.dot.new.block + } + if$ + } + % + % format author and year, and check if year is present + % format report title and check if title present + % format volume, edition, type, and number + % + { format.authors start.new.block + format.year.month.day.check output.dot.new.block + format.tr.title.number output.dot.new.block + } + if$ + % + % format address and institution, check if institution present + % + format.address.institution.check + % + % if not empty, insert howpublished. + % (used if report is retrieved from the internet) + % + format.howpublished + % + % format optional note + % + note empty$ + { add.period$ } + { output.dot.new.block + format.note + } + if$ + fin.entry +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % (translated) article or chapter in report + % +FUNCTION {intechreport} +{ author empty$ + % + % no author: title serves as author. + % title formatted as article title (APA manual not consistent in this, + % compare statement on p. 119: ``treat as book title'' and + % example 8, p. 121: no underlining => article title) + % + { editor.ne.trans + { format.atitle.trans.check } + { format.atitle.check } + if$ + output.new.block + format.year.month.day.check output.dot.new.block + } + % + % format author and year, and check if year is present + % format article title and check if title or type present + % + { format.authors start.new.block + format.year.month.day.check output.dot.new.block + editor.ne.trans + { format.atitle.trans.check } + { format.atitle.check } + if$ + output.new.block + } + if$ + % + % format "In " editor " (Ed. \& Trans.), " + % booktitle, volume, edition, pages + % + format.in.editors.trans + % + % volume, edition, report type and number, pages + % + format.bvol.edition.check + format.tr.number connect.with.semicolon.check + pages format.bpages.check connect.with.comma.check + parenthesize.check + % + booktitle format.btitle.connect * + output.dot.new.block + % + % format address and publisher, check if publisher present + % + format.address.institution.check + % + % if not empty, insert howpublished. + % (used if report is retrieved from the internet) + % + format.howpublished + % + % format original publication (of reprint/translation) + % and optional note + % + format.orig.note + fin.entry +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % papers presented at conferences etc. + % +FUNCTION {lecture} +{ author empty$ + { "author" author warning.if.empty } + { format.authors start.new.block } + if$ + % + % format year, month, and day, and check if year present + % format title and check if title present + % format howpublished and check if howpublished present + % + format.year.month.day.check output.dot.new.block + symposium empty$ + { format.etitle.check + title format.btitle.connect output.new.block + howpublished empty$ + { "symposium and howpublished missing in " * cite$ warning$ } + { howpublished } + if$ + } + { format.atitle.type.check output.new.block + "\BIn{} " + chair empty$ + 'skip$ + { chair format.editor.names + chair num.names$ #1 > + { "(\BCHAIRS)" } + { "(\BCHAIR)" } + if$ + connect.with.space.check * ", " * + } + if$ + symposium format.btitle.no.dot * + format.howpublished + } + if$ + % + % format optional note + % + note empty$ + { add.period$ } + { output.dot.new.block + format.note + } + if$ + fin.entry +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% THESES % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % default thesis type is on top of stack + % now, if type field is empty, this default is used + % else default is removed and replaced by value of + % type field + % +FUNCTION {format.type.school} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ + school connect.with.comma.check +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % phd theses, etc. + % call with + % "default.published.thesis" "default.unpublished.thesis" thesis + % +FUNCTION {thesis} +{ author empty$ + { "author" author warning.if.empty } + { format.authors start.new.block } + if$ + % + % format year and check if year present + % + format.year.check output.dot.new.block + % + % format title and check if title present + % journal empty => unpublished PhD thesis + % journal not empty => published (e.g., Dissertation Abstracts Int.) + % + journal empty$ + { format.btitle.vol.edition output.dot.new.block + % + % pop default unpublished thesis, top is default published thesis + % + swap$ pop$ + format.type.school + address connect.with.comma.check + } + % + % pop default published thesis, top is default unpublished thesis + % + { pop$ + type empty$ + school empty$ + originalyear empty$ + and + and + { pop$ + "" + } + { format.type.school + originalyear connect.with.comma.check + parenthesize.check + } + if$ + format.etitle.check + swap$ connect.with.space.check + "title" title warning.if.empty + title format.atitle.connect output.new.block + pages format.journal.vol.num.pages.check + } + if$ + % + % if not empty, insert howpublished. + % (used if thesis is retrieved from the internet) + % + format.howpublished + % + % format optional note + % + note empty$ + { add.period$ } + { output.dot.new.block + format.note + } + if$ + fin.entry +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % phd theses, etc. + % +FUNCTION {phdthesis} +{ "\BPhD" "\BUPhD" thesis } + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % master's theses, etc. + % +FUNCTION {mastersthesis} +{ "\BMTh" "\BUMTh" thesis } + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% OTHER % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title of something (used in unpublished and misc) + % english translation of title + % type and number of something + % +FUNCTION {format.btitle.type.num} +{ format.etitle.check + format.type.number + connect.with.space.check + title empty$ + { add.period$ } + { title format.btitle.connect } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title of message or software-related thing (used in misc) + % english translation of title + % type and number of something + % +FUNCTION {format.mtitle.type.num} +{ format.etitle.check + type "\bibmessage" = + { number empty$ + 'skip$ + { type number connect.with.space.check + bracket.check + connect.with.space.check + } + if$ + } + { format.type.number + connect.with.space.check + } + if$ + title empty$ + { add.period$ } + { title format.atitle.connect } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title, english translation of title, + % type and number of something (used in misc) + % +FUNCTION {output.misctitle.type.num} +{ type empty$ + { format.btitle.type.num } + { type "\bibmessage" = + type "\bibcomputerprogram" = + type "\bibcomputerprogrammanual" = + type "\bibcomputerprogramandmanual" = + type "\bibcomputersoftware" = + type "\bibcomputersoftwaremanual" = + type "\bibcomputersoftwareandmanual" = + type "\bibprogramminglanguage" = + or + or + or + or + or + or + or + { format.mtitle.type.num } + { format.btitle.type.num } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % unpublished manuscripts, etc. + % +FUNCTION {unpublished} +{ check.relevant.fields + author empty$ + % + % no author: possibly edited book with editors as authors + % + { editor empty$ + % + % no author or editor: title serves as author. + % title formatted as book title + % + { format.btitle.type.num output.dot.new.block + format.year.month.day.check + } + % + % format editor and year, and check if year is present + % format book title, volume, and edition and check if title present + % + { format.editors.as.authors start.new.block + format.year.month.day.check output.dot.new.block + format.btitle.type.num + } + if$ + } + % + % format author and year, and check if year is present + % format book title, volume, and edition + % and check if title or type present + % + { format.authors start.new.block + format.year.month.day.check output.dot.new.block + format.btitle.type.num + } + if$ + howpublished empty$ + organization empty$ + address empty$ + and + and + 'skip$ + { output.dot.new.block + howpublished + organization connect.with.comma.check + address connect.with.comma.check + } + if$ + % + % format optional note + % + note empty$ + { add.period$ } + { output.dot.new.block + format.note + } + if$ + fin.entry +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % nonprint media and other things that don't fit + % +FUNCTION {misc} +{ author empty$ + % + % no author: possibly edited item with editors as authors + % + { editor empty$ + % + % no author or editor: title/type serves as author. + % title formatted as book title + % + % if no title and no type, howpublished is title + % + { title empty$ + type empty$ + and + { howpublished empty$ + { "No author, editor, title, type, and howpublished in " + cite$ * warning$ } + { howpublished output.dot.new.block } + if$ + format.year.month.day.check output.dot.new.block + } + { output.misctitle.type.num output.new.block + format.year.month.day.check output.dot.new.block + output.howpublished + } + if$ + } + % + % format editor and year, and check if year is present + % format book title, volume, and edition and check if title present + % + { format.editors.as.authors start.new.block + format.year.month.day.check output.dot.new.block + output.misctitle.type.num output.new.block + output.howpublished + } + if$ + } + % + % format author and year, and check if year is present + % format book title, volume, and edition + % and check if title or type present + % + { format.authors start.new.block + format.year.month.day.check output.dot.new.block + output.misctitle.type.num output.new.block + output.howpublished + } + if$ + address empty$ + publisher empty$ + and + 'skip$ + { format.address.publisher + output.dot.new.block + } + if$ + % + % format optional note + % + note empty$ + { "" } + { format.note } + if$ + fin.entry +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % for legal cases and other cases that need to be + % done by hand + % +FUNCTION {literal} +{ "key" key warning.if.empty + "text" text warning.if.empty + text empty$ + { "" } + { text } + if$ + fin.entry +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % following functions not used for APA Manual examples + % + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % booklet + % +FUNCTION {booklet} +{ misc } + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % part of a book + % +FUNCTION {inbook} +{ incollection } + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % article in proceedings + % +FUNCTION {inproceedings} +{ incollection } + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % technical documentation + % +FUNCTION {manual} +{ misc } + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % proceedings + % +FUNCTION {proceedings} +{ misc } + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % unknown types + % +FUNCTION {default.type} +{ misc } + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% INITIALIZATION FUNCTIONS % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {initialize} +{ % + % Maximum number of names to be formatted . + #6 'name.max := +% #250 'entry.max$ := +% #5000 'global.max$ := +} + +FUNCTION {init.old.number} +{ % + % For numbering the entries according to current sorting order. + #0 'old.number := +} + +FUNCTION {init.old.label} +{ % + % For comparing labels across entries . + "zzzzzz" 'old.label := +} + +FUNCTION {init.cite.initials.add.to.year} +{ % + % Initialize "cite initials" indicator for all entries. + #0 'cite.initials := + % + % Initialize "add to year", i.e., whether a, b, etc. must + % be added to the year in citation, to "no". + #0 'add.to.year := + % +} + +FUNCTION {move.forward} +{ % + % Indicates that we're moving forward (ITERATE) through the entry list . + #1 'forward := +} + +FUNCTION {move.backward} +{ % + % Indicates that we're moving backward (REVERSE) through the entry list . + #0 'forward := +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% BASIC BIBLIOGRAPHY OUTPUT FUNCTIONS % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Beginning of the thebibliography environment: +% Write preamble if there is one, write \begin command + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Write \end{thebibliography} command + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Write the citation labels and reference list entry to +% the .bbl file. + +FUNCTION {write.bbl.entry} +{ % + % Output \bibitem and \citeauthoryear command. + % + make.cite.labels + % + % Format and output reference list entry. + % + call.type$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% READ AND PROCESS ENTRIES, MAKE THEBIBLIOGRAPHY % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +% Read entries . + +READ + +% Some initializations . + +EXECUTE { initialize } + +% Sort items by title in order to replace each title by +% its number in later sorting . + +ITERATE { make.sort.title } + +SORT + +EXECUTE { init.old.number } + +EXECUTE { init.old.label } + +ITERATE { make.title.number } + +% Now generate some tentative author-year labels and do some +% preprocessing for the later definitive author and year +% labels. + +ITERATE { make.tentative.sort.label } + +SORT + +% Now check whether initials must be added to first author, +% how many authors must be formatted, whether an "a", "b", +% etc., must be added to the year label. + +ITERATE { init.cite.initials.add.to.year } + +EXECUTE { init.initials } + +ITERATE { check.add.initials } + +EXECUTE { init.initials } + +REVERSE { check.add.initials } + +ITERATE { tentative.cite.num.names } + +EXECUTE { init.cite.num.names } + +EXECUTE { move.forward } + +ITERATE { definitive.cite.num.names } + +EXECUTE { init.cite.num.names } + +EXECUTE { move.backward } + +REVERSE { definitive.cite.num.names } + + +% Make final sorting label and do definitive sorting . + +ITERATE { make.final.sort.key } + +SORT + +% Write preamble and \begin{thebibliography}{} statement + +EXECUTE { begin.bib } + +% Make final cite labels, format reference list entry, +% and write to .bbl file. + +ITERATE { write.bbl.entry } + + +% Write \end{thebibliography} statement + +EXECUTE { end.bib } + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% DONE % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% EOF apacite.bst +% diff --git a/Master/texmf-dist/bibtex/bst/apacite/apacitex.bst b/Master/texmf-dist/bibtex/bst/apacite/apacitex.bst new file mode 100644 index 00000000000..604ac347770 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/apacite/apacitex.bst @@ -0,0 +1,5091 @@ +% \iffalse meta-comment +% +% This is file `apacitex.bst'. +% +% Copyright 1994-2005 Erik Meijer and any individual authors listed +% elsewhere in this file. All rights reserved. +% +% This file is part of the `apacite' package. +% ------------------------------------------- +% +% It may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2003/12/01 or later. +% +% The list of all files belonging to the `apacite' package, with a +% short description, is given in the file `manifest.txt'. +% +% \fi + +%% apacitex.bst : reference list according to APA manual +%% Written by Erik Meijer +%% This version: [2005/06/08] + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% DECLARATION OF FIELDS, INTEGERS, AND STRINGS FOR EACH % +% ENTRY % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +ENTRY + { address + annote % not used + author + booktitle % for articles in books + chair % for lectures + chapter % for incollection, esp. internet documents + day + edition + editor + englishtitle % english translation of title in other language + firstkey % key for first citation + howpublished + institution % for technical reports + journal + key % key for second and later citations, or all + % citations if firstkey is missing + month + note + number % number of journal or report + organization % for unpublished + % + % for reprints, translations, etc. + % + originaladdress + originalbooktitle + originaledition + originaleditor + originaljournal + originalnumber + originalpages + originalpublisher + originalvolume + originalyear + % + % back to normal + % + pages + publisher + school % for theses + series % not used + symposium % for lectures + text % for literals + title + translator % translator of book (or article) + type % type of phdthesis (e.g., Doctoral dissertation) + % or type of article (e.g., Letter to the editor) + % etc. + volume + year + } + { title.number % for sorting titles + cite.initials % dummy (0-1) indicating whether or not + % initials of the 1st author must + % be used for citing + cite.num.names.full % number of names to be cited for full and + cite.num.names.short % short cite + add.to.year % For a, b, c, etc. after year + % in multiple citations with same author-year + } + { year.label % For sorting entries by year + author.year.sort.label % For sorting entries and checking whether + % initials should be added, how many authors + % should be cited and whether a, b, etc. + % after year is necessary + title.sort.label % for sorting titles + } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% DECLARATION OF GLOBAL INTEGERS AND STRINGS % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +INTEGERS { len pos name.max old.number numnames numnames.old + nameptr lastname format.num.names cite.initials.old + cite.num.names.old add.to.year.old forward + multiresult dot + } + +STRINGS { s t u old.label field + aut1f aut1s aut1f.old aut1s.old + aut2 aut2.old + aut3 aut3.old + aut4 aut4.old + aut5 aut5.old + aut6 aut6.old + year.label.old + } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% A small function for testing purposes. + +FUNCTION {test} { #0 } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% A small function (ideally replaced by a user-definable +% MACRO) that indicates whether index entries must be +% generated. + +FUNCTION {make.index} { #1 } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% MONTH MACROS % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +MACRO {jan} {"{\APACSortNoop{01}}January"} + +MACRO {feb} {"{\APACSortNoop{02}}February"} + +MACRO {mar} {"{\APACSortNoop{03}}March"} + +MACRO {apr} {"{\APACSortNoop{04}}April"} + +MACRO {may} {"{\APACSortNoop{05}}May"} + +MACRO {jun} {"{\APACSortNoop{06}}June"} + +MACRO {jul} {"{\APACSortNoop{07}}July"} + +MACRO {aug} {"{\APACSortNoop{08}}August"} + +MACRO {sep} {"{\APACSortNoop{09}}September"} + +MACRO {oct} {"{\APACSortNoop{10}}October"} + +MACRO {nov} {"{\APACSortNoop{11}}November"} + +MACRO {dec} {"{\APACSortNoop{12}}December"} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% LOGICAL `NOT', `AND', AND `OR' % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Logical 'not': +% If the first element on the stack is A then this function +% does the following: +% push { #0 } +% push { #1 } +% So now the first 3 elements of the stack are +% { #1 } { #0 } A +% The first 3 are popped and subjected to 'if': +% If A > 0 then { #0 } is executed, else { #1 } is executed: +% if A > 0 +% then 0 +% else 1 +% So consider integers as logicals, where 1 = true and 0 = false, +% then this does +% (if A then false else true) +% which is a logical 'not'. + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Logical 'and': +% If the first 2 elements on the stack are A B +% then this function does the following: +% push 'skip$ +% push { pop$ #0 } +% So now first 4 elements are +% { pop$ #0 } 'skip$ A B +% The first 3 are popped and subjected to 'if' (B is on top of +% the stack): +% If A > 0 then 'skip$ is executed, else { pop$ #0 } is executed: +% if A > 0 +% then (B stays on top of stack) +% else (B is popped and #0 is pushed) +% So consider integers as logicals, where 1 = true and 0 = false, +% then this does +% (if A then B else false) +% which is a logical 'and'. + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Logical 'or': +% If the first 2 elements on the stack are A B +% then this function does the following: +% push { pop$ #1 } +% push 'skip$ +% So now first 4 elements are +% 'skip$ { pop$ #1 } A B +% The first 3 are popped and subjected to 'if' (B is on top of +% the stack): +% If A > 0 then { pop$ #1 } is executed, else 'skip$ is executed: +% if A > 0 +% then (B is popped and #1 is pushed) +% else (B stays on top of stack) +% So consider integers as logicals, where 1 = true and 0 = false, +% then this does +% (if A then true else B) +% which is a logical 'or'. + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% GENERAL PURPOSE FUNCTIONS FOR FORMATTING % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % issues warning if field is empty + % call with + % "field" field warning.if.empty + % Note that the first field must be between quotes + % because it is the fieldname for use in the warning message. + % +FUNCTION {warning.if.empty} +{ empty$ + { "No " swap$ * " in " * cite$ * warning$ } + { pop$ } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % issues warning if title, type, and howpublished are empty + % +FUNCTION {check.relevant.fields} +{ title empty$ + type empty$ + howpublished empty$ + and + and + { "No title, type, and howpublished in " cite$ * warning$ } + 'skip$ + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % delivers 1 if (both editor and translator + % not empty and not equal to each other) + % 0 if (editor or translator empty) or + % (editor = translator) + % +FUNCTION {editor.ne.trans} +{ translator empty$ + { #0 } + { editor empty$ + { #0 } + { translator editor = + { #0 } + { #1 } + if$ + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Convert integer to string, assume that integer < 100,000 + +FUNCTION {conv.int.to.str} +{ duplicate$ #10 < + { "0000" swap$ int.to.str$ * } + { duplicate$ #100 < + { "000" swap$ int.to.str$ * } + { duplicate$ #1000 < + { "00" swap$ int.to.str$ * } + { duplicate$ #10000 < + { "0" swap$ int.to.str$ * } + { int.to.str$ } + if$ + } + if$ + } + if$ + } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Delivers 1 if possibly editor in author position +% 2 if editor not in author position +% 3 if not applicable: use key +% 0 if unknown type + +FUNCTION {ref.type} +{ type$ "article" = + type$ "magazine" = + type$ "newspaper" = + type$ "book" = + type$ "techreport" = + type$ "unpublished" = + type$ "misc" = + type$ "booklet" = + type$ "manual" = + type$ "proceedings" = + or + or + or + or + or + or + or + or + or + { #1 } + { type$ "incollection" = + type$ "phdthesis" = + type$ "mastersthesis" = + type$ "lecture" = + type$ "inbook" = + type$ "inproceedings" = + type$ "intechreport" = + or + or + or + or + or + or + { #2 } + { type$ "literal" = + { #3 } + { #0 } + if$ + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Delivers 1 if title is formatted as an "article"-type, +% 0 otherwise + +FUNCTION {is.atype} +{ type$ "article" = + type$ "magazine" = + type$ "newspaper" = + type$ "incollection" = + type$ "inbook" = + type$ "inproceedings" = + type$ "intechreport" = + or + or + or + or + or + or + { #1 } + { journal empty$ not + % + type$ "phdthesis" = + type$ "mastersthesis" = + or + % + and + { #1 } + { type$ "misc" = + type empty$ not + and + { type "\bibmessage" = + type "\bibcomputerprogram" = + type "\bibcomputerprogrammanual" = + type "\bibcomputerprogramandmanual" = + type "\bibcomputersoftware" = + type "\bibcomputersoftwaremanual" = + type "\bibcomputersoftwareandmanual" = + type "\bibprogramminglanguage" = + or + or + or + or + or + or + or + { #1 } + { #0 } + if$ + } + { #0 } + if$ + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % connects two strings with connect string + % if one of them empty, then connect string + % is left out + % + % call with S1 S2 connectstring connect.check + % +FUNCTION {connect.check} +{ 'u := + % + % if S2 = "" + % + duplicate$ empty$ + % + % then remove S2 + % + { pop$ + % + % S1 is on top of stack. + % if it is empty, it is replaced by the empty string "" + % + duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ + } + % + % else swap S1 and S2 so that S1 can be checked + % + { swap$ + % + % if S1 is empty, remove S1 so that S2 is left on the + % stack and is the result is given + % + duplicate$ empty$ + { pop$ } + % + % now the real work starts: + % push the connect string "C" + % so that top of stack is "C" "S1" "S2" + % concatenate, so that top of stack is + % "S1+C" "S2" + % + { u * + % + % swap and concatenate + % + swap$ * + } + if$ + } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % connects two strings with space ("\ ") + % if length of second is 3 or larger, + % connects them with non-breaking space ("tie", "~") + % if length of second smaller than 3 + % + % call with S1 S2 tie.or.space.connect + % result: "S1\ S2" or "S1~S2" + % +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % connects two strings with comma (", ") + % if one of them is empty, the comma is left out + % + % call with S1 S2 connect.with.comma.check + % result: "S1, S2" + % +FUNCTION {connect.with.comma.check} +{ ", " connect.check } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % connects two strings with semicolon ("; ") + % if one of them is empty, semicolon is left out + % + % call with S1 S2 connect.with.semicolon.check + % result: "S1; S2" + % +FUNCTION {connect.with.semicolon.check} +{ "; " connect.check } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % connects two strings with colon (": ") + % if one of them is empty, colon is left out + % + % call with S1 S2 connect.with.colon.check + % result: "S1: S2" + % +FUNCTION {connect.with.colon.check} +{ ": " connect.check } + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % connects two strings with space ("\ ") + % + % call with S1 S2 connect.with.space.check + % result: "S1\ S2" + % +FUNCTION {connect.with.space.check} +{ "\ " connect.check } + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % encloses string in pre- and postfix string + % call with + % prefix postfix S enclose.check + % delivers empty string if S empty + % +FUNCTION {enclose.check} +{ duplicate$ empty$ + { pop$ pop$ pop$ + "" + } + { swap$ * * } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % emphasizes top of stack + % call with + % "string" emphasize.check + % +FUNCTION {emphasize.check} +{ "\Bem{" swap$ + "}" swap$ + enclose.check +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % brackets top of stack + % call with + % "string" bracket + % +FUNCTION {bracket.check} +{ "[" swap$ + "]" swap$ + enclose.check +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % parenthesizes top of stack + % call with + % "string" parenthesize + % +FUNCTION {parenthesize.check} +{ "(" swap$ + ")" swap$ + enclose.check +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % checks whether argument is "multiresult": + % whether it contains '-', '+', or ',' characters + % used with pages to check whether pp. or p. must be used + % +FUNCTION {multi.result.check} +{ 't := + #0 'multiresult := + % + % while (not multiresult) and (length(t) > 1) do + % + { multiresult not + t text.length$ #1 > + and + } + % + % if t(1-2) = "--" or t(1) = "+" or "," + % then multiresult = 1 + % else t = t(2-last) + % + { t #1 #2 substring$ 's := + "--" s = + { #1 'multiresult := } + { t #1 #1 substring$ 's := + "+" s = + "," s = + or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + if$ + } + while$ + multiresult +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% GENERAL PURPOSE FUNCTIONS FOR SORTING % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Remove non-alphanumeric characters +% and change to lower case . + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Remove spaces from a string. Used for sorting. +% +% Call with +% string remove.spaces +% +% E.g., +% "fine old day" remove.spaces +% gives "fineoldday" . + +FUNCTION {remove.spaces} +{ % Remove spaces from string. + % Works best if string only contains alphanumeric characters and spaces. + 's := % The original string + s text.length$ 'len := % Its length (no. of characters) + "" 't := % Initialize the transformed string + #0 'pos := + % + % while (pos < len) do + % + { pos len < } + { pos #1 + 'pos := + s pos #1 substring$ 'u := + % + % u is the pos-th character in s + % If it is a space, move to next character, + % else copy character to output. + % + u " " = + 'skip$ + { t u * 't := } + if$ + } + while$ + % + % Now push the result back on the stack + t +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% BASIC OUTPUT FUNCTIONS % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % starting new block by writing what's left on the stack, + % starting a new line and adding some extra space or + % whatever is more defined in \newblock + % +FUNCTION {output.end.block} +{ write$ + newline$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % starting new block by writing what's left on the stack, + % starting a new line and adding some extra space or + % whatever is more defined in \newblock + % +FUNCTION {output.new.block} +{ output.end.block + "\newblock{}" write$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % starting new block by writing what's left on the stack, + % starting a new line and adding some extra space or + % whatever is more defined in \newblock + % +FUNCTION {output.dot.new.block} +{ add.period$ + output.new.block +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Starting new block assuming that stack is empty. +% Starting a new line and adding some extra space or +% whatever is more defined in \newblock + +FUNCTION {start.new.block} +{ newline$ + "\newblock{}" write$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % finish current entry + % by writing what's left on the stack and starting a new line + % +FUNCTION {fin.entry} +{ output.end.block + test + { "\vspace{\baselineskip}" write$ newline$ } + 'skip$ + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% FUNCTIONS FOR SORTING BY AUTHOR (OR SUBSTITUTE), YEAR, % +% TITLE % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%MACRO {sort.name.format} { "{ll{}}{ f{}}{ vv{}}{ jj{}}" } + +FUNCTION {sort.name.format} { "{ll{}}{ f{}}{ vv{}}{ jj{}}" } + +FUNCTION {cite.name.format} { "{ll}" } + +FUNCTION {cite.initials.name.format} { "{f. }{vv }{ll}{ jj}" } + +FUNCTION {author.name.format} { "{ll}{, f.}{ vv}{, jj}" } + +FUNCTION {editor.name.format} { "{f.~}{vv }{ll}{ jj}" } + +FUNCTION {index.name.format} { "{ll}{, f.}{ vv}{, jj}" } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Check whether initials must be added (1). +% Initialization. + +FUNCTION {init.initials} +{ "yyyyy" 'aut1f.old := + "yyyyy" 'aut1s.old := + #0 'cite.initials.old := +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Check whether initials must be added (2). +% Update when author, editor, and key fields are not used. +% +% Call with +% field update.no.initials + +FUNCTION {update.no.initials} +{ 'field := + field 'aut1f.old := + field 'aut1s.old := + #0 'cite.initials.old := +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Check whether initials must be added (3). + +FUNCTION {check.add.initials.aut} +{ % + % If last name is equal to previous last name + % but initials are different, then initials should + % be cited. If initials are also the same, initials + % should be cited if that is the case for the previous + % author . + % + aut1s aut1s.old = + { aut1f aut1f.old = + { cite.initials.old 'cite.initials := } + { #1 'cite.initials := + aut1f 'aut1f.old := + aut1s 'aut1s.old := + cite.initials 'cite.initials.old := + } + if$ + } + { % + % Different last name. + aut1f 'aut1f.old := + aut1s 'aut1s.old := + cite.initials 'cite.initials.old := + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Check whether initials must be added (4). +% Call with +% field check.add.initials.field + +FUNCTION {check.add.initials.field} +{ 'field := + field #1 cite.initials.name.format format.name$ 'aut1f := + field #1 cite.name.format format.name$ 'aut1s := + % + % Now do the actual work + % + check.add.initials.aut +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Check whether initials must be added (4). + +FUNCTION {check.add.initials} +{ % + % Check whether author or editor or other field acts as author. + % Initials are only relevant with author or editor. + % + firstkey empty$ not + { key empty$ not + { % + % Both key and firstkey are nonempty. + % Then, key is treated as last name of first author, + % and firstkey is treated as last name + initials of + % first author . + % + firstkey sortify remove.spaces 'aut1f := + key sortify remove.spaces 'aut1s := + check.add.initials.aut + } + { firstkey sortify remove.spaces update.no.initials } + if$ + } + { key empty$ not + { key sortify remove.spaces update.no.initials } + { % + % No key or firstkey, so find out which field + % to use as author. + % + % Check reference type: + % if result is 1 then possibly editor acts as author + % 2 then editor does not act as author + % 3 then key should have been used + % 0 then unknown reference type + ref.type #2 = + { % + % Format first author with and without initials + author empty$ + { title.sort.label update.no.initials } + { author check.add.initials.field } + if$ + } + { % + % Format first author with and without initials + author empty$ + { editor empty$ + { title.sort.label update.no.initials } + { editor check.add.initials.field } + if$ + } + { author check.add.initials.field } + if$ + } + if$ + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Compute tentative number of names that must be cited (1). +% Call with +% field tentative.cite.num.names.field + +FUNCTION {tentative.cite.num.names.field} +{ 'field := + field num.names$ 'numnames := + numnames #3 < + { % + % 1 or 2 names: always cite all of them. + numnames 'cite.num.names.full := + numnames 'cite.num.names.short := + } + { numnames #6 < + { % + % 3-5 names: cite all of them the first time, + % only the first name later times + numnames 'cite.num.names.full := + #1 'cite.num.names.short := + } + { % + % 6 or more names: cite only the first name + #1 'cite.num.names.full := + #1 'cite.num.names.short := + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Compute tentative number of names that must be cited (2). + +FUNCTION {tentative.cite.num.names} +{ % + % Check whether author or editor or other field acts as author. + % Number of names is only relevant with author or editor. + % + firstkey empty$ not + { + #1 'cite.num.names.full := + #1 'cite.num.names.short := + } + { key empty$ not + { + #1 'cite.num.names.full := + #1 'cite.num.names.short := + } + { % + % No key or firstkey, so find out which field + % to use as author. + % + % Check reference type: + % if result is 1 then possibly editor acts as author + % 2 then editor does not act as author + % 3 then key should have been used + % 0 then unknown reference type + ref.type #2 = + { % + % Format first author with and without initials + author empty$ + { + #1 'cite.num.names.full := + #1 'cite.num.names.short := + } + { author tentative.cite.num.names.field } + if$ + } + { % + % Format first author with and without initials + author empty$ + { editor empty$ + { + #1 'cite.num.names.full := + #1 'cite.num.names.short := + } + { editor tentative.cite.num.names.field } + if$ + } + { author tentative.cite.num.names.field } + if$ + } + if$ + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Initialize "number of names to be cited" before +% looping over entries. + +FUNCTION {init.cite.num.names} +{ #0 'cite.num.names.old := + #0 'numnames.old := + "yyyy" 'year.label.old := + #0 'add.to.year.old := + "" 'aut1f.old := + "" 'aut2.old := + "" 'aut3.old := + "" 'aut4.old := + "" 'aut5.old := + "" 'aut6.old := +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Update "number of names to be cited" . + +FUNCTION {update.cite.num.names} +{ cite.num.names.short 'cite.num.names.old := + numnames 'numnames.old := + year.label 'year.label.old := + add.to.year 'add.to.year.old := + aut1f 'aut1f.old := + aut2 'aut2.old := + aut3 'aut3.old := + aut4 'aut4.old := + aut5 'aut5.old := + aut6 'aut6.old := +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Format (maximally) 6 authors for comparison issues +% to determine number of authors that must be cited. +% It is assumed that the 'field' and 'numnames' variables +% have already been defined. + +FUNCTION {format.6.authors} +{ % + % First author: with initials. + % + field #1 cite.initials.name.format format.name$ 'aut1f := + % + % Second and later authors: without initials. + % + numnames #1 > + name.max #1 > + and + { % + % 2nd author + field #2 cite.name.format format.name$ 'aut2 := + % + numnames #2 > + name.max #2 > + and + { % + % 3nd author + field #3 cite.name.format format.name$ 'aut3 := + % + numnames #3 > + name.max #3 > + and + { % + % 4th author + field #4 cite.name.format format.name$ 'aut4 := + % + numnames #4 > + name.max #4 > + and + { % + % 5th author + field #5 cite.name.format format.name$ 'aut5 := + % + numnames #5 > + name.max #5 > + and + { % + % 6th author + field #6 cite.name.format format.name$ 'aut6 := + } + { % + % 5 authors: 6 is empty + % + "" 'aut6 := + } + if$ + } + { % + % 4 authors: 5-6 are empty + % + "" 'aut5 := + "" 'aut6 := + } + if$ + } + { % + % 3 authors: 4-6 are empty + % + "" 'aut4 := + "" 'aut5 := + "" 'aut6 := + } + if$ + } + { % + % 2 authors: 3-6 are empty + % + "" 'aut3 := + "" 'aut4 := + "" 'aut5 := + "" 'aut6 := + } + if$ + } + { % + % Only 1 author: 2-6 are empty + % + "" 'aut2 := + "" 'aut3 := + "" 'aut4 := + "" 'aut5 := + "" 'aut6 := + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Compute definitive number of names that must be cited +% and whether a's or b's must be added to year (1). +% a's or b's are necessary: update add.to.year variable + +FUNCTION {change.add.to.year} +{ + forward #1 = + { % + % Moving forward: this add.to.year number must be 1 higher than + % previous. + % + add.to.year.old #0 > + { add.to.year.old #1 + 'add.to.year := } + { #2 'add.to.year := } + if$ + } + { % + % Moving backward: this add.to.year number must be 1 lower than + % previous. + % + add.to.year.old #1 - 'add.to.year := + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Compute definitive number of names that must be cited +% and whether a's or b's must be added to year (1). +% Current and/or previous entry has 1 or 2 authors +% or editors acting as authors and they are published in the +% same year. The number of authors does not need to be changed +% in this case, but a's or b's may be necessary. + +FUNCTION {definitive.cite.num.names.1.or.2} +{ % + numnames numnames.old = + { % + % Same number of names: ambiguity could arise. Check whether current + % and previous have the same author(s). + % + aut1f aut1f.old = + { % + % Same first author: if the second author is also the same or if + % there is only one author, a's and b's should be added. + % + aut2 aut2.old = + numnames #2 = + and + % + numnames #1 = + or + { % + % Same author(s): add to year. + % + change.add.to.year + } + { % + % Different second author: no ambiguity possible. + % + skip$ + } + if$ + } + { % + % Different first author: no ambiguity possible. + % + skip$ + } + if$ + } + { % + % Different number of names: no ambiguity possible. + % + skip$ + } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Compute definitive number of names that must be cited +% and whether a's or b's must be added to year (2). +% Both current and previous entries have 3 or more authors +% or editors acting as authors and they are published in the +% same year. + +FUNCTION {definitive.cite.num.names.3.or.more} +{ % + % Check whether current and previous have the same first author. + % + aut1f aut1f.old = + { % + % Same first author: check second author + % + aut2 aut2.old = + { % + % Same 1st & 2nd author: check 3rd. + % + aut3 aut3.old = + { % + % Same 1st-3rd authors: check 4th. + % + numnames.old #3 = + { numnames #3 = + { % + % Both current and previous have 3 authors, which are + % the same, so both have identical author-year + % combinations, so ambiguity should be resolved by + % a's and b's. Check whether more authors were + % necessary for previous one. + % + change.add.to.year + cite.num.names.short cite.num.names.old < + { cite.num.names.old + 'cite.num.names.short := + } + 'skip$ + if$ + } + { % + % Previous has 3 authors, current has more, with same + % first 3, so at least 4 must be used for current to + % make a difference. + % + cite.num.names.short #4 < + { #4 'cite.num.names.short := } + 'skip$ + if$ + } + if$ + } + { numnames #3 = + { % + % Current has 3 authors, previous has more, with same + % first 3, so all 3 of current must be used. + % + numnames 'cite.num.names.short := + } + { % + % Same 1st-3rd author and both current and previous + % have at least 4 authors: check 4th. + % + aut4 aut4.old = + { % + % Same 1st-4th authors: check 5th. + % + numnames.old #4 = + { numnames #4 = + { % + % Both current and previous have 4 authors, + % which are the same, so both have + % identical author-year combinations, so + % ambiguity should be resolved by a's and + % b's. Check whether more authors were + % necessary for previous one. + % + change.add.to.year + cite.num.names.short cite.num.names.old < + { cite.num.names.old + 'cite.num.names.short := + } + 'skip$ + if$ + } + { % + % Previous has 4 authors, current has more, + % with same first 4, so at least 5 must be + % used for current to make a difference. + % + cite.num.names.short #5 < + { #5 'cite.num.names.short := } + 'skip$ + if$ + } + if$ + } + { numnames #4 = + { % + % Current has 4 authors, previous has more, + % with same first 4, so all 4 of current + % must be used. + % + numnames 'cite.num.names.short := + } + { % + % Same 1st-4th author and both current and + % previous have at least 5 authors: check + % 5th. + % + aut5 aut5.old = + { % + % Same 1st-5th authors: check 6th. + % + numnames.old #5 = + { numnames #5 = + { % + % Both current and previous + % have 5 authors, which are the + % same, so both have identical + % author-year combinations, so + % ambiguity should be resolved + % by a's and b's. Check whether + % more authors were necessary + % for previous one. + % + change.add.to.year + cite.num.names.short + cite.num.names.old < + { cite.num.names.old + 'cite.num.names.short := + } + 'skip$ + if$ + } + { % + % Previous has 5 authors, + % current has more, with same + % first 5, so at least 6 must + % be used for current to make + % a difference. + % + cite.num.names.short #6 < + { #6 'cite.num.names.short := } + 'skip$ + if$ + } + if$ + } + { numnames #5 = + { % + % Current has 5 authors, + % previous has more, with same + % first 5, so all 5 of current + % must be used. + % + numnames 'cite.num.names.short := + } + { % + % Same 1st-5th author and both + % current and previous have at + % least 6 authors. If one has + % 6 authors and the other has + % more or the 6th is different, + % 6 should be used (which is + % the maximum). + % + numnames #6 > + numnames.old #6 = + and + % + numnames #6 = + numnames.old #6 > + and + % + or + % + aut6 aut6.old = + not + % + or + { #6 cite.num.names.short < + { #6 + 'cite.num.names.short + := + } + 'skip$ + if$ + } + { % + % The first 6 authors are + % the same and either both + % have 6 or both have more. + % So for all practical + % purposes they have + % identical author-year + % combination, so ambiguity + % should be resolved by a's + % and b's. Check whether + % more authors were + % necessary for previous + % one. + % + change.add.to.year + cite.num.names.short + cite.num.names.old + < + { cite.num.names.old + 'cite.num.names.short + := + } + 'skip$ + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + { % + % Different 4th author: citing 4 authors is + % sufficient for this comparison. + % + cite.num.names.short #4 < + { #4 'cite.num.names.short := } + 'skip$ + if$ + } + if$ + } + if$ + } + if$ + } + { % + % Different 3rd author: citing 3 authors is sufficient for this + % comparison. + % + cite.num.names.short #3 < + { #3 'cite.num.names.short := } + 'skip$ + if$ + } + if$ + } + { % + % Different 2nd author: citing 2 authors is sufficient for this + % comparison. + % + cite.num.names.short #2 < + { #2 'cite.num.names.short := } + 'skip$ + if$ + } + if$ + } + { % + % Different first author: no ambiguity, move to next entry. + % + skip$ + } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Compute definitive number of names that must be cited +% and whether a's or b's must be added to year (3). +% Current entry has an author or editor acting as author. +% +% Call with +% field definitive.cite.num.names.field +% +% What should we do with explicit "others"? Is now ignored. +% If this causes ambiguity that could be resolved, the user +% should have added additional author names. + +FUNCTION {definitive.cite.num.names.field} +{ 'field := + field num.names$ 'numnames := + % + % Format authors + % + format.6.authors + % + % Now compare authors with authors of previous entry. + % + cite.num.names.short numnames.old > + { % + % The previous entry has less authors than already defined + % necessary to be cited. No ambiguity is possible and we're ready. + % + skip$ + } + { % + % Both previous and current entry have at least one author . + % + year.label year.label.old = + { % + % Same year label: possibly ambiguous citation. + % + % First check: current and/or previous have 1 or + % 2 authors. + % + numnames #3 < + numnames.old #3 < + or + % + { definitive.cite.num.names.1.or.2 } + { definitive.cite.num.names.3.or.more } + if$ + } + { % + % Different year label: everything's fine, + % move to next entry. + % + skip$ + } + if$ + } + if$ + % + % If during the previous process the name maximum is exceeded + % (which was not checked), correct this. NOTE: If the name + % maximum is smaller than 6, this could lead to ambiguous + % citations if, e.g., the year and the first 5 authors are + % the same, but the 6th author is different. + % + cite.num.names.short name.max > + { name.max 'cite.num.names.short := } + 'skip$ + if$ + % + % For a "full" cite, the number of names should always be at least + % as large as for a "short" cite. + % + cite.num.names.full cite.num.names.short < + { cite.num.names.short 'cite.num.names.full := } + 'skip$ + if$ + % + % Update "old" variables for next entry. + % + update.cite.num.names +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Compute definitive number of names that must be cited (4) +% and especially whether a's and b's should be added. +% This function is for the situation when author or editor +% are not used and firstkey, key, or something else is +% used to cite the referenced work. +% +% Call with +% formatted.field definitive.cite.no.names + +FUNCTION {definitive.cite.no.names} +{ % + % The formatted field that acts as author is on top + % of the stack. + 'aut1f := + "" 'aut2 := + "" 'aut3 := + "" 'aut4 := + "" 'aut5 := + "" 'aut6 := + #1 'numnames := + % + year.label year.label.old = + { % + % Same year label: possibly ambiguous citation. + % + definitive.cite.num.names.1.or.2 + } + { % + % Different year label: everything's fine, + % move to next entry. + % + skip$ + } + if$ + % + % Update "old" variables for next entry. + % + update.cite.num.names +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Compute definitive number of names that must be cited (5). + +FUNCTION {definitive.cite.num.names} +{ % + % Check whether author or editor or other field acts as author. + % Number of names is only relevant with author or editor. + % + firstkey empty$ not + { firstkey sortify remove.spaces definitive.cite.no.names } + { key empty$ not + { key sortify remove.spaces definitive.cite.no.names } + { % + % No key or firstkey, so find out which field + % to use as author. + % + % Check reference type: + % if result is 1 then possibly editor acts as author + % 2 then editor does not act as author + % 3 then key should have been used + % 0 then unknown reference type + ref.type #2 = + { % + % Format first author with and without initials + author empty$ + { title.sort.label definitive.cite.no.names } + { author definitive.cite.num.names.field } + if$ + } + { % + % Format first author with and without initials + author empty$ + { editor empty$ + { title.sort.label definitive.cite.no.names } + { editor definitive.cite.num.names.field } + if$ + } + { author definitive.cite.num.names.field } + if$ + } + if$ + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Make a tentative year sorting label (without `a' and `b'). + +FUNCTION {make.tentative.year.sort.label} +{ % + % Implicit or explicit ``no date'' is put at the front + % (the year zero; years B.C. will imply complications) + % because these are possibly old works. + % ``In press'' is put at the end. + % + year empty$ + { "0000" 'year.label := } + { year "\bibnodate" = + year "n.d." = + or + { "0000" 'year.label := } + { year "\BIP" = + { "9999" 'year.label := } + { % It is not checked whether the year field + % makes sense. + year sortify remove.spaces 'year.label := + } + if$ + } + if$ + } + if$ + % + % Push year sort label on the stack + year.label +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Give month (converted to number) and day when available. + +FUNCTION {month.number.day} +{ month empty$ + { "" } + { % +% month jan = +% { "01" } +% { month feb = +% { "02" } +% { month mar = +% { "03" } +% { month apr = +% { "04" } +% { month may = +% { "05" } +% { month jun = +% { "06" } +% { month jul = +% { "07" } +% { month aug = +% { "08" } +% { month sep = +% { "09" } +% { month oct = +% { "10" } +% { month nov = +% { "11" } +% { month dec = +% { "12" } +% { % + % Month is something + % else, e.g., "Spring" + % or jul # "/" # aug. + % Currently too + % difficult to figure + % out: user should + % trick the system. + % + month sortify + remove.spaces +% } +% if$ +% } +% if$ +% } +% if$ +% } +% if$ +% } +% if$ +% } +% if$ +% } +% if$ +% } +% if$ +% } +% if$ +% } +% if$ +% } +% if$ +% } +% if$ + % + % Add the day when available. + day empty$ + 'skip$ + { "/" * + day sortify remove.spaces * + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Make tentative sort label with names in field on top of +% the stack. +% +% Call with +% field make.name.sort.label +% where 'field' is the field that takes the author-role. + +FUNCTION {make.name.sort.label} +{ % + % Author or editor-acting-as-author available. + % => Make tentative "short cite with initials" author + % label (L1) of one of the forms + % "Last1 F1" + % "Last1 F1 Last2" + % "Last1 F1 zzzz" ("zzzz" representing et al.) + % => If more than 2 'authors': make label (L2) for 2nd-6th authors + % of one of the forms + % "Last2 Last3" + % "Last2 Last3 Last4" + % "Last2 Last3 Last4 Last5" + % "Last2 Last3 Last4 Last5 Last6" + % "Last2 Last3 Last4 Last5 Last6 zzzz" + % + % Then format year label (L3) of one of the forms: + % "0000" (missing year or explicit 'no date') + % "9999" ('in press') + % year (otherwise; don't use originalyear here yet) + % + % From earlier sorting of titles, we have title number. Convert + % to string, which gives title label (L4) . + % + % Then tentative sorting label (author.year.sort.label) is a + % concatenation of + % L1 + % " " + % L3 + % " " + % L2 + % " " + % L4 + % + % The name field is on top of the stack. + 'field := + % + % numnames is the total number of names contained in field + field num.names$ 'numnames := + % + % Format first author + field #1 sort.name.format format.name$ + % + % Format the second author if there are two, or else "zzzz" = et al. + numnames #1 = + 'skip$ + { numnames #2 = + { % + % Two authors: format second author + field #2 "{ll{}}" format.name$ 's := + s "others" = + { " zzzz" * } % Add "et al."-substitute + { " " * s * } % Add second author + if$ + } + { " zzzz" * } % 3 or more authors: add "et al."-substitute + if$ + } + if$ + " " * % Add spaces + make.tentative.year.sort.label * % Add year (L3). + " " * % Add spaces + % + % Now build up L2 if applicable + numnames #3 < + 'skip$ + { % + % Treat last author slightly differently + numnames name.max > + { name.max 'lastname := + " zzzz" % Push "et al."-substitute on stack + } + { numnames 'lastname := + "" % Push empty string on stack + } + if$ + % + % Names 2 to "last" - 1 + "" % Push empty string on stack + #2 'nameptr := + { nameptr lastname < } + { % Add name no. nameptr + field nameptr "{ll{}}" format.name$ * + " " * + nameptr #1 + 'nameptr := + } + while$ + % + % "Last" author + field lastname "{ll{}}" format.name$ 's := + s "others" = + { "zzzz" * } % Add "et al."-substitute + { s * } % Add last author + if$ + % + swap$ * % Add the previously formatted empty string or + % "et al."-substitute if there are many authors. + * % Add L2 to the earlier labels. + } + if$ + % + " " * % Add spaces + title.number conv.int.to.str * % Add sorted title number (L4). + sortify % Clean up and convert to lowercase + " " * % Add spaces + month.number.day * % Add month and day when available + 'author.year.sort.label := % Assign result to sort label. +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Called by make.tentative.sort.label to make tentative +% sort label if key or firstkey is available or author and +% editor are empty or unusable. +% +% Call with +% field make.field.year.sort.label +% where 'field' is the field that takes the author-role, +% perhaps already subjected to removing articles from the +% beginning. + +FUNCTION {make.field.year.sort.label} +{ % + % 'field' acts as first author (L1), subsequent authors + % are empty (L2). + % + % Then format year label (L3) of one of the forms: + % "0000" (missing year or explicit 'no date') + % "9999" ('in press') + % year (otherwise; don't use originalyear here yet) + % + % From earlier sorting of titles, we have title number. Convert + % to string, which gives title label (L4) . + % + % Then tentative sorting label (author.year.sort.label) is a + % concatenation of + % L1 + % " " + % L3 + % " " + % L2 + % " " + % L4 + % + % 'field' is on top of the stack. It is already supposed to be cleaned + % (i.e., sortified and space-removed), so this is already L1. + " " * % Add spaces to L1 + make.tentative.year.sort.label * % Add year (L3). + " " * % Add spaces + " " * % L2 is empty, add spaces + title.number conv.int.to.str * % Add sorted title number (L4). + sortify % Clean up and convert to lowercase + " " * % Add spaces + month.number.day * % Add month and day when available + 'author.year.sort.label := % Assign result to sort label. +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Called by make.tentative.sort.label to make tentative +% sort label if key or firstkey are not available and +% author or editor may be used + +FUNCTION {make.author.editor.sort.label} +{ author empty$ + { editor empty$ + { % + % Use what has previously been stored in title.sort.label + % as author substitute . + title.sort.label make.field.year.sort.label + } + { editor make.name.sort.label } + if$ + } + { author make.name.sort.label } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Called by make.tentative.sort.label to make tentative +% sort label if key or firstkey are not available and +% author (but not editor) may be used + +FUNCTION {make.author.sort.label} +{ author empty$ + { % + % Use what has previously been stored in title.sort.label + % as author substitute . + title.sort.label make.field.year.sort.label + } + { author make.name.sort.label } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Make tentative label for citing and sorting and do some +% preprocessing. + +FUNCTION {make.tentative.sort.label} +{ % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % General strategy: + % + % Ordinary situation: author or editor-acting-as-author + % available. + % => Make tentative "short cite with initials" author + % label (L1) of one of the forms + % "Last1 F1" + % "Last1 F1 Last2" + % "Last1 F1 zzzz" ("zzzz" representing et al.) + % => If more than 2 'authors': make label (L2) for 2nd-6th authors + % of one of the forms + % "Last2 Last3" + % "Last2 Last3 Last4" + % "Last2 Last3 Last4 Last5" + % "Last2 Last3 Last4 Last5 Last6" + % "Last2 Last3 Last4 Last5 Last6 zzzz" + % When key is available (overrules author and editor fields): + % => L1 = key, L2 = "" + % No author, editor, and key: define title or substitute as key + % and format as key. + % + % Then format year label (L3) of one of the forms: + % "0000" (missing year or explicit 'no date') + % "9999" ('in press') + % year (otherwise; don't use originalyear here yet) + % + % From earlier sorting of titles, we have title number. Convert + % to string, which gives title label (L4) . + % + % Then tentative sorting label (author.year.sort.label) is a + % concatenation of + % L1 + % " " + % L3 + % " " + % L2 + % " " + % L4 + % + % This can then be sorted, from which it can be derived + % whether initials are necessary, how many names must + % be used for short and full citations, and whether "a"'s and + % "b"'s etc. are necessary behind the year labels. + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % key and firstkey overrule author information + % + firstkey empty$ not + { key empty$ not + { % + % Both key and firstkey available: + % for sorting and checking initials, treat key as last + % name and firstkey as initials. + % + key sortify remove.spaces + " " * + firstkey sortify remove.spaces * + make.field.year.sort.label + } + { firstkey sortify remove.spaces make.field.year.sort.label } + if$ + } + { key empty$ not + { key sortify remove.spaces make.field.year.sort.label } + { % + % No key or firstkey, so find out which field + % to use as author. + % + % Check reference type: + % if result is 1 then possibly editor acts as author + % 2 then editor does not act as author + % 3 then key should have been used + % 0 then unknown reference type + ref.type + duplicate$ #1 = + { pop$ + make.author.editor.sort.label + } + { duplicate$ #2 = + { pop$ + make.author.sort.label + } + { #3 = + { "no key in " cite$ * warning$ + make.author.editor.sort.label + } + { make.author.editor.sort.label } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + % + author.year.sort.label 'sort.key$ := +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Make final sort label with names in field on top of +% the stack. +% +% Call with +% field make.definitive.name.sort.label +% +% where 'field' is the field that takes the author-role. + +FUNCTION {make.definitive.name.sort.label} +{ % + % Author or editor-acting-as-author available. + % => Make author-with-initials label (L1) of one of the forms + % "Last1 F1 Last2 F2 ... LastN FN" + % "Last1 F1 Last2 F2 ... Last6 F6 zzzz" + % (where N <= 6 is the total number of authors, and + % "zzzz" represents et al. if there are more than 6 authors) + % No author, editor, and key: define title or substitute as sort key. + % + % The name field is on top of the stack. + 'field := + % + % numnames is the total number of names contained in field + field num.names$ 'numnames := + % + % If there are more than 6 authors, only 6 are mentioned. + numnames name.max > + { name.max 'format.num.names := } + { numnames 'format.num.names := } + if$ + % Initialize stack with empty stringh + "" + % + % Cycle over authors. + #1 'nameptr := + { nameptr format.num.names < } + { % Format author and add spaces + field nameptr sort.name.format format.name$ * + " " * + nameptr #1 + 'nameptr := + } + while$ + % Format last author that must be formatted + field nameptr sort.name.format format.name$ * + % Add et al. if necessary + nameptr numnames < + { " zzzz" * } + 'skip$ + if$ + sortify % Clean up and change case + " " * % Add spaces + year.label * % Add year + " " * % Add spaces + title.number conv.int.to.str * % Add sorted title number + " " * % Add spaces + month.number.day * % Add month and day when available + 'author.year.sort.label := % Assign result to sort label. +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Called to make definitive sort label if author and +% editor are empty or unusable. +% +% Call with +% field make.definitive.field.year.sort.label +% where 'field' is the field that takes the author-role, +% perhaps already subjected to removing articles from the +% beginning. + +FUNCTION {make.definitive.field.year.sort.label} +{ % + % 'field' acts as author (L1). + % + % Then format year label (L2) of one of the forms: + % "0000" (missing year or explicit `no date') + % "9999" (`in press') + % year (otherwise; don't use originalyear here yet) + % + % From earlier sorting of titles, we have title number. Convert + % to string, which gives title label (L3) . + % + % Then tentative sorting label (author.year.sort.label) is a + % concatenation of + % L1 + % " " + % L2 + % " " + % L3 + % + % 'field' is on top of the stack. It is already supposed to be cleaned + % (i.e., sortified and space-removed), so this is already L1. + " " * % Add spaces + year.label * % Add year + " " * % Add spaces + title.number conv.int.to.str * % Add sorted title number + " " * % Add spaces + month.number.day * % Add month and day when available + 'author.year.sort.label := % Assign result to sort label. +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Called by make.final.sort.key if author or editor +% may be used. + +FUNCTION {make.definitive.author.editor.sort.label} +{ author empty$ + { editor empty$ + { % + % Use what has previously been stored in title.sort.label + % as author substitute . + title.sort.label make.definitive.field.year.sort.label + } + { editor make.definitive.name.sort.label } + if$ + } + { author make.definitive.name.sort.label } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Called by make.final.sort.key if author but not editor +% may be used. + +FUNCTION {make.definitive.author.sort.label} +{ author empty$ + { % + % Use what has previously been stored in title.sort.label + % as author substitute . + title.sort.label make.definitive.field.year.sort.label + } + { author make.definitive.name.sort.label } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Make final sort key . + +FUNCTION {make.final.sort.key} +{ % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % General strategy: + % + % Ordinary situation: author or editor-acting-as-author + % available. + % => Make author-with-initials label (L1) of one of the forms + % "Last1 F1 Last2 F2 ... LastN FN" + % "Last1 F1 Last2 F2 ... Last6 F6 zzzz" + % (where N <= 6 is the total number of authors, and + % "zzzz" represents et al. if there are more than 6 authors) + % No author, editor, and key: define title or substitute as sort key. + % + % Then format year label (L2) of one of the forms: + % "0000" (missing year or explicit `no date') + % "9999" (`in press') + % year (otherwise; don't use originalyear here yet) + % Add "/"month"/"day to the latter when available. + % + % From earlier sorting of titles, we have title number. Convert + % to string, which gives title label (L3) . + % + % Then final sorting label (author.year.sort.label) is a + % concatenation of + % L1 + % " " + % L2 + % " " + % L3 + % + % This can then be sorted. + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % + % Find out which field + % to use as author. + % + % Check reference type: + % if result is 1 then possibly editor acts as author + % 2 then editor does not act as author + % 3 then key should have been used + % 0 then unknown reference type + ref.type #2 = + { make.definitive.author.sort.label } + { make.definitive.author.editor.sort.label } + if$ + % + author.year.sort.label 'sort.key$ := +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% FUNCTIONS THAT ALLOW SORTING BY TITLE % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Remove first N characters of string if they are equal to +% teststring . +% +% Call with +% teststring N string chop.word +% +% E.g., +% "A " #2 "A fine old day" chop.word +% gives "fine old day" +% and +% "A " #2 "The fine old day" chop.word +% gives "The fine old day". + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + { s } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Remove "a ", "an ", and "the " from beginning of string. +% +% Call with +% string chop.articles + +FUNCTION {chop.articles} +{ 's := + "a " #2 + "an " #3 + "the " #4 + s + chop.word + chop.word + chop.word +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Format title and other non-name/date entries for sort key. +% +% Call with +% field format.sort.title +% +% Make sure that field is not empty, this is not checked here! + +FUNCTION {format.sort.title} +{ % + % Remove non-alphanumeric characters and change to lower case . + sortify + % + % Remove "a ", "an ", and "the " from the front . + chop.articles #1 entry.max$ substring$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Make title sorting label or substitute. + +FUNCTION {make.sort.title} +{ title empty$ + { text empty$ + { type empty$ + { howpublished empty$ + { note empty$ + { "no title, type, howpublished, or note in " cite$ * + warning$ + " " + } + { note format.sort.title } + if$ + } + { howpublished format.sort.title } + if$ + } + { type format.sort.title } + if$ + } + { text format.sort.title } + if$ + } + { title format.sort.title } + if$ + remove.spaces + 'title.sort.label := + title.sort.label 'sort.key$ := +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Make title number: rank number of sorted title . + +FUNCTION {make.title.number} +{ title.sort.label old.label = + { % + % A tie: old and new label are the same . + old.number 'title.number := + } + { % + % The usual situation: titles are different. + old.number #1 + 'title.number := + title.number 'old.number := + title.sort.label 'old.label := + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% CITATION LABELS % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Some macro strings about commas, etc. between authors + +FUNCTION {comma.between.two} { "\BCBT{}" } + +FUNCTION {comma.between.names} { ", " } + +FUNCTION {comma.before.last} { "\BCBL{}" } + +FUNCTION {and.before.last} { "\ \BBA{} " } + +FUNCTION {et.al.string.cite} { "\ \protect\BOthers{.}" } + +FUNCTION {et.al.string} { "\ \BOthers{.}" } + +FUNCTION {et.al.string.period} { "\ \BOthersPeriod{.}" } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Add author index entry when desired. +% "field" must have been defined before and must contain the +% contents of the relevant author field. +% "nameptr" must also have been defined before. It is the +% number of the author that must be formatted. (So if it is +% #2, then the 2nd author must be formatted.) +% What's on top of the stack (the formatted author) is written +% to the .bbl file. + +FUNCTION {add.name.index} +{ % + % + make.index + { "%" * write$ newline$ + "\protect\AX{" write$ + field nameptr sort.name.format format.name$ sortify write$ newline$ + "@" write$ + field nameptr index.name.format format.name$ "}%" * write$ newline$ + } + { "%" * write$ newline$ } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Citation labels when author or editor may be used. +% Field is on top of the stack. +% +% Call with +% format.num.names field make.name.cite.label + +FUNCTION {make.name.cite.label} +{ 'field := + 'format.num.names := + % + field num.names$ 'numnames := % numnames is the total number of names + % contained in field + % + % It is implicit in the APA manual that if "et al." would refer + % to exactly one author, then this author should be named + % instead of "et al." + % + format.num.names numnames #1 - = + { numnames 'format.num.names := } + 'skip$ + if$ + % + % Format first author: with or without initials + % + #1 'nameptr := + cite.initials #1 = + { field nameptr cite.initials.name.format format.name$ } + { field nameptr cite.name.format format.name$ } + if$ + add.name.index % Add index entry when desired. + % + numnames #1 = + 'skip$ + { format.num.names #1 = + { % + % First author et al. + % + et.al.string.cite write$ + } + { numnames #2 = + { % + % Given that format.num.names > 1, it is 2. + % Format second author. + % + #2 'nameptr := + field nameptr cite.name.format format.name$ 's := + % + % Check if 2nd author is explicit "others". + % If so, insert "et al." string. + % + s "others" = + { et.al.string.cite write$ } % First et al. + { % + % First \& Second + % + and.before.last write$ + s + add.name.index % Add index entry when desired. + } + if$ + } + { % + % 3 or more names, 2 or more must be cited + % + % for nameptr := 2 to format.num.names - 1 do + % + #2 'nameptr := + { nameptr format.num.names < } + { % + % Put comma between consecutive authors + % + comma.between.names write$ + % + % Format and add next author + % + field nameptr cite.name.format format.name$ + add.name.index % Add index entry when desired. + % + % Move to next author + % + nameptr #1 + 'nameptr := + } + while$ + % + % nameptr = format.num.names + % Format this author. + % + field nameptr cite.name.format format.name$ 's := + % + format.num.names numnames = + { % + % This is also the last author. Add (optional) comma. + % + comma.before.last write$ + % + % Check if this author is explicit "others". + % If so, insert "et al." string. + % + s "others" = + { et.al.string.cite write$ } + { and.before.last write$ + s + add.name.index % Add index entry when desired. + } + if$ + } + { % + % This is not the last author. + % Add comma, author name, and "et al." + % + comma.between.names write$ + s + add.name.index % Add index entry when desired. + % + comma.before.last et.al.string.cite * write$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Citation labels when no author, editor, firstkey or key +% is available. + +FUNCTION {make.title.cite.label} +{ % + % Formatting: check if formatted as article title or + % as book title, and insert this formatting. + % + is.atype + { "\APACciteatitle{" } + { "\APACcitebtitle{" } + if$ + % + title empty$ + { text empty$ + { type empty$ + { howpublished empty$ + { note empty$ + { cite$ } + { note } + if$ + } + { howpublished } + if$ + } + { type } + if$ + } + { text } + if$ + } + { title } + if$ + % + % Connect with formatting. + % + * "}" * + % + % Write to output + % + write$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Citation labels when author or editor may be used. + +FUNCTION {make.author.editor.cite.label} +{ author empty$ + { editor empty$ + { % + % No author or editor: + % Use title or other description as citation label. + % + make.title.cite.label + "}{%" write$ newline$ + make.title.cite.label + } + { cite.num.names.full editor make.name.cite.label + "}{%" write$ newline$ + cite.num.names.short editor make.name.cite.label + } + if$ + } + { cite.num.names.full author make.name.cite.label + "}{%" write$ newline$ + cite.num.names.short author make.name.cite.label + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Citation labels when author (but not editor) may be used. + +FUNCTION {make.author.cite.label} +{ author empty$ + { % + % No author: + % Use title or other description as citation label. + % + make.title.cite.label + "}{%" write$ newline$ + make.title.cite.label + } + { cite.num.names.full author make.name.cite.label + "}{%" write$ newline$ + cite.num.names.short author make.name.cite.label + } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Make "a" or "b" supplement to year label when necessary. + +FUNCTION {make.definitive.year.supplement} +{ % + % Add "a", "b", etc. when necessary. + % + add.to.year #0 = + { "" } + { "{\protect" + year empty$ + { "\BCntND" * } + { year "\bibnodate" = + { "\BCntND" * } + { year "\BIP" = + { "\BCntIP" * } + { "\BCnt" * } + if$ + } + if$ + } + if$ + "{" * add.to.year int.to.str$ * "}}" * + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Add \protect if year is \BIP or \bibnodate. + +FUNCTION {protect.year} +{ year empty$ + { "{\protect\bibnodate{}}" } + { year "\bibnodate" = + { "{\protect\bibnodate{}}" } + { year "\BIP" = + { "{\protect\BIP{}}" } + { year } + if$ + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Make year label that is used for citations in text. + +FUNCTION {make.definitive.year.label} +{ "{\protect\APACyear{" + originalyear empty$ + { protect.year } + { originalyear "\bibnodate" = % date of original publication unknown + { translator empty$ + { protect.year } + { year empty$ + { "{\protect\BTRANSL{}~\protect\bibnodate{}}" } % trans. n.d. + { "{\protect\BTRANSL{}}~" protect.year * } % trans. 1931 + if$ + } + if$ + } + { year empty$ + { originalyear "/{\protect\bibnodate{}}" * } % 1923/n.d. + { originalyear year = + { protect.year } + { originalyear "/" * protect.year * } % 1923/1961 + if$ + } + if$ + } + if$ + } + if$ + * "}}%" * write$ newline$ + % + % Add "a", "b", etc. when necessary. + % + "{\protect\APACexlab{" "}}" + make.definitive.year.supplement enclose.check +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Make citation labels: +% - Full formatted author list (or substitute if no author +% available) for first citation; +% - Short formatted author list (ditto) for subsequent +% citations; +% - Year, with originalyear when applicable, and "a" or "b" +% etc. addendum when necessary. + +FUNCTION {make.cite.labels} +{ newline$ + % + % Write a few lines for testing purposes. + % + test + { "\bibitem[]{} \fullciteA{" cite$ * "}" * write$ newline$ + "\bibitem[]{} \citeA{" cite$ * "}" * write$ newline$ + } + 'skip$ + if$ + % + "\bibitem[\protect\citeauthoryear{%" write$ newline$ + % + % When key or firstkey is available, this takes precedence. + % + firstkey empty$ not + { % + % Full cite: firstkey. + % + firstkey write$ + "}{%" write$ newline$ + % + % Short cite: if key is not empty and cite.initials is 0, + % then key, else firstkey. + % + cite.initials #0 = + key empty$ not + and + { key } + { firstkey } + if$ + write$ + } + { key empty$ not + { % + % No firstkey, but key available: + % Both full and short labels are key. + % + key write$ + "}{%" write$ newline$ + key write$ + } + { % No key or firstkey, so find out which field + % to use as author. + % + % Check reference type: + % if result is 1 then possibly editor acts as author + % 2 then editor does not act as author + % 3 then key should have been used + % 0 then unknown reference type + ref.type #2 = + { make.author.cite.label } + { make.author.editor.cite.label } + if$ + } + if$ + } + if$ + "}{%" write$ newline$ + % + % Make year label that's used for citations + % + make.definitive.year.label write$ + "}]{%" write$ newline$ + cite$ write$ + "}%" write$ newline$ + % author.year.sort.label write$ newline$ % for testing purposes + % year.label write$ newline$ % for testing purposes + % + % If the item is used in a meta-analysis, indicate this with + % a star. + % + "\APACinsertmetastar{%" write$ newline$ + cite$ write$ + "}%" write$ newline$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% FORMATTING OF REFERENCE LIST % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% "(Ed.)" or "(Eds.)" postfix. +% editor must not be empty + +FUNCTION {editor.postfix} +{ editor num.names$ #1 > + { "(\BEDS)" } + { "(\BED)" } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% "(Ed. \& Trans.)" postfix +% editor must not be empty + +FUNCTION {editor.trans.postfix} +{ editor num.names$ #1 > + { "(\BEDS{} \BAnd{} \BTRANSS)" } + { "(\BED{} \BAnd{} \BTRANS)" } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % "(Trans.)" postfix + % translator must not be empty + % +FUNCTION {trans.postfix} +{ translator num.names$ #1 > + { "(\BTRANSS)" } + { "(\BTRANS)" } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Format authors (or editors acting as authors) for +% reference list. +% +% Call with +% dot field format.author.names +% where field is the field (string) that contains the authors +% (or editors acting as authors) that must be formatted and +% dot is 1 or 0 indicating whether or not a period must end +% the formatting. + +FUNCTION {format.author.names} +{ 'field := + 'dot := + % + field num.names$ 'numnames := % numnames is the total number of names + % contained in field + numnames 'format.num.names := % Format all authors + format.num.names name.max > % Unless this exceeds the maximum of 6. + { dot + { name.max 'format.num.names := } % Format 6 authors + { cite.num.names.full 'format.num.names := } % Format 1 editor + if$ + } + 'skip$ + if$ + % + % It is kind of explicit in the APA manual that if "et al." would + % refer to exactly one author (the 7th), then this author should + % still be replaced by "et al.", unlike with citations. + % So format.num.names is not adapted. + % + % Format first author + % + #1 'nameptr := + field nameptr author.name.format format.name$ + % + % Add period if required and if this is the only author. + % + numnames #1 = + dot + and + { add.period$ } + 'skip$ + if$ + add.name.index % Add index entry when desired. + % + numnames #1 = + 'skip$ + { format.num.names #1 = + { % + % First author et al. + % + comma.between.two + % + % Add period if required. + % + dot + { et.al.string.period * } + { et.al.string * } + if$ + write$ + } + { numnames #2 = + { % + % Given that format.num.names > 1, it is 2. + % + comma.between.two write$ + % + % Format second author. + % + #2 'nameptr := + field nameptr author.name.format format.name$ 's := + % + % Check if 2nd author is explicit "others". + % If so, insert "et al." string. + % + s "others" = + { % + % First et al. + % Add period if required. + % + dot + { et.al.string.period } + { et.al.string } + if$ + write$ + } + { % + % First \& Second + % + and.before.last write$ + % + % Add period if required. + % + dot + { s add.period$ } + { s } + if$ + add.name.index % Add index entry when desired. + } + if$ + } + { % + % 3 or more names, 2 or more must be cited + % + % for nameptr := 2 to format.num.names - 1 do + % + #2 'nameptr := + { nameptr format.num.names < } + { % + % Put comma between consecutive authors + % + comma.between.names write$ + % + % Format and add next author + % + field nameptr author.name.format format.name$ + add.name.index % Add index entry when desired. + % + % Move to next author + % + nameptr #1 + 'nameptr := + } + while$ + % + % nameptr = format.num.names + % Format this author. + % + field nameptr author.name.format format.name$ 's := + % + format.num.names numnames = + { % + % This is also the last author. Add (optional) comma. + % + comma.before.last write$ + % + % Check if this author is explicit "others". + % If so, insert "et al." string. + % + s "others" = + { % + % Add period if required. + % + dot + { et.al.string.period } + { et.al.string } + if$ + write$ + } + { and.before.last write$ + % + % Add period if required. + % + dot + { s add.period$ } + { s } + if$ + add.name.index % Add index entry when desired. + } + if$ + } + { % + % This is not the last author. + % Add comma, author name, and "et al." + % + comma.between.names write$ + s + add.name.index % Add index entry when desired. + % + comma.before.last + % + % Add period if required. + % + dot + { et.al.string.period * } + { et.al.string * } + if$ + write$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Format authors in reference list, where it is given that +% the author field is not empty. + +FUNCTION {format.authors} +{ #1 author format.author.names + "%" write$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Format editors in reference list in case editors act as +% authors (such as reference to entire edited book) +% +% Letheridge, S., \& Cannon, C. R. (Eds.). +% or +% Letheridge, S. (Ed.). (if only 1 editor) +% +% editor must not be empty + +FUNCTION {format.editors.as.authors} +{ #0 editor format.author.names + "\ " editor.postfix * add.period$ write$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Format editors in reference list in case editors are also +% translators and act as authors (such as reference to entire +% edited book of translated articles) +% +% Letheridge, S., \& Cannon, C. R. (Eds. and Trans.). +% or +% Letheridge, S. (Ed. and Trans.). (if only 1 editor) +% +% editor must not be empty + +FUNCTION {format.ed.trans.as.authors} +{ #0 editor format.author.names + "\ " editor.trans.postfix * add.period$ write$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Format a list of names with the initials before the +% last names (i.e., names in the editor position), +% commas between names (not between 2), +% and ampersand (\&) before last name. +% These names are not put in the author index. +% +% Call with +% field format.editor.names + +FUNCTION {format.editor.names} +{ 'field := + % + field num.names$ 'numnames := % numnames is the total number of names + % contained in field + numnames 'format.num.names := % Format all authors + format.num.names name.max > % Unless this exceeds the maximum of 6. + { #1 'format.num.names := } % Then it becomes 1 (First et al.) + 'skip$ + if$ + % + % Format first editor + % + field #1 editor.name.format format.name$ + % + numnames #1 = + 'skip$ + { format.num.names #1 = + { et.al.string * } % First editor et al., no comma. + { numnames #2 = + { % + % Given that format.num.names > 1, it is 2. + % No comma. Format second editor. + % + field #2 editor.name.format format.name$ 's := + % + % Check if 2nd editor is explicit "others". + % If so, insert "et al." string. + % + s "others" = + { et.al.string * } % First et al. + { and.before.last * s * } % First \& Second + if$ + } + { % + % 3 or more names, 2 or more must be cited + % + % for nameptr := 2 to format.num.names - 1 do + % + #2 'nameptr := + { nameptr format.num.names < } + { % + % Put comma between consecutive editors + % + comma.between.names * + % + % Format and add next editor + % + field nameptr editor.name.format format.name$ * + % + % Move to next editor + % + nameptr #1 + 'nameptr := + } + while$ + % + % nameptr = format.num.names + % Format this editor. + % + field nameptr editor.name.format format.name$ 's := + % + format.num.names numnames = + { % + % This is also the last editor. Add (optional) comma. + % + comma.before.last * + % + % Check if this editor is explicit "others". + % If so, insert "et al." string. + % + s "others" = + { et.al.string * } + { and.before.last * s * } + if$ + } + { % + % This is not the last editor. + % Add comma, editor name, and "et al." + % + comma.between.names * s * + comma.before.last * et.al.string * + } + if$ + } + if$ + } + if$ + } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format editors in case editors do not act as authors + % (such as reference to chapter in edited book) + % + % L. W. Poon (Ed.) (1 editor) + % or + % A. S. Gurman \& D. P. Kniskern (Eds.) (2 editors) + % or + % L. Poon, A. Jones, \& D. P. Smith (Eds.) (>2 editors) + % + % editor must not be empty + % +FUNCTION {format.editors.in.line} +{ editor format.editor.names + editor.postfix connect.with.space.check +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format editors in case editors are also translators + % and do not act as authors + % (such as reference to chapter in edited book + % of translated articles) + % + % L. W. Poon (Ed. and Trans.) (1 editor) + % or + % A. S. Gurman \& D. P. Kniskern (Eds. and Trans.) (2 editors) + % or + % L. Poon, A. Jones, \& D. P. Smith (Eds. and Trans.) (>2 editors) + % + % editor must not be empty + % +FUNCTION {format.editors.trans.in.line} +{ editor format.editor.names + editor.trans.postfix connect.with.space.check +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format translators in case translators act as editors + % (such as reference to chapter in translated book) + % + % L. W. Poon (Trans.) (1 translator) + % or + % A. S. Gurman \& D. P. Kniskern (Trans.) (2 translators) + % or + % L. Poon, A. Jones, \& D. P. Smith (Trans.) (>2 translators) + % + % translator must not be empty + % +FUNCTION {format.translators.in.line} +{ translator format.editor.names + trans.postfix connect.with.space.check +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format translators in case translator does not act as editor + % (such as reference to translated book) + % + % L. Solotaroff, Trans. + % +FUNCTION {format.translators.in.paren.check} +{ translator empty$ + { "" } + { translator format.editor.names + translator num.names$ #1 > + { ", \BTRANSS{}" * } + { ", \BTRANS{}" * } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format editors and translators in case neither act as editor + % (such as reference to edited or translated book with a + % a single author) + % + % L. Solotaroff, Ed. + % L. Solotaroff, Ed. \& Trans. + % L. Solotaroff, Trans. + % L. Solotaroff, Ed. \& S. Prokofieff, Trans. + % +FUNCTION {format.editors.translators.in.paren.check} +{ editor empty$ + { translator empty$ + { "" } + { translator format.editor.names + translator num.names$ #1 > + { ", \BTRANSS{}" * } + { ", \BTRANS{}" * } + if$ + } + if$ + } + { editor format.editor.names + editor num.names$ #1 > + { ", \BEDS{}" * } + { ", \BED{}" * } + if$ + translator empty$ + 'skip$ + { editor translator = + { editor num.names$ #1 > + { " \BAnd{} \BTRANSS" * } + { " \BAnd{} \BTRANS" * } + if$ + } + { " \BAnd{} " * + translator format.editor.names * + translator num.names$ #1 > + { ", \BTRANSS{}" * } + { ", \BTRANS{}" * } + if$ + } + if$ + } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % translator of article + % +FUNCTION {format.atrans.check} +{ format.translators.in.paren.check parenthesize.check } + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format "In editor (Ed.), " + % +FUNCTION {format.in.editors} +{ "\BIn{} " + editor empty$ + 'skip$ + { format.editors.in.line * ", " * } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format "In translator (Trans.)," + % +FUNCTION {format.in.trans} +{ "\BIn{} " + translator empty$ + 'skip$ + { format.translators.in.line * ", " * } + if$ +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format "In editor (Ed. and Trans.)" + % or "In editor (Ed.)" if editor not equal to translator + % +FUNCTION {format.in.editors.trans} +{ "\BIn{} " + editor empty$ + { translator empty$ + 'skip$ + { format.translators.in.line * ", " * } + if$ + } + { translator empty$ + { format.editors.in.line * } + { editor translator = + { format.editors.trans.in.line * } + { format.editors.in.line * } + if$ + } + if$ + ", " * + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% DATE % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Formats year (+ extra label) between parentheses (which +% may be redefined by \BBOP and \BBCP). +% Extra label can be used for +% Bentler, P. M. (1983a)
+% Bentler, P. M. (1983b)
+ +FUNCTION {format.year.check} +{ "\BBOP{}" "\BBCP{}" % Opening and closing parentheses + year empty$ + { "\bibnodate{}" } + { year } + if$ + % + % Add "a", "b", etc. when necessary. + % + make.definitive.year.supplement * + % + % Combine everything + % + enclose.check +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Formats year (+ extra label) + month + day between +% parentheses (which may be redefined by \BBOP and \BBCP). +% Extra label can be used for +% Bentler, P. M. (1983a, June 7)
+% Bentler, P. M. (1983b, April 4)
+ +FUNCTION {format.year.month.day.check} +{ "\BBOP{}" "\BBCP{}" % Opening and closing parentheses + year empty$ + { "\bibnodate{}" } + { year } + if$ + % + % Add "a", "b", etc. when necessary. + % + make.definitive.year.supplement * + % + % Add month and day when present. + % + month connect.with.comma.check + day connect.with.space.check + % + % Combine everything + % + enclose.check +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% TITLE FORMATTING % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title of article in journal or book + % no finishing period + % field must be on top of stack + % (so englishtitle can be handled also) + % +FUNCTION {format.atitle.no.dot} +{ "\BBOQ{}" swap$ + "\BBCQ{}" swap$ + duplicate$ empty$ + 'skip$ + { "t" change.case$ } + if$ + enclose.check +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title of article in journal or book + % with finishing period + % field must be on top of stack + % (so englishtitle can be handled also) + % +FUNCTION {format.atitle.dot} +{ "\BBOQ{}" swap$ + "\BBCQ{} " swap$ + duplicate$ empty$ + 'skip$ + { "t" change.case$ add.period$ } + if$ + enclose.check +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title of article in journal or book + % field must be on top of stack + % second element on stack must be connected: + % if that is empty, then atitle.dot + % else atitle.no.dot, connect, and add period + % +FUNCTION {format.atitle.connect} +{ swap$ + duplicate$ empty$ + { pop$ + format.atitle.dot + } + { swap$ + format.atitle.no.dot + swap$ connect.with.space.check + add.period$ + } + if$ +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title of book or so, no period + % + % call with + % field format.btitle.no.dot + % +FUNCTION {format.btitle.no.dot} +{ duplicate$ empty$ + 'skip$ + { "t" change.case$ emphasize.check } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title of book or so, with period + % (maybe emphasize and add.period$ should be reversed) + % call with + % field format.btitle.dot + % +FUNCTION {format.btitle.dot} +{ duplicate$ empty$ + 'skip$ + { "t" change.case$ add.period$ emphasize.check } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title of book and similar + % field must be on top of stack + % second element on stack must be connected: + % if that is empty, then btitle.dot + % else btitle.no.dot, connect, and add period + % +FUNCTION {format.btitle.connect} +{ swap$ + duplicate$ empty$ + { pop$ + format.btitle.dot + } + { swap$ + format.btitle.no.dot + swap$ connect.with.space.check + add.period$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title of book and similar + % field must be on top of stack + % second element on stack must be connected + % +FUNCTION {format.btitle.connect.no.dot} +{ swap$ + duplicate$ empty$ + { pop$ + format.btitle.no.dot + } + { swap$ + format.btitle.no.dot + swap$ connect.with.space.check + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format englishtitle (of nonenglish article, etc.) + % +FUNCTION {format.etitle.check} +{ englishtitle empty$ + { "" } + { englishtitle "t" change.case$ bracket.check } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format type (of article, etc.) + % +FUNCTION {format.atype.check} +{ type bracket.check } + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format title and englishtitle (of article, etc.) + % +FUNCTION {format.atitle.check} +{ format.etitle.check + title format.atitle.connect +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format title, englishtitle, and type + % (of article, etc.) + % +FUNCTION {format.atitle.type.check} +{ format.etitle.check + format.atype.check connect.with.space.check + title format.atitle.connect +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format title, englishtitle, + % and translator (of article, etc.) + % +FUNCTION {format.atitle.trans.check} +{ format.etitle.check + format.atrans.check connect.with.space.check + title format.atitle.connect +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format title, englishtitle, type, + % and translator (of article, etc.) + % +FUNCTION {format.atitle.type.trans.check} +{ format.etitle.check + format.atype.check connect.with.space.check + format.atrans.check connect.with.space.check + title format.atitle.connect +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format journal, volume, number and pages + % call with + % formatted.pages format.journal.vol.num.pages.check + % +FUNCTION { format.journal.vol.num.pages.check } +{ "journal" journal warning.if.empty + journal emphasize.check + volume emphasize.check connect.with.comma.check + number parenthesize.check "" connect.check + swap$ connect.with.comma.check +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % volume of book, checks whether + % "Volume" or "Volumes" + % + % call with + % field format.bvolume.check + % +FUNCTION {format.bvolume.check} +{ duplicate$ empty$ + 'skip$ + { duplicate$ multi.result.check + { "\BVOLS" swap$ tie.or.space.connect } + { "\BVOL" swap$ tie.or.space.connect } + if$ + } + if$ +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % edition of book, must not be empty + % call with + % field format.edition.check + % +FUNCTION {format.edition.check} +{ duplicate$ empty$ + 'skip$ + { "\BEd" connect.with.space.check } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % volume and edition of book + % +FUNCTION {format.bvol.edition.check} +{ edition format.edition.check + volume format.bvolume.check + connect.with.comma.check +} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % volume and edition of book + % +FUNCTION {format.bvol.edition} +{ format.bvol.edition.check + parenthesize.check +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % volume and edition and translator of translated book + % +FUNCTION {format.bvol.edition.trans} +{ format.bvol.edition.check + format.translators.in.paren.check connect.with.semicolon.check + parenthesize.check +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % volume, edition, editor, and translator of (translated) book + % +FUNCTION {format.bvol.edition.editor.trans} +{ format.bvol.edition.check + format.editors.translators.in.paren.check connect.with.semicolon.check + parenthesize.check +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % formats pages by first checking if 1 or more pages + % and prefixing pages with "p." or "pp." (these strings + % are given in the commands \BPG and \BPGS, respectively), + % whichever is applicable, and do a tie or space connect + % + % call with + % field format.bpages.check + % +FUNCTION {format.bpages.check} +{ duplicate$ empty$ + 'skip$ + { duplicate$ multi.result.check + { "\BPGS" swap$ tie.or.space.connect } + { "\BPG" swap$ tie.or.space.connect } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % formats chapters by first checking if 1 or more chapters + % and prefixing pages with "chap." (this string + % is given in the commands \BCHAP and \BCHAPS, respectively), + % whichever is applicable, and do a tie or space connect + % + % call with + % field format.bchapter.check + % +FUNCTION {format.bchapter.check} +{ duplicate$ empty$ + 'skip$ + { duplicate$ multi.result.check + { "\BCHAPS" swap$ tie.or.space.connect } + { "\BCHAP" swap$ tie.or.space.connect } + if$ + } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % volume, edition, and pages or chapter of article in book etc. + % +FUNCTION {format.bvol.edition.pages} +{ format.bvol.edition.check + pages empty$ + { chapter format.bchapter.check connect.with.comma.check } + { pages format.bpages.check connect.with.comma.check } + if$ + parenthesize.check +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title, volume, edition of book + % +FUNCTION {format.btitle.vol.edition} +{ format.etitle.check + format.bvol.edition connect.with.space.check + title format.btitle.connect.no.dot +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title, volume, edition, and translator of book + % +FUNCTION {format.btitle.vol.edition.trans} +{ format.etitle.check + format.bvol.edition.trans connect.with.space.check + title format.btitle.connect.no.dot +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title, volume, edition, editor, and translator of book + % +FUNCTION {format.btitle.vol.edition.editor.trans} +{ format.etitle.check + format.bvol.edition.editor.trans connect.with.space.check + title format.btitle.connect.no.dot +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format address and publisher of book etc. + % + % New York: Wiley + % or + % Wiley (if address empty) + % or + % New York (if publisher empty) + % +FUNCTION {format.address.publisher} +{ address publisher connect.with.colon.check } + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format address and publisher of book etc. + % + % New York: Wiley + % or + % Wiley (if address empty) + % or + % New York (if publisher empty) + % + % warning if no publisher or no address + % +FUNCTION {format.address.publisher.check} +{ "publisher" publisher warning.if.empty + "address" address warning.if.empty + format.address.publisher +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format number as in reports: No. 2017 + % call with + % field format.rnumber.check + % +FUNCTION {format.rnumber.check} +{ duplicate$ empty$ + 'skip$ + { duplicate$ multi.result.check + { "\BNUMS" swap$ tie.or.space.connect } + { "\BNUM" swap$ tie.or.space.connect } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format type and number of a standalone item + % call with + % format.type.number + % +FUNCTION { format.type.number } +{ number empty$ + { type bracket.check } + { type + number format.rnumber.check connect.with.space.check + parenthesize.check + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format howpublished if not empty, + % for various entry types + % call with + % format.howpublished + % +FUNCTION {format.howpublished} +{ howpublished empty$ + 'skip$ + { output.dot.new.block + howpublished + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format howpublished if not empty, + % for misc + % call with + % output.howpublished + % +FUNCTION {output.howpublished} +{ howpublished empty$ + 'skip$ + { howpublished + output.dot.new.block + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% NOTE FORMATTING FUNCTIONS % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format optional note + % +FUNCTION {format.note} +{ note parenthesize.check } + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format original year of publication and note + % (reprint or translation) + % +FUNCTION {format.orig.year.note} +{ originalyear empty$ + { note parenthesize.check } + { originalyear "\bibnodate" = + { note parenthesize.check } + { "\BOWP{} " originalyear * % original work published + note connect.with.semicolon.check + parenthesize.check + } + if$ + } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format original journal of publication and note + % (reprint or translation) + % +FUNCTION {format.orig.journal.note} +{ "\BREPR{} " % reprinted from + originaljournal emphasize.check * + originalyear connect.with.comma.check + originalvolume emphasize.check connect.with.comma.check + originalnumber bracket.check "" connect.check + originalpages connect.with.comma.check + note connect.with.semicolon.check + parenthesize.check +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format original book of publication and note + % (reprint or translation) + % +FUNCTION {format.orig.book.note} +{ "\BREPR{}" % Reprinted from + % + % title of the book the work was originally published in + % + originalbooktitle format.btitle.no.dot connect.with.space.check + % + % volume, edition, pages + % + originaledition format.edition.check connect.with.comma.check + originalvolume format.bvolume.check connect.with.comma.check + originalpages format.bpages.check connect.with.comma.check + % + % editor of the original book + % + originaleditor empty$ + 'skip$ + { "by " originaleditor format.editor.names * + originaleditor num.names$ #1 > + { ", \BEDS{}" * } + { ", \BED{}" * } + if$ + connect.with.comma.check + } + if$ + % + % year of the original publication + % + originalyear connect.with.comma.check + % + originaladdress originalpublisher connect.with.colon.check + connect.with.comma.check + note connect.with.semicolon.check + parenthesize.check +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format information about original publication of reprint + % and format optional note + % +FUNCTION {format.orig.note} +{ originaljournal empty$ + { originalbooktitle empty$ + { note empty$ + { originalyear empty$ + { add.period$ } + { originalyear "\bibnodate" = + { add.period$ } + { output.dot.new.block + format.orig.year.note + } + if$ + } + if$ + } + { output.dot.new.block + format.orig.year.note + } + if$ + } + { output.dot.new.block + format.orig.book.note + } + if$ + } + { output.dot.new.block + format.orig.journal.note + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% PERIODICALS % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % article in periodical: journal, magazine, newspaper, ... + % + % call with + % formatted.pages formatted.date periodical + % +FUNCTION {periodical} +{ % + % author or editor, year, title, englishtitle, type + % + author empty$ + % + % no author: possibly special issue with editors as authors + % (APA manual, ex. 11, p. 121) + % + { editor empty$ + % + % no author or editor: title serves as author. + % title formatted as article title (APA manual not consistent in this, + % compare statement on p. 119: ``treat as book title'' and + % example 8, p. 121: no underlining => article title) + % + { format.atitle.type.trans.check output.new.block + % + % now formatted date on top of stack + % + output.dot.new.block + } + % + % format editor and year, and check if year is present + % format article title and check if title or type present + % + { format.editors.as.authors start.new.block + % + % now formatted date on top of stack + % + output.dot.new.block + format.atitle.type.trans.check output.new.block + } + if$ + } + % + % format author and year, and check if year is present + % format article title and check if title or type present + % + { format.authors start.new.block + % + % now formatted date on top of stack + % + output.dot.new.block + format.atitle.type.trans.check output.new.block + } + if$ + % + % format journal name, volume and issue number, and pages + % and check if journal not empty + % + format.journal.vol.num.pages.check + % + % if not empty, insert howpublished. + % (used if article is retrieved from the internet) + % + format.howpublished + % + % possible reprint and optional note + % + format.orig.note + fin.entry +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % journal article + % +FUNCTION {article} +{ pages format.year.month.day.check periodical } + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % magazine article + % +FUNCTION {magazine} +{ pages format.year.month.day.check periodical } + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % newspaper article + % +FUNCTION {newspaper} +{ pages format.bpages.check format.year.month.day.check periodical } + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % (translation of) entire book + % +FUNCTION {book} +{ % + % author or editor, + % year, title, englishtitle, translator + % + author empty$ + % + % no author: possibly edited book with editors as authors + % + { editor empty$ + % + % no author or editor: title serves as author. + % title formatted as book title + % + { format.btitle.vol.edition.trans + format.type.number connect.with.space.check + output.dot.new.block + format.year.check output.dot.new.block + } + % + % format editor and year, and check if year is present + % format booktitle, volume, and edition and check if title present + % + { translator empty$ + { format.editors.as.authors start.new.block + format.year.check output.dot.new.block + format.btitle.vol.edition + } + % + % format translator correctly + % + { translator editor = + not + { format.editors.as.authors start.new.block + format.year.check output.dot.new.block + format.btitle.vol.edition.trans + } + { format.ed.trans.as.authors start.new.block + format.year.check output.dot.new.block + format.btitle.vol.edition + } + if$ + } + if$ + format.type.number connect.with.space.check + output.dot.new.block + } + if$ + } + % + % format author and year, and check if year is present + % format booktitle, volume, and edition and check if title present + % + { format.authors start.new.block + format.year.check output.dot.new.block + format.btitle.vol.edition.editor.trans + format.type.number connect.with.space.check + output.dot.new.block + } + if$ + % + % format address and publisher, check if address and publisher present + % + format.address.publisher.check + % + % format original publication (of reprint/translation) + % and optional note + % + format.orig.note + fin.entry +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % (translated) article or chapter in edited book + % +FUNCTION {incollection} +{ author empty$ + % + % no author: title serves as author. + % title formatted as article title (APA manual not consistent in this, + % compare statement on p. 119: ``treat as book title'' and + % example 8, p. 121: no underlining => article title) + % + { editor.ne.trans + { format.atitle.type.trans.check } + { format.atitle.type.check } + if$ + output.new.block + % + % format month and day as well when available + % esp. for ``collections'' that are not books, + % such as parts of internet documents + % + format.year.month.day.check output.dot.new.block + } + % + % format author and year, and check if year is present + % format article title and check if title or type present + % + { format.authors start.new.block + format.year.month.day.check output.dot.new.block + editor.ne.trans + { format.atitle.type.trans.check } + { format.atitle.type.check } + if$ + output.new.block + } + if$ + % + % format "In " editor " (Ed. \& Trans.), " + % booktitle, volume, edition, pages + % + format.in.editors.trans + format.bvol.edition.pages + booktitle format.btitle.connect * output.dot.new.block + % + % format address and publisher, check if publisher present + % + format.address.publisher.check + % + % if not empty, insert howpublished. + % (used if article is retrieved from the internet) + % + format.howpublished + % + % format original publication (of reprint/translation) + % and optional note + % + format.orig.note + fin.entry +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% REPORTS % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % technical report number + % +FUNCTION {format.tr.number} +{ type empty$ + { "\BTR{}" } + { type "\bibnotype" = + { "" } + { type } + if$ + } + if$ + number format.rnumber.check connect.with.space.check +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title, volume, edition, report number + % +FUNCTION {format.tr.title.number} +{ format.etitle.check + format.bvol.edition.check + format.tr.number connect.with.semicolon.check + parenthesize.check connect.with.space.check + title format.btitle.connect +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % format address and institution of reports etc. + % + % Washington, DC: National Institute of Education + % or + % National Institute of Education (if address empty) + % + % warning if no institution + % +FUNCTION {format.address.institution.check} +{ "institution" institution warning.if.empty + "address" address warning.if.empty + address institution connect.with.colon.check +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % reports + % +FUNCTION {techreport} +{ author empty$ + % + % no author: possibly edited report with editors as authors + % + { editor empty$ + % + % no author or editor: title serves as author. + % title formatted as book title + % + { format.tr.title.number output.dot.new.block + format.year.month.day.check output.dot.new.block + } + % + % format editor and year, and check if year is present + % format report title and check if title present + % format volume, edition, type, and number + % + { format.editors.as.authors start.new.block + format.year.month.day.check output.dot.new.block + format.tr.title.number output.dot.new.block + } + if$ + } + % + % format author and year, and check if year is present + % format report title and check if title present + % format volume, edition, type, and number + % + { format.authors start.new.block + format.year.month.day.check output.dot.new.block + format.tr.title.number output.dot.new.block + } + if$ + % + % format address and institution, check if institution present + % + format.address.institution.check + % + % if not empty, insert howpublished. + % (used if report is retrieved from the internet) + % + format.howpublished + % + % format optional note + % + note empty$ + { add.period$ } + { output.dot.new.block + format.note + } + if$ + fin.entry +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % (translated) article or chapter in report + % +FUNCTION {intechreport} +{ author empty$ + % + % no author: title serves as author. + % title formatted as article title (APA manual not consistent in this, + % compare statement on p. 119: ``treat as book title'' and + % example 8, p. 121: no underlining => article title) + % + { editor.ne.trans + { format.atitle.trans.check } + { format.atitle.check } + if$ + output.new.block + format.year.month.day.check output.dot.new.block + } + % + % format author and year, and check if year is present + % format article title and check if title or type present + % + { format.authors start.new.block + format.year.month.day.check output.dot.new.block + editor.ne.trans + { format.atitle.trans.check } + { format.atitle.check } + if$ + output.new.block + } + if$ + % + % format "In " editor " (Ed. \& Trans.), " + % booktitle, volume, edition, pages + % + format.in.editors.trans + % + % volume, edition, report type and number, pages + % + format.bvol.edition.check + format.tr.number connect.with.semicolon.check + pages format.bpages.check connect.with.comma.check + parenthesize.check + % + booktitle format.btitle.connect * + output.dot.new.block + % + % format address and publisher, check if publisher present + % + format.address.institution.check + % + % if not empty, insert howpublished. + % (used if report is retrieved from the internet) + % + format.howpublished + % + % format original publication (of reprint/translation) + % and optional note + % + format.orig.note + fin.entry +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % papers presented at conferences etc. + % +FUNCTION {lecture} +{ author empty$ + { "author" author warning.if.empty } + { format.authors start.new.block } + if$ + % + % format year, month, and day, and check if year present + % format title and check if title present + % format howpublished and check if howpublished present + % + format.year.month.day.check output.dot.new.block + symposium empty$ + { format.etitle.check + title format.btitle.connect output.new.block + howpublished empty$ + { "symposium and howpublished missing in " * cite$ warning$ } + { howpublished } + if$ + } + { format.atitle.type.check output.new.block + "\BIn{} " + chair empty$ + 'skip$ + { chair format.editor.names + chair num.names$ #1 > + { "(\BCHAIRS)" } + { "(\BCHAIR)" } + if$ + connect.with.space.check * ", " * + } + if$ + symposium format.btitle.no.dot * + format.howpublished + } + if$ + % + % format optional note + % + note empty$ + { add.period$ } + { output.dot.new.block + format.note + } + if$ + fin.entry +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% THESES % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % default thesis type is on top of stack + % now, if type field is empty, this default is used + % else default is removed and replaced by value of + % type field + % +FUNCTION {format.type.school} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ + school connect.with.comma.check +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % phd theses, etc. + % call with + % "default.published.thesis" "default.unpublished.thesis" thesis + % +FUNCTION {thesis} +{ author empty$ + { "author" author warning.if.empty } + { format.authors start.new.block } + if$ + % + % format year and check if year present + % + format.year.check output.dot.new.block + % + % format title and check if title present + % journal empty => unpublished PhD thesis + % journal not empty => published (e.g., Dissertation Abstracts Int.) + % + journal empty$ + { format.btitle.vol.edition output.dot.new.block + % + % pop default unpublished thesis, top is default published thesis + % + swap$ pop$ + format.type.school + address connect.with.comma.check + } + % + % pop default published thesis, top is default unpublished thesis + % + { pop$ + type empty$ + school empty$ + originalyear empty$ + and + and + { pop$ + "" + } + { format.type.school + originalyear connect.with.comma.check + parenthesize.check + } + if$ + format.etitle.check + swap$ connect.with.space.check + "title" title warning.if.empty + title format.atitle.connect output.new.block + pages format.journal.vol.num.pages.check + } + if$ + % + % if not empty, insert howpublished. + % (used if thesis is retrieved from the internet) + % + format.howpublished + % + % format optional note + % + note empty$ + { add.period$ } + { output.dot.new.block + format.note + } + if$ + fin.entry +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % phd theses, etc. + % +FUNCTION {phdthesis} +{ "\BPhD" "\BUPhD" thesis } + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % master's theses, etc. + % +FUNCTION {mastersthesis} +{ "\BMTh" "\BUMTh" thesis } + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% OTHER % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title of something (used in unpublished and misc) + % english translation of title + % type and number of something + % +FUNCTION {format.btitle.type.num} +{ format.etitle.check + format.type.number + connect.with.space.check + title empty$ + { add.period$ } + { title format.btitle.connect } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title of message or software-related thing (used in misc) + % english translation of title + % type and number of something + % +FUNCTION {format.mtitle.type.num} +{ format.etitle.check + type "\bibmessage" = + { number empty$ + 'skip$ + { type number connect.with.space.check + bracket.check + connect.with.space.check + } + if$ + } + { format.type.number + connect.with.space.check + } + if$ + title empty$ + { add.period$ } + { title format.atitle.connect } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % title, english translation of title, + % type and number of something (used in misc) + % +FUNCTION {output.misctitle.type.num} +{ type empty$ + { format.btitle.type.num } + { type "\bibmessage" = + type "\bibcomputerprogram" = + type "\bibcomputerprogrammanual" = + type "\bibcomputerprogramandmanual" = + type "\bibcomputersoftware" = + type "\bibcomputersoftwaremanual" = + type "\bibcomputersoftwareandmanual" = + type "\bibprogramminglanguage" = + or + or + or + or + or + or + or + { format.mtitle.type.num } + { format.btitle.type.num } + if$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % unpublished manuscripts, etc. + % +FUNCTION {unpublished} +{ check.relevant.fields + author empty$ + % + % no author: possibly edited book with editors as authors + % + { editor empty$ + % + % no author or editor: title serves as author. + % title formatted as book title + % + { format.btitle.type.num output.dot.new.block + format.year.month.day.check + } + % + % format editor and year, and check if year is present + % format book title, volume, and edition and check if title present + % + { format.editors.as.authors start.new.block + format.year.month.day.check output.dot.new.block + format.btitle.type.num + } + if$ + } + % + % format author and year, and check if year is present + % format book title, volume, and edition + % and check if title or type present + % + { format.authors start.new.block + format.year.month.day.check output.dot.new.block + format.btitle.type.num + } + if$ + howpublished empty$ + organization empty$ + address empty$ + and + and + 'skip$ + { output.dot.new.block + howpublished + organization connect.with.comma.check + address connect.with.comma.check + } + if$ + % + % format optional note + % + note empty$ + { add.period$ } + { output.dot.new.block + format.note + } + if$ + fin.entry +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % nonprint media and other things that don't fit + % +FUNCTION {misc} +{ author empty$ + % + % no author: possibly edited item with editors as authors + % + { editor empty$ + % + % no author or editor: title/type serves as author. + % title formatted as book title + % + % if no title and no type, howpublished is title + % + { title empty$ + type empty$ + and + { howpublished empty$ + { "No author, editor, title, type, and howpublished in " + cite$ * warning$ } + { howpublished output.dot.new.block } + if$ + format.year.month.day.check output.dot.new.block + } + { output.misctitle.type.num output.new.block + format.year.month.day.check output.dot.new.block + output.howpublished + } + if$ + } + % + % format editor and year, and check if year is present + % format book title, volume, and edition and check if title present + % + { format.editors.as.authors start.new.block + format.year.month.day.check output.dot.new.block + output.misctitle.type.num output.new.block + output.howpublished + } + if$ + } + % + % format author and year, and check if year is present + % format book title, volume, and edition + % and check if title or type present + % + { format.authors start.new.block + format.year.month.day.check output.dot.new.block + output.misctitle.type.num output.new.block + output.howpublished + } + if$ + address empty$ + publisher empty$ + and + 'skip$ + { format.address.publisher + output.dot.new.block + } + if$ + % + % format optional note + % + note empty$ + { "" } + { format.note } + if$ + fin.entry +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % for legal cases and other cases that need to be + % done by hand + % +FUNCTION {literal} +{ "key" key warning.if.empty + "text" text warning.if.empty + text empty$ + { "" } + { text } + if$ + fin.entry +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % following functions not used for APA Manual examples + % + + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % booklet + % +FUNCTION {booklet} +{ misc } + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % part of a book + % +FUNCTION {inbook} +{ incollection } + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % article in proceedings + % +FUNCTION {inproceedings} +{ incollection } + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % technical documentation + % +FUNCTION {manual} +{ misc } + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % proceedings + % +FUNCTION {proceedings} +{ misc } + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % unknown types + % +FUNCTION {default.type} +{ misc } + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% INITIALIZATION FUNCTIONS % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {initialize} +{ % + % Maximum number of names to be formatted . + #6 'name.max := +% #250 'entry.max$ := +% #5000 'global.max$ := +} + +FUNCTION {init.old.number} +{ % + % For numbering the entries according to current sorting order. + #0 'old.number := +} + +FUNCTION {init.old.label} +{ % + % For comparing labels across entries . + "zzzzzz" 'old.label := +} + +FUNCTION {init.cite.initials.add.to.year} +{ % + % Initialize "cite initials" indicator for all entries. + #0 'cite.initials := + % + % Initialize "add to year", i.e., whether a, b, etc. must + % be added to the year in citation, to "no". + #0 'add.to.year := + % +} + +FUNCTION {move.forward} +{ % + % Indicates that we're moving forward (ITERATE) through the entry list . + #1 'forward := +} + +FUNCTION {move.backward} +{ % + % Indicates that we're moving backward (REVERSE) through the entry list . + #0 'forward := +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% BASIC BIBLIOGRAPHY OUTPUT FUNCTIONS % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Beginning of the thebibliography environment: +% Write preamble if there is one, write \begin command + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Write \end{thebibliography} command + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Write the citation labels and reference list entry to +% the .bbl file. + +FUNCTION {write.bbl.entry} +{ % + % Output \bibitem and \citeauthoryear command. + % + make.cite.labels + % + % Format and output reference list entry. + % + call.type$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% READ AND PROCESS ENTRIES, MAKE THEBIBLIOGRAPHY % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +% Read entries . + +READ + +% Some initializations . + +EXECUTE { initialize } + +% Sort items by title in order to replace each title by +% its number in later sorting . + +ITERATE { make.sort.title } + +SORT + +EXECUTE { init.old.number } + +EXECUTE { init.old.label } + +ITERATE { make.title.number } + +% Now generate some tentative author-year labels and do some +% preprocessing for the later definitive author and year +% labels. + +ITERATE { make.tentative.sort.label } + +SORT + +% Now check whether initials must be added to first author, +% how many authors must be formatted, whether an "a", "b", +% etc., must be added to the year label. + +ITERATE { init.cite.initials.add.to.year } + +EXECUTE { init.initials } + +ITERATE { check.add.initials } + +EXECUTE { init.initials } + +REVERSE { check.add.initials } + +ITERATE { tentative.cite.num.names } + +EXECUTE { init.cite.num.names } + +EXECUTE { move.forward } + +ITERATE { definitive.cite.num.names } + +EXECUTE { init.cite.num.names } + +EXECUTE { move.backward } + +REVERSE { definitive.cite.num.names } + + +% Make final sorting label and do definitive sorting . + +ITERATE { make.final.sort.key } + +SORT + +% Write preamble and \begin{thebibliography}{} statement + +EXECUTE { begin.bib } + +% Make final cite labels, format reference list entry, +% and write to .bbl file. + +ITERATE { write.bbl.entry } + + +% Write \end{thebibliography} statement + +EXECUTE { end.bib } + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% DONE % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% EOF apacitex.bst +% diff --git a/Master/texmf-dist/bibtex/bst/asaetr/asaetr.bst b/Master/texmf-dist/bibtex/bst/asaetr/asaetr.bst new file mode 100644 index 00000000000..0c63fb0e879 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/asaetr/asaetr.bst @@ -0,0 +1,1209 @@ +% asaetr.bst v0.9 01 Jan 91 +% James Darrell McCauley (jdm5548@diamond.tamu.edu) +% This is part of a four file set: +% asaetr.sty - LaTeX style for TRANSACTIONS OF THE ASAE (American Society for +% Agricultural Engineers) +% asaetr.bst - BiBTeX style for TRANSACTIONS OF THE ASAE +% asaetr.tex - example usage of and documentation for above +% asaetr.bib - part of the above example +% +% version = 0.9 of asaetr.bst 1991 January 01 +% James Darrell McCauley +% Department of Agricultural Engineering +% Texas A\&M University +% College Station, Texas 77843-2117 +% jdm5548@diamond.tamu.edu + +% new.bst +% nar.bst was created by Tom Schneider from unsrt.bst +% version = 3.04 of nar.bst 1990 May 23 +% Tom Schneider +% National Cancer Institute +% Laboratory of Mathematical Biology +% Frederick, Maryland +% toms@ncifcrf.gov + +% BibTeX standard bibliography style `unsrt' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block + doblank straightnames} + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + + #0 'doblank := % put a blanks in output.nonnul if not zero + #0 'straightnames := % force names to be J. B. Smith if not zero + % otherwise they are Smith, J. B. +} + +STRINGS { s t } + +FUNCTION {between} +{ % what to do between output items TDS (AVOID COMMAS) + doblank #0 = + {" " * write$} + {write$} + if$ +} + +% from nar.bst, does okay 'cept no periods after titles +%FUNCTION {output.nonnull} +%{ 's := +% output.state mid.sentence = +% { +% between +% } +% +% { output.state after.block = +% { +% write$ % TDS NO PERIODS! +% newline$ +% } +% { output.state before.all = +% 'write$ +% {between} +% if$ +% } +% if$ +% mid.sentence 'output.state := +% } +% if$ +% s +%} + +% from plain.bst (add periods after title, but also adds +% commas in other places) +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = +% { ", " * write$ } + { " " * 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} % needs a total rewrite using 'and' function +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { + straightnames #0 = % takes care of editors + { s nameptr "{vv}{ll}{, jj}{, f.}" format.name$ 't := } + { s nameptr "{f.{ }}{vv}{ ll}{, jj}" format.name$ 't := } + if$ + numnames #1 > + %nameptr #1 = + { s nameptr "{f.{ }}{vv}{ ll}{, jj}" format.name$ 't := } + {s nameptr "{vv}{ll}{, jj}{, f.}" format.name$ 't := } + if$ + nameptr #1 = + {s nameptr "{vv}{ll}{, jj}{, f.}" format.name$ 't := } + { s nameptr "{f.{ }}{vv}{ ll}{, jj}" format.name$ 't := } + if$ + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ + #1 'straightnames := % names go as J. B. Smith for editors + editor empty$ + { "" } + { editor num.names$ #1 > + { "ed. " * } + { "ed. " * } +% { ", editors" * } +% { ", editor" * } + if$ + editor format.names + } + if$ + #0 'straightnames := % names go as Smith, J. B. again +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + {" " year "." * * } +% { month " " * year * } + {" " year "." * * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title %emphasize not for NAR! TDS +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { " " edition * "l" change.case$ " edition" * } % TDS add space before + { " " edition * "t" change.case$ " edition" * } % TDS add space before + if$ + } + 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 empty$ + { "" } + { pages multi.page.check +% { "pp" pages tie.or.space.connect } + { "" pages n.dashify tie.or.space.connect } + { "" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ " " volume * field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize *} + { "In " booktitle emphasize * ", " * format.editors * + ", " * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ +% { "Technical Report" } + { "--" } + % 'type + { type " No.\/" * } + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } % TDS + if$ + } + { "In " key * } % TDS + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " % TDS + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In " booktitle * } % TDS + if$ + } + { "In " key * } % TDS + if$ + } + { "In " format.crossref.editor * } % TDS + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.date "year" output.check + new.block + format.title "title" output.check +% ". " output % give it a period after the title + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output +% format.date "year" output.check % TDS move date + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block +% note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + + format.date "year" output.check % TDS new location + new.block + #1 'doblank := % remove blanks TDS + format.btitle emphasize "title" output.check +% ". " output % give it a period after the title + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + address output + ": " output + publisher "publisher" output.check + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output +% format.date "year" output.check % TDS former location + new.block +% note output + fin.entry + #0 'doblank := % blanks again TDS +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block +% note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block +% note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.date "year" output.check % TDS + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output +% format.date "year" output.check % TDS + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block +% note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.date "year" output.check % TDS + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output % TDS pages go at the end + address empty$ + { organization publisher new.sentence.checkb + organization output + ": " output % TDS put a colon + publisher output +% format.date "year" output.check + } + { address output.nonnull +% format.date "year" output.check + new.sentence + #1 'doblank := % remove blanks + organization output + ": " output % TDS put a colon after the location +%zzz + publisher output +% ". " output % TDS put a period after the publisher + #0 'doblank := % put back blanks + } + if$ + } + { format.incoll.inproc.crossref output.nonnull +% format.pages output % TDS pages go at the end + } + if$ + new.block +% note output +% format.pages output % TDS pages go at the end + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + format.date output + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output +% new.block +% note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.date "year" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis." format.thesis.type output.nonnull + school "school" output.check + address output + new.block +% note output + fin.entry +} + +FUNCTION {masterthesis} { mastersthesis } + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.date output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + new.block +% note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block +% note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block +% note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.date "year" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + add.period$ + address output + ": " output + institution "institution" output.check +% note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.date "year" output.check + new.block + format.title "title" output.check + new.block +%% note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/ascelike/ascelike.bst b/Master/texmf-dist/bibtex/bst/ascelike/ascelike.bst new file mode 100644 index 00000000000..d3738ae1258 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/ascelike/ascelike.bst @@ -0,0 +1,1461 @@ +%% File: ascelike.bst +%% +%% An unofficial bibliography style-file for ASCE-like bibliographies. +%% Adapted from chicago.bst (24-jan-88 version) of Glenn Paulley +%% This bst style should be used with document class ascelike.cls +%% for citations that come out like (Jones, 1986) or variations of such. +%% +%% For use with the BibTeX bibliographic formatting tool, Copyright (C) 1988, +%% all rights reserved. Bibtex is a program for formatting bibliographic +%% entries. It uses an author's *.bib file which contains a data base of +%% information on each entry. The entries are formatted in a style +%% specified in a *.bst file, such as this file, so that the editorial +%% style of the particular book or journal publisher is met. For example, +%% this ascelike.bst file prepares bibliographies in an ASCE-like style, +%% with quotation marks around titles, etc. +%% +%% To use this ascelike.bst file, you must prepare a *.bib file of your +%% bibliographic data base. See The Latex book "LaTeX: A Document +%% Preparation System" by Leslie Lamport, or in Oren Patashnik's "BibTEXing" +%% document (contained in the btxdoc.* files on CTAN and in online web +%% versions, search for "btxdox" or "bibtexing"). +%% +%% ============================================= +%% IMPORTANT NOTICE: +%% See the copyright and distribution conditions below. +%% +%% Copyright 1999: +%% Matthew R Kuhn +%% School of Engineering +%% University of Portland +%% 5000 N Willamette Blvd +%% Portland OR 97203 +%% USA +%% E-mail: kuhn@egr.up.edu +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed, available from the CTAN +%% archives; either version 1.1 of the License, or any later version. +%% Most importantly, you may modify this file, but only if you rename it. +%% +%% This is a contributed file to the LaTeX2e system. +%% +%% This program consists of the files ascelike.cls and ascelike.bst +%% +%% ----------------------------------- +%% +%% This document class produces bibliographic entries that roughly comply +%% with the guidelines of the American Society of Civil Engineers. +%% However, it was not produced by ASCE, its agents, or employees; nor +%% is it in any way sanctioned or approved by that organization. +%% +%% Please contact Matthew Kuhn by email for suggestions, etc. +%% +%% ----------------------------------- +% +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key +% month not used in apalike + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label.year label extra.label sort.label sort.year } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block + after.quote after.quote.comma + t.state o.state title.already org.already } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'after.quote := + #5 'after.quote.comma := + #0 't.state := + #0 'o.state := + #1 'title.already := + #2 'org.already := +} + +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$ + { output.state after.quote = + { ".''\ " * write$ } + { output.state after.quote.comma = + { ",''\ " * write$ } + { add.period$ " " * write$ } + if$ + } + if$ + } + 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$ +} + +% apalike needs this function because +% the year has special punctuation; +% apalike ignores the month +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ + " (" year * extra.label * ")" * + after.sentence 'output.state := + } + 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +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$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {my.full.label} +{ 's := + #1 'nameptr := % nameptr = 1; + s num.names$ 'numnames := % numnames = num.name$(s); + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{vv~}{ll}" format.name$ 't := % get the next name + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } % from Chicago Manual of Style + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := % nameptr += 1; + namesleft #1 - 'namesleft := % namesleft =- 1; + } + while$ + +} + +FUNCTION {format.names.editors} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f. }{vv}{ll}{, jj}" format.name$ 't := % last name first + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.key} % this function is just for apalike +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names.editors + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + } + if$ +} + +INTEGERS { len.minus.1 } +STRINGS { u v } + +FUNCTION {format.title} +{ title empty$ + { "" } + { "``" title "t" change.case$ * + } +% { title 'u := +% u #1 #1 substring$ 'v := +% u text.length$ #1 - 'len.minus.1 := +% u #2 len.minus.1 substring$ 'u := +% u "l" change.case$ 'u := +% "``" v * u * +% } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Vol." volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "Vol. and No." number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "" pages n.dashify tie.or.space.connect } + { "" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { booktitle emphasize } + { booktitle emphasize ", " * format.editors * } +% { "In " booktitle emphasize * } +% { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Report No." } + { type } + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ + emphasize +} + +FUNCTION {format.article.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * % this is for apalike +} + +FUNCTION {format.incoll.inproc.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} + +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +% +% added - gnp. Provide label formatting by organization if editor is null. +% +{ editor empty$ + { organization empty$ + { key empty$ + { "no key, editor or organization in " cite$ * warning$ + cite$ #1 #3 substring$ } + 'key + if$ + } + { organization } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole 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 % apalike uses the whole key, no organization + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +% +% added - gnp. Provide label formatting by organization if author is null. +% +{ author empty$ + { key empty$ + { organization empty$ + { "no key, author or organization in " cite$ * warning$ + cite$ #1 #3 substring$ } + 'organization + if$ + } + { key } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {calc.label} +% +% Changed - GNP. See also author.organization.sort, editor.organization.sort +% Form label for BibTeX entry. The classification of which fields are used +% for which type of entry (book, inbook, etc.) are taken from alpha.bst. +% The change here from newapa is to also include organization as a +% citation label if author or editor is missing. +% +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + + author empty$ % generate the full label citation information. + { editor empty$ + { organization empty$ + { type$ "manual" = + { title empty$ + { "no author, editor, organization or title in " + cite$ * warning$ + "??" + } + { title } + if$ + } + { "no author, editor, or organization in " cite$ * warning$ + "??" } + if$ + } + { organization } + if$ + } + { editor my.full.label } + if$ + } + { author my.full.label } + if$ + +% leave label on the stack, to be popped when required. + + "}{" * swap$ * "}{" * +% year field.or.null purify$ #-1 #4 substring$ * +% +% save the year for sort processing afterwards (adding a, b, c, etc.) +% + year field.or.null purify$ #-1 #4 substring$ + 'label.year := +} + +FUNCTION {output.bibitem} +%{ newline$ +% "\bibitem[" write$ +% label write$ +% "]{" write$ +% cite$ write$ +% "}" write$ +% newline$ +% "" +% before.all 'output.state := +%} +{ newline$ + + "\bibitem[\protect\citeauthoryear{" write$ + calc.label write$ + sort.year write$ + "}]{" write$ + + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + after.quote 'output.state := + crossref missing$ + { journal emphasize "journal" output.check + organization output + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + howpublished output + address output + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + after.quote 'output.state := + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + publisher "publisher" output.check + address output + format.edition output + format.chapter.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + after.quote 'output.state := + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + organization output % for apalike + address output % there's no year + new.sentence % here so things + publisher output % are simpler + format.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + #0 't.state := + #0 'o.state := + author empty$ + { format.editors output + editor empty$ + { organization empty$ + { org.already 'o.state := + title empty$ + { title format.key output } + { format.btitle "title" output.check + title.already 't.state := + } + if$ + } + { organization "organization" output.check + org.already 'o.state := + } + if$ + } + { } + if$ + } + { } + if$ +% { 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$ +% author format.key output % special for + output.year.check % apalike + new.block + t.state title.already = + { } + { format.btitle "title" output.check } + if$ +% format.btitle "title" output.check + o.state org.already = + { publisher address new.block.checkb + publisher output + } + { organization address new.block.checkb + organization output + } + if$ +% organization address new.block.checkb +% organization output + address output + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + after.quote.comma 'output.state := + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output % for apalike + new.sentence % we always output + organization output % a nonempty organization + publisher output % here + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + after.quote 'output.state := + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +% There are three apalike cases: one person (Jones), +% two (Jones and de~Bruijn), and more (Jones et~al.). +% This function is much like format.crossref.editors. +% +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ % apalike uses initials + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := % <= here + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +% +% added - GNP. Stack author or organization for sorting (from alpha.bst). +% Unlike alpha.bst, we need entire names, not abbreviations +% +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { organization sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +% +% added - GNP. Stack editor or organization for sorting (from alpha.bst). +% Unlike alpha.bst, we need entire names, not abbreviations +% +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { organization sortify } + if$ + } + { editor sort.format.names } + if$ +} + +% apalike uses two sorting passes; the first one sets the +% labels so that the `a's, `b's, etc. can be computed; +% the second pass puts the references in "correct" order. +% The presort function is for the first pass. It computes +% label, sort.label, and title, and then concatenates. +%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$ % for +% 'sort.label := % apalike +% sort.label % style +% * +% " " +% * +% title field.or.null +% sort.format.title +% * +% #1 entry.max$ substring$ +% 'sort.key$ := +%} +FUNCTION {presort} +% +% Presort creates the bibentry's label via a call to calc.label, and then +% sorts the entries based on entry type. Chicago.bst adds support for +% including organizations as the sort key; the following is stolen from +% alpha.bst. +% +{ calc.label sortify % recalculate bibitem label + year field.or.null purify$ #-1 #4 substring$ * % add year + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + #1 entry.max$ substring$ % added for newapa + 'sort.label := % added for newapa + sort.label % added for newapa + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT % by label, sort.label, title---for final label calculation + +STRINGS { last.label next.extra } % apalike labels are only for the text; + +INTEGERS { last.extra.num } % there are none in the bibliography + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +% +% Pass through all entries, comparing current entry to last one. +% Need to concatenate year to the stack (done by calc.label) to determine +% if two entries are the same (see presort) +% +{ last.label + calc.label year field.or.null purify$ #-1 #4 substring$ * % add year + #1 entry.max$ substring$ = % are they equal? + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + calc.label year field.or.null purify$ #-1 #4 substring$ * % add year + #1 entry.max$ substring$ 'last.label := % assign to last.label + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label.year extra.label * 'sort.year := + extra.label 'next.extra := +} + +%FUNCTION {initialize.extra.label.stuff} % and hence there is no `longest.label' +%{ #0 int.to.chr$ 'last.label := +% "" 'next.extra := +% #0 'last.extra.num := +%} +% +%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$ +%} +% +%FUNCTION {reverse.pass} +%{ next.extra "b" = +%% { "a" 'extra.label := } +% 'skip$ +% if$ +%% label extra.label * 'label := +% label.year extra.label * 'sort.year := +% extra.label 'next.extra := +%} + +EXECUTE {initialize.extra.label.stuff} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +% Now that the label is right we sort for real, +% on sort.label then year then title. This is +% for the second sorting 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 % by sort.label, year, title---giving final bibliography order + +FUNCTION {begin.bib} +{ preamble$ empty$ % no \etalchar in apalike + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ % no labels in apalike +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/babelbib/bababbr3-fl.bst b/Master/texmf-dist/bibtex/bst/babelbib/bababbr3-fl.bst new file mode 100644 index 00000000000..7ed7bd7b7fb --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/babelbib/bababbr3-fl.bst @@ -0,0 +1,1343 @@ +%% +%% This is file `bababbr3-fl.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% babelbib.dtx (with options: `bst,bststd,bstshort,bstthree,namevara') +%% +%% babelbib package +%% +%% Copyright 2003--2005 Harald Harders +%% +%% This program 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. +%% +%% h.harders@tu-bs.de +%% +%% 2005/09/01 v1.15 babelbib: multilingual bibliographies (HH) +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + url + urldate + volume + year + } + {} + { label } + +INTEGERS + { output.state + before.all + mid.sentence + after.sentence + after.block + before.title + } + +STRINGS + { s + t + language.state + change.temp + isbn.command + } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {language.change.case} +{ + 'change.temp := + 't := + "\btxifchangecase {" + t change.temp change.case$ * + "}{" * + 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$ + { + output.state before.title = + { "\btxauthorcolon\ " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + language empty$ + { "empty language in " cite$ * warning$ + language.state "nolanguage" = + 'skip$ + { + "\expandafter\btxselectlanguage\expandafter {" + "\btxfallbacklanguage}" * write$ + newline$ + } + if$ + "nolanguage" 'language.state := + } + { language.state language = + 'skip$ + { "\btxselectlanguage {" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.isbn} +{ + 'isbn.command := + duplicate$ + empty$ + 'pop$ + { + 's := + output.state mid.sentence = + { + isbn.command * " {, " * write$ + s "}" * + } + { output.state after.block = + { + add.period$ + write$ + newline$ + "\newblock " write$ + isbn.command " {" * s * ".}" * + } + { output.state before.all = + { + write$ + isbn.command " {" * write$ + s "}" * + } + { + output.state before.title = + { + "\btxauthorcolon\ " * write$ + isbn.command " {" * write$ + s "}" * + } + { + add.period$ " " * write$ + isbn.command " {" * write$ + s ".}" * + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + } + 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 {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {namefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {lastnamefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxlastnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {titlefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxtitlefont {" swap$ * "}" * } + if$ +} + +FUNCTION {journalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxjournalfont {" swap$ * "}" * } + if$ +} + +FUNCTION {volumefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxvolumefont {" swap$ * "}" * } + if$ +} + +FUNCTION {etalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxetalfont {" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { + s nameptr "{f.~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * 't := + namesleft #2 > + { " " "\btxetalshort {.}" etalfont * * + #1 'namesleft := } + { + namesleft #1 > + { ", " * t namefont * } + { numnames #2 > + { "\btxandcomma {}" * } + 'skip$ + if$ + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandshort {.}\ " * t namefont * } + if$ + } + if$ + } + if$ + } + { + s nameptr "{f.~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * namefont + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorsshort {.})" * } + { "\ (\btxeditorshort {.})" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" language.change.case titlefont } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "\ " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title titlefont +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {volume.tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ volumefont * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumeshort {.}" } + { "\btxvolumeshort {.}" } + if$ + volume volume.tie.or.space.connect + series empty$ + 'skip$ + { " \btxofseriesshort {.}\ " * series titlefont * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumbershort {.}" } + { "\Btxnumbershort {.}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinseriesshort {.}\ " * series titlefont * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { + output.state mid.sentence = + { edition "l" language.change.case "~\btxeditionshort {.}" * } + { edition "t" language.change.case "~\btxeditionshort {.}" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "\btxISBN~\btxISBNfont {" isbn * "}" * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "\btxISSN~\btxISSNfont {" issn * "}" * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + urldate empty$ + { "\btxurlfont{" url * "}" * } + { + "\btxurlfont{" url * + "}, \btxurldatecomment{} \btxkeywordlanguage {\btxurldatefont{" * + urldate * "}}" * + } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpagesshort {.}" pages n.dashify tie.or.space.connect } + { "\btxpageshort {.}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchaptershort {.}" } + { type "l" language.change.case } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinshort {.}\ " booktitle titlefont * } + { "\Btxinshort {.}\ " format.editors * ": " * booktitle titlefont * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" language.change.case + } + if$ +} + +FUNCTION {format.tr.number} +{ + number empty$ + { + type empty$ + { "\btxtechrepshort {.}" } + { type "t" language.change.case } + if$ + } + { + type empty$ + { "\Btxtechrepshort {.}" } + { type "t" language.change.case } + if$ + number tie.or.space.connect + } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinshort {.}\ " journal titlefont * } + if$ + } + { "\Btxinshort {.}\ " key titlefont * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ + editor #1 "{ll}{,~jj}{,~f.}{~vv}" format.name$ namefont + editor num.names$ duplicate$ + #2 > + { pop$ " " "\btxetalshort {.}" etalfont * * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandshort {.}\ " * editor #2 "{vv~}{ll}" + format.name$ namefont * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinshort {.}\ " + } + { "\Btxvolumeshort {.}" volume volume.tie.or.space.connect + " \btxofseriesshort {.}\ " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series titlefont * } + if$ + } + { key titlefont * } + if$ + } + { "\Btxinshort {.}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Btxinshort {.}\ " booktitle titlefont * } + if$ + } + { "\Btxinshort {.}\ " key titlefont * } + if$ + } + { "\Btxinshort {.}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { titlefont } + { journalfont } + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + format.url output + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.url output + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanshort {.}"} +MACRO {feb} {"\btxmonfebshort {.}"} +MACRO {mar} {"\btxmonmarshort {.}"} +MACRO {apr} {"\btxmonaprshort {.}"} +MACRO {may} {"\btxmonmayshort {.}"} +MACRO {jun} {"\btxmonjunshort {.}"} +MACRO {jul} {"\btxmonjulshort {.}"} +MACRO {aug} {"\btxmonaugshort {.}"} +MACRO {sep} {"\btxmonsepshort {.}"} +MACRO {oct} {"\btxmonoctshort {.}"} +MACRO {nov} {"\btxmonnovshort {.}"} +MACRO {dec} {"\btxmondecshort {.}"} +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.\ Softw.\ Eng.{}"} +MACRO {ieeetc} {"IEEE Trans.\ Comput.{}"} +MACRO {ieeetcad} + {"IEEE Trans.\ Comput.-Aided Design Integrated Circuits"} +MACRO {ipl} {"Inf.\ Process.\ Lett.{}"} +MACRO {jacm} {"J.~ACM"} +MACRO {jcss} {"J.~Comput.\ Syst.\ Sci.{}"} +MACRO {scp} {"Sci.\ Comput.\ Programming"} +MACRO {sicomp} {"SIAM J.~Comput.{}"} +MACRO {tocs} {"ACM Trans.\ Comput.\ Syst.{}"} +MACRO {tods} {"ACM Trans.\ Database Syst.{}"} +MACRO {tog} {"ACM Trans.\ Gr.{}"} +MACRO {toms} {"ACM Trans.\ Math.\ Softw.{}"} +MACRO {toois} {"ACM Trans.\ Office Inf.\ Syst.{}"} +MACRO {toplas} {"ACM Trans.\ Prog.\ Lang.\ Syst.{}"} +MACRO {tcs} {"Theoretical Comput.\ Sci.{}"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ f{ }}{vv{ } }{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + " \providebibliographyfont{name}{}%" write$ newline$ + " \providebibliographyfont{lastname}{}%" write$ newline$ + " \providebibliographyfont{title}{\emph}%" write$ newline$ + " \providebibliographyfont{etal}{\emph}%" write$ newline$ + " \providebibliographyfont{journal}{}%" write$ newline$ + " \providebibliographyfont{volume}{}%" write$ newline$ + " \providebibliographyfont{ISBN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{ISSN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{url}{\url}%" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/babelbib/bababbr3-lf.bst b/Master/texmf-dist/bibtex/bst/babelbib/bababbr3-lf.bst new file mode 100644 index 00000000000..526f2ec0b5a --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/babelbib/bababbr3-lf.bst @@ -0,0 +1,1341 @@ +%% +%% This is file `bababbr3-lf.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% babelbib.dtx (with options: `bst,bststd,bstshort,bstthree,namevarb') +%% +%% babelbib package +%% +%% Copyright 2003--2005 Harald Harders +%% +%% This program 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. +%% +%% h.harders@tu-bs.de +%% +%% 2005/09/01 v1.15 babelbib: multilingual bibliographies (HH) +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + url + urldate + volume + year + } + {} + { label } + +INTEGERS + { output.state + before.all + mid.sentence + after.sentence + after.block + before.title + } + +STRINGS + { s + t + language.state + change.temp + isbn.command + } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {language.change.case} +{ + 'change.temp := + 't := + "\btxifchangecase {" + t change.temp change.case$ * + "}{" * + 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$ + { + output.state before.title = + { "\btxauthorcolon\ " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + language empty$ + { "empty language in " cite$ * warning$ + language.state "nolanguage" = + 'skip$ + { + "\expandafter\btxselectlanguage\expandafter {" + "\btxfallbacklanguage}" * write$ + newline$ + } + if$ + "nolanguage" 'language.state := + } + { language.state language = + 'skip$ + { "\btxselectlanguage {" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.isbn} +{ + 'isbn.command := + duplicate$ + empty$ + 'pop$ + { + 's := + output.state mid.sentence = + { + isbn.command * " {, " * write$ + s "}" * + } + { output.state after.block = + { + add.period$ + write$ + newline$ + "\newblock " write$ + isbn.command " {" * s * ".}" * + } + { output.state before.all = + { + write$ + isbn.command " {" * write$ + s "}" * + } + { + output.state before.title = + { + "\btxauthorcolon\ " * write$ + isbn.command " {" * write$ + s "}" * + } + { + add.period$ " " * write$ + isbn.command " {" * write$ + s ".}" * + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + } + 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 {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {namefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {lastnamefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxlastnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {titlefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxtitlefont {" swap$ * "}" * } + if$ +} + +FUNCTION {journalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxjournalfont {" swap$ * "}" * } + if$ +} + +FUNCTION {volumefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxvolumefont {" swap$ * "}" * } + if$ +} + +FUNCTION {etalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxetalfont {" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { + s nameptr "{ll}" format.name$ lastnamefont + s nameptr "{,~jj}{,~f.}{~vv}" format.name$ * 't := + namesleft #2 > + { " " "\btxetalshort {.}" etalfont * * + #1 'namesleft := } + { + namesleft #1 > + { ", " * t namefont * } + { numnames #2 > + { "\btxandcomma {}" * } + 'skip$ + if$ + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandshort {.}\ " * t namefont * } + if$ + } + if$ + } + if$ + } + { + s nameptr "{ll}" format.name$ lastnamefont + s nameptr "{,~jj}{,~f.}{~vv}" format.name$ * namefont + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorsshort {.})" * } + { "\ (\btxeditorshort {.})" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" language.change.case titlefont } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "\ " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title titlefont +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {volume.tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ volumefont * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumeshort {.}" } + { "\btxvolumeshort {.}" } + if$ + volume volume.tie.or.space.connect + series empty$ + 'skip$ + { " \btxofseriesshort {.}\ " * series titlefont * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumbershort {.}" } + { "\Btxnumbershort {.}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinseriesshort {.}\ " * series titlefont * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { + output.state mid.sentence = + { edition "l" language.change.case "~\btxeditionshort {.}" * } + { edition "t" language.change.case "~\btxeditionshort {.}" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "\btxISBN~\btxISBNfont {" isbn * "}" * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "\btxISSN~\btxISSNfont {" issn * "}" * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + urldate empty$ + { "\btxurlfont{" url * "}" * } + { + "\btxurlfont{" url * + "}, \btxurldatecomment{} \btxkeywordlanguage {\btxurldatefont{" * + urldate * "}}" * + } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpagesshort {.}" pages n.dashify tie.or.space.connect } + { "\btxpageshort {.}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchaptershort {.}" } + { type "l" language.change.case } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinshort {.}\ " booktitle titlefont * } + { "\Btxinshort {.}\ " format.editors * ": " * booktitle titlefont * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" language.change.case + } + if$ +} + +FUNCTION {format.tr.number} +{ + number empty$ + { + type empty$ + { "\btxtechrepshort {.}" } + { type "t" language.change.case } + if$ + } + { + type empty$ + { "\Btxtechrepshort {.}" } + { type "t" language.change.case } + if$ + number tie.or.space.connect + } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinshort {.}\ " journal titlefont * } + if$ + } + { "\Btxinshort {.}\ " key titlefont * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ + editor #1 "{ll}{,~jj}{,~f.}{~vv}" format.name$ namefont + editor num.names$ duplicate$ + #2 > + { pop$ " " "\btxetalshort {.}" etalfont * * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandshort {.}\ " * editor #2 "{vv~}{ll}" + format.name$ namefont * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinshort {.}\ " + } + { "\Btxvolumeshort {.}" volume volume.tie.or.space.connect + " \btxofseriesshort {.}\ " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series titlefont * } + if$ + } + { key titlefont * } + if$ + } + { "\Btxinshort {.}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Btxinshort {.}\ " booktitle titlefont * } + if$ + } + { "\Btxinshort {.}\ " key titlefont * } + if$ + } + { "\Btxinshort {.}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { titlefont } + { journalfont } + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + format.url output + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.url output + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanshort {.}"} +MACRO {feb} {"\btxmonfebshort {.}"} +MACRO {mar} {"\btxmonmarshort {.}"} +MACRO {apr} {"\btxmonaprshort {.}"} +MACRO {may} {"\btxmonmayshort {.}"} +MACRO {jun} {"\btxmonjunshort {.}"} +MACRO {jul} {"\btxmonjulshort {.}"} +MACRO {aug} {"\btxmonaugshort {.}"} +MACRO {sep} {"\btxmonsepshort {.}"} +MACRO {oct} {"\btxmonoctshort {.}"} +MACRO {nov} {"\btxmonnovshort {.}"} +MACRO {dec} {"\btxmondecshort {.}"} +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.\ Softw.\ Eng.{}"} +MACRO {ieeetc} {"IEEE Trans.\ Comput.{}"} +MACRO {ieeetcad} + {"IEEE Trans.\ Comput.-Aided Design Integrated Circuits"} +MACRO {ipl} {"Inf.\ Process.\ Lett.{}"} +MACRO {jacm} {"J.~ACM"} +MACRO {jcss} {"J.~Comput.\ Syst.\ Sci.{}"} +MACRO {scp} {"Sci.\ Comput.\ Programming"} +MACRO {sicomp} {"SIAM J.~Comput.{}"} +MACRO {tocs} {"ACM Trans.\ Comput.\ Syst.{}"} +MACRO {tods} {"ACM Trans.\ Database Syst.{}"} +MACRO {tog} {"ACM Trans.\ Gr.{}"} +MACRO {toms} {"ACM Trans.\ Math.\ Softw.{}"} +MACRO {toois} {"ACM Trans.\ Office Inf.\ Syst.{}"} +MACRO {toplas} {"ACM Trans.\ Prog.\ Lang.\ Syst.{}"} +MACRO {tcs} {"Theoretical Comput.\ Sci.{}"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ f{ }}{vv{ } }{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + " \providebibliographyfont{name}{}%" write$ newline$ + " \providebibliographyfont{lastname}{}%" write$ newline$ + " \providebibliographyfont{title}{\emph}%" write$ newline$ + " \providebibliographyfont{etal}{\emph}%" write$ newline$ + " \providebibliographyfont{journal}{}%" write$ newline$ + " \providebibliographyfont{volume}{}%" write$ newline$ + " \providebibliographyfont{ISBN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{ISSN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{url}{\url}%" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/babelbib/bababbr3.bst b/Master/texmf-dist/bibtex/bst/babelbib/bababbr3.bst new file mode 100644 index 00000000000..91b0c20fdd0 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/babelbib/bababbr3.bst @@ -0,0 +1,1342 @@ +%% +%% This is file `bababbr3.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% babelbib.dtx (with options: `bst,bststd,bstshort,bstthree') +%% +%% babelbib package +%% +%% Copyright 2003--2005 Harald Harders +%% +%% This program 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. +%% +%% h.harders@tu-bs.de +%% +%% 2005/09/01 v1.15 babelbib: multilingual bibliographies (HH) +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + url + urldate + volume + year + } + {} + { label } + +INTEGERS + { output.state + before.all + mid.sentence + after.sentence + after.block + before.title + } + +STRINGS + { s + t + language.state + change.temp + isbn.command + } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {language.change.case} +{ + 'change.temp := + 't := + "\btxifchangecase {" + t change.temp change.case$ * + "}{" * + 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$ + { + output.state before.title = + { "\btxauthorcolon\ " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + language empty$ + { "empty language in " cite$ * warning$ + language.state "nolanguage" = + 'skip$ + { + "\expandafter\btxselectlanguage\expandafter {" + "\btxfallbacklanguage}" * write$ + newline$ + } + if$ + "nolanguage" 'language.state := + } + { language.state language = + 'skip$ + { "\btxselectlanguage {" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.isbn} +{ + 'isbn.command := + duplicate$ + empty$ + 'pop$ + { + 's := + output.state mid.sentence = + { + isbn.command * " {, " * write$ + s "}" * + } + { output.state after.block = + { + add.period$ + write$ + newline$ + "\newblock " write$ + isbn.command " {" * s * ".}" * + } + { output.state before.all = + { + write$ + isbn.command " {" * write$ + s "}" * + } + { + output.state before.title = + { + "\btxauthorcolon\ " * write$ + isbn.command " {" * write$ + s "}" * + } + { + add.period$ " " * write$ + isbn.command " {" * write$ + s ".}" * + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + } + 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 {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {namefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {lastnamefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxlastnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {titlefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxtitlefont {" swap$ * "}" * } + if$ +} + +FUNCTION {journalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxjournalfont {" swap$ * "}" * } + if$ +} + +FUNCTION {volumefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxvolumefont {" swap$ * "}" * } + if$ +} + +FUNCTION {etalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxetalfont {" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { + s nameptr "{f.~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * 't := + namesleft #2 > + { " " "\btxetalshort {.}" etalfont * * + #1 'namesleft := } + { + namesleft #1 > + { ", " * t namefont * } + { numnames #2 > + { "\btxandcomma {}" * } + 'skip$ + if$ + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandshort {.}\ " * t namefont * } + if$ + } + if$ + } + if$ + } + { + s nameptr "{ll}" format.name$ lastnamefont + s nameptr "{,~jj}{,~f.}{~vv}" format.name$ * namefont + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorsshort {.})" * } + { "\ (\btxeditorshort {.})" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" language.change.case titlefont } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "\ " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title titlefont +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {volume.tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ volumefont * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumeshort {.}" } + { "\btxvolumeshort {.}" } + if$ + volume volume.tie.or.space.connect + series empty$ + 'skip$ + { " \btxofseriesshort {.}\ " * series titlefont * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumbershort {.}" } + { "\Btxnumbershort {.}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinseriesshort {.}\ " * series titlefont * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { + output.state mid.sentence = + { edition "l" language.change.case "~\btxeditionshort {.}" * } + { edition "t" language.change.case "~\btxeditionshort {.}" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "\btxISBN~\btxISBNfont {" isbn * "}" * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "\btxISSN~\btxISSNfont {" issn * "}" * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + urldate empty$ + { "\btxurlfont{" url * "}" * } + { + "\btxurlfont{" url * + "}, \btxurldatecomment{} \btxkeywordlanguage {\btxurldatefont{" * + urldate * "}}" * + } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpagesshort {.}" pages n.dashify tie.or.space.connect } + { "\btxpageshort {.}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchaptershort {.}" } + { type "l" language.change.case } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinshort {.}\ " booktitle titlefont * } + { "\Btxinshort {.}\ " format.editors * ": " * booktitle titlefont * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" language.change.case + } + if$ +} + +FUNCTION {format.tr.number} +{ + number empty$ + { + type empty$ + { "\btxtechrepshort {.}" } + { type "t" language.change.case } + if$ + } + { + type empty$ + { "\Btxtechrepshort {.}" } + { type "t" language.change.case } + if$ + number tie.or.space.connect + } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinshort {.}\ " journal titlefont * } + if$ + } + { "\Btxinshort {.}\ " key titlefont * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ + editor #1 "{ll}{,~jj}{,~f.}{~vv}" format.name$ namefont + editor num.names$ duplicate$ + #2 > + { pop$ " " "\btxetalshort {.}" etalfont * * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandshort {.}\ " * editor #2 "{vv~}{ll}" + format.name$ namefont * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinshort {.}\ " + } + { "\Btxvolumeshort {.}" volume volume.tie.or.space.connect + " \btxofseriesshort {.}\ " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series titlefont * } + if$ + } + { key titlefont * } + if$ + } + { "\Btxinshort {.}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Btxinshort {.}\ " booktitle titlefont * } + if$ + } + { "\Btxinshort {.}\ " key titlefont * } + if$ + } + { "\Btxinshort {.}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { titlefont } + { journalfont } + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + format.url output + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.url output + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanshort {.}"} +MACRO {feb} {"\btxmonfebshort {.}"} +MACRO {mar} {"\btxmonmarshort {.}"} +MACRO {apr} {"\btxmonaprshort {.}"} +MACRO {may} {"\btxmonmayshort {.}"} +MACRO {jun} {"\btxmonjunshort {.}"} +MACRO {jul} {"\btxmonjulshort {.}"} +MACRO {aug} {"\btxmonaugshort {.}"} +MACRO {sep} {"\btxmonsepshort {.}"} +MACRO {oct} {"\btxmonoctshort {.}"} +MACRO {nov} {"\btxmonnovshort {.}"} +MACRO {dec} {"\btxmondecshort {.}"} +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.\ Softw.\ Eng.{}"} +MACRO {ieeetc} {"IEEE Trans.\ Comput.{}"} +MACRO {ieeetcad} + {"IEEE Trans.\ Comput.-Aided Design Integrated Circuits"} +MACRO {ipl} {"Inf.\ Process.\ Lett.{}"} +MACRO {jacm} {"J.~ACM"} +MACRO {jcss} {"J.~Comput.\ Syst.\ Sci.{}"} +MACRO {scp} {"Sci.\ Comput.\ Programming"} +MACRO {sicomp} {"SIAM J.~Comput.{}"} +MACRO {tocs} {"ACM Trans.\ Comput.\ Syst.{}"} +MACRO {tods} {"ACM Trans.\ Database Syst.{}"} +MACRO {tog} {"ACM Trans.\ Gr.{}"} +MACRO {toms} {"ACM Trans.\ Math.\ Softw.{}"} +MACRO {toois} {"ACM Trans.\ Office Inf.\ Syst.{}"} +MACRO {toplas} {"ACM Trans.\ Prog.\ Lang.\ Syst.{}"} +MACRO {tcs} {"Theoretical Comput.\ Sci.{}"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ f{ }}{vv{ } }{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + " \providebibliographyfont{name}{}%" write$ newline$ + " \providebibliographyfont{lastname}{}%" write$ newline$ + " \providebibliographyfont{title}{\emph}%" write$ newline$ + " \providebibliographyfont{etal}{\emph}%" write$ newline$ + " \providebibliographyfont{journal}{}%" write$ newline$ + " \providebibliographyfont{volume}{}%" write$ newline$ + " \providebibliographyfont{ISBN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{ISSN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{url}{\url}%" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/babelbib/bababbrv-fl.bst b/Master/texmf-dist/bibtex/bst/babelbib/bababbrv-fl.bst new file mode 100644 index 00000000000..a552d6d183c --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/babelbib/bababbrv-fl.bst @@ -0,0 +1,1337 @@ +%% +%% This is file `bababbrv-fl.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% babelbib.dtx (with options: `bst,bststd,bstshort,namevara') +%% +%% babelbib package +%% +%% Copyright 2003--2005 Harald Harders +%% +%% This program 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. +%% +%% h.harders@tu-bs.de +%% +%% 2005/09/01 v1.15 babelbib: multilingual bibliographies (HH) +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + url + urldate + volume + year + } + {} + { label } + +INTEGERS + { output.state + before.all + mid.sentence + after.sentence + after.block + before.title + } + +STRINGS + { s + t + language.state + change.temp + isbn.command + } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {language.change.case} +{ + 'change.temp := + 't := + "\btxifchangecase {" + t change.temp change.case$ * + "}{" * + 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$ + { + output.state before.title = + { "\btxauthorcolon\ " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + language empty$ + { "empty language in " cite$ * warning$ + language.state "nolanguage" = + 'skip$ + { + "\expandafter\btxselectlanguage\expandafter {" + "\btxfallbacklanguage}" * write$ + newline$ + } + if$ + "nolanguage" 'language.state := + } + { language.state language = + 'skip$ + { "\btxselectlanguage {" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.isbn} +{ + 'isbn.command := + duplicate$ + empty$ + 'pop$ + { + 's := + output.state mid.sentence = + { + isbn.command * " {, " * write$ + s "}" * + } + { output.state after.block = + { + add.period$ + write$ + newline$ + "\newblock " write$ + isbn.command " {" * s * ".}" * + } + { output.state before.all = + { + write$ + isbn.command " {" * write$ + s "}" * + } + { + output.state before.title = + { + "\btxauthorcolon\ " * write$ + isbn.command " {" * write$ + s "}" * + } + { + add.period$ " " * write$ + isbn.command " {" * write$ + s ".}" * + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + } + 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 {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {namefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {lastnamefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxlastnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {titlefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxtitlefont {" swap$ * "}" * } + if$ +} + +FUNCTION {journalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxjournalfont {" swap$ * "}" * } + if$ +} + +FUNCTION {volumefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxvolumefont {" swap$ * "}" * } + if$ +} + +FUNCTION {etalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxetalfont {" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { + s nameptr "{f.~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * 't := + namesleft #1 > + { ", " * t namefont * } + { numnames #2 > + { "\btxandcomma {}" * } + 'skip$ + if$ + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandshort {.}\ " * t namefont * } + if$ + } + if$ + } + { + s nameptr "{f.~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * namefont + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorsshort {.})" * } + { "\ (\btxeditorshort {.})" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" language.change.case titlefont } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "\ " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title titlefont +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {volume.tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ volumefont * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumeshort {.}" } + { "\btxvolumeshort {.}" } + if$ + volume volume.tie.or.space.connect + series empty$ + 'skip$ + { " \btxofseriesshort {.}\ " * series titlefont * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumbershort {.}" } + { "\Btxnumbershort {.}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinseriesshort {.}\ " * series titlefont * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { + output.state mid.sentence = + { edition "l" language.change.case "~\btxeditionshort {.}" * } + { edition "t" language.change.case "~\btxeditionshort {.}" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "\btxISBN~\btxISBNfont {" isbn * "}" * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "\btxISSN~\btxISSNfont {" issn * "}" * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + urldate empty$ + { "\btxurlfont{" url * "}" * } + { + "\btxurlfont{" url * + "}, \btxurldatecomment{} \btxkeywordlanguage {\btxurldatefont{" * + urldate * "}}" * + } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpagesshort {.}" pages n.dashify tie.or.space.connect } + { "\btxpageshort {.}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchaptershort {.}" } + { type "l" language.change.case } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinshort {.}\ " booktitle titlefont * } + { "\Btxinshort {.}\ " format.editors * ": " * booktitle titlefont * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" language.change.case + } + if$ +} + +FUNCTION {format.tr.number} +{ + number empty$ + { + type empty$ + { "\btxtechrepshort {.}" } + { type "t" language.change.case } + if$ + } + { + type empty$ + { "\Btxtechrepshort {.}" } + { type "t" language.change.case } + if$ + number tie.or.space.connect + } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinshort {.}\ " journal titlefont * } + if$ + } + { "\Btxinshort {.}\ " key titlefont * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ + editor #1 "{ll}{,~jj}{,~f.}{~vv}" format.name$ namefont + editor num.names$ duplicate$ + #2 > + { pop$ " " "\btxetalshort {.}" etalfont * * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandshort {.}\ " * editor #2 "{vv~}{ll}" + format.name$ namefont * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinshort {.}\ " + } + { "\Btxvolumeshort {.}" volume volume.tie.or.space.connect + " \btxofseriesshort {.}\ " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series titlefont * } + if$ + } + { key titlefont * } + if$ + } + { "\Btxinshort {.}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Btxinshort {.}\ " booktitle titlefont * } + if$ + } + { "\Btxinshort {.}\ " key titlefont * } + if$ + } + { "\Btxinshort {.}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { titlefont } + { journalfont } + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + format.url output + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.url output + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanshort {.}"} +MACRO {feb} {"\btxmonfebshort {.}"} +MACRO {mar} {"\btxmonmarshort {.}"} +MACRO {apr} {"\btxmonaprshort {.}"} +MACRO {may} {"\btxmonmayshort {.}"} +MACRO {jun} {"\btxmonjunshort {.}"} +MACRO {jul} {"\btxmonjulshort {.}"} +MACRO {aug} {"\btxmonaugshort {.}"} +MACRO {sep} {"\btxmonsepshort {.}"} +MACRO {oct} {"\btxmonoctshort {.}"} +MACRO {nov} {"\btxmonnovshort {.}"} +MACRO {dec} {"\btxmondecshort {.}"} +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.\ Softw.\ Eng.{}"} +MACRO {ieeetc} {"IEEE Trans.\ Comput.{}"} +MACRO {ieeetcad} + {"IEEE Trans.\ Comput.-Aided Design Integrated Circuits"} +MACRO {ipl} {"Inf.\ Process.\ Lett.{}"} +MACRO {jacm} {"J.~ACM"} +MACRO {jcss} {"J.~Comput.\ Syst.\ Sci.{}"} +MACRO {scp} {"Sci.\ Comput.\ Programming"} +MACRO {sicomp} {"SIAM J.~Comput.{}"} +MACRO {tocs} {"ACM Trans.\ Comput.\ Syst.{}"} +MACRO {tods} {"ACM Trans.\ Database Syst.{}"} +MACRO {tog} {"ACM Trans.\ Gr.{}"} +MACRO {toms} {"ACM Trans.\ Math.\ Softw.{}"} +MACRO {toois} {"ACM Trans.\ Office Inf.\ Syst.{}"} +MACRO {toplas} {"ACM Trans.\ Prog.\ Lang.\ Syst.{}"} +MACRO {tcs} {"Theoretical Comput.\ Sci.{}"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ f{ }}{vv{ } }{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + " \providebibliographyfont{name}{}%" write$ newline$ + " \providebibliographyfont{lastname}{}%" write$ newline$ + " \providebibliographyfont{title}{\emph}%" write$ newline$ + " \providebibliographyfont{etal}{\emph}%" write$ newline$ + " \providebibliographyfont{journal}{}%" write$ newline$ + " \providebibliographyfont{volume}{}%" write$ newline$ + " \providebibliographyfont{ISBN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{ISSN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{url}{\url}%" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/babelbib/bababbrv-lf.bst b/Master/texmf-dist/bibtex/bst/babelbib/bababbrv-lf.bst new file mode 100644 index 00000000000..413e10efb6e --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/babelbib/bababbrv-lf.bst @@ -0,0 +1,1335 @@ +%% +%% This is file `bababbrv-lf.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% babelbib.dtx (with options: `bst,bststd,bstshort,namevarb') +%% +%% babelbib package +%% +%% Copyright 2003--2005 Harald Harders +%% +%% This program 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. +%% +%% h.harders@tu-bs.de +%% +%% 2005/09/01 v1.15 babelbib: multilingual bibliographies (HH) +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + url + urldate + volume + year + } + {} + { label } + +INTEGERS + { output.state + before.all + mid.sentence + after.sentence + after.block + before.title + } + +STRINGS + { s + t + language.state + change.temp + isbn.command + } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {language.change.case} +{ + 'change.temp := + 't := + "\btxifchangecase {" + t change.temp change.case$ * + "}{" * + 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$ + { + output.state before.title = + { "\btxauthorcolon\ " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + language empty$ + { "empty language in " cite$ * warning$ + language.state "nolanguage" = + 'skip$ + { + "\expandafter\btxselectlanguage\expandafter {" + "\btxfallbacklanguage}" * write$ + newline$ + } + if$ + "nolanguage" 'language.state := + } + { language.state language = + 'skip$ + { "\btxselectlanguage {" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.isbn} +{ + 'isbn.command := + duplicate$ + empty$ + 'pop$ + { + 's := + output.state mid.sentence = + { + isbn.command * " {, " * write$ + s "}" * + } + { output.state after.block = + { + add.period$ + write$ + newline$ + "\newblock " write$ + isbn.command " {" * s * ".}" * + } + { output.state before.all = + { + write$ + isbn.command " {" * write$ + s "}" * + } + { + output.state before.title = + { + "\btxauthorcolon\ " * write$ + isbn.command " {" * write$ + s "}" * + } + { + add.period$ " " * write$ + isbn.command " {" * write$ + s ".}" * + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + } + 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 {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {namefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {lastnamefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxlastnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {titlefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxtitlefont {" swap$ * "}" * } + if$ +} + +FUNCTION {journalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxjournalfont {" swap$ * "}" * } + if$ +} + +FUNCTION {volumefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxvolumefont {" swap$ * "}" * } + if$ +} + +FUNCTION {etalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxetalfont {" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { + s nameptr "{ll}" format.name$ lastnamefont + s nameptr "{,~jj}{,~f.}{~vv}" format.name$ * 't := + namesleft #1 > + { ", " * t namefont * } + { numnames #2 > + { "\btxandcomma {}" * } + 'skip$ + if$ + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandshort {.}\ " * t namefont * } + if$ + } + if$ + } + { + s nameptr "{ll}" format.name$ lastnamefont + s nameptr "{,~jj}{,~f.}{~vv}" format.name$ * namefont + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorsshort {.})" * } + { "\ (\btxeditorshort {.})" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" language.change.case titlefont } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "\ " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title titlefont +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {volume.tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ volumefont * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumeshort {.}" } + { "\btxvolumeshort {.}" } + if$ + volume volume.tie.or.space.connect + series empty$ + 'skip$ + { " \btxofseriesshort {.}\ " * series titlefont * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumbershort {.}" } + { "\Btxnumbershort {.}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinseriesshort {.}\ " * series titlefont * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { + output.state mid.sentence = + { edition "l" language.change.case "~\btxeditionshort {.}" * } + { edition "t" language.change.case "~\btxeditionshort {.}" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "\btxISBN~\btxISBNfont {" isbn * "}" * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "\btxISSN~\btxISSNfont {" issn * "}" * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + urldate empty$ + { "\btxurlfont{" url * "}" * } + { + "\btxurlfont{" url * + "}, \btxurldatecomment{} \btxkeywordlanguage {\btxurldatefont{" * + urldate * "}}" * + } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpagesshort {.}" pages n.dashify tie.or.space.connect } + { "\btxpageshort {.}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchaptershort {.}" } + { type "l" language.change.case } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinshort {.}\ " booktitle titlefont * } + { "\Btxinshort {.}\ " format.editors * ": " * booktitle titlefont * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" language.change.case + } + if$ +} + +FUNCTION {format.tr.number} +{ + number empty$ + { + type empty$ + { "\btxtechrepshort {.}" } + { type "t" language.change.case } + if$ + } + { + type empty$ + { "\Btxtechrepshort {.}" } + { type "t" language.change.case } + if$ + number tie.or.space.connect + } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinshort {.}\ " journal titlefont * } + if$ + } + { "\Btxinshort {.}\ " key titlefont * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ + editor #1 "{ll}{,~jj}{,~f.}{~vv}" format.name$ namefont + editor num.names$ duplicate$ + #2 > + { pop$ " " "\btxetalshort {.}" etalfont * * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandshort {.}\ " * editor #2 "{vv~}{ll}" + format.name$ namefont * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinshort {.}\ " + } + { "\Btxvolumeshort {.}" volume volume.tie.or.space.connect + " \btxofseriesshort {.}\ " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series titlefont * } + if$ + } + { key titlefont * } + if$ + } + { "\Btxinshort {.}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Btxinshort {.}\ " booktitle titlefont * } + if$ + } + { "\Btxinshort {.}\ " key titlefont * } + if$ + } + { "\Btxinshort {.}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { titlefont } + { journalfont } + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + format.url output + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.url output + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanshort {.}"} +MACRO {feb} {"\btxmonfebshort {.}"} +MACRO {mar} {"\btxmonmarshort {.}"} +MACRO {apr} {"\btxmonaprshort {.}"} +MACRO {may} {"\btxmonmayshort {.}"} +MACRO {jun} {"\btxmonjunshort {.}"} +MACRO {jul} {"\btxmonjulshort {.}"} +MACRO {aug} {"\btxmonaugshort {.}"} +MACRO {sep} {"\btxmonsepshort {.}"} +MACRO {oct} {"\btxmonoctshort {.}"} +MACRO {nov} {"\btxmonnovshort {.}"} +MACRO {dec} {"\btxmondecshort {.}"} +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.\ Softw.\ Eng.{}"} +MACRO {ieeetc} {"IEEE Trans.\ Comput.{}"} +MACRO {ieeetcad} + {"IEEE Trans.\ Comput.-Aided Design Integrated Circuits"} +MACRO {ipl} {"Inf.\ Process.\ Lett.{}"} +MACRO {jacm} {"J.~ACM"} +MACRO {jcss} {"J.~Comput.\ Syst.\ Sci.{}"} +MACRO {scp} {"Sci.\ Comput.\ Programming"} +MACRO {sicomp} {"SIAM J.~Comput.{}"} +MACRO {tocs} {"ACM Trans.\ Comput.\ Syst.{}"} +MACRO {tods} {"ACM Trans.\ Database Syst.{}"} +MACRO {tog} {"ACM Trans.\ Gr.{}"} +MACRO {toms} {"ACM Trans.\ Math.\ Softw.{}"} +MACRO {toois} {"ACM Trans.\ Office Inf.\ Syst.{}"} +MACRO {toplas} {"ACM Trans.\ Prog.\ Lang.\ Syst.{}"} +MACRO {tcs} {"Theoretical Comput.\ Sci.{}"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ f{ }}{vv{ } }{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + " \providebibliographyfont{name}{}%" write$ newline$ + " \providebibliographyfont{lastname}{}%" write$ newline$ + " \providebibliographyfont{title}{\emph}%" write$ newline$ + " \providebibliographyfont{etal}{\emph}%" write$ newline$ + " \providebibliographyfont{journal}{}%" write$ newline$ + " \providebibliographyfont{volume}{}%" write$ newline$ + " \providebibliographyfont{ISBN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{ISSN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{url}{\url}%" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/babelbib/bababbrv.bst b/Master/texmf-dist/bibtex/bst/babelbib/bababbrv.bst new file mode 100644 index 00000000000..fe6570d6fd1 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/babelbib/bababbrv.bst @@ -0,0 +1,1336 @@ +%% +%% This is file `bababbrv.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% babelbib.dtx (with options: `bst,bststd,bstshort') +%% +%% babelbib package +%% +%% Copyright 2003--2005 Harald Harders +%% +%% This program 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. +%% +%% h.harders@tu-bs.de +%% +%% 2005/09/01 v1.15 babelbib: multilingual bibliographies (HH) +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + url + urldate + volume + year + } + {} + { label } + +INTEGERS + { output.state + before.all + mid.sentence + after.sentence + after.block + before.title + } + +STRINGS + { s + t + language.state + change.temp + isbn.command + } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {language.change.case} +{ + 'change.temp := + 't := + "\btxifchangecase {" + t change.temp change.case$ * + "}{" * + 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$ + { + output.state before.title = + { "\btxauthorcolon\ " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + language empty$ + { "empty language in " cite$ * warning$ + language.state "nolanguage" = + 'skip$ + { + "\expandafter\btxselectlanguage\expandafter {" + "\btxfallbacklanguage}" * write$ + newline$ + } + if$ + "nolanguage" 'language.state := + } + { language.state language = + 'skip$ + { "\btxselectlanguage {" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.isbn} +{ + 'isbn.command := + duplicate$ + empty$ + 'pop$ + { + 's := + output.state mid.sentence = + { + isbn.command * " {, " * write$ + s "}" * + } + { output.state after.block = + { + add.period$ + write$ + newline$ + "\newblock " write$ + isbn.command " {" * s * ".}" * + } + { output.state before.all = + { + write$ + isbn.command " {" * write$ + s "}" * + } + { + output.state before.title = + { + "\btxauthorcolon\ " * write$ + isbn.command " {" * write$ + s "}" * + } + { + add.period$ " " * write$ + isbn.command " {" * write$ + s ".}" * + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + } + 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 {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {namefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {lastnamefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxlastnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {titlefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxtitlefont {" swap$ * "}" * } + if$ +} + +FUNCTION {journalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxjournalfont {" swap$ * "}" * } + if$ +} + +FUNCTION {volumefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxvolumefont {" swap$ * "}" * } + if$ +} + +FUNCTION {etalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxetalfont {" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { + s nameptr "{f.~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * 't := + namesleft #1 > + { ", " * t namefont * } + { numnames #2 > + { "\btxandcomma {}" * } + 'skip$ + if$ + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandshort {.}\ " * t namefont * } + if$ + } + if$ + } + { + s nameptr "{ll}" format.name$ lastnamefont + s nameptr "{,~jj}{,~f.}{~vv}" format.name$ * namefont + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorsshort {.})" * } + { "\ (\btxeditorshort {.})" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" language.change.case titlefont } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "\ " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title titlefont +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {volume.tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ volumefont * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumeshort {.}" } + { "\btxvolumeshort {.}" } + if$ + volume volume.tie.or.space.connect + series empty$ + 'skip$ + { " \btxofseriesshort {.}\ " * series titlefont * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumbershort {.}" } + { "\Btxnumbershort {.}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinseriesshort {.}\ " * series titlefont * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { + output.state mid.sentence = + { edition "l" language.change.case "~\btxeditionshort {.}" * } + { edition "t" language.change.case "~\btxeditionshort {.}" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "\btxISBN~\btxISBNfont {" isbn * "}" * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "\btxISSN~\btxISSNfont {" issn * "}" * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + urldate empty$ + { "\btxurlfont{" url * "}" * } + { + "\btxurlfont{" url * + "}, \btxurldatecomment{} \btxkeywordlanguage {\btxurldatefont{" * + urldate * "}}" * + } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpagesshort {.}" pages n.dashify tie.or.space.connect } + { "\btxpageshort {.}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchaptershort {.}" } + { type "l" language.change.case } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinshort {.}\ " booktitle titlefont * } + { "\Btxinshort {.}\ " format.editors * ": " * booktitle titlefont * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" language.change.case + } + if$ +} + +FUNCTION {format.tr.number} +{ + number empty$ + { + type empty$ + { "\btxtechrepshort {.}" } + { type "t" language.change.case } + if$ + } + { + type empty$ + { "\Btxtechrepshort {.}" } + { type "t" language.change.case } + if$ + number tie.or.space.connect + } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinshort {.}\ " journal titlefont * } + if$ + } + { "\Btxinshort {.}\ " key titlefont * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ + editor #1 "{ll}{,~jj}{,~f.}{~vv}" format.name$ namefont + editor num.names$ duplicate$ + #2 > + { pop$ " " "\btxetalshort {.}" etalfont * * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandshort {.}\ " * editor #2 "{vv~}{ll}" + format.name$ namefont * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinshort {.}\ " + } + { "\Btxvolumeshort {.}" volume volume.tie.or.space.connect + " \btxofseriesshort {.}\ " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series titlefont * } + if$ + } + { key titlefont * } + if$ + } + { "\Btxinshort {.}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Btxinshort {.}\ " booktitle titlefont * } + if$ + } + { "\Btxinshort {.}\ " key titlefont * } + if$ + } + { "\Btxinshort {.}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { titlefont } + { journalfont } + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + format.url output + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.url output + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanshort {.}"} +MACRO {feb} {"\btxmonfebshort {.}"} +MACRO {mar} {"\btxmonmarshort {.}"} +MACRO {apr} {"\btxmonaprshort {.}"} +MACRO {may} {"\btxmonmayshort {.}"} +MACRO {jun} {"\btxmonjunshort {.}"} +MACRO {jul} {"\btxmonjulshort {.}"} +MACRO {aug} {"\btxmonaugshort {.}"} +MACRO {sep} {"\btxmonsepshort {.}"} +MACRO {oct} {"\btxmonoctshort {.}"} +MACRO {nov} {"\btxmonnovshort {.}"} +MACRO {dec} {"\btxmondecshort {.}"} +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.\ Softw.\ Eng.{}"} +MACRO {ieeetc} {"IEEE Trans.\ Comput.{}"} +MACRO {ieeetcad} + {"IEEE Trans.\ Comput.-Aided Design Integrated Circuits"} +MACRO {ipl} {"Inf.\ Process.\ Lett.{}"} +MACRO {jacm} {"J.~ACM"} +MACRO {jcss} {"J.~Comput.\ Syst.\ Sci.{}"} +MACRO {scp} {"Sci.\ Comput.\ Programming"} +MACRO {sicomp} {"SIAM J.~Comput.{}"} +MACRO {tocs} {"ACM Trans.\ Comput.\ Syst.{}"} +MACRO {tods} {"ACM Trans.\ Database Syst.{}"} +MACRO {tog} {"ACM Trans.\ Gr.{}"} +MACRO {toms} {"ACM Trans.\ Math.\ Softw.{}"} +MACRO {toois} {"ACM Trans.\ Office Inf.\ Syst.{}"} +MACRO {toplas} {"ACM Trans.\ Prog.\ Lang.\ Syst.{}"} +MACRO {tcs} {"Theoretical Comput.\ Sci.{}"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ f{ }}{vv{ } }{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + " \providebibliographyfont{name}{}%" write$ newline$ + " \providebibliographyfont{lastname}{}%" write$ newline$ + " \providebibliographyfont{title}{\emph}%" write$ newline$ + " \providebibliographyfont{etal}{\emph}%" write$ newline$ + " \providebibliographyfont{journal}{}%" write$ newline$ + " \providebibliographyfont{volume}{}%" write$ newline$ + " \providebibliographyfont{ISBN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{ISSN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{url}{\url}%" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/babelbib/babalpha-fl.bst b/Master/texmf-dist/bibtex/bst/babelbib/babalpha-fl.bst new file mode 100644 index 00000000000..219185cdc3b --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/babelbib/babalpha-fl.bst @@ -0,0 +1,1494 @@ +%% +%% This is file `babalpha-fl.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% babelbib.dtx (with options: `bst,bststd,bstsorted,bstalpha,namevara') +%% +%% babelbib package +%% +%% Copyright 2003--2005 Harald Harders +%% +%% This program 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. +%% +%% h.harders@tu-bs.de +%% +%% 2005/09/01 v1.15 babelbib: multilingual bibliographies (HH) +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + url + urldate + volume + year + } + {} + { label extra.label sort.label } + +INTEGERS + { output.state + before.all + mid.sentence + after.sentence + after.block + before.title + } + +STRINGS + { s + t + language.state + change.temp + isbn.command + } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {language.change.case} +{ + 'change.temp := + 't := + "\btxifchangecase {" + t change.temp change.case$ * + "}{" * + 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$ + { + output.state before.title = + { "\btxauthorcolon\ " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + language empty$ + { "empty language in " cite$ * warning$ + language.state "nolanguage" = + 'skip$ + { + "\expandafter\btxselectlanguage\expandafter {" + "\btxfallbacklanguage}" * write$ + newline$ + } + if$ + "nolanguage" 'language.state := + } + { language.state language = + 'skip$ + { "\btxselectlanguage {" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem[" label * "]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.isbn} +{ + 'isbn.command := + duplicate$ + empty$ + 'pop$ + { + 's := + output.state mid.sentence = + { + isbn.command * " {, " * write$ + s "}" * + } + { output.state after.block = + { + add.period$ + write$ + newline$ + "\newblock " write$ + isbn.command " {" * s * ".}" * + } + { output.state before.all = + { + write$ + isbn.command " {" * write$ + s "}" * + } + { + output.state before.title = + { + "\btxauthorcolon\ " * write$ + isbn.command " {" * write$ + s "}" * + } + { + add.period$ " " * write$ + isbn.command " {" * write$ + s ".}" * + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + } + 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 {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {namefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {lastnamefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxlastnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {titlefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxtitlefont {" swap$ * "}" * } + if$ +} + +FUNCTION {journalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxjournalfont {" swap$ * "}" * } + if$ +} + +FUNCTION {volumefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxvolumefont {" swap$ * "}" * } + if$ +} + +FUNCTION {etalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxetalfont {" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { + s nameptr "{ff~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * 't := + namesleft #1 > + { ", " * t namefont * } + { numnames #2 > + { "\btxandcomma {}" * } + 'skip$ + if$ + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * t namefont * } + if$ + } + if$ + } + { + s nameptr "{ff~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * namefont + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorslong {})" * } + { "\ (\btxeditorlong {})" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" language.change.case titlefont } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "\ " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title titlefont +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {volume.tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ volumefont * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumelong {}" } + { "\btxvolumelong {}" } + if$ + volume volume.tie.or.space.connect + series empty$ + 'skip$ + { " \btxofserieslong {}\ " * series titlefont * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumberlong {}" } + { "\Btxnumberlong {}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinserieslong {}\ " * series titlefont * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { + output.state mid.sentence = + { edition "l" language.change.case "~\btxeditionlong {}" * } + { edition "t" language.change.case "~\btxeditionlong {}" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "\btxISBN~\btxISBNfont {" isbn * "}" * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "\btxISSN~\btxISSNfont {" issn * "}" * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + urldate empty$ + { "\btxurlfont{" url * "}" * } + { + "\btxurlfont{" url * + "}, \btxurldatecomment{} \btxkeywordlanguage {\btxurldatefont{" * + urldate * "}}" * + } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpageslong {}" pages n.dashify tie.or.space.connect } + { "\btxpagelong {}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchapterlong {}" } + { type "l" language.change.case } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinlong {}\ " booktitle titlefont * } + { "\Btxinlong {}\ " format.editors * ": " * booktitle titlefont * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" language.change.case + } + if$ +} + +FUNCTION {format.tr.number} +{ + number empty$ + { + type empty$ + { "\btxtechreplong {}" } + { type "t" language.change.case } + if$ + } + { + type empty$ + { "\Btxtechreplong {}" } + { type "t" language.change.case } + if$ + number tie.or.space.connect + } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinlong {}\ " journal titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ + editor #1 "{ll}{,~jj}{, ff}{~vv}" format.name$ namefont + editor num.names$ duplicate$ + #2 > + { pop$ " " "\btxetalshort {.}" etalfont * * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * editor #2 "{ff}{~vv}{~ll}{, jj}" + format.name$ namefont * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinlong {}\ " + } + { "\Btxvolumelong {}" volume volume.tie.or.space.connect + " \btxofserieslong {}\ " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series titlefont * } + if$ + } + { key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Btxinlong {}\ " booktitle titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { titlefont } + { journalfont } + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + format.url output + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.url output + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanlong {}"} +MACRO {feb} {"\btxmonfeblong {}"} +MACRO {mar} {"\btxmonmarlong {}"} +MACRO {apr} {"\btxmonaprlong {}"} +MACRO {may} {"\btxmonmaylong {}"} +MACRO {jun} {"\btxmonjunlong {}"} +MACRO {jul} {"\btxmonjullong {}"} +MACRO {aug} {"\btxmonauglong {}"} +MACRO {sep} {"\btxmonseplong {}"} +MACRO {oct} {"\btxmonoctlong {}"} +MACRO {nov} {"\btxmonnovlong {}"} +MACRO {dec} {"\btxmondeclong {}"} +MACRO {acmcs} {"ACM Computing Surveys"} +MACRO {acta} {"Acta Informatica"} +MACRO {cacm} {"Communications of the ACM"} +MACRO {ibmjrd} {"IBM Journal of Research and Development"} +MACRO {ibmsj} {"IBM Systems Journal"} +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} +MACRO {ieeetc} {"IEEE Transactions on Computers"} +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} +MACRO {ipl} {"Information Processing Letters"} +MACRO {jacm} {"Journal of the ACM"} +MACRO {jcss} {"Journal of Computer and System Sciences"} +MACRO {scp} {"Science of Computer Programming"} +MACRO {sicomp} {"SIAM Journal on Computing"} +MACRO {tocs} {"ACM Transactions on Computer Systems"} +MACRO {tods} {"ACM Transactions on Database Systems"} +MACRO {tog} {"ACM Transactions on Graphics"} +MACRO {toms} {"ACM Transactions on Mathematical Software"} +MACRO {toois} {"ACM Transactions on Office Information Systems"} +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ ff{ }}{vv{ } }{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ + calc.label + sort.label + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} +REVERSE {reverse.pass} + +FUNCTION {begin.bib} +{ + et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + " \providebibliographyfont{name}{}%" write$ newline$ + " \providebibliographyfont{lastname}{}%" write$ newline$ + " \providebibliographyfont{title}{\emph}%" write$ newline$ + " \providebibliographyfont{etal}{\emph}%" write$ newline$ + " \providebibliographyfont{journal}{}%" write$ newline$ + " \providebibliographyfont{volume}{}%" write$ newline$ + " \providebibliographyfont{ISBN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{ISSN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{url}{\url}%" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/babelbib/babalpha-lf.bst b/Master/texmf-dist/bibtex/bst/babelbib/babalpha-lf.bst new file mode 100644 index 00000000000..c4441c131fd --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/babelbib/babalpha-lf.bst @@ -0,0 +1,1492 @@ +%% +%% This is file `babalpha-lf.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% babelbib.dtx (with options: `bst,bststd,bstsorted,bstalpha,namevarb') +%% +%% babelbib package +%% +%% Copyright 2003--2005 Harald Harders +%% +%% This program 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. +%% +%% h.harders@tu-bs.de +%% +%% 2005/09/01 v1.15 babelbib: multilingual bibliographies (HH) +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + url + urldate + volume + year + } + {} + { label extra.label sort.label } + +INTEGERS + { output.state + before.all + mid.sentence + after.sentence + after.block + before.title + } + +STRINGS + { s + t + language.state + change.temp + isbn.command + } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {language.change.case} +{ + 'change.temp := + 't := + "\btxifchangecase {" + t change.temp change.case$ * + "}{" * + 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$ + { + output.state before.title = + { "\btxauthorcolon\ " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + language empty$ + { "empty language in " cite$ * warning$ + language.state "nolanguage" = + 'skip$ + { + "\expandafter\btxselectlanguage\expandafter {" + "\btxfallbacklanguage}" * write$ + newline$ + } + if$ + "nolanguage" 'language.state := + } + { language.state language = + 'skip$ + { "\btxselectlanguage {" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem[" label * "]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.isbn} +{ + 'isbn.command := + duplicate$ + empty$ + 'pop$ + { + 's := + output.state mid.sentence = + { + isbn.command * " {, " * write$ + s "}" * + } + { output.state after.block = + { + add.period$ + write$ + newline$ + "\newblock " write$ + isbn.command " {" * s * ".}" * + } + { output.state before.all = + { + write$ + isbn.command " {" * write$ + s "}" * + } + { + output.state before.title = + { + "\btxauthorcolon\ " * write$ + isbn.command " {" * write$ + s "}" * + } + { + add.period$ " " * write$ + isbn.command " {" * write$ + s ".}" * + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + } + 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 {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {namefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {lastnamefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxlastnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {titlefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxtitlefont {" swap$ * "}" * } + if$ +} + +FUNCTION {journalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxjournalfont {" swap$ * "}" * } + if$ +} + +FUNCTION {volumefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxvolumefont {" swap$ * "}" * } + if$ +} + +FUNCTION {etalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxetalfont {" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { + s nameptr "{ll}" format.name$ lastnamefont + s nameptr "{, jj}{, ff}{~vv}" format.name$ * 't := + namesleft #1 > + { ", " * t namefont * } + { numnames #2 > + { "\btxandcomma {}" * } + 'skip$ + if$ + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * t namefont * } + if$ + } + if$ + } + { + s nameptr "{ll}" format.name$ lastnamefont + s nameptr "{,~jj}{, ff}{~vv}" format.name$ * namefont + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorslong {})" * } + { "\ (\btxeditorlong {})" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" language.change.case titlefont } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "\ " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title titlefont +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {volume.tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ volumefont * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumelong {}" } + { "\btxvolumelong {}" } + if$ + volume volume.tie.or.space.connect + series empty$ + 'skip$ + { " \btxofserieslong {}\ " * series titlefont * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumberlong {}" } + { "\Btxnumberlong {}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinserieslong {}\ " * series titlefont * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { + output.state mid.sentence = + { edition "l" language.change.case "~\btxeditionlong {}" * } + { edition "t" language.change.case "~\btxeditionlong {}" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "\btxISBN~\btxISBNfont {" isbn * "}" * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "\btxISSN~\btxISSNfont {" issn * "}" * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + urldate empty$ + { "\btxurlfont{" url * "}" * } + { + "\btxurlfont{" url * + "}, \btxurldatecomment{} \btxkeywordlanguage {\btxurldatefont{" * + urldate * "}}" * + } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpageslong {}" pages n.dashify tie.or.space.connect } + { "\btxpagelong {}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchapterlong {}" } + { type "l" language.change.case } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinlong {}\ " booktitle titlefont * } + { "\Btxinlong {}\ " format.editors * ": " * booktitle titlefont * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" language.change.case + } + if$ +} + +FUNCTION {format.tr.number} +{ + number empty$ + { + type empty$ + { "\btxtechreplong {}" } + { type "t" language.change.case } + if$ + } + { + type empty$ + { "\Btxtechreplong {}" } + { type "t" language.change.case } + if$ + number tie.or.space.connect + } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinlong {}\ " journal titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ + editor #1 "{ll}{,~jj}{, ff}{~vv}" format.name$ namefont + editor num.names$ duplicate$ + #2 > + { pop$ " " "\btxetalshort {.}" etalfont * * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * editor #2 "{ff}{~vv}{~ll}{, jj}" + format.name$ namefont * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinlong {}\ " + } + { "\Btxvolumelong {}" volume volume.tie.or.space.connect + " \btxofserieslong {}\ " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series titlefont * } + if$ + } + { key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Btxinlong {}\ " booktitle titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { titlefont } + { journalfont } + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + format.url output + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.url output + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanlong {}"} +MACRO {feb} {"\btxmonfeblong {}"} +MACRO {mar} {"\btxmonmarlong {}"} +MACRO {apr} {"\btxmonaprlong {}"} +MACRO {may} {"\btxmonmaylong {}"} +MACRO {jun} {"\btxmonjunlong {}"} +MACRO {jul} {"\btxmonjullong {}"} +MACRO {aug} {"\btxmonauglong {}"} +MACRO {sep} {"\btxmonseplong {}"} +MACRO {oct} {"\btxmonoctlong {}"} +MACRO {nov} {"\btxmonnovlong {}"} +MACRO {dec} {"\btxmondeclong {}"} +MACRO {acmcs} {"ACM Computing Surveys"} +MACRO {acta} {"Acta Informatica"} +MACRO {cacm} {"Communications of the ACM"} +MACRO {ibmjrd} {"IBM Journal of Research and Development"} +MACRO {ibmsj} {"IBM Systems Journal"} +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} +MACRO {ieeetc} {"IEEE Transactions on Computers"} +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} +MACRO {ipl} {"Information Processing Letters"} +MACRO {jacm} {"Journal of the ACM"} +MACRO {jcss} {"Journal of Computer and System Sciences"} +MACRO {scp} {"Science of Computer Programming"} +MACRO {sicomp} {"SIAM Journal on Computing"} +MACRO {tocs} {"ACM Transactions on Computer Systems"} +MACRO {tods} {"ACM Transactions on Database Systems"} +MACRO {tog} {"ACM Transactions on Graphics"} +MACRO {toms} {"ACM Transactions on Mathematical Software"} +MACRO {toois} {"ACM Transactions on Office Information Systems"} +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ ff{ }}{vv{ } }{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ + calc.label + sort.label + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} +REVERSE {reverse.pass} + +FUNCTION {begin.bib} +{ + et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + " \providebibliographyfont{name}{}%" write$ newline$ + " \providebibliographyfont{lastname}{}%" write$ newline$ + " \providebibliographyfont{title}{\emph}%" write$ newline$ + " \providebibliographyfont{etal}{\emph}%" write$ newline$ + " \providebibliographyfont{journal}{}%" write$ newline$ + " \providebibliographyfont{volume}{}%" write$ newline$ + " \providebibliographyfont{ISBN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{ISSN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{url}{\url}%" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/babelbib/babalpha.bst b/Master/texmf-dist/bibtex/bst/babelbib/babalpha.bst new file mode 100644 index 00000000000..54af527b1ae --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/babelbib/babalpha.bst @@ -0,0 +1,1493 @@ +%% +%% This is file `babalpha.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% babelbib.dtx (with options: `bst,bststd,bstsorted,bstalpha') +%% +%% babelbib package +%% +%% Copyright 2003--2005 Harald Harders +%% +%% This program 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. +%% +%% h.harders@tu-bs.de +%% +%% 2005/09/01 v1.15 babelbib: multilingual bibliographies (HH) +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + url + urldate + volume + year + } + {} + { label extra.label sort.label } + +INTEGERS + { output.state + before.all + mid.sentence + after.sentence + after.block + before.title + } + +STRINGS + { s + t + language.state + change.temp + isbn.command + } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {language.change.case} +{ + 'change.temp := + 't := + "\btxifchangecase {" + t change.temp change.case$ * + "}{" * + 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$ + { + output.state before.title = + { "\btxauthorcolon\ " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + language empty$ + { "empty language in " cite$ * warning$ + language.state "nolanguage" = + 'skip$ + { + "\expandafter\btxselectlanguage\expandafter {" + "\btxfallbacklanguage}" * write$ + newline$ + } + if$ + "nolanguage" 'language.state := + } + { language.state language = + 'skip$ + { "\btxselectlanguage {" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem[" label * "]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.isbn} +{ + 'isbn.command := + duplicate$ + empty$ + 'pop$ + { + 's := + output.state mid.sentence = + { + isbn.command * " {, " * write$ + s "}" * + } + { output.state after.block = + { + add.period$ + write$ + newline$ + "\newblock " write$ + isbn.command " {" * s * ".}" * + } + { output.state before.all = + { + write$ + isbn.command " {" * write$ + s "}" * + } + { + output.state before.title = + { + "\btxauthorcolon\ " * write$ + isbn.command " {" * write$ + s "}" * + } + { + add.period$ " " * write$ + isbn.command " {" * write$ + s ".}" * + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + } + 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 {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {namefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {lastnamefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxlastnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {titlefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxtitlefont {" swap$ * "}" * } + if$ +} + +FUNCTION {journalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxjournalfont {" swap$ * "}" * } + if$ +} + +FUNCTION {volumefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxvolumefont {" swap$ * "}" * } + if$ +} + +FUNCTION {etalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxetalfont {" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { + s nameptr "{ff~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * 't := + namesleft #1 > + { ", " * t namefont * } + { numnames #2 > + { "\btxandcomma {}" * } + 'skip$ + if$ + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * t namefont * } + if$ + } + if$ + } + { + s nameptr "{ll}" format.name$ lastnamefont + s nameptr "{,~jj}{, ff}{~vv}" format.name$ * namefont + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorslong {})" * } + { "\ (\btxeditorlong {})" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" language.change.case titlefont } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "\ " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title titlefont +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {volume.tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ volumefont * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumelong {}" } + { "\btxvolumelong {}" } + if$ + volume volume.tie.or.space.connect + series empty$ + 'skip$ + { " \btxofserieslong {}\ " * series titlefont * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumberlong {}" } + { "\Btxnumberlong {}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinserieslong {}\ " * series titlefont * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { + output.state mid.sentence = + { edition "l" language.change.case "~\btxeditionlong {}" * } + { edition "t" language.change.case "~\btxeditionlong {}" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "\btxISBN~\btxISBNfont {" isbn * "}" * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "\btxISSN~\btxISSNfont {" issn * "}" * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + urldate empty$ + { "\btxurlfont{" url * "}" * } + { + "\btxurlfont{" url * + "}, \btxurldatecomment{} \btxkeywordlanguage {\btxurldatefont{" * + urldate * "}}" * + } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpageslong {}" pages n.dashify tie.or.space.connect } + { "\btxpagelong {}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchapterlong {}" } + { type "l" language.change.case } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinlong {}\ " booktitle titlefont * } + { "\Btxinlong {}\ " format.editors * ": " * booktitle titlefont * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" language.change.case + } + if$ +} + +FUNCTION {format.tr.number} +{ + number empty$ + { + type empty$ + { "\btxtechreplong {}" } + { type "t" language.change.case } + if$ + } + { + type empty$ + { "\Btxtechreplong {}" } + { type "t" language.change.case } + if$ + number tie.or.space.connect + } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinlong {}\ " journal titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ + editor #1 "{ll}{,~jj}{, ff}{~vv}" format.name$ namefont + editor num.names$ duplicate$ + #2 > + { pop$ " " "\btxetalshort {.}" etalfont * * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * editor #2 "{ff}{~vv}{~ll}{, jj}" + format.name$ namefont * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinlong {}\ " + } + { "\Btxvolumelong {}" volume volume.tie.or.space.connect + " \btxofserieslong {}\ " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series titlefont * } + if$ + } + { key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Btxinlong {}\ " booktitle titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { titlefont } + { journalfont } + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + format.url output + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.url output + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanlong {}"} +MACRO {feb} {"\btxmonfeblong {}"} +MACRO {mar} {"\btxmonmarlong {}"} +MACRO {apr} {"\btxmonaprlong {}"} +MACRO {may} {"\btxmonmaylong {}"} +MACRO {jun} {"\btxmonjunlong {}"} +MACRO {jul} {"\btxmonjullong {}"} +MACRO {aug} {"\btxmonauglong {}"} +MACRO {sep} {"\btxmonseplong {}"} +MACRO {oct} {"\btxmonoctlong {}"} +MACRO {nov} {"\btxmonnovlong {}"} +MACRO {dec} {"\btxmondeclong {}"} +MACRO {acmcs} {"ACM Computing Surveys"} +MACRO {acta} {"Acta Informatica"} +MACRO {cacm} {"Communications of the ACM"} +MACRO {ibmjrd} {"IBM Journal of Research and Development"} +MACRO {ibmsj} {"IBM Systems Journal"} +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} +MACRO {ieeetc} {"IEEE Transactions on Computers"} +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} +MACRO {ipl} {"Information Processing Letters"} +MACRO {jacm} {"Journal of the ACM"} +MACRO {jcss} {"Journal of Computer and System Sciences"} +MACRO {scp} {"Science of Computer Programming"} +MACRO {sicomp} {"SIAM Journal on Computing"} +MACRO {tocs} {"ACM Transactions on Computer Systems"} +MACRO {tods} {"ACM Transactions on Database Systems"} +MACRO {tog} {"ACM Transactions on Graphics"} +MACRO {toms} {"ACM Transactions on Mathematical Software"} +MACRO {toois} {"ACM Transactions on Office Information Systems"} +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ ff{ }}{vv{ } }{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ + calc.label + sort.label + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} +REVERSE {reverse.pass} + +FUNCTION {begin.bib} +{ + et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + " \providebibliographyfont{name}{}%" write$ newline$ + " \providebibliographyfont{lastname}{}%" write$ newline$ + " \providebibliographyfont{title}{\emph}%" write$ newline$ + " \providebibliographyfont{etal}{\emph}%" write$ newline$ + " \providebibliographyfont{journal}{}%" write$ newline$ + " \providebibliographyfont{volume}{}%" write$ newline$ + " \providebibliographyfont{ISBN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{ISSN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{url}{\url}%" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/babelbib/babamspl.bst b/Master/texmf-dist/bibtex/bst/babelbib/babamspl.bst new file mode 100644 index 00000000000..291c150cf51 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/babelbib/babamspl.bst @@ -0,0 +1,1210 @@ +%% +%% This is file `babamspl.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% babelbib.dtx (with options: `bst,bstams') +%% +%% babelbib package +%% +%% Copyright 2003--2005 Harald Harders +%% +%% This program 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. +%% +%% h.harders@tu-bs.de +%% +%% 2005/09/01 v1.15 babelbib: multilingual bibliographies (HH) +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + mrnumber + note + number + organization + pages + publisher + school + series + title + type + url + urldate + volume + year + } + {} + { label bysame } + +INTEGERS { output.state before.all mid.sentence } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := +} + +STRINGS { s t language.state change.temp} + +FUNCTION {shows} +{ duplicate$ ":::: `" swap$ * "'" * top$ +} + +FUNCTION {showstack} +{"STACK================================================================" +top$ +stack$ +"ENDSTACK=============================================================" +top$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {language.change.case} +{ + 'change.temp := + 't := + "\btxifchangecase {" + t change.temp change.case$ * + "}{" * + t * + "}" * +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {namefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {lastnamefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxlastnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {titlefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxtitlefont {" swap$ * "}" * } + if$ +} + +FUNCTION {journalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxjournalfont {" swap$ * "}" * } + if$ +} + +FUNCTION {volumefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxvolumefont {" swap$ * "}" * } + if$ +} + +FUNCTION {etalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxetalfont {" swap$ * "}" * } + if$ +} + +FUNCTION {n.dashify} +{ '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 {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {add.space.if.necessary} +{ duplicate$ "" = + 'skip$ + { "\ " * } + if$ +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {missing.warning} +{ "missing " swap$ * " in " * cite$ * warning$ } + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ t missing.warning } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + language empty$ + { "empty language in " cite$ * warning$ + language.state "nolanguage" = + 'skip$ + { + "\expandafter\btxselectlanguage\expandafter {" + "\btxfallbacklanguage}" * write$ + newline$ + } + if$ + "nolanguage" 'language.state := + } + { language.state language = + 'skip$ + { "\btxselectlanguage {" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.nonempty.mrnumber} +{ duplicate$ missing$ + { pop$ "" } + 'skip$ + if$ + duplicate$ empty$ + 'pop$ + { " \MR{" swap$ * "}" * write$ } + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + mrnumber output.nonempty.mrnumber + newline$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.language} +{ language empty$ + { "" } + { "\btxprintamslanguage{\btxlanguagename {" language * "}}" * } + if$ +} + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { + s nameptr "{ff~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * 't := + nameptr #1 > + { namesleft #1 > + { ", " * t namefont * } + { numnames #2 > + { "\btxandcomma {}" * } + 'skip$ + if$ + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" = + { " " * "\btxetalshort {.}" etalfont * } + { " \btxandlong {} " * t namefont * } + if$ + } + if$ + } + { + s nameptr "{ff~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * namefont + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { bysame "\bysame" = + {"\bysame"} + { author format.names } + if$ + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorsshort {.})" * } + { "\ (\btxeditorshort {.})" * } + if$ + } + if$ +} + +FUNCTION {format.nonauthor.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", \btxeditorsshort {.}" * } + { ", \btxeditorshort {.}" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" language.change.case titlefont } + if$ +} + +FUNCTION {format.journal.vol.year} +{ journal empty$ + { "journal name" missing.warning ""} + { journal journalfont } + if$ + volume empty$ + 'skip$ + { " " * volume volumefont * } + if$ + year empty$ + { "year" missing.warning } + { " (" * year * ")" * } + if$ +} + +FUNCTION {format.number} +{ number empty$ + { "" } + { "\btxnumbershort {.}~" number * } + if$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "\ " * year * } + if$ + } + if$ +} + +FUNCTION {format.bookvolume.series.number} +{ volume empty$ + { "" % Push the empty string as a placeholder in case everything else + % is empty too. + series empty$ + 'skip$ + { pop$ series } % if series is not empty put in stack + if$ + number empty$ + 'skip$ + { duplicate$ empty$ % if no preceding material, + 'skip$ % do nothing, otherwise + { ", " * } % add a comma and space to separate. + if$ + "\btxnumbershort {.}" number tie.or.space.connect * % add the number information + } + if$ + } + { "\btxvolumeshort {.}" volume tie.or.space.connect % vol. XX + number empty$ + { series empty$ + 'skip$ + { series ", " * swap$ *} % Series Name, vol. XX + if$ + } + { series empty$ + { "can't use both volume and number if series info is missing" + warning$ + "in BibTeX entry type `" type$ * "'" * top$ + } + { ", " * series * ", \btxnumbershort {.}" * number tie.or.space.connect } + if$ + } + if$ + } + if$ + +} % end of format.bookvolume.series.number + +FUNCTION {format.inproc.title.address.editors} +{ booktitle empty$ + { "" } + { booktitle + address empty$ + 'skip$ + { add.space.if.necessary "(" * address * ")" * } + if$ + editor empty$ + 'skip$ + { add.space.if.necessary "(" * format.nonauthor.editors * ")" * } + if$ + } + if$ +} + +FUNCTION {format.incoll.title.editors} +{ booktitle empty$ + { "" } + { editor empty$ + { booktitle } + { booktitle + add.space.if.necessary "(" * format.nonauthor.editors * ")" * + } + if$ + } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" language.change.case " \btxeditionshort {.}" * } + { edition "t" language.change.case " \btxeditionshort {.}" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "\btxISBN~\btxISBNfont {" isbn * "}" * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "\btxISSN~\btxISSNfont {" issn * "}" * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + urldate empty$ + { "\btxurlfont{" url * "}" * } + { + "\btxurlfont{" url * + "}, \btxurldatecomment{} \btxkeywordlanguage {\btxurldatefont {" * + urldate * "}}" * + } + if$ + } + 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 empty$ + { "" } + { pages n.dashify } + if$ +} + +FUNCTION {format.book.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "\btxpagesshort {.}~" pages n.dashify * } + { "\btxpageshort {.}~" pages * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.book.pages + { type empty$ + { "\btxchaptershort {.}~" } + { type "l" language.change.case " " * } + if$ + chapter * + pages empty$ + 'skip$ + { ", " * format.book.pages * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" language.change.case + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "\Btxtechrepshort {.}" } + 'type + if$ + number empty$ + { "t" language.change.case } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\btxinshort {} " journal journalfont * } + if$ + } + { "\btxinshort {} " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " \btxetalshort {.}" * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " \btxetalshort {.}" * } + { " \btxandlong {} " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\btxinserieslong {} " + } + { "\btxvolumeshort {.}" volume tie.or.space.connect + " \btxofserieslong {} " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\btxinlong {} " * booktitle titlefont * } + if$ + } + { "\btxinlong {} " key * } + if$ + } + { "\btxinlong {} " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.journal.vol.year output + format.number output + format.pages "pages" output.check + } + { format.article.crossref output.nonnull + format.pages "pages" output.check + } + if$ + format.issn output + format.url output + format.language * + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.title "title" output.check + format.edition output + crossref missing$ + { format.bookvolume.series.number output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.isbn output + format.url output + format.language * + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.title "title" output.check + howpublished output + address output + format.date output + format.url output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.title "title" output.check + format.edition output + crossref missing$ + { format.bookvolume.series.number output + format.chapter.pages "chapter and pages" output.check + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.isbn output + format.url output + format.language * + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.incoll.title.editors "booktitle" output.check + format.bookvolume.series.number output + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + note output + format.book.pages output + format.isbn output + format.url output + format.language * + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.inproc.title.address.editors "booktitle" output.check + format.bookvolume.series.number output + organization output + publisher output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + note output + format.book.pages output + format.isbn output + format.url output + format.language * + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + format.title "title" output.check + author empty$ + { organization empty$ + { address output } + 'skip$ + if$ + } + { organization output + address output + } + if$ + format.edition output + format.date output + format.isbn output + format.url output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + "\btxmastthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.url output + note output + format.book.pages output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + howpublished output + format.date output + format.isbn output + format.issn output + format.url output + note output + format.book.pages output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + "\btxphdthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.isbn output + format.url output + note output + format.book.pages output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + format.title "title" output.check + format.bookvolume.series.number output + address empty$ + { editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + if$ + format.isbn output + format.url output + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.isbn output + format.url output + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + format.url output + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanlong {}"} +MACRO {feb} {"\btxmonfeblong {}"} +MACRO {mar} {"\btxmonmarlong {}"} +MACRO {apr} {"\btxmonaprlong {}"} +MACRO {may} {"\btxmonmaylong {}"} +MACRO {jun} {"\btxmonjunlong {}"} +MACRO {jul} {"\btxmonjullong {}"} +MACRO {aug} {"\btxmonauglong {}"} +MACRO {sep} {"\btxmonseplong {}"} +MACRO {oct} {"\btxmonoctlong {}"} +MACRO {nov} {"\btxmonnovlong {}"} +MACRO {dec} {"\btxmondeclong {}"} + +READ + +FUNCTION {sortify} +{ purify$ + "l" language.change.case +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label prev.author this.author } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := + "abcxyz" 'prev.author := + "" 'this.author := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + author empty$ + { editor empty$ + { "" } + 'editor + if$ + } + 'author + if$ + 'this.author := + this.author prev.author = + { "\bysame" 'bysame := } + { "" 'bysame := + this.author "" = + { "abcxyz" } + 'this.author + if$ + 'prev.author := + } + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {write.lines} +{ { duplicate$ "." = NOT } + { write$ newline$ } + while$ + pop$ +} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + " \providecommand{\bysame}{\leavevmode\hbox to3em{\hrulefill}\thinspace}" + write$ newline$ + " \providecommand{\MR}{\relax\ifhmode\unskip\space\fi MR }" + write$ newline$ + " % \MRhref is called by the amsart/book/proc definition of \MR." + write$ newline$ + " \providecommand{\MRhref}[2]{%" write$ newline$ + " \href{http://www.ams.org/mathscinet-getitem?mr=#1}{#2}" + write$ newline$ + " }" write$ newline$ + " \providecommand{\href}[2]{#2}" write$ newline$ + " \providebibliographyfont{name}{}%" write$ newline$ + " \providebibliographyfont{lastname}{}%" write$ newline$ + " \providebibliographyfont{title}{\emph}%" write$ newline$ + " \providebibliographyfont{etal}{}%" write$ newline$ + " \providebibliographyfont{journal}{}%" write$ newline$ + " \providebibliographyfont{volume}{\textbf}%" write$ newline$ + " \providebibliographyfont{ISBN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{ISSN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{url}{\url}%" write$ newline$ + " \providecommand\btxprintamslanguage[1]{\ (#1)}" + write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/babelbib/babplai3-fl.bst b/Master/texmf-dist/bibtex/bst/babelbib/babplai3-fl.bst new file mode 100644 index 00000000000..075c0ce1c78 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/babelbib/babplai3-fl.bst @@ -0,0 +1,1343 @@ +%% +%% This is file `babplai3-fl.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% babelbib.dtx (with options: `bst,bststd,bstthree,namevara') +%% +%% babelbib package +%% +%% Copyright 2003--2005 Harald Harders +%% +%% This program 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. +%% +%% h.harders@tu-bs.de +%% +%% 2005/09/01 v1.15 babelbib: multilingual bibliographies (HH) +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + url + urldate + volume + year + } + {} + { label } + +INTEGERS + { output.state + before.all + mid.sentence + after.sentence + after.block + before.title + } + +STRINGS + { s + t + language.state + change.temp + isbn.command + } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {language.change.case} +{ + 'change.temp := + 't := + "\btxifchangecase {" + t change.temp change.case$ * + "}{" * + 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$ + { + output.state before.title = + { "\btxauthorcolon\ " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + language empty$ + { "empty language in " cite$ * warning$ + language.state "nolanguage" = + 'skip$ + { + "\expandafter\btxselectlanguage\expandafter {" + "\btxfallbacklanguage}" * write$ + newline$ + } + if$ + "nolanguage" 'language.state := + } + { language.state language = + 'skip$ + { "\btxselectlanguage {" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.isbn} +{ + 'isbn.command := + duplicate$ + empty$ + 'pop$ + { + 's := + output.state mid.sentence = + { + isbn.command * " {, " * write$ + s "}" * + } + { output.state after.block = + { + add.period$ + write$ + newline$ + "\newblock " write$ + isbn.command " {" * s * ".}" * + } + { output.state before.all = + { + write$ + isbn.command " {" * write$ + s "}" * + } + { + output.state before.title = + { + "\btxauthorcolon\ " * write$ + isbn.command " {" * write$ + s "}" * + } + { + add.period$ " " * write$ + isbn.command " {" * write$ + s ".}" * + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + } + 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 {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {namefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {lastnamefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxlastnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {titlefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxtitlefont {" swap$ * "}" * } + if$ +} + +FUNCTION {journalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxjournalfont {" swap$ * "}" * } + if$ +} + +FUNCTION {volumefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxvolumefont {" swap$ * "}" * } + if$ +} + +FUNCTION {etalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxetalfont {" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { + s nameptr "{ff~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * 't := + namesleft #2 > + { " " "\btxetalshort {.}" etalfont * * + #1 'namesleft := } + { + namesleft #1 > + { ", " * t namefont * } + { numnames #2 > + { "\btxandcomma {}" * } + 'skip$ + if$ + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * t namefont * } + if$ + } + if$ + } + if$ + } + { + s nameptr "{ff~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * namefont + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorslong {})" * } + { "\ (\btxeditorlong {})" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" language.change.case titlefont } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "\ " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title titlefont +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {volume.tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ volumefont * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumelong {}" } + { "\btxvolumelong {}" } + if$ + volume volume.tie.or.space.connect + series empty$ + 'skip$ + { " \btxofserieslong {}\ " * series titlefont * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumberlong {}" } + { "\Btxnumberlong {}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinserieslong {}\ " * series titlefont * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { + output.state mid.sentence = + { edition "l" language.change.case "~\btxeditionlong {}" * } + { edition "t" language.change.case "~\btxeditionlong {}" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "\btxISBN~\btxISBNfont {" isbn * "}" * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "\btxISSN~\btxISSNfont {" issn * "}" * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + urldate empty$ + { "\btxurlfont{" url * "}" * } + { + "\btxurlfont{" url * + "}, \btxurldatecomment{} \btxkeywordlanguage {\btxurldatefont{" * + urldate * "}}" * + } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpageslong {}" pages n.dashify tie.or.space.connect } + { "\btxpagelong {}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchapterlong {}" } + { type "l" language.change.case } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinlong {}\ " booktitle titlefont * } + { "\Btxinlong {}\ " format.editors * ": " * booktitle titlefont * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" language.change.case + } + if$ +} + +FUNCTION {format.tr.number} +{ + number empty$ + { + type empty$ + { "\btxtechreplong {}" } + { type "t" language.change.case } + if$ + } + { + type empty$ + { "\Btxtechreplong {}" } + { type "t" language.change.case } + if$ + number tie.or.space.connect + } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinlong {}\ " journal titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ + editor #1 "{ll}{,~jj}{, ff}{~vv}" format.name$ namefont + editor num.names$ duplicate$ + #2 > + { pop$ " " "\btxetalshort {.}" etalfont * * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * editor #2 "{ff}{~vv}{~ll}{, jj}" + format.name$ namefont * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinlong {}\ " + } + { "\Btxvolumelong {}" volume volume.tie.or.space.connect + " \btxofserieslong {}\ " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series titlefont * } + if$ + } + { key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Btxinlong {}\ " booktitle titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { titlefont } + { journalfont } + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + format.url output + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.url output + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanlong {}"} +MACRO {feb} {"\btxmonfeblong {}"} +MACRO {mar} {"\btxmonmarlong {}"} +MACRO {apr} {"\btxmonaprlong {}"} +MACRO {may} {"\btxmonmaylong {}"} +MACRO {jun} {"\btxmonjunlong {}"} +MACRO {jul} {"\btxmonjullong {}"} +MACRO {aug} {"\btxmonauglong {}"} +MACRO {sep} {"\btxmonseplong {}"} +MACRO {oct} {"\btxmonoctlong {}"} +MACRO {nov} {"\btxmonnovlong {}"} +MACRO {dec} {"\btxmondeclong {}"} +MACRO {acmcs} {"ACM Computing Surveys"} +MACRO {acta} {"Acta Informatica"} +MACRO {cacm} {"Communications of the ACM"} +MACRO {ibmjrd} {"IBM Journal of Research and Development"} +MACRO {ibmsj} {"IBM Systems Journal"} +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} +MACRO {ieeetc} {"IEEE Transactions on Computers"} +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} +MACRO {ipl} {"Information Processing Letters"} +MACRO {jacm} {"Journal of the ACM"} +MACRO {jcss} {"Journal of Computer and System Sciences"} +MACRO {scp} {"Science of Computer Programming"} +MACRO {sicomp} {"SIAM Journal on Computing"} +MACRO {tocs} {"ACM Transactions on Computer Systems"} +MACRO {tods} {"ACM Transactions on Database Systems"} +MACRO {tog} {"ACM Transactions on Graphics"} +MACRO {toms} {"ACM Transactions on Mathematical Software"} +MACRO {toois} {"ACM Transactions on Office Information Systems"} +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ ff{ }}{vv{ } }{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + " \providebibliographyfont{name}{}%" write$ newline$ + " \providebibliographyfont{lastname}{}%" write$ newline$ + " \providebibliographyfont{title}{\emph}%" write$ newline$ + " \providebibliographyfont{etal}{\emph}%" write$ newline$ + " \providebibliographyfont{journal}{}%" write$ newline$ + " \providebibliographyfont{volume}{}%" write$ newline$ + " \providebibliographyfont{ISBN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{ISSN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{url}{\url}%" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/babelbib/babplai3-lf.bst b/Master/texmf-dist/bibtex/bst/babelbib/babplai3-lf.bst new file mode 100644 index 00000000000..88015d9f614 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/babelbib/babplai3-lf.bst @@ -0,0 +1,1341 @@ +%% +%% This is file `babplai3-lf.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% babelbib.dtx (with options: `bst,bststd,bstthree,namevarb') +%% +%% babelbib package +%% +%% Copyright 2003--2005 Harald Harders +%% +%% This program 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. +%% +%% h.harders@tu-bs.de +%% +%% 2005/09/01 v1.15 babelbib: multilingual bibliographies (HH) +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + url + urldate + volume + year + } + {} + { label } + +INTEGERS + { output.state + before.all + mid.sentence + after.sentence + after.block + before.title + } + +STRINGS + { s + t + language.state + change.temp + isbn.command + } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {language.change.case} +{ + 'change.temp := + 't := + "\btxifchangecase {" + t change.temp change.case$ * + "}{" * + 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$ + { + output.state before.title = + { "\btxauthorcolon\ " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + language empty$ + { "empty language in " cite$ * warning$ + language.state "nolanguage" = + 'skip$ + { + "\expandafter\btxselectlanguage\expandafter {" + "\btxfallbacklanguage}" * write$ + newline$ + } + if$ + "nolanguage" 'language.state := + } + { language.state language = + 'skip$ + { "\btxselectlanguage {" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.isbn} +{ + 'isbn.command := + duplicate$ + empty$ + 'pop$ + { + 's := + output.state mid.sentence = + { + isbn.command * " {, " * write$ + s "}" * + } + { output.state after.block = + { + add.period$ + write$ + newline$ + "\newblock " write$ + isbn.command " {" * s * ".}" * + } + { output.state before.all = + { + write$ + isbn.command " {" * write$ + s "}" * + } + { + output.state before.title = + { + "\btxauthorcolon\ " * write$ + isbn.command " {" * write$ + s "}" * + } + { + add.period$ " " * write$ + isbn.command " {" * write$ + s ".}" * + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + } + 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 {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {namefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {lastnamefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxlastnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {titlefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxtitlefont {" swap$ * "}" * } + if$ +} + +FUNCTION {journalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxjournalfont {" swap$ * "}" * } + if$ +} + +FUNCTION {volumefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxvolumefont {" swap$ * "}" * } + if$ +} + +FUNCTION {etalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxetalfont {" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { + s nameptr "{ll}" format.name$ lastnamefont + s nameptr "{, jj}{, ff}{~vv}" format.name$ * 't := + namesleft #2 > + { " " "\btxetalshort {.}" etalfont * * + #1 'namesleft := } + { + namesleft #1 > + { ", " * t namefont * } + { numnames #2 > + { "\btxandcomma {}" * } + 'skip$ + if$ + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * t namefont * } + if$ + } + if$ + } + if$ + } + { + s nameptr "{ll}" format.name$ lastnamefont + s nameptr "{,~jj}{, ff}{~vv}" format.name$ * namefont + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorslong {})" * } + { "\ (\btxeditorlong {})" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" language.change.case titlefont } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "\ " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title titlefont +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {volume.tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ volumefont * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumelong {}" } + { "\btxvolumelong {}" } + if$ + volume volume.tie.or.space.connect + series empty$ + 'skip$ + { " \btxofserieslong {}\ " * series titlefont * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumberlong {}" } + { "\Btxnumberlong {}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinserieslong {}\ " * series titlefont * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { + output.state mid.sentence = + { edition "l" language.change.case "~\btxeditionlong {}" * } + { edition "t" language.change.case "~\btxeditionlong {}" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "\btxISBN~\btxISBNfont {" isbn * "}" * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "\btxISSN~\btxISSNfont {" issn * "}" * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + urldate empty$ + { "\btxurlfont{" url * "}" * } + { + "\btxurlfont{" url * + "}, \btxurldatecomment{} \btxkeywordlanguage {\btxurldatefont{" * + urldate * "}}" * + } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpageslong {}" pages n.dashify tie.or.space.connect } + { "\btxpagelong {}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchapterlong {}" } + { type "l" language.change.case } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinlong {}\ " booktitle titlefont * } + { "\Btxinlong {}\ " format.editors * ": " * booktitle titlefont * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" language.change.case + } + if$ +} + +FUNCTION {format.tr.number} +{ + number empty$ + { + type empty$ + { "\btxtechreplong {}" } + { type "t" language.change.case } + if$ + } + { + type empty$ + { "\Btxtechreplong {}" } + { type "t" language.change.case } + if$ + number tie.or.space.connect + } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinlong {}\ " journal titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ + editor #1 "{ll}{,~jj}{, ff}{~vv}" format.name$ namefont + editor num.names$ duplicate$ + #2 > + { pop$ " " "\btxetalshort {.}" etalfont * * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * editor #2 "{ff}{~vv}{~ll}{, jj}" + format.name$ namefont * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinlong {}\ " + } + { "\Btxvolumelong {}" volume volume.tie.or.space.connect + " \btxofserieslong {}\ " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series titlefont * } + if$ + } + { key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Btxinlong {}\ " booktitle titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { titlefont } + { journalfont } + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + format.url output + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.url output + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanlong {}"} +MACRO {feb} {"\btxmonfeblong {}"} +MACRO {mar} {"\btxmonmarlong {}"} +MACRO {apr} {"\btxmonaprlong {}"} +MACRO {may} {"\btxmonmaylong {}"} +MACRO {jun} {"\btxmonjunlong {}"} +MACRO {jul} {"\btxmonjullong {}"} +MACRO {aug} {"\btxmonauglong {}"} +MACRO {sep} {"\btxmonseplong {}"} +MACRO {oct} {"\btxmonoctlong {}"} +MACRO {nov} {"\btxmonnovlong {}"} +MACRO {dec} {"\btxmondeclong {}"} +MACRO {acmcs} {"ACM Computing Surveys"} +MACRO {acta} {"Acta Informatica"} +MACRO {cacm} {"Communications of the ACM"} +MACRO {ibmjrd} {"IBM Journal of Research and Development"} +MACRO {ibmsj} {"IBM Systems Journal"} +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} +MACRO {ieeetc} {"IEEE Transactions on Computers"} +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} +MACRO {ipl} {"Information Processing Letters"} +MACRO {jacm} {"Journal of the ACM"} +MACRO {jcss} {"Journal of Computer and System Sciences"} +MACRO {scp} {"Science of Computer Programming"} +MACRO {sicomp} {"SIAM Journal on Computing"} +MACRO {tocs} {"ACM Transactions on Computer Systems"} +MACRO {tods} {"ACM Transactions on Database Systems"} +MACRO {tog} {"ACM Transactions on Graphics"} +MACRO {toms} {"ACM Transactions on Mathematical Software"} +MACRO {toois} {"ACM Transactions on Office Information Systems"} +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ ff{ }}{vv{ } }{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + " \providebibliographyfont{name}{}%" write$ newline$ + " \providebibliographyfont{lastname}{}%" write$ newline$ + " \providebibliographyfont{title}{\emph}%" write$ newline$ + " \providebibliographyfont{etal}{\emph}%" write$ newline$ + " \providebibliographyfont{journal}{}%" write$ newline$ + " \providebibliographyfont{volume}{}%" write$ newline$ + " \providebibliographyfont{ISBN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{ISSN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{url}{\url}%" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/babelbib/babplai3.bst b/Master/texmf-dist/bibtex/bst/babelbib/babplai3.bst new file mode 100644 index 00000000000..2df398b6d66 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/babelbib/babplai3.bst @@ -0,0 +1,1342 @@ +%% +%% This is file `babplai3.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% babelbib.dtx (with options: `bst,bststd,bstthree') +%% +%% babelbib package +%% +%% Copyright 2003--2005 Harald Harders +%% +%% This program 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. +%% +%% h.harders@tu-bs.de +%% +%% 2005/09/01 v1.15 babelbib: multilingual bibliographies (HH) +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + url + urldate + volume + year + } + {} + { label } + +INTEGERS + { output.state + before.all + mid.sentence + after.sentence + after.block + before.title + } + +STRINGS + { s + t + language.state + change.temp + isbn.command + } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {language.change.case} +{ + 'change.temp := + 't := + "\btxifchangecase {" + t change.temp change.case$ * + "}{" * + 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$ + { + output.state before.title = + { "\btxauthorcolon\ " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + language empty$ + { "empty language in " cite$ * warning$ + language.state "nolanguage" = + 'skip$ + { + "\expandafter\btxselectlanguage\expandafter {" + "\btxfallbacklanguage}" * write$ + newline$ + } + if$ + "nolanguage" 'language.state := + } + { language.state language = + 'skip$ + { "\btxselectlanguage {" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.isbn} +{ + 'isbn.command := + duplicate$ + empty$ + 'pop$ + { + 's := + output.state mid.sentence = + { + isbn.command * " {, " * write$ + s "}" * + } + { output.state after.block = + { + add.period$ + write$ + newline$ + "\newblock " write$ + isbn.command " {" * s * ".}" * + } + { output.state before.all = + { + write$ + isbn.command " {" * write$ + s "}" * + } + { + output.state before.title = + { + "\btxauthorcolon\ " * write$ + isbn.command " {" * write$ + s "}" * + } + { + add.period$ " " * write$ + isbn.command " {" * write$ + s ".}" * + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + } + 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 {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {namefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {lastnamefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxlastnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {titlefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxtitlefont {" swap$ * "}" * } + if$ +} + +FUNCTION {journalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxjournalfont {" swap$ * "}" * } + if$ +} + +FUNCTION {volumefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxvolumefont {" swap$ * "}" * } + if$ +} + +FUNCTION {etalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxetalfont {" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { + s nameptr "{ff~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * 't := + namesleft #2 > + { " " "\btxetalshort {.}" etalfont * * + #1 'namesleft := } + { + namesleft #1 > + { ", " * t namefont * } + { numnames #2 > + { "\btxandcomma {}" * } + 'skip$ + if$ + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * t namefont * } + if$ + } + if$ + } + if$ + } + { + s nameptr "{ll}" format.name$ lastnamefont + s nameptr "{,~jj}{, ff}{~vv}" format.name$ * namefont + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorslong {})" * } + { "\ (\btxeditorlong {})" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" language.change.case titlefont } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "\ " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title titlefont +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {volume.tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ volumefont * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumelong {}" } + { "\btxvolumelong {}" } + if$ + volume volume.tie.or.space.connect + series empty$ + 'skip$ + { " \btxofserieslong {}\ " * series titlefont * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumberlong {}" } + { "\Btxnumberlong {}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinserieslong {}\ " * series titlefont * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { + output.state mid.sentence = + { edition "l" language.change.case "~\btxeditionlong {}" * } + { edition "t" language.change.case "~\btxeditionlong {}" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "\btxISBN~\btxISBNfont {" isbn * "}" * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "\btxISSN~\btxISSNfont {" issn * "}" * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + urldate empty$ + { "\btxurlfont{" url * "}" * } + { + "\btxurlfont{" url * + "}, \btxurldatecomment{} \btxkeywordlanguage {\btxurldatefont{" * + urldate * "}}" * + } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpageslong {}" pages n.dashify tie.or.space.connect } + { "\btxpagelong {}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchapterlong {}" } + { type "l" language.change.case } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinlong {}\ " booktitle titlefont * } + { "\Btxinlong {}\ " format.editors * ": " * booktitle titlefont * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" language.change.case + } + if$ +} + +FUNCTION {format.tr.number} +{ + number empty$ + { + type empty$ + { "\btxtechreplong {}" } + { type "t" language.change.case } + if$ + } + { + type empty$ + { "\Btxtechreplong {}" } + { type "t" language.change.case } + if$ + number tie.or.space.connect + } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinlong {}\ " journal titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ + editor #1 "{ll}{,~jj}{, ff}{~vv}" format.name$ namefont + editor num.names$ duplicate$ + #2 > + { pop$ " " "\btxetalshort {.}" etalfont * * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * editor #2 "{ff}{~vv}{~ll}{, jj}" + format.name$ namefont * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinlong {}\ " + } + { "\Btxvolumelong {}" volume volume.tie.or.space.connect + " \btxofserieslong {}\ " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series titlefont * } + if$ + } + { key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Btxinlong {}\ " booktitle titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { titlefont } + { journalfont } + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + format.url output + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.url output + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanlong {}"} +MACRO {feb} {"\btxmonfeblong {}"} +MACRO {mar} {"\btxmonmarlong {}"} +MACRO {apr} {"\btxmonaprlong {}"} +MACRO {may} {"\btxmonmaylong {}"} +MACRO {jun} {"\btxmonjunlong {}"} +MACRO {jul} {"\btxmonjullong {}"} +MACRO {aug} {"\btxmonauglong {}"} +MACRO {sep} {"\btxmonseplong {}"} +MACRO {oct} {"\btxmonoctlong {}"} +MACRO {nov} {"\btxmonnovlong {}"} +MACRO {dec} {"\btxmondeclong {}"} +MACRO {acmcs} {"ACM Computing Surveys"} +MACRO {acta} {"Acta Informatica"} +MACRO {cacm} {"Communications of the ACM"} +MACRO {ibmjrd} {"IBM Journal of Research and Development"} +MACRO {ibmsj} {"IBM Systems Journal"} +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} +MACRO {ieeetc} {"IEEE Transactions on Computers"} +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} +MACRO {ipl} {"Information Processing Letters"} +MACRO {jacm} {"Journal of the ACM"} +MACRO {jcss} {"Journal of Computer and System Sciences"} +MACRO {scp} {"Science of Computer Programming"} +MACRO {sicomp} {"SIAM Journal on Computing"} +MACRO {tocs} {"ACM Transactions on Computer Systems"} +MACRO {tods} {"ACM Transactions on Database Systems"} +MACRO {tog} {"ACM Transactions on Graphics"} +MACRO {toms} {"ACM Transactions on Mathematical Software"} +MACRO {toois} {"ACM Transactions on Office Information Systems"} +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ ff{ }}{vv{ } }{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + " \providebibliographyfont{name}{}%" write$ newline$ + " \providebibliographyfont{lastname}{}%" write$ newline$ + " \providebibliographyfont{title}{\emph}%" write$ newline$ + " \providebibliographyfont{etal}{\emph}%" write$ newline$ + " \providebibliographyfont{journal}{}%" write$ newline$ + " \providebibliographyfont{volume}{}%" write$ newline$ + " \providebibliographyfont{ISBN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{ISSN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{url}{\url}%" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/babelbib/babplain-fl.bst b/Master/texmf-dist/bibtex/bst/babelbib/babplain-fl.bst new file mode 100644 index 00000000000..c6219c2fd82 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/babelbib/babplain-fl.bst @@ -0,0 +1,1337 @@ +%% +%% This is file `babplain-fl.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% babelbib.dtx (with options: `bst,bststd,namevara') +%% +%% babelbib package +%% +%% Copyright 2003--2005 Harald Harders +%% +%% This program 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. +%% +%% h.harders@tu-bs.de +%% +%% 2005/09/01 v1.15 babelbib: multilingual bibliographies (HH) +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + url + urldate + volume + year + } + {} + { label } + +INTEGERS + { output.state + before.all + mid.sentence + after.sentence + after.block + before.title + } + +STRINGS + { s + t + language.state + change.temp + isbn.command + } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {language.change.case} +{ + 'change.temp := + 't := + "\btxifchangecase {" + t change.temp change.case$ * + "}{" * + 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$ + { + output.state before.title = + { "\btxauthorcolon\ " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + language empty$ + { "empty language in " cite$ * warning$ + language.state "nolanguage" = + 'skip$ + { + "\expandafter\btxselectlanguage\expandafter {" + "\btxfallbacklanguage}" * write$ + newline$ + } + if$ + "nolanguage" 'language.state := + } + { language.state language = + 'skip$ + { "\btxselectlanguage {" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.isbn} +{ + 'isbn.command := + duplicate$ + empty$ + 'pop$ + { + 's := + output.state mid.sentence = + { + isbn.command * " {, " * write$ + s "}" * + } + { output.state after.block = + { + add.period$ + write$ + newline$ + "\newblock " write$ + isbn.command " {" * s * ".}" * + } + { output.state before.all = + { + write$ + isbn.command " {" * write$ + s "}" * + } + { + output.state before.title = + { + "\btxauthorcolon\ " * write$ + isbn.command " {" * write$ + s "}" * + } + { + add.period$ " " * write$ + isbn.command " {" * write$ + s ".}" * + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + } + 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 {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {namefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {lastnamefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxlastnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {titlefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxtitlefont {" swap$ * "}" * } + if$ +} + +FUNCTION {journalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxjournalfont {" swap$ * "}" * } + if$ +} + +FUNCTION {volumefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxvolumefont {" swap$ * "}" * } + if$ +} + +FUNCTION {etalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxetalfont {" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { + s nameptr "{ff~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * 't := + namesleft #1 > + { ", " * t namefont * } + { numnames #2 > + { "\btxandcomma {}" * } + 'skip$ + if$ + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * t namefont * } + if$ + } + if$ + } + { + s nameptr "{ff~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * namefont + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorslong {})" * } + { "\ (\btxeditorlong {})" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" language.change.case titlefont } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "\ " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title titlefont +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {volume.tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ volumefont * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumelong {}" } + { "\btxvolumelong {}" } + if$ + volume volume.tie.or.space.connect + series empty$ + 'skip$ + { " \btxofserieslong {}\ " * series titlefont * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumberlong {}" } + { "\Btxnumberlong {}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinserieslong {}\ " * series titlefont * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { + output.state mid.sentence = + { edition "l" language.change.case "~\btxeditionlong {}" * } + { edition "t" language.change.case "~\btxeditionlong {}" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "\btxISBN~\btxISBNfont {" isbn * "}" * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "\btxISSN~\btxISSNfont {" issn * "}" * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + urldate empty$ + { "\btxurlfont{" url * "}" * } + { + "\btxurlfont{" url * + "}, \btxurldatecomment{} \btxkeywordlanguage {\btxurldatefont{" * + urldate * "}}" * + } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpageslong {}" pages n.dashify tie.or.space.connect } + { "\btxpagelong {}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchapterlong {}" } + { type "l" language.change.case } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinlong {}\ " booktitle titlefont * } + { "\Btxinlong {}\ " format.editors * ": " * booktitle titlefont * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" language.change.case + } + if$ +} + +FUNCTION {format.tr.number} +{ + number empty$ + { + type empty$ + { "\btxtechreplong {}" } + { type "t" language.change.case } + if$ + } + { + type empty$ + { "\Btxtechreplong {}" } + { type "t" language.change.case } + if$ + number tie.or.space.connect + } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinlong {}\ " journal titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ + editor #1 "{ll}{,~jj}{, ff}{~vv}" format.name$ namefont + editor num.names$ duplicate$ + #2 > + { pop$ " " "\btxetalshort {.}" etalfont * * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * editor #2 "{ff}{~vv}{~ll}{, jj}" + format.name$ namefont * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinlong {}\ " + } + { "\Btxvolumelong {}" volume volume.tie.or.space.connect + " \btxofserieslong {}\ " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series titlefont * } + if$ + } + { key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Btxinlong {}\ " booktitle titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { titlefont } + { journalfont } + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + format.url output + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.url output + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanlong {}"} +MACRO {feb} {"\btxmonfeblong {}"} +MACRO {mar} {"\btxmonmarlong {}"} +MACRO {apr} {"\btxmonaprlong {}"} +MACRO {may} {"\btxmonmaylong {}"} +MACRO {jun} {"\btxmonjunlong {}"} +MACRO {jul} {"\btxmonjullong {}"} +MACRO {aug} {"\btxmonauglong {}"} +MACRO {sep} {"\btxmonseplong {}"} +MACRO {oct} {"\btxmonoctlong {}"} +MACRO {nov} {"\btxmonnovlong {}"} +MACRO {dec} {"\btxmondeclong {}"} +MACRO {acmcs} {"ACM Computing Surveys"} +MACRO {acta} {"Acta Informatica"} +MACRO {cacm} {"Communications of the ACM"} +MACRO {ibmjrd} {"IBM Journal of Research and Development"} +MACRO {ibmsj} {"IBM Systems Journal"} +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} +MACRO {ieeetc} {"IEEE Transactions on Computers"} +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} +MACRO {ipl} {"Information Processing Letters"} +MACRO {jacm} {"Journal of the ACM"} +MACRO {jcss} {"Journal of Computer and System Sciences"} +MACRO {scp} {"Science of Computer Programming"} +MACRO {sicomp} {"SIAM Journal on Computing"} +MACRO {tocs} {"ACM Transactions on Computer Systems"} +MACRO {tods} {"ACM Transactions on Database Systems"} +MACRO {tog} {"ACM Transactions on Graphics"} +MACRO {toms} {"ACM Transactions on Mathematical Software"} +MACRO {toois} {"ACM Transactions on Office Information Systems"} +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ ff{ }}{vv{ } }{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + " \providebibliographyfont{name}{}%" write$ newline$ + " \providebibliographyfont{lastname}{}%" write$ newline$ + " \providebibliographyfont{title}{\emph}%" write$ newline$ + " \providebibliographyfont{etal}{\emph}%" write$ newline$ + " \providebibliographyfont{journal}{}%" write$ newline$ + " \providebibliographyfont{volume}{}%" write$ newline$ + " \providebibliographyfont{ISBN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{ISSN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{url}{\url}%" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/babelbib/babplain-lf.bst b/Master/texmf-dist/bibtex/bst/babelbib/babplain-lf.bst new file mode 100644 index 00000000000..ffd819af2dc --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/babelbib/babplain-lf.bst @@ -0,0 +1,1335 @@ +%% +%% This is file `babplain-lf.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% babelbib.dtx (with options: `bst,bststd,namevarb') +%% +%% babelbib package +%% +%% Copyright 2003--2005 Harald Harders +%% +%% This program 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. +%% +%% h.harders@tu-bs.de +%% +%% 2005/09/01 v1.15 babelbib: multilingual bibliographies (HH) +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + url + urldate + volume + year + } + {} + { label } + +INTEGERS + { output.state + before.all + mid.sentence + after.sentence + after.block + before.title + } + +STRINGS + { s + t + language.state + change.temp + isbn.command + } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {language.change.case} +{ + 'change.temp := + 't := + "\btxifchangecase {" + t change.temp change.case$ * + "}{" * + 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$ + { + output.state before.title = + { "\btxauthorcolon\ " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + language empty$ + { "empty language in " cite$ * warning$ + language.state "nolanguage" = + 'skip$ + { + "\expandafter\btxselectlanguage\expandafter {" + "\btxfallbacklanguage}" * write$ + newline$ + } + if$ + "nolanguage" 'language.state := + } + { language.state language = + 'skip$ + { "\btxselectlanguage {" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.isbn} +{ + 'isbn.command := + duplicate$ + empty$ + 'pop$ + { + 's := + output.state mid.sentence = + { + isbn.command * " {, " * write$ + s "}" * + } + { output.state after.block = + { + add.period$ + write$ + newline$ + "\newblock " write$ + isbn.command " {" * s * ".}" * + } + { output.state before.all = + { + write$ + isbn.command " {" * write$ + s "}" * + } + { + output.state before.title = + { + "\btxauthorcolon\ " * write$ + isbn.command " {" * write$ + s "}" * + } + { + add.period$ " " * write$ + isbn.command " {" * write$ + s ".}" * + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + } + 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 {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {namefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {lastnamefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxlastnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {titlefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxtitlefont {" swap$ * "}" * } + if$ +} + +FUNCTION {journalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxjournalfont {" swap$ * "}" * } + if$ +} + +FUNCTION {volumefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxvolumefont {" swap$ * "}" * } + if$ +} + +FUNCTION {etalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxetalfont {" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { + s nameptr "{ll}" format.name$ lastnamefont + s nameptr "{, jj}{, ff}{~vv}" format.name$ * 't := + namesleft #1 > + { ", " * t namefont * } + { numnames #2 > + { "\btxandcomma {}" * } + 'skip$ + if$ + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * t namefont * } + if$ + } + if$ + } + { + s nameptr "{ll}" format.name$ lastnamefont + s nameptr "{,~jj}{, ff}{~vv}" format.name$ * namefont + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorslong {})" * } + { "\ (\btxeditorlong {})" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" language.change.case titlefont } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "\ " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title titlefont +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {volume.tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ volumefont * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumelong {}" } + { "\btxvolumelong {}" } + if$ + volume volume.tie.or.space.connect + series empty$ + 'skip$ + { " \btxofserieslong {}\ " * series titlefont * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumberlong {}" } + { "\Btxnumberlong {}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinserieslong {}\ " * series titlefont * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { + output.state mid.sentence = + { edition "l" language.change.case "~\btxeditionlong {}" * } + { edition "t" language.change.case "~\btxeditionlong {}" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "\btxISBN~\btxISBNfont {" isbn * "}" * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "\btxISSN~\btxISSNfont {" issn * "}" * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + urldate empty$ + { "\btxurlfont{" url * "}" * } + { + "\btxurlfont{" url * + "}, \btxurldatecomment{} \btxkeywordlanguage {\btxurldatefont{" * + urldate * "}}" * + } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpageslong {}" pages n.dashify tie.or.space.connect } + { "\btxpagelong {}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchapterlong {}" } + { type "l" language.change.case } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinlong {}\ " booktitle titlefont * } + { "\Btxinlong {}\ " format.editors * ": " * booktitle titlefont * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" language.change.case + } + if$ +} + +FUNCTION {format.tr.number} +{ + number empty$ + { + type empty$ + { "\btxtechreplong {}" } + { type "t" language.change.case } + if$ + } + { + type empty$ + { "\Btxtechreplong {}" } + { type "t" language.change.case } + if$ + number tie.or.space.connect + } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinlong {}\ " journal titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ + editor #1 "{ll}{,~jj}{, ff}{~vv}" format.name$ namefont + editor num.names$ duplicate$ + #2 > + { pop$ " " "\btxetalshort {.}" etalfont * * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * editor #2 "{ff}{~vv}{~ll}{, jj}" + format.name$ namefont * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinlong {}\ " + } + { "\Btxvolumelong {}" volume volume.tie.or.space.connect + " \btxofserieslong {}\ " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series titlefont * } + if$ + } + { key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Btxinlong {}\ " booktitle titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { titlefont } + { journalfont } + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + format.url output + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.url output + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanlong {}"} +MACRO {feb} {"\btxmonfeblong {}"} +MACRO {mar} {"\btxmonmarlong {}"} +MACRO {apr} {"\btxmonaprlong {}"} +MACRO {may} {"\btxmonmaylong {}"} +MACRO {jun} {"\btxmonjunlong {}"} +MACRO {jul} {"\btxmonjullong {}"} +MACRO {aug} {"\btxmonauglong {}"} +MACRO {sep} {"\btxmonseplong {}"} +MACRO {oct} {"\btxmonoctlong {}"} +MACRO {nov} {"\btxmonnovlong {}"} +MACRO {dec} {"\btxmondeclong {}"} +MACRO {acmcs} {"ACM Computing Surveys"} +MACRO {acta} {"Acta Informatica"} +MACRO {cacm} {"Communications of the ACM"} +MACRO {ibmjrd} {"IBM Journal of Research and Development"} +MACRO {ibmsj} {"IBM Systems Journal"} +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} +MACRO {ieeetc} {"IEEE Transactions on Computers"} +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} +MACRO {ipl} {"Information Processing Letters"} +MACRO {jacm} {"Journal of the ACM"} +MACRO {jcss} {"Journal of Computer and System Sciences"} +MACRO {scp} {"Science of Computer Programming"} +MACRO {sicomp} {"SIAM Journal on Computing"} +MACRO {tocs} {"ACM Transactions on Computer Systems"} +MACRO {tods} {"ACM Transactions on Database Systems"} +MACRO {tog} {"ACM Transactions on Graphics"} +MACRO {toms} {"ACM Transactions on Mathematical Software"} +MACRO {toois} {"ACM Transactions on Office Information Systems"} +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ ff{ }}{vv{ } }{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + " \providebibliographyfont{name}{}%" write$ newline$ + " \providebibliographyfont{lastname}{}%" write$ newline$ + " \providebibliographyfont{title}{\emph}%" write$ newline$ + " \providebibliographyfont{etal}{\emph}%" write$ newline$ + " \providebibliographyfont{journal}{}%" write$ newline$ + " \providebibliographyfont{volume}{}%" write$ newline$ + " \providebibliographyfont{ISBN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{ISSN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{url}{\url}%" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/babelbib/babplain.bst b/Master/texmf-dist/bibtex/bst/babelbib/babplain.bst new file mode 100644 index 00000000000..a6abddc392c --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/babelbib/babplain.bst @@ -0,0 +1,1336 @@ +%% +%% This is file `babplain.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% babelbib.dtx (with options: `bst,bststd') +%% +%% babelbib package +%% +%% Copyright 2003--2005 Harald Harders +%% +%% This program 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. +%% +%% h.harders@tu-bs.de +%% +%% 2005/09/01 v1.15 babelbib: multilingual bibliographies (HH) +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + url + urldate + volume + year + } + {} + { label } + +INTEGERS + { output.state + before.all + mid.sentence + after.sentence + after.block + before.title + } + +STRINGS + { s + t + language.state + change.temp + isbn.command + } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {language.change.case} +{ + 'change.temp := + 't := + "\btxifchangecase {" + t change.temp change.case$ * + "}{" * + 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$ + { + output.state before.title = + { "\btxauthorcolon\ " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + language empty$ + { "empty language in " cite$ * warning$ + language.state "nolanguage" = + 'skip$ + { + "\expandafter\btxselectlanguage\expandafter {" + "\btxfallbacklanguage}" * write$ + newline$ + } + if$ + "nolanguage" 'language.state := + } + { language.state language = + 'skip$ + { "\btxselectlanguage {" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.isbn} +{ + 'isbn.command := + duplicate$ + empty$ + 'pop$ + { + 's := + output.state mid.sentence = + { + isbn.command * " {, " * write$ + s "}" * + } + { output.state after.block = + { + add.period$ + write$ + newline$ + "\newblock " write$ + isbn.command " {" * s * ".}" * + } + { output.state before.all = + { + write$ + isbn.command " {" * write$ + s "}" * + } + { + output.state before.title = + { + "\btxauthorcolon\ " * write$ + isbn.command " {" * write$ + s "}" * + } + { + add.period$ " " * write$ + isbn.command " {" * write$ + s ".}" * + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + } + 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 {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {namefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {lastnamefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxlastnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {titlefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxtitlefont {" swap$ * "}" * } + if$ +} + +FUNCTION {journalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxjournalfont {" swap$ * "}" * } + if$ +} + +FUNCTION {volumefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxvolumefont {" swap$ * "}" * } + if$ +} + +FUNCTION {etalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxetalfont {" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { + s nameptr "{ff~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * 't := + namesleft #1 > + { ", " * t namefont * } + { numnames #2 > + { "\btxandcomma {}" * } + 'skip$ + if$ + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * t namefont * } + if$ + } + if$ + } + { + s nameptr "{ll}" format.name$ lastnamefont + s nameptr "{,~jj}{, ff}{~vv}" format.name$ * namefont + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorslong {})" * } + { "\ (\btxeditorlong {})" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" language.change.case titlefont } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "\ " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title titlefont +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {volume.tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ volumefont * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumelong {}" } + { "\btxvolumelong {}" } + if$ + volume volume.tie.or.space.connect + series empty$ + 'skip$ + { " \btxofserieslong {}\ " * series titlefont * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumberlong {}" } + { "\Btxnumberlong {}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinserieslong {}\ " * series titlefont * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { + output.state mid.sentence = + { edition "l" language.change.case "~\btxeditionlong {}" * } + { edition "t" language.change.case "~\btxeditionlong {}" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "\btxISBN~\btxISBNfont {" isbn * "}" * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "\btxISSN~\btxISSNfont {" issn * "}" * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + urldate empty$ + { "\btxurlfont{" url * "}" * } + { + "\btxurlfont{" url * + "}, \btxurldatecomment{} \btxkeywordlanguage {\btxurldatefont{" * + urldate * "}}" * + } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpageslong {}" pages n.dashify tie.or.space.connect } + { "\btxpagelong {}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchapterlong {}" } + { type "l" language.change.case } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinlong {}\ " booktitle titlefont * } + { "\Btxinlong {}\ " format.editors * ": " * booktitle titlefont * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" language.change.case + } + if$ +} + +FUNCTION {format.tr.number} +{ + number empty$ + { + type empty$ + { "\btxtechreplong {}" } + { type "t" language.change.case } + if$ + } + { + type empty$ + { "\Btxtechreplong {}" } + { type "t" language.change.case } + if$ + number tie.or.space.connect + } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinlong {}\ " journal titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ + editor #1 "{ll}{,~jj}{, ff}{~vv}" format.name$ namefont + editor num.names$ duplicate$ + #2 > + { pop$ " " "\btxetalshort {.}" etalfont * * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * editor #2 "{ff}{~vv}{~ll}{, jj}" + format.name$ namefont * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinlong {}\ " + } + { "\Btxvolumelong {}" volume volume.tie.or.space.connect + " \btxofserieslong {}\ " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series titlefont * } + if$ + } + { key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Btxinlong {}\ " booktitle titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { titlefont } + { journalfont } + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + format.url output + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.url output + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanlong {}"} +MACRO {feb} {"\btxmonfeblong {}"} +MACRO {mar} {"\btxmonmarlong {}"} +MACRO {apr} {"\btxmonaprlong {}"} +MACRO {may} {"\btxmonmaylong {}"} +MACRO {jun} {"\btxmonjunlong {}"} +MACRO {jul} {"\btxmonjullong {}"} +MACRO {aug} {"\btxmonauglong {}"} +MACRO {sep} {"\btxmonseplong {}"} +MACRO {oct} {"\btxmonoctlong {}"} +MACRO {nov} {"\btxmonnovlong {}"} +MACRO {dec} {"\btxmondeclong {}"} +MACRO {acmcs} {"ACM Computing Surveys"} +MACRO {acta} {"Acta Informatica"} +MACRO {cacm} {"Communications of the ACM"} +MACRO {ibmjrd} {"IBM Journal of Research and Development"} +MACRO {ibmsj} {"IBM Systems Journal"} +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} +MACRO {ieeetc} {"IEEE Transactions on Computers"} +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} +MACRO {ipl} {"Information Processing Letters"} +MACRO {jacm} {"Journal of the ACM"} +MACRO {jcss} {"Journal of Computer and System Sciences"} +MACRO {scp} {"Science of Computer Programming"} +MACRO {sicomp} {"SIAM Journal on Computing"} +MACRO {tocs} {"ACM Transactions on Computer Systems"} +MACRO {tods} {"ACM Transactions on Database Systems"} +MACRO {tog} {"ACM Transactions on Graphics"} +MACRO {toms} {"ACM Transactions on Mathematical Software"} +MACRO {toois} {"ACM Transactions on Office Information Systems"} +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ ff{ }}{vv{ } }{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + " \providebibliographyfont{name}{}%" write$ newline$ + " \providebibliographyfont{lastname}{}%" write$ newline$ + " \providebibliographyfont{title}{\emph}%" write$ newline$ + " \providebibliographyfont{etal}{\emph}%" write$ newline$ + " \providebibliographyfont{journal}{}%" write$ newline$ + " \providebibliographyfont{volume}{}%" write$ newline$ + " \providebibliographyfont{ISBN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{ISSN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{url}{\url}%" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/babelbib/babunsrt-fl.bst b/Master/texmf-dist/bibtex/bst/babelbib/babunsrt-fl.bst new file mode 100644 index 00000000000..11724a73da2 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/babelbib/babunsrt-fl.bst @@ -0,0 +1,1191 @@ +%% +%% This is file `babunsrt-fl.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% babelbib.dtx (with options: `bst,bststd,bstunsorted,namevara') +%% +%% babelbib package +%% +%% Copyright 2003--2005 Harald Harders +%% +%% This program 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. +%% +%% h.harders@tu-bs.de +%% +%% 2005/09/01 v1.15 babelbib: multilingual bibliographies (HH) +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + url + urldate + volume + year + } + {} + { label } + +INTEGERS + { output.state + before.all + mid.sentence + after.sentence + after.block + before.title + } + +STRINGS + { s + t + language.state + change.temp + isbn.command + } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {language.change.case} +{ + 'change.temp := + 't := + "\btxifchangecase {" + t change.temp change.case$ * + "}{" * + 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$ + { + output.state before.title = + { "\btxauthorcolon\ " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + language empty$ + { "empty language in " cite$ * warning$ + language.state "nolanguage" = + 'skip$ + { + "\expandafter\btxselectlanguage\expandafter {" + "\btxfallbacklanguage}" * write$ + newline$ + } + if$ + "nolanguage" 'language.state := + } + { language.state language = + 'skip$ + { "\btxselectlanguage {" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.isbn} +{ + 'isbn.command := + duplicate$ + empty$ + 'pop$ + { + 's := + output.state mid.sentence = + { + isbn.command * " {, " * write$ + s "}" * + } + { output.state after.block = + { + add.period$ + write$ + newline$ + "\newblock " write$ + isbn.command " {" * s * ".}" * + } + { output.state before.all = + { + write$ + isbn.command " {" * write$ + s "}" * + } + { + output.state before.title = + { + "\btxauthorcolon\ " * write$ + isbn.command " {" * write$ + s "}" * + } + { + add.period$ " " * write$ + isbn.command " {" * write$ + s ".}" * + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + } + 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 {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {namefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {lastnamefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxlastnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {titlefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxtitlefont {" swap$ * "}" * } + if$ +} + +FUNCTION {journalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxjournalfont {" swap$ * "}" * } + if$ +} + +FUNCTION {volumefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxvolumefont {" swap$ * "}" * } + if$ +} + +FUNCTION {etalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxetalfont {" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { + s nameptr "{ff~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * 't := + namesleft #1 > + { ", " * t namefont * } + { numnames #2 > + { "\btxandcomma {}" * } + 'skip$ + if$ + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * t namefont * } + if$ + } + if$ + } + { + s nameptr "{ff~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * namefont + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorslong {})" * } + { "\ (\btxeditorlong {})" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" language.change.case titlefont } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "\ " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title titlefont +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {volume.tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ volumefont * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumelong {}" } + { "\btxvolumelong {}" } + if$ + volume volume.tie.or.space.connect + series empty$ + 'skip$ + { " \btxofserieslong {}\ " * series titlefont * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumberlong {}" } + { "\Btxnumberlong {}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinserieslong {}\ " * series titlefont * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { + output.state mid.sentence = + { edition "l" language.change.case "~\btxeditionlong {}" * } + { edition "t" language.change.case "~\btxeditionlong {}" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "\btxISBN~\btxISBNfont {" isbn * "}" * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "\btxISSN~\btxISSNfont {" issn * "}" * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + urldate empty$ + { "\btxurlfont{" url * "}" * } + { + "\btxurlfont{" url * + "}, \btxurldatecomment{} \btxkeywordlanguage {\btxurldatefont{" * + urldate * "}}" * + } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpageslong {}" pages n.dashify tie.or.space.connect } + { "\btxpagelong {}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchapterlong {}" } + { type "l" language.change.case } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinlong {}\ " booktitle titlefont * } + { "\Btxinlong {}\ " format.editors * ": " * booktitle titlefont * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" language.change.case + } + if$ +} + +FUNCTION {format.tr.number} +{ + number empty$ + { + type empty$ + { "\btxtechreplong {}" } + { type "t" language.change.case } + if$ + } + { + type empty$ + { "\Btxtechreplong {}" } + { type "t" language.change.case } + if$ + number tie.or.space.connect + } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinlong {}\ " journal titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ + editor #1 "{ll}{,~jj}{, ff}{~vv}" format.name$ namefont + editor num.names$ duplicate$ + #2 > + { pop$ " " "\btxetalshort {.}" etalfont * * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * editor #2 "{ff}{~vv}{~ll}{, jj}" + format.name$ namefont * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinlong {}\ " + } + { "\Btxvolumelong {}" volume volume.tie.or.space.connect + " \btxofserieslong {}\ " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series titlefont * } + if$ + } + { key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Btxinlong {}\ " booktitle titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { titlefont } + { journalfont } + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + format.url output + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.url output + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanlong {}"} +MACRO {feb} {"\btxmonfeblong {}"} +MACRO {mar} {"\btxmonmarlong {}"} +MACRO {apr} {"\btxmonaprlong {}"} +MACRO {may} {"\btxmonmaylong {}"} +MACRO {jun} {"\btxmonjunlong {}"} +MACRO {jul} {"\btxmonjullong {}"} +MACRO {aug} {"\btxmonauglong {}"} +MACRO {sep} {"\btxmonseplong {}"} +MACRO {oct} {"\btxmonoctlong {}"} +MACRO {nov} {"\btxmonnovlong {}"} +MACRO {dec} {"\btxmondeclong {}"} +MACRO {acmcs} {"ACM Computing Surveys"} +MACRO {acta} {"Acta Informatica"} +MACRO {cacm} {"Communications of the ACM"} +MACRO {ibmjrd} {"IBM Journal of Research and Development"} +MACRO {ibmsj} {"IBM Systems Journal"} +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} +MACRO {ieeetc} {"IEEE Transactions on Computers"} +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} +MACRO {ipl} {"Information Processing Letters"} +MACRO {jacm} {"Journal of the ACM"} +MACRO {jcss} {"Journal of Computer and System Sciences"} +MACRO {scp} {"Science of Computer Programming"} +MACRO {sicomp} {"SIAM Journal on Computing"} +MACRO {tocs} {"ACM Transactions on Computer Systems"} +MACRO {tods} {"ACM Transactions on Database Systems"} +MACRO {tog} {"ACM Transactions on Graphics"} +MACRO {toms} {"ACM Transactions on Mathematical Software"} +MACRO {toois} {"ACM Transactions on Office Information Systems"} +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + " \providebibliographyfont{name}{}%" write$ newline$ + " \providebibliographyfont{lastname}{}%" write$ newline$ + " \providebibliographyfont{title}{\emph}%" write$ newline$ + " \providebibliographyfont{etal}{\emph}%" write$ newline$ + " \providebibliographyfont{journal}{}%" write$ newline$ + " \providebibliographyfont{volume}{}%" write$ newline$ + " \providebibliographyfont{ISBN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{ISSN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{url}{\url}%" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/babelbib/babunsrt-lf.bst b/Master/texmf-dist/bibtex/bst/babelbib/babunsrt-lf.bst new file mode 100644 index 00000000000..70ff1da7335 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/babelbib/babunsrt-lf.bst @@ -0,0 +1,1189 @@ +%% +%% This is file `babunsrt-lf.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% babelbib.dtx (with options: `bst,bststd,bstunsorted,namevarb') +%% +%% babelbib package +%% +%% Copyright 2003--2005 Harald Harders +%% +%% This program 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. +%% +%% h.harders@tu-bs.de +%% +%% 2005/09/01 v1.15 babelbib: multilingual bibliographies (HH) +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + url + urldate + volume + year + } + {} + { label } + +INTEGERS + { output.state + before.all + mid.sentence + after.sentence + after.block + before.title + } + +STRINGS + { s + t + language.state + change.temp + isbn.command + } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {language.change.case} +{ + 'change.temp := + 't := + "\btxifchangecase {" + t change.temp change.case$ * + "}{" * + 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$ + { + output.state before.title = + { "\btxauthorcolon\ " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + language empty$ + { "empty language in " cite$ * warning$ + language.state "nolanguage" = + 'skip$ + { + "\expandafter\btxselectlanguage\expandafter {" + "\btxfallbacklanguage}" * write$ + newline$ + } + if$ + "nolanguage" 'language.state := + } + { language.state language = + 'skip$ + { "\btxselectlanguage {" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.isbn} +{ + 'isbn.command := + duplicate$ + empty$ + 'pop$ + { + 's := + output.state mid.sentence = + { + isbn.command * " {, " * write$ + s "}" * + } + { output.state after.block = + { + add.period$ + write$ + newline$ + "\newblock " write$ + isbn.command " {" * s * ".}" * + } + { output.state before.all = + { + write$ + isbn.command " {" * write$ + s "}" * + } + { + output.state before.title = + { + "\btxauthorcolon\ " * write$ + isbn.command " {" * write$ + s "}" * + } + { + add.period$ " " * write$ + isbn.command " {" * write$ + s ".}" * + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + } + 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 {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {namefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {lastnamefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxlastnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {titlefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxtitlefont {" swap$ * "}" * } + if$ +} + +FUNCTION {journalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxjournalfont {" swap$ * "}" * } + if$ +} + +FUNCTION {volumefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxvolumefont {" swap$ * "}" * } + if$ +} + +FUNCTION {etalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxetalfont {" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { + s nameptr "{ll}" format.name$ lastnamefont + s nameptr "{, jj}{, ff}{~vv}" format.name$ * 't := + namesleft #1 > + { ", " * t namefont * } + { numnames #2 > + { "\btxandcomma {}" * } + 'skip$ + if$ + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * t namefont * } + if$ + } + if$ + } + { + s nameptr "{ll}" format.name$ lastnamefont + s nameptr "{,~jj}{, ff}{~vv}" format.name$ * namefont + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorslong {})" * } + { "\ (\btxeditorlong {})" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" language.change.case titlefont } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "\ " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title titlefont +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {volume.tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ volumefont * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumelong {}" } + { "\btxvolumelong {}" } + if$ + volume volume.tie.or.space.connect + series empty$ + 'skip$ + { " \btxofserieslong {}\ " * series titlefont * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumberlong {}" } + { "\Btxnumberlong {}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinserieslong {}\ " * series titlefont * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { + output.state mid.sentence = + { edition "l" language.change.case "~\btxeditionlong {}" * } + { edition "t" language.change.case "~\btxeditionlong {}" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "\btxISBN~\btxISBNfont {" isbn * "}" * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "\btxISSN~\btxISSNfont {" issn * "}" * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + urldate empty$ + { "\btxurlfont{" url * "}" * } + { + "\btxurlfont{" url * + "}, \btxurldatecomment{} \btxkeywordlanguage {\btxurldatefont{" * + urldate * "}}" * + } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpageslong {}" pages n.dashify tie.or.space.connect } + { "\btxpagelong {}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchapterlong {}" } + { type "l" language.change.case } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinlong {}\ " booktitle titlefont * } + { "\Btxinlong {}\ " format.editors * ": " * booktitle titlefont * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" language.change.case + } + if$ +} + +FUNCTION {format.tr.number} +{ + number empty$ + { + type empty$ + { "\btxtechreplong {}" } + { type "t" language.change.case } + if$ + } + { + type empty$ + { "\Btxtechreplong {}" } + { type "t" language.change.case } + if$ + number tie.or.space.connect + } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinlong {}\ " journal titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ + editor #1 "{ll}{,~jj}{, ff}{~vv}" format.name$ namefont + editor num.names$ duplicate$ + #2 > + { pop$ " " "\btxetalshort {.}" etalfont * * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * editor #2 "{ff}{~vv}{~ll}{, jj}" + format.name$ namefont * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinlong {}\ " + } + { "\Btxvolumelong {}" volume volume.tie.or.space.connect + " \btxofserieslong {}\ " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series titlefont * } + if$ + } + { key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Btxinlong {}\ " booktitle titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { titlefont } + { journalfont } + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + format.url output + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.url output + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanlong {}"} +MACRO {feb} {"\btxmonfeblong {}"} +MACRO {mar} {"\btxmonmarlong {}"} +MACRO {apr} {"\btxmonaprlong {}"} +MACRO {may} {"\btxmonmaylong {}"} +MACRO {jun} {"\btxmonjunlong {}"} +MACRO {jul} {"\btxmonjullong {}"} +MACRO {aug} {"\btxmonauglong {}"} +MACRO {sep} {"\btxmonseplong {}"} +MACRO {oct} {"\btxmonoctlong {}"} +MACRO {nov} {"\btxmonnovlong {}"} +MACRO {dec} {"\btxmondeclong {}"} +MACRO {acmcs} {"ACM Computing Surveys"} +MACRO {acta} {"Acta Informatica"} +MACRO {cacm} {"Communications of the ACM"} +MACRO {ibmjrd} {"IBM Journal of Research and Development"} +MACRO {ibmsj} {"IBM Systems Journal"} +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} +MACRO {ieeetc} {"IEEE Transactions on Computers"} +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} +MACRO {ipl} {"Information Processing Letters"} +MACRO {jacm} {"Journal of the ACM"} +MACRO {jcss} {"Journal of Computer and System Sciences"} +MACRO {scp} {"Science of Computer Programming"} +MACRO {sicomp} {"SIAM Journal on Computing"} +MACRO {tocs} {"ACM Transactions on Computer Systems"} +MACRO {tods} {"ACM Transactions on Database Systems"} +MACRO {tog} {"ACM Transactions on Graphics"} +MACRO {toms} {"ACM Transactions on Mathematical Software"} +MACRO {toois} {"ACM Transactions on Office Information Systems"} +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + " \providebibliographyfont{name}{}%" write$ newline$ + " \providebibliographyfont{lastname}{}%" write$ newline$ + " \providebibliographyfont{title}{\emph}%" write$ newline$ + " \providebibliographyfont{etal}{\emph}%" write$ newline$ + " \providebibliographyfont{journal}{}%" write$ newline$ + " \providebibliographyfont{volume}{}%" write$ newline$ + " \providebibliographyfont{ISBN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{ISSN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{url}{\url}%" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/babelbib/babunsrt.bst b/Master/texmf-dist/bibtex/bst/babelbib/babunsrt.bst new file mode 100644 index 00000000000..d52cc1f0bbd --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/babelbib/babunsrt.bst @@ -0,0 +1,1190 @@ +%% +%% This is file `babunsrt.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% babelbib.dtx (with options: `bst,bststd,bstunsorted') +%% +%% babelbib package +%% +%% Copyright 2003--2005 Harald Harders +%% +%% This program 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. +%% +%% h.harders@tu-bs.de +%% +%% 2005/09/01 v1.15 babelbib: multilingual bibliographies (HH) +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + url + urldate + volume + year + } + {} + { label } + +INTEGERS + { output.state + before.all + mid.sentence + after.sentence + after.block + before.title + } + +STRINGS + { s + t + language.state + change.temp + isbn.command + } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {language.change.case} +{ + 'change.temp := + 't := + "\btxifchangecase {" + t change.temp change.case$ * + "}{" * + 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$ + { + output.state before.title = + { "\btxauthorcolon\ " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + language empty$ + { "empty language in " cite$ * warning$ + language.state "nolanguage" = + 'skip$ + { + "\expandafter\btxselectlanguage\expandafter {" + "\btxfallbacklanguage}" * write$ + newline$ + } + if$ + "nolanguage" 'language.state := + } + { language.state language = + 'skip$ + { "\btxselectlanguage {" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.isbn} +{ + 'isbn.command := + duplicate$ + empty$ + 'pop$ + { + 's := + output.state mid.sentence = + { + isbn.command * " {, " * write$ + s "}" * + } + { output.state after.block = + { + add.period$ + write$ + newline$ + "\newblock " write$ + isbn.command " {" * s * ".}" * + } + { output.state before.all = + { + write$ + isbn.command " {" * write$ + s "}" * + } + { + output.state before.title = + { + "\btxauthorcolon\ " * write$ + isbn.command " {" * write$ + s "}" * + } + { + add.period$ " " * write$ + isbn.command " {" * write$ + s ".}" * + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + } + 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 {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {namefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {lastnamefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxlastnamefont {" swap$ * "}" * } + if$ +} + +FUNCTION {titlefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxtitlefont {" swap$ * "}" * } + if$ +} + +FUNCTION {journalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxjournalfont {" swap$ * "}" * } + if$ +} + +FUNCTION {volumefont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxvolumefont {" swap$ * "}" * } + if$ +} + +FUNCTION {etalfont} +{ duplicate$ empty$ + { pop$ "" } + { "\btxetalfont {" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { + s nameptr "{ff~}{vv~}" format.name$ + s nameptr "{ll}" format.name$ lastnamefont * + s nameptr "{, jj}" format.name$ * 't := + namesleft #1 > + { ", " * t namefont * } + { numnames #2 > + { "\btxandcomma {}" * } + 'skip$ + if$ + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * t namefont * } + if$ + } + if$ + } + { + s nameptr "{ll}" format.name$ lastnamefont + s nameptr "{,~jj}{, ff}{~vv}" format.name$ * namefont + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorslong {})" * } + { "\ (\btxeditorlong {})" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" language.change.case titlefont } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "\ " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title titlefont +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {volume.tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ volumefont * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumelong {}" } + { "\btxvolumelong {}" } + if$ + volume volume.tie.or.space.connect + series empty$ + 'skip$ + { " \btxofserieslong {}\ " * series titlefont * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumberlong {}" } + { "\Btxnumberlong {}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinserieslong {}\ " * series titlefont * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { + output.state mid.sentence = + { edition "l" language.change.case "~\btxeditionlong {}" * } + { edition "t" language.change.case "~\btxeditionlong {}" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "\btxISBN~\btxISBNfont {" isbn * "}" * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "\btxISSN~\btxISSNfont {" issn * "}" * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + urldate empty$ + { "\btxurlfont{" url * "}" * } + { + "\btxurlfont{" url * + "}, \btxurldatecomment{} \btxkeywordlanguage {\btxurldatefont{" * + urldate * "}}" * + } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpageslong {}" pages n.dashify tie.or.space.connect } + { "\btxpagelong {}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchapterlong {}" } + { type "l" language.change.case } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinlong {}\ " booktitle titlefont * } + { "\Btxinlong {}\ " format.editors * ": " * booktitle titlefont * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" language.change.case + } + if$ +} + +FUNCTION {format.tr.number} +{ + number empty$ + { + type empty$ + { "\btxtechreplong {}" } + { type "t" language.change.case } + if$ + } + { + type empty$ + { "\Btxtechreplong {}" } + { type "t" language.change.case } + if$ + number tie.or.space.connect + } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinlong {}\ " journal titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ + editor #1 "{ll}{,~jj}{, ff}{~vv}" format.name$ namefont + editor num.names$ duplicate$ + #2 > + { pop$ " " "\btxetalshort {.}" etalfont * * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " "\btxetalshort {.}" etalfont * * } + { " \btxandlong {}\ " * editor #2 "{ff}{~vv}{~ll}{, jj}" + format.name$ namefont * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinlong {}\ " + } + { "\Btxvolumelong {}" volume volume.tie.or.space.connect + " \btxofserieslong {}\ " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series titlefont * } + if$ + } + { key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Btxinlong {}\ " booktitle titlefont * } + if$ + } + { "\Btxinlong {}\ " key titlefont * } + if$ + } + { "\Btxinlong {}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { titlefont } + { journalfont } + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + format.url output + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.issn "\ifbtxprintISSN" output.isbn + new.block + format.url output + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis {}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.isbn "\ifbtxprintISBN" output.isbn + new.block + format.url output + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.url output + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanlong {}"} +MACRO {feb} {"\btxmonfeblong {}"} +MACRO {mar} {"\btxmonmarlong {}"} +MACRO {apr} {"\btxmonaprlong {}"} +MACRO {may} {"\btxmonmaylong {}"} +MACRO {jun} {"\btxmonjunlong {}"} +MACRO {jul} {"\btxmonjullong {}"} +MACRO {aug} {"\btxmonauglong {}"} +MACRO {sep} {"\btxmonseplong {}"} +MACRO {oct} {"\btxmonoctlong {}"} +MACRO {nov} {"\btxmonnovlong {}"} +MACRO {dec} {"\btxmondeclong {}"} +MACRO {acmcs} {"ACM Computing Surveys"} +MACRO {acta} {"Acta Informatica"} +MACRO {cacm} {"Communications of the ACM"} +MACRO {ibmjrd} {"IBM Journal of Research and Development"} +MACRO {ibmsj} {"IBM Systems Journal"} +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} +MACRO {ieeetc} {"IEEE Transactions on Computers"} +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} +MACRO {ipl} {"Information Processing Letters"} +MACRO {jacm} {"Journal of the ACM"} +MACRO {jcss} {"Journal of Computer and System Sciences"} +MACRO {scp} {"Science of Computer Programming"} +MACRO {sicomp} {"SIAM Journal on Computing"} +MACRO {tocs} {"ACM Transactions on Computer Systems"} +MACRO {tods} {"ACM Transactions on Database Systems"} +MACRO {tog} {"ACM Transactions on Graphics"} +MACRO {toms} {"ACM Transactions on Mathematical Software"} +MACRO {toois} {"ACM Transactions on Office Information Systems"} +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + " \providebibliographyfont{name}{}%" write$ newline$ + " \providebibliographyfont{lastname}{}%" write$ newline$ + " \providebibliographyfont{title}{\emph}%" write$ newline$ + " \providebibliographyfont{etal}{\emph}%" write$ newline$ + " \providebibliographyfont{journal}{}%" write$ newline$ + " \providebibliographyfont{volume}{}%" write$ newline$ + " \providebibliographyfont{ISBN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{ISSN}{\MakeUppercase}%" write$ newline$ + " \providebibliographyfont{url}{\url}%" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/base/abbrv.bst b/Master/texmf-dist/bibtex/bst/base/abbrv.bst new file mode 100644 index 00000000000..740f569f860 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/base/abbrv.bst @@ -0,0 +1,1097 @@ +% BibTeX standard bibliography style `abbrv' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +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. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/base/acm.bst b/Master/texmf-dist/bibtex/bst/base/acm.bst new file mode 100644 index 00000000000..1750daa7a17 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/base/acm.bst @@ -0,0 +1,1134 @@ +% ACM Transactions bibliography style (24-Jan-88 version) +% A lot like abbrv.bst, but names come out "Last, initials", and in \sc. +% Some dates are parenthesized. +% +% History +% 2/ 6/86 (HWT) Original version, by Howard Trickey. +% 3/ 5/86 (HWT) Put in pp. everywhere but articles, as per ACM style. +% 1/24/88 (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashnik; +% corrected the abbreviations to "Mar." and "Sept."; +% THIS `acm' VERSION DOES NOT WORK WITH BIBTEX 0.98i. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +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$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {emphasizeic} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "\/}" * } + if$ +} + +FUNCTION {scapify} +{ duplicate$ empty$ + { pop$ "" } + { "{\sc " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { ", et~al." * } + { ", and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% For names inside entries (e.g., editors of an "In ..."); +% this is exactly ABBRV.BST's `format.names' function. +FUNCTION {format.innames} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names scapify } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names scapify + editor num.names$ #1 > + { ", Eds." * } + { ", Ed." * } + if$ + } + if$ +} + +FUNCTION {format.ineditors} +{ editor empty$ + { "" } + { editor format.innames + editor num.names$ #1 > + { ", Eds." * } + { ", Ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "vol.~" volume * + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "no.~" } + { "No.~" } + if$ + number * + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ "~ed." * } + { edition "t" change.case$ "~ed." * } + if$ + } + if$ +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages n.dashify } + 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.pp.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.journal.vol.num.date} +{ journal empty$ + { "empty journal in " cite$ * warning$ + "" + } + { journal + volume empty$ + 'skip$ + { " " * volume * } + if$ + number empty$ + 'emphasizeic + { emphasize ", " * number * } + if$ + year empty$ + { "empty year in " cite$ * warning$ } + { " (" * format.date * ")" * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pp.pages + { type empty$ + { "ch.~" chapter * } + { type "l" change.case$ chapter tie.or.space.connect } + if$ + pages empty$ + 'skip$ + { ", " * format.pp.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { "In " booktitle emphasize * + editor empty$ + 'skip$ + { ", " * format.ineditors * } + if$ + } + if$ +} + +% The proceedings title (it's on the stack) gets an (address, date) appended +FUNCTION {format.proc.date} +{ duplicate$ empty$ + { pop$ "" } + { year empty$ + { "empty year in " cite$ * warning$ + address empty$ + 'emphasize + { emphasizeic + " (" * address * ")" * + } + if$ + } + { emphasizeic + " (" * + address empty$ + 'skip$ + { address * ", " * } + if$ + format.date * + ")" * + } + if$ + } + if$ +} + +FUNCTION {format.in.proc.date} +{ booktitle empty$ + { "" } + { "In " booktitle format.proc.date * } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. Rep." } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Vol.~" volume * + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.journal.vol.num.date output + format.pages output + } + { format.article.crossref output.nonnull + format.pp.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + format.edition output + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + format.edition output + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.chapter.pages "chapter and pages" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.edition output + format.bvolume output + format.number.series output + new.sentence + publisher "publisher" output.check + address output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull } + if$ + format.chapter.pages output + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.proc.date "booktitle" output.check + format.ineditors output + format.bvolume output + format.number.series output + organization output + publisher output + } + { format.incoll.inproc.crossref output.nonnull } + if$ + format.pp.pages output + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization scapify output } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.edition output + author empty$ + { address new.block.checka } + { organization address new.block.checkb + organization output + } + if$ + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization scapify output } + { format.editors output.nonnull } + if$ + new.block + title format.proc.date "title" output.check + format.bvolume output + format.number.series output + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +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. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Program. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/base/alpha.bst b/Master/texmf-dist/bibtex/bst/base/alpha.bst new file mode 100644 index 00000000000..33354b6a941 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/base/alpha.bst @@ -0,0 +1,1257 @@ +% BibTeX standard bibliography style `alpha' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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 {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label + sort.label + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {begin.bib} +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/base/apalike.bst b/Master/texmf-dist/bibtex/bst/base/apalike.bst new file mode 100644 index 00000000000..dbd41afafc1 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/base/apalike.bst @@ -0,0 +1,1101 @@ +% BibTeX `apalike' bibliography style (24-Jan-88 version) +% Adapted from the `alpha' style, version 0.99a; for BibTeX version 0.99a. +% Copyright (C) 1988, all rights reserved. +% Copying of this file is allowed, provided that if you make any changes at all +% you name it something other than `apalike.bst'. +% This restriction helps ensure that all copies are identical. +% Differences between this style and `alpha' are generally heralded by a `%'. +% The file btxbst.doc has the documentation for alpha.bst. +% +% This style should be used with the `apalike' LaTeX style (apalike.sty). +% \cite's come out like "(Jones, 1986)" in the text but there are no labels +% in the bibliography, and something like "(1986)" comes out immediately +% after the author. Author (and editor) names appear as last name, comma, +% initials. A `year' field is required for every entry, and so is either +% an author (or in some cases, an editor) field or a key field. +% +% Editorial note: +% Many journals require a style like `apalike', but I strongly, strongly, +% strongly recommend that you not use it if you have a choice---use something +% like `plain' instead. Mary-Claire van Leunen (A Handbook for Scholars, +% Knopf, 1979) argues convincingly that a style like `plain' encourages better +% writing than one like `apalike'. Furthermore the strongest arguments for +% using an author-date style like `apalike'---that it's "the most practical" +% (The Chicago Manual of Style, University of Chicago Press, thirteenth +% edition, 1982, pages 400--401)---fall flat on their face with the new +% computer-typesetting technology. For instance page 401 anachronistically +% states "The chief disadvantage of [a style like `plain'] is that additions +% or deletions cannot be made after the manuscript is typed without changing +% numbers in both text references and list." LaTeX sidesteps the disadvantage. +% +% History: +% 15-sep-86 (SK,OP) Original version, by Susan King and Oren Patashnik. +% 10-nov-86 (OP) Truncated the sort.key$ string to the correct length +% in bib.sort.order to eliminate error message. +% 24-jan-88 (OP) Updated for BibTeX version 0.99a, from alpha.bst 0.99a; +% apalike now sorts by author, then year, then title; +% THIS `apalike' VERSION DOES NOT WORK WITH BIBTEX 0.98i. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key +% month not used in apalike + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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$ +} + +% apalike needs this function because +% the year has special punctuation; +% apalike ignores the month +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ + " (" year * extra.label * ")" * + mid.sentence 'output.state := + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +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$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.key} % this function is just for apalike +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * % this is for apalike +} + +FUNCTION {format.incoll.inproc.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + howpublished output + address output + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address output % for apalike + new.sentence % there's no year + organization output % here so things + publisher output % are simpler + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output % for apalike + new.sentence % we always output + organization output % a nonempty organization + publisher output % here + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +% There are three apalike cases: one person (Jones), +% two (Jones and de~Bruijn), and more (Jones et~al.). +% This function is much like format.crossref.editors. +% +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole 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 % apalike uses the whole key, no organization + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label % apalike ignores organization + 'author.key.label % for labeling and sorting + if$ + } + if$ + ", " % these three lines are + * % for apalike, which + year field.or.null purify$ #-1 #4 substring$ % uses all four digits + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ % apalike uses initials + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := % <= here + nameptr numnames = t "others" = and + { "et al" * } + { 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$ +} + +% apalike uses two sorting passes; the first one sets the +% labels so that the `a's, `b's, etc. can be computed; +% the second pass puts the references in "correct" order. +% The presort function is for the first pass. It computes +% label, sort.label, and title, and then concatenates. +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$ % for + 'sort.label := % apalike + sort.label % style + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT % by label, sort.label, title---for final label calculation + +STRINGS { last.label next.extra } % apalike labels are only for the text; + +INTEGERS { last.extra.num } % there are none in the bibliography + +FUNCTION {initialize.extra.label.stuff} % and hence there is no `longest.label' +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +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$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + extra.label 'next.extra := +} + +EXECUTE {initialize.extra.label.stuff} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +% Now that the label is right we sort for real, +% on sort.label then year then title. This is +% for the second sorting 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 % by sort.label, year, title---giving final bibliography order + +FUNCTION {begin.bib} +{ preamble$ empty$ % no \etalchar in apalike + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ % no labels in apalike +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/base/ieeetr.bst b/Master/texmf-dist/bibtex/bst/base/ieeetr.bst new file mode 100644 index 00000000000..e582e8cc06d --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/base/ieeetr.bst @@ -0,0 +1,970 @@ +% IEEE Transactions bibliography style (29-Jan-88 version) +% numeric labels, order-of-reference, IEEE abbreviations, +% quotes around article titles, commas separate all fields +% except after book titles and before "notes". Otherwise, +% much like the "plain" family, from which this is adapted. +% +% History +% 9/30/85 (HWT) Original version, by Howard Trickey. +% 1/29/88 (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashnik; +% THIS `ieeetr' VERSION DOES NOT WORK WITH BIBTEX 0.98i. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.quote after.sentence + after.quoted.block after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.quote := + #3 'after.sentence := + #4 'after.quoted.block := + #5 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.quote = + { " " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.quoted.block = + { write$ + newline$ + "\newblock " write$ + } + { add.period$ " " * write$ } + if$ + } + if$ + } + 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {blank.sep} +{ after.quote 'output.state := +} + +FUNCTION {fin.entry} +{ output.state after.quoted.block = + 'skip$ + 'add.period$ + if$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { output.state after.quote = + { after.quoted.block 'output.state := } + { after.block 'output.state := } + if$ + } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " {\em et~al.}" * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { "``" title "t" change.case$ * ",''" * } + if$ +} + +FUNCTION {format.title.p} +{ title empty$ + { "" } + { "``" title "t" change.case$ * ".''" * } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "vol.~" volume * + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "no.~" } + { "No.~" } + if$ + number * + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition "l" change.case$ "~ed." * } + 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 empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.volume} +{ volume empty$ + { "" } + { "vol.~" volume * } + if$ +} + +FUNCTION {format.number} +{ number empty$ + { "" } + { "no.~" number * } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "ch.~" chapter * } + { type "l" change.case$ chapter tie.or.space.connect } + if$ + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { "in " booktitle emphasize * + editor empty$ + 'skip$ + { " (" * format.editors * ")" * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + output.state after.block = + { type "t" change.case$ } + { type "l" change.case$ } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. Rep." } + 'type + if$ + number empty$ + { "l" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.addr.pub} +{ publisher empty$ + { "" } + { address empty$ + { "" } + { address ": " * } + if$ + publisher * + } + if$ +} + +FUNCTION {format.paddress} +{ address empty$ + { "" } + { "(" address * ")" * } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in {\em " journal * "\/}" * } + if$ + } + { "in " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " {\em et~al.}" * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " {\em et~al.}" * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Vol.~" volume * + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "in {\em " booktitle * "\/}" * } + if$ + } + { "in " key * } + if$ + } + { "in " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + blank.sep + crossref missing$ + { journal emphasize "journal" output.check + format.volume output + month empty$ + { format.number output } + 'skip$ + if$ + format.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { 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 + new.block + format.number.series output + format.addr.pub "publisher" output.check + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + title empty$ + { "empty title in " cite$ * warning$ + howpublished new.sentence.checka + } + { howpublished empty$ not + address empty$ month empty$ year empty$ and and + or + { format.title.p output.nonnull } + { format.title output.nonnull } + if$ + blank.sep + } + if$ + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { 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 + new.block + format.number.series output + format.addr.pub "publisher" output.check + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + blank.sep + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + format.addr.pub "publisher" output.check + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + blank.sep + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.paddress output + format.pages output + organization output + publisher output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + blank.sep + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title empty$ + { howpublished new.sentence.checka } + { howpublished empty$ not + month empty$ year empty$ and + or + { format.title.p output.nonnull } + { format.title output.nonnull } + if$ + blank.sep + } + if$ + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + format.btitle "title" output.check + format.bvolume output + format.number.series output + format.paddress output + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + blank.sep + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title.p "title" output.check + blank.sep + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications ACM"} + +MACRO {ibmjrd} {"IBM J. Research and Development"} + +MACRO {ibmsj} {"IBM Systems~J."} + +MACRO {ieeese} {"IEEE Trans. Software Engineering"} + +MACRO {ieeetc} {"IEEE Trans. Computers"} + +MACRO {ieeetcad} + {"IEEE Trans. Computer-Aided Design"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM J. Computing"} + +MACRO {tocs} {"ACM Trans. Computer Systems"} + +MACRO {tods} {"ACM Trans. Database Systems"} + +MACRO {tog} {"ACM Trans. Graphics"} + +MACRO {toms} {"ACM Trans. Mathematical Software"} + +MACRO {toois} {"ACM Trans. Office Information Systems"} + +MACRO {toplas} {"ACM Trans. Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/base/plain.bst b/Master/texmf-dist/bibtex/bst/base/plain.bst new file mode 100644 index 00000000000..83286c1a803 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/base/plain.bst @@ -0,0 +1,1097 @@ +% BibTeX standard bibliography style `plain' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/base/siam.bst b/Master/texmf-dist/bibtex/bst/base/siam.bst new file mode 100644 index 00000000000..86b86d984f8 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/base/siam.bst @@ -0,0 +1,1035 @@ +% SIAM bibliography style (29-Jan-88 version) +% numeric labels, alphabetic order, Mathematical Reviews abbreviations, +% names in \sc, titles in italics, book titles mixed upper-lower and article +% titles lowercase, commas separate all fields except before "notes". +% +% History +% 1/30/86 (HWT) Original version, by Howard Trickey. +% 6/15/87 (HWT) Fix format.editors---Martin Costabel. +% 1/29/88 (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashnik; +% THIS `siam' VERSION DOES NOT WORK WITH BIBTEX 0.98i. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + 'write$ + 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {scapify} +{ duplicate$ empty$ + { pop$ "" } + { "{\sc " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +STRINGS { last.authors } + +FUNCTION {init.last.authors} +{ "" 'last.authors := +} + +FUNCTION {format.authors} +{ author empty$ + { "" 'last.authors := + "" + } + { author last.authors = + { "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" } + { author format.names scapify } + if$ + author 'last.authors := + } + if$ +} + +FUNCTION {format.organization} +{ organization empty$ + { "" 'last.authors := + "" + } + { organization last.authors = + { "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" } + { organization scapify } + if$ + organization 'last.authors := + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" 'last.authors := + "" + } + { editor last.authors = + { "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" } + { editor format.names scapify } + if$ + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + editor 'last.authors := + } + if$ +} + +FUNCTION {format.ineditors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ emphasize } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "vol.~" volume * + series empty$ + 'skip$ + { " of " * series * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { "no.~" number * + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition "l" change.case$ "~ed." * } + 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 empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.vol.year} +{ volume field.or.null + year empty$ + { "empty year in " cite$ * warning$ } + { " (" year * ")" * * } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "ch.~" chapter * } + { type "l" change.case$ chapter tie.or.space.connect } + if$ + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "in " booktitle * } + { "in " booktitle * ", " * format.ineditors * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "l" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. Rep." } + 'type + if$ + number empty$ + { "l" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in " journal * } + if$ + } + { "in " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "vol.~" volume * + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "in " booktitle * } + if$ + } + { "in " key * } + if$ + } + { "in " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { journal "journal" output.check + format.vol.year output + } + { format.article.crossref output.nonnull } + if$ + format.pages output + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { 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 + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.title "title" output.check + howpublished new.block.checka + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { 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 + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull } + if$ + format.edition output + format.date "year" output.check + format.chapter.pages "chapter and pages" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull } + if$ + format.chapter.pages output + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + address empty$ + { organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull } + if$ + format.pages output + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { format.organization output } + { format.authors output.nonnull } + if$ + format.btitle "title" output.check + author empty$ + 'skip$ + { organization output } + if$ + address output + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { format.organization output } + { format.editors output.nonnull } + if$ + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Comput. Surveys"} + +MACRO {acta} {"Acta Inf."} + +MACRO {cacm} {"Comm. ACM"} + +MACRO {ibmjrd} {"IBM J. Res. Dev."} + +MACRO {ibmsj} {"IBM Syst.~J."} + +MACRO {ieeese} {"IEEE Trans. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~Assoc. Comput. Mach."} + +MACRO {jcss} {"J.~Comput. System Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +EXECUTE {init.last.authors} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/base/unsrt.bst b/Master/texmf-dist/bibtex/bst/base/unsrt.bst new file mode 100644 index 00000000000..bb85ab8b4d0 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/base/unsrt.bst @@ -0,0 +1,951 @@ +% BibTeX standard bibliography style `unsrt' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/aaai-named.bst b/Master/texmf-dist/bibtex/bst/beebe/aaai-named.bst new file mode 100644 index 00000000000..629d4725341 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/aaai-named.bst @@ -0,0 +1,1283 @@ +%NAME: aaai-named.bst +% BibTeX `aaai-named' style file for BibTeX version 0.99c, LaTeX version 2.09 +% This version was made by modifying the master file made by +% Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU) + +% Copyright (C) 1985, all rights reserved. +% Modifications Copyright 1988, Peter F. Patel-Schneider +% Copying of this file is authorized only if either +% (1) you make absolutely no changes to your copy, including name, or +% (2) if you do make changes, you name it something other than +% btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. +% This restriction helps ensure that all standard styles are identical. + +% There are undoubtably bugs in this style. If you make bug fixes, +% improvements, etc. please let me know. My e-mail address is: +% pfps@spar.slb.com + +% Citation format: [author-last-name, year] +% [author-last-name and author-last-name, year] +% [author-last-name {\em et al.}, year] +% +% Reference list ordering: alphabetical by author or whatever passes +% for author in the absence of one. +% +% This BibTeX style has support for short (year only) citations. This +% is done by having the citations actually look like +% \citename{name-info, }year +% The LaTeX style has to have the following +% \let\@internalcite\cite +% \def\cite{\def\citename##1{##1}\@internalcite} +% \def\shortcite{\def\citename##1{}\@internalcite} +% \def\@biblabel#1{\def\citename##1{##1}[#1]\hfill} +% which makes \shortcite the macro for short citations. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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 {output.bibitem} +{ newline$ + + "\bibitem[" write$ + label write$ + "]{" write$ + + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + + { title "t" change.case$ } + + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + + key empty$ not and + + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + + numnames #1 = + { s #1 "{vv }{ll}" format.name$ } + { numnames #2 = + { s #1 "{vv }{ll }and " format.name$ s #2 "{vv }{ll}" format.name$ * + } + { s #1 "{vv }{ll }\bgroup \em et al.\egroup " format.name$ } + if$ + } + if$ + +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + + { cite$ #1 #3 substring$ } + + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + + { cite$ #1 #3 substring$ } + + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + + { cite$ #1 #3 substring$ } + + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + + { cite$ #1 #3 substring$ } + + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + + "\protect\citename{" swap$ * ", }" * + year field.or.null purify$ * + 'label := + year field.or.null purify$ * + + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} + +{ calc.label + sort.label + " " + * + type$ "book" = + + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + + * + + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {begin.bib} + +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + + 'skip$ + { preamble$ write$ newline$ } + if$ + + "\begin{thebibliography}{" "}" * write$ newline$ + +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/abstract.bst b/Master/texmf-dist/bibtex/bst/beebe/abstract.bst new file mode 100644 index 00000000000..c185c90fec1 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/abstract.bst @@ -0,0 +1,1340 @@ +% BibTeX bibliography style `abstract' by David Kotz +% modifed from +% BibTeX standard bibliography style `alpha' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +% DFK added abstract, comment, keyword +ENTRY + { abstract + address + author + booktitle + chapter + comment + edition + editor + howpublished + institution + journal + key + keyword + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +% DFK added after.quote to signify end of something not needing period +INTEGERS { output.state before.all mid.sentence after.sentence after.block after.quote} + +% DFk added after.quote +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'after.quote := +} + +STRINGS { s t } + +% DFK added after.quote handling so no period is printed after quotes +FUNCTION {output.nonnull} +{ 's := + output.state after.quote = + { write$ + newline$ + "\newblock " write$ + } + { 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$ + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +% DFK added, variant of output +FUNCTION {output.quote} +{ duplicate$ empty$ + 'pop$ + { output.nonnull + after.quote 'output.state :=} + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +% DFK changed to use cite$ for the label +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + cite$ write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +% DFK changed to not put period when after.quote +FUNCTION {fin.entry} +{ output.state after.quote = + 'skip$ + 'add.period$ + if$ + 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +% DFK added +FUNCTION {format.abstract} +{ abstract empty$ + { "" } + { "\begin{quote} {\bf Abstract:} " abstract * " \end{quote}" *} + if$ +} + +% DFK added +FUNCTION {format.keyword} +{ keyword empty$ + { "" } + { "\begin{quote} {\bf Keyword:} " keyword * " \end{quote}" *} + if$ +} + +% DFK added +FUNCTION {format.comment} +{ comment empty$ + { "" } + { "\begin{quote} {\bf Comment:} " comment * " \end{quote}" *} + if$ +} + +% DFK added +FUNCTION {dfk.stuff} +{ new.block + format.abstract output.quote +% new.block + format.keyword output.quote +% new.block + format.comment output.quote +} + +% DFK: added a call to dfk.stuff in all entry-type functions below + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + dfk.stuff + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + dfk.stuff + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + dfk.stuff + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + dfk.stuff + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + dfk.stuff + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + dfk.stuff + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + dfk.stuff + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + dfk.stuff + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + dfk.stuff + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + dfk.stuff + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + dfk.stuff + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + dfk.stuff + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + dfk.stuff + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label + sort.label + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * +% DFK throw away stuff above and use cite$ for sort key + pop$ + cite$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {begin.bib} +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/annotate.bst b/Master/texmf-dist/bibtex/bst/beebe/annotate.bst new file mode 100644 index 00000000000..d0ec29f70ff --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/annotate.bst @@ -0,0 +1,1280 @@ +% BibTeX bibliography style `annotate' +% based on alpha. + +ENTRY + { address + annotate + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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 {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.annotate} +{ annotate empty$ + { "" } + { " \begin{quotation}\noindent " + annotate + * " \end{quotation} " * + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry + format.annotate write$ + newline$ +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry + format.annotate write$ + newline$ + +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry + format.annotate write$ + newline$ + +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry + format.annotate write$ +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry + format.annotate write$ +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry + format.annotate write$ +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry + + format.annotate write$ +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry + format.annotate write$ +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + format.annotate write$ + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry + format.annotate write$ +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry + format.annotate write$ +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry + format.annotate write$ +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry + format.annotate write$ +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label + sort.label + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {begin.bib} +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/annotation.bst b/Master/texmf-dist/bibtex/bst/beebe/annotation.bst new file mode 100644 index 00000000000..0cae6604c79 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/annotation.bst @@ -0,0 +1,1105 @@ +% BibTeX standard bibliography style `plain' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + annote + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ + "\begin{quotation}\noindent{\sc Key:\ }" cite$ * write$ + annote missing$ + 'skip$ + { "\\{\sc Annotation:\ }" write$ annote write$ } + if$ + "\end{quotation}" 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/apa.bst b/Master/texmf-dist/bibtex/bst/beebe/apa.bst new file mode 100644 index 00000000000..783d423f61b --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/apa.bst @@ -0,0 +1,1130 @@ +%%% ==================================================================== +%%% @BibTeX-style-file{ +%%% author = "Alan Rogers", +%%% version = "1.1", +%%% date = "June 27, 1992", +%%% filename = "apa.bst", +%%% address = "Dept of Anthropology, University of Utah, +%%% Salt Lake City, UT 84112", +%%% checksum = "21129 1130 3156 23582", +%%% email = "rogers@anthro.utah.edu", +%%% supported = "no", +%%% docstring = "Adapted from apalike.bst. +%%% Usage: \documentstyle[astron]{...} +%%% ... +%%% \bibliographystyle{apa} +%%% ... +%%% This file incorporates features of Sake J. +%%% Hogeveen's `astron.bst' into`apalike.bst'. +%%% The \documentstyle command above invokes +%%% Hogeveen's `astron.sty', which must be in +%%% TeX's search path. +%%% +%%% The modifications implement `\cite*{}', which +%%% generates references in short form. For +%%% example, `Rogers \cite*{...}' would produce +%%% `Rogers (1992)'." +%%% } +%%% ==================================================================== +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% BibTeX `apalike' bibliography style (24-Jan-88 version) +% Adapted from the `alpha' style, version 0.99a; for BibTeX version 0.99a. +% Copyright (C) 1988, all rights reserved. +% Copying of this file is allowed, provided that if you make any changes at all +% you name it something other than `apalike.bst'. +% This restriction helps ensure that all copies are identical. +% Differences between this style and `alpha' are generally heralded by a `%'. +% The file btxbst.doc has the documentation for alpha.bst. +% +% This style should be used with the `apalike' LaTeX style (apalike.sty). +% \cite's come out like "(Jones, 1986)" in the text but there are no labels +% in the bibliography, and something like "(1986)" comes out immediately +% after the author. Author (and editor) names appear as last name, comma, +% initials. A `year' field is required for every entry, and so is either +% an author (or in some cases, an editor) field or a key field. +% +% Editorial note: +% Many journals require a style like `apalike', but I strongly, strongly, +% strongly recommend that you not use it if you have a choice---use something +% like `plain' instead. Mary-Claire van Leunen (A Handbook for Scholars, +% Knopf, 1979) argues convincingly that a style like `plain' encourages better +% writing than one like `apalike'. Furthermore the strongest arguments for +% using an author-date style like `apalike'---that it's "the most practical" +% (The Chicago Manual of Style, University of Chicago Press, thirteenth +% edition, 1982, pages 400--401)---fall flat on their face with the new +% computer-typesetting technology. For instance page 401 anachronistically +% states "The chief disadvantage of [a style like `plain'] is that additions +% or deletions cannot be made after the manuscript is typed without changing +% numbers in both text references and list." LaTeX sidesteps the disadvantage. +% +% History: +% 15-sep-86 (SK,OP) Original version, by Susan King and Oren Patashnik. +% 10-nov-86 (OP) Truncated the sort.key$ string to the correct length +% in bib.sort.order to eliminate error message. +% 24-jan-88 (OP) Updated for BibTeX version 0.99a, from alpha.bst 0.99a; +% apalike now sorts by author, then year, then title; +% THIS `apalike' VERSION DOES NOT WORK WITH BIBTEX 0.98i. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key +% month not used in apalike + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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$ +} + +% apalike needs this function because +% the year has special punctuation; +% apalike ignores the month +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ + " (" year * extra.label * ")" * + mid.sentence 'output.state := + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +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$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.key} % this function is just for apalike +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * % this is for apalike +} + +FUNCTION {format.incoll.inproc.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + howpublished output + address output + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address output % for apalike + new.sentence % there's no year + organization output % here so things + publisher output % are simpler + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output % for apalike + new.sentence % we always output + organization output % a nonempty organization + publisher output % here + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +% There are three apalike cases: one person (Jones), +% two (Jones and de~Bruijn), and more (Jones et~al.). +% This function is much like format.crossref.editors. +% +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole 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 % apalike uses the whole key, no organization + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} % this function came from ASTRON.BST (ARR) +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label % apalike ignores organization + 'author.key.label % for labeling and sorting + if$ + } + if$ + "\protect\astroncite{" swap$ * "}{" % these three lines are + * % for apalike, which + year field.or.null purify$ #-1 #4 substring$ % uses all four digits + * % the mathing closing "}" comes in at the reverse.pass + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ % apalike uses initials + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := % <= here + nameptr numnames = t "others" = and + { "et al" * } + { 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$ +} + +% apalike uses two sorting passes; the first one sets the +% labels so that the `a's, `b's, etc. can be computed; +% the second pass puts the references in "correct" order. +% The presort function is for the first pass. It computes +% label, sort.label, and title, and then concatenates. +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$ % for + 'sort.label := % apalike + sort.label % style + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT % by label, sort.label, title---for final label calculation + +STRINGS { last.label next.extra } % apalike labels are only for the text; + +INTEGERS { last.extra.num } % there are none in the bibliography + +FUNCTION {initialize.extra.label.stuff} % and hence there is no `longest.label' +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +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$ +} + +FUNCTION {reverse.pass} % this function came from ASTRON.BST (ARR) +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * "}" * 'label := + extra.label 'next.extra := +} + +EXECUTE {initialize.extra.label.stuff} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +% Now that the label is right we sort for real, +% on sort.label then year then title. This is +% for the second sorting 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 % by sort.label, year, title---giving final bibliography order + +FUNCTION {begin.bib} +{ preamble$ empty$ % no \etalchar in apalike + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ % no labels in apalike +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/apalike2.bst b/Master/texmf-dist/bibtex/bst/beebe/apalike2.bst new file mode 100644 index 00000000000..8109d80d24e --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/apalike2.bst @@ -0,0 +1,1273 @@ +% BibTeX `apalike' bibliography style (24-Jan-88 version) +% Adapted from the `alpha' style, version 0.99a; for BibTeX version 0.99a. +% Copyright (C) 1988, all rights reserved. +% Copying of this file is allowed, provided that if you make any changes at all +% you name it something other than `apalike.bst'. +% This restriction helps ensure that all copies are identical. +% Differences between this style and `alpha' are generally heralded by a `%'. +% The file btxbst.doc has the documentation for alpha.bst. +% +% This style should be used with the `apalike' LaTeX style (apalike.sty). +% \cite's come out like "(Jones, 1986)" in the text but there are no labels +% in the bibliography, and something like "(1986)" comes out immediately +% after the author. Author (and editor) names appear as last name, comma, +% initials. A `year' field is required for every entry, and so is either +% an author (or in some cases, an editor) field or a key field. +% +% Editorial note: +% Many journals require a style like `apalike', but I strongly, strongly, +% strongly recommend that you not use it if you have a choice---use something +% like `plain' instead. Mary-Claire van Leunen (A Handbook for Scholars, +% Knopf, 1979) argues convincingly that a style like `plain' encourages better +% writing than one like `apalike'. Furthermore the strongest arguments for +% using an author-date style like `apalike'---that it's "the most practical" +% (The Chicago Manual of Style, University of Chicago Press, thirteenth +% edition, 1982, pages 400--401)---fall flat on their face with the new +% computer-typesetting technology. For instance page 401 anachronistically +% states "The chief disadvantage of [a style like `plain'] is that additions +% or deletions cannot be made after the manuscript is typed without changing +% numbers in both text references and list." LaTeX sidesteps the disadvantage. +% +% History: +% 15-sep-86 (SK,OP) Original version, by Susan King and Oren Patashnik. +% 10-nov-86 (OP) Truncated the sort.key$ string to the correct length +% in bib.sort.order to eliminate error message. +% 24-jan-88 (OP) Updated for BibTeX version 0.99a, from alpha.bst 0.99a; +% apalike now sorts by author, then year, then title; +% THIS `apalike' VERSION DOES NOT WORK WITH BIBTEX 0.98i. +% Local modifications 10/89 -- Brian Reiser + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key +% month not used in apalike + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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 {eho.special.output.nonnull} +{ 's := + output.state mid.sentence = + { " " * write$ } + { output.state after.block = + { % add.period$ write$ + ": " write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { % add.period$ " " * write$ + ": " * write$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {eho.special.output} +{ duplicate$ empty$ + 'pop$ + 'eho.special.output.nonnull + if$ +} + +%% Added by Eric Ho on Wed Jan 10 20:13:56 1990 +%% A special patch for output.nonnull in book environment. + +FUNCTION {eho.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$ +} + +%% Added by Eric Ho on Wed Jan 10 20:13:56 1990 +%% A special patch for output in book environment. + +FUNCTION {eho.output} +{ duplicate$ empty$ + 'pop$ + 'eho.output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +%% Added by Eric Ho on Wed Jan 10 20:13:56 1990 +%% A special patch for output.check in book environment. + +FUNCTION {eho.output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'eho.output.nonnull + if$ +} + +% apalike needs this function because +% the year has special punctuation; +% apalike ignores the month +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ + " (" year * extra.label * ")" * + mid.sentence 'output.state := + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +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$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " \& " * t * } % changed from " and " for names -- BJR 10/5/89 + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +%% Added by Fri Jan 12 19:03:22 1990 on Fri Jan 12 19:03:27 1990 +%% Mainly to make sure that editors have initials before last names. + +FUNCTION {eho.format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.} {vv~}{ll}{, jj}" format.name$ 't := %% initials first. + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " \& " * t * } % changed from " and " for names -- BJR 10/5/89 + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.key} % this function is just for apalike +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", Eds." * } % changed from ", editors" -- BJR 10/5/89 + { ", Ed." * } % changed from ", editor" -- BJR 10/5/89 + if$ + } + if$ +} + +%% Added by Eric Ho Fri Jan 12 19:11:12 1990 +%% Mainly to call eho.format.names instead of format.names and +%% to make Eds or Ed to be surrounded by pararentheses instead of preceeded by +%% a comma. + +FUNCTION {eho.format.editors} +{ editor empty$ + { "" } + { editor eho.format.names + editor num.names$ #1 > + { " (Eds.)" * } % changed from ", editors" -- BJR 10/5/89 + { " (Ed.)" * } % changed from ", editor" -- BJR 10/5/89 + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check +% { "pages" pages n.dashify tie.or.space.connect } +% { "page" pages tie.or.space.connect } + { "(pp.\" pages n.dashify tie.or.space.connect } + { "(pp.\" pages tie.or.space.connect } + if$ + ")." * + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } % changed from ":" for vol,pgs -- BJR 10/5/89 + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +%% Added by Eric Ho Fri Jan 12 19:17:37 1990 +%% Primarily to call eho.format.editors instead of format.editors. + +FUNCTION {eho.format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " eho.format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * % this is for apalike +} + +FUNCTION {format.incoll.inproc.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +%% Modified by Eric Ho on Wed Jan 10 20:30:11 1990 +%% Making it to call eho.output.check instead of output.check and eho.output +%% instead of output. + +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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence +% publisher "publisher" output.check +% address output +% switched order of publisher and address for book -- BJR 10/5/89 + address eho.output % Using eho.output instead of output. + publisher "publisher" eho.output.check % Using eho.output.check + % instead of output.check. + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + howpublished output + address output + new.block + note output + fin.entry +} + +%% Modified by Eric Ho on Wed Jan 10 20:27:26 1990 +%% Making it to call eho.output.check instead of output.check and eho.output +%% instead of output. + +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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" eho.output.check % Using eho.output.check instead + % of output.check. + address eho.output % Using eho.output instead of output. + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +%% Modified by Eric Ho on Wed Jan 10 20:27:26 1990 +%% Making it to call eho.output.check instead of output.check and eho.output +%% instead of output. Also modified by Eric Ho on Fri Jan 12 +%% 19:21:59 1990 so as to call eho.format.in.ed.booktitle instead of the old +%% format.in.ed.booktitle. + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { eho.format.in.ed.booktitle "booktitle" output.check + % The above line is changed by Eric Ho on Fri Jan 12 + % 19:20:28 1990 so that it'll call eho.format.in.ed.booktitle instead + % of format.in.ed.booktitle. + + format.bvolume output + format.number.series output + format.chapter.pages eho.special.output + new.sentence +% publisher "publisher" output.check +% address output +% switched order of publisher and address for incollection -- BJR 1/3/90 + address eho.output % Use eho.output instead of output. + publisher "publisher" eho.output.check % Use eho.output.check instead + % of output.check. + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { % format.in.ed.booktitle "booktitle" output.check + eho.format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages eho.special.output + address eho.special.output % for apalike + new.sentence % there's no year + organization eho.special.output % here so things + publisher eho.special.output % are simpler + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output % for apalike + new.sentence % we always output + organization output % a nonempty organization + publisher output % here + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block +% format.title "title" output.check + format.btitle "title" output.check % change to ital title -- BJR + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +% There are three apalike cases: one person (Jones), +% two (Jones and de~Bruijn), and more (Jones et~al.). +% This function is much like format.crossref.editors. +% +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " \& " * s #2 "{vv~}{ll}" format.name$ * } % " and " -- BJR 10/5/89 + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole 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 % apalike uses the whole key, no organization + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label % apalike ignores organization + 'author.key.label % for labeling and sorting + if$ + } + if$ + ", " % these three lines are + * % for apalike, which + year field.or.null purify$ #-1 #4 substring$ % uses all four digits + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ % apalike uses initials + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := % <= here + nameptr numnames = t "others" = and + { "et al" * } + { 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$ +} + +% apalike uses two sorting passes; the first one sets the +% labels so that the `a's, `b's, etc. can be computed; +% the second pass puts the references in "correct" order. +% The presort function is for the first pass. It computes +% label, sort.label, and title, and then concatenates. +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$ % for + 'sort.label := % apalike + sort.label % style + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT % by label, sort.label, title---for final label calculation + +STRINGS { last.label next.extra } % apalike labels are only for the text; + +INTEGERS { last.extra.num } % there are none in the bibliography + +FUNCTION {initialize.extra.label.stuff} % and hence there is no `longest.label' +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +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$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + extra.label 'next.extra := +} + +EXECUTE {initialize.extra.label.stuff} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +% Now that the label is right we sort for real, +% on sort.label then year then title. This is +% for the second sorting 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 % by sort.label, year, title---giving final bibliography order + +FUNCTION {begin.bib} +{ preamble$ empty$ % no \etalchar in apalike + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ % no labels in apalike +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/astron.bst b/Master/texmf-dist/bibtex/bst/beebe/astron.bst new file mode 100644 index 00000000000..b8b6e881720 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/astron.bst @@ -0,0 +1,1175 @@ +% Copyright (C) 1990 Sake J. Hogeveen. + +% This is ASTRON.BST, a BibTeX style for use with BibTeX version 0.99c. +% ASTRON.BST has to be used in conjunction with the LaTeX style ASTRON.STY. +% The use of both styles is documented in ASTDOC.TEX. + +% ASTRON.BST is an adaptation of APALIKE.BST by Oren Patashnik and Suzan King. + +% This style produces citations in the `author-year' format, which is widely +% used among astronomical journals. +% It supports two forms of citation: the \cite command produces: (Author, year) +% in the text; the \cite* command only: (year) . + +% The long an short citation trickery is adapted from NAMED.BST by +% Peter F. Patel-Schneider. + +% Copyright Notice: +% The files ASTRON.BST, ASTRON.STY, ASTDOC.TEX, ASTDOC.BIB, EXAMPLE.TEX, +% EXAMPLE.BIB, MNEMONIC.BIB, and TEMPLATE.BIB are a package. +% You may copy and distribute them freely for non-commercial purposes, +% provided that you keep the package together and this copyright notice +% in tact. +% You may not alter or modify the files; this helps to ensure that all +% distributions of ASTRON.BST and related files are the same. +% If you make any modifications, then you must give the files new names, +% other than the present. +% The author bears no responsibilities for errors in this document or +% the software it describes; and shall not be held liable for any indirect, +% incidental, or consequential damages. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key +% month not used in apalike + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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 = + { ", " * write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { ", " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output.nonnull.extra} +{ 's := + output.state mid.sentence = + { " " * write$ } + { output.state after.block = + { ", " * write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { ", " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.extra} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull.extra + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.check.extra} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull.extra + if$ +} + +% apalike needs this function because +% the year has special punctuation; +% apalike ignores the month +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ + ": " year * extra.label * + mid.sentence 'output.state := + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {boldface} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.ed.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f. }{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.key} % this function is just for apalike +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { " (eds.)" * } + { " (ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.editors.extra} +{ editor empty$ + { "" } + { editor format.ed.names + editor num.names$ #1 > + { " (eds.)" * } + { " (ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {first.page.number} +{ 't := + "" + { t "" = + { #0 } + { t #1 #1 substring$ "-" = not } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + while$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Vol." volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "No." } + { "No." } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pp" pages n.dashify tie.or.space.connect } + { "p." pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.page} +{ pages empty$ + { "" } + { "p.~" pages first.page.number * } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { boldface ", " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.vol.num.page} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { boldface ", " * pages first.page.number * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "Chapt." } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "in " booktitle emphasize * } + { "in " format.editors.extra * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "in" % this is for apalike + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "Vol." volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * % this is for apalike +} + +FUNCTION {format.incoll.inproc.crossref} +{ "in" % this is for apalike + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + crossref missing$ + { journal emphasize "journal" output.check.extra + format.vol.num.page output.extra + } + { format.article.crossref output.nonnull + format.page output + } + if$ + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + new.block + howpublished output + address output + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block +% format.title "title" output.check +% new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block +% format.title "title" output.check +% new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + new.sentence % there's no year + organization output % here so things + publisher output % are simpler + address output % for apalike + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block +% format.title "title" output.check +% new.block + "Master's thesis" emphasize format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.btitle output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block +% format.btitle "title" output.check +% new.block + "Ph.D. thesis" emphasize format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output % for apalike + new.sentence % we always output + organization output % a nonempty organization + publisher output % here + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr,"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +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$ +} + +% There are three apalike cases: one person (Jones), +% two (Jones and de~Bruijn), and more (Jones et~al.). +% This function is much like format.crossref.editors. +% +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole 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 % apalike uses the whole key, no organization + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label % apalike ignores organization + 'author.key.label % for labeling and sorting + if$ + } + if$ + "\protect\astroncite{" swap$ * "}{" % these three lines are + * % for apalike, which + year field.or.null purify$ #-1 #4 substring$ % uses all four digits + * % the mathing closing "}" comes in at the reverse.pass + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ % apalike uses initials + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := % <= here + nameptr numnames = t "others" = and + { "et al" * } + { 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$ +} + +% apalike uses two sorting passes; the first one sets the +% labels so that the `a's, `b's, etc. can be computed; +% the second pass puts the references in "correct" order. +% The presort function is for the first pass. It computes +% label, sort.label, and title, and then concatenates. +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$ % for + 'sort.label := % apalike + sort.label % style + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT % by label, sort.label, title---for final label calculation + +STRINGS { last.label next.extra } % apalike labels are only for the text; + +INTEGERS { last.extra.num } % there are none in the bibliography + +FUNCTION {initialize.extra.label.stuff} % and hence there is no `longest.label' +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +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$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * "}" * 'label := + extra.label 'next.extra := +} + +EXECUTE {initialize.extra.label.stuff} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +% Now that the label is right we sort for real, +% on sort.label then year then title. This is +% for the second sorting 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 % by sort.label, year, title---giving final bibliography order + +FUNCTION {begin.bib} +{ preamble$ empty$ % no \etalchar in apalike + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ % no labels in apalike +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/authordate1.bst b/Master/texmf-dist/bibtex/bst/beebe/authordate1.bst new file mode 100644 index 00000000000..8942b0f6e4e --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/authordate1.bst @@ -0,0 +1,1309 @@ +% This BibTeX 0.99 style file is intended for documents that use the +% author-date citation system. It should be used in conjunction with the +% authordate1-4.sty (or equivalent) LaTeX style-option. +% +% In deciding on the bibliography layout to be implemented, the following +% works have been consulted: +% 1. British Standard 5605: "Citing publications by bibliographic +% references", 1978. +% 2. British Standard 1629: "Bibliographic references", 1976. +% (Note: There is now a 1989 edition.) +% 3. "Copy-editing" by Judith Butcher, Cambridge University Press, 1981. +% 4. "The Oxford Dictionary for Writers and Editors", Oxford University +% Press, 1981 (for abbreviations). +% 5. "The Chicago Manual of Style", Chicago University Press, 1982. +% +% Discretion has been used in certain matters. In particular: +% - Titles are italic except when there is a "contribution title" and +% a "main publication title", in which case the "contribution title" +% is roman while the "main publication title" is italic. +% - When there is a PUBLISHER, it is assumed that ADDRESS contains "place of +% publication"; output is of the form "place-of-publication: publisher". +% When there is an ORGANIZATION as well as a PUBLISHER, output is of the +% form "place-of-publication: publisher, for organization". Otherwise, +% it is assumed that ADDRESS is a postal address, and output is of the +% form "institution, address", "organization, address", "school, address" +% or "howpublished, address". +% - If there is a MONTH but no VOLUME or NUMBER for a journal-article, the +% MONTH is used on the assumption that it contains information that is +% equivalent to VOLUME or NUMBER. MONTH is ignored for other documents +% that have a PUBLISHER, but output after YEAR for anything else. +% - When CHAPTER and/or PAGES are specified with INBOOK, it is assumed that +% these fields are being used to pick out particular pages of interest +% (as an alternative to using the optional [...] argument of \cite); +% the information is put at the very end of the entry, in line with BS 1629. +% When CHAPTER and/or PAGES are specified for INCOLLECTION or INPROCEEDINGS, +% it is assumed that the fields are being used to specify the location of +% the part/article of interest; the information is put before the +% BOOKTITLE, in line with Chicago's treatment of "parts" and "chapters". +% - Since "volume" can be used in various ways (see page 219 of Butcher), +% this file assumes that, when there is a SERIES, any VOLUME and NUMBER +% refer to position in the SERIES (i.e. Butcher's meaning 4). +% If there is a VOLUME but no SERIES, it is assumed that VOLUME refers +% to a volume within a particular work (i.e. Butcher's meaning 1, 2 or 3). +% For INPROCEEDINGS and INCOLLECTION, this information goes after the +% BOOKTITLE. (If you prefer to have volume information before EDITOR, +% as on page 449 of Chicago, you can set TYPE = "Vol." with INCOLLECTION.) +% +% This file differs from authordate2.bst, authordate3.bst and authordate4.bst +% in that: +% - The titles of articles, journals and books are left in whatever +% combination of upper-case and lower-case appears in the .bib file. +% - Author's and editor's names are in roman. +% +% The combination of authordate1.bst and authordate1-4.sty allows citations +% of the form \shortcite{bloggs-60} as well as the usual \cite{bloggs-60}. +% When +% ... \cite{bloggs-60} ... \shortcite{bloggs-60} ... +% appears in the input file, +% ... (Bloggs, 1960) ... (1960) ... +% appears in the final document. +% +% This file was developed from apalike.bst. It also uses code taken from +% acm.bst, aaai-named.bst, btxbst.doc, ieeetr.bst and siam.bst. +% +% David Rhead +% Cripps Computing Centre +% Nottingham University +% March 1990 +% + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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 {output.year.month.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { add.period$ write$ + month empty$ + { " " year * extra.label * "." * + after.sentence 'output.state := + } + { " " year * extra.label * " (" * month * ")." * + after.sentence 'output.state := + } + if$ + } + if$ +} + +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { add.period$ write$ + " " year * extra.label * "." * + after.sentence 'output.state := + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {boldface} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { ", {\em et~al.\ }\relax" * } + { ", \& " * t * } % Butcher, pages + if$ % 186-189. + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > % Use ODWE abbrevs. + { " (eds)" * } % to avoid + { " (ed)" * } % ambiguity between + if$ % "editor" and + } % "edition". + if$ +} + +FUNCTION {format.title} % Nothing needs +{ title empty$ % doing here in + { "" } % authordate1.bst + { title } % or + if$ % authordate3.bst. +} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title empty$ + { "" } % Don't change case + { title emphasize } % in + if$ % authordate1.bst +} % or + % authordate3.bst. +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + 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.numberinseries} +{ number empty$ + { "" } + { number multi.page.check + { ", nos. " number n.dashify tie.or.space.connect } + { ", no. " number tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {booklike.series.volume.number} % Chicago, pages +{ series empty$ % 450-451. + { volume empty$ + { " " } + { " Vol. " volume * } + if$ + } + { + volume empty$ + { number empty$ + { series } + { series format.numberinseries * } + if$ + } + { number empty$ + { series ", vol. " volume * * } + { series ", vol. " * volume * format.numberinseries * } + if$ + } + if$ + } + if$ +} + +FUNCTION {incollectionlike.series.volume.number} +{ series empty$ + { volume empty$ + { " " } + { " vol. " volume * } + if$ + } + { new.block + volume empty$ + { number empty$ + { series } + { series format.numberinseries * } + if$ + } + { number empty$ + { series ", vol. " volume * * } + { series ", vol. " * volume * format.numberinseries * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edn." * } + { edition "t" change.case$ " edn." * } + if$ + } + if$ +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "" pages n.dashify tie.or.space.connect } + { "" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.pagesinbook} % By the time the +{ pages empty$ % reader has read + { "" } % address, pub'r, + { pages multi.page.check % note (where the + { "Pages " pages n.dashify tie.or.space.connect } % note may end with + { "Page " pages tie.or.space.connect } % numbers), s/he + if$ % may not recognise + } % a number-range as + if$ % meaning pages. +} % Avoid ambiguity + % (Butcher, p.181). + +FUNCTION {format.vol.num.date.pages} +{ volume empty$ + { month empty$ + { "" } + { month } + if$ + } + { volume boldface field.or.null + number empty$ + { month empty$ + 'skip$ + { "(" month * ")" * * } + if$ + } + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages.inbook} +{ chapter empty$ + 'format.pagesinbook + { type empty$ + { "Chap." } + { type } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pagesinbook "l" change.case$ * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages.incoll} +{ chapter empty$ + { pages empty$ + { "{\em In:} " } + { "{\em " format.pagesinbook " of:} " * * } + if$ + } + { type empty$ + { "{\em Chap. " chapter * } + { "{\em " type * " " * chapter * } + if$ + pages empty$ + { " of:} " * } + { ", " * format.pagesinbook "l" change.case$ " of:} " * * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} % Achieves effect +{ booktitle empty$ % shown in 16.51 + { "" } % of Chicago, at + { editor empty$ % expense of not + { format.chapter.pages.incoll % achieving effects + booktitle emphasize * } % shown in 16.50 + { format.chapter.pages.incoll % of Chicago, on + format.editors * ", " * % page 189 of + booktitle emphasize * } % Butcher and in + if$ % 4.4 of BS 1629. + } + if$ % Don't change +} % case. + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type % Don't change + } % case. + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. rept." } % ODWE abbrevs. + 'type + if$ + number empty$ + { } % Whatever was + { number tie.or.space.connect } % having its case + if$ % changed, leave +} % it alone. + +FUNCTION {format.addr.pub} +{ publisher empty$ + { "" } + { address empty$ + { "" } + { address ": " * } + if$ + publisher * + } + if$ +} + +FUNCTION {format.addr.pub.org} % If there's an +{ address empty$ % an organization + { publisher * ", for " * organization * } % and a publisher + { address ": " * publisher * ", for " * organization * } % too. + if$ +} + +FUNCTION {format.addr.inst} +{ address empty$ + { institution empty$ + { "" } + { institution } + if$ + } + { institution empty$ + { "" } + { institution ", " * } + if$ + address * + } + if$ +} + +FUNCTION {format.addr.org} +{ address empty$ + { organization empty$ + { "" } + { organization } + if$ + } + { organization empty$ + { "" } + { organization ", " * } + if$ + address * + } + if$ +} + +FUNCTION {format.article.crossref} +{ "{\em In:}" + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "{\em In:}" + } + { " Vol." volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ "{\em In:}" + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize % Don't change + "journal" output.check % case. + format.vol.num.date.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + 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$ + output.year.check + new.block + format.btitle "title" output.check + crossref missing$ + { new.sentence + format.edition output + new.block + booklike.series.volume.number output + new.block + format.addr.pub "publisher" output.check + } + { new.block + format.book.crossref output.nonnull + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.block + howpublished output + address output + new.block + 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$ + output.year.check + new.block + format.btitle "title" output.check + crossref missing$ + { new.sentence + format.edition output + new.block + booklike.series.volume.number output + new.block + format.addr.pub "publisher" output.check + } + { new.block + format.book.crossref output.nonnull + } + if$ + new.block + note output + new.block % BS 1629 (rather + format.chapter.pages.inbook "chapter and pages" output.check + fin.entry % than Chicago, +} % p. 451) + +FUNCTION {incollection} +{ output.bibitem + author empty$ + { format.editors "editor" output.check + editor format.key output } + { format.authors "author" output.check + author format.key output } + if$ + output.year.check + new.block + format.title "title" output.check + new.block + crossref missing$ % Chapter and/or + { format.in.ed.booktitle output % page numbers can + format.edition output % come out via this + incollectionlike.series.volume.number output % route, too. + new.block + format.addr.pub "publisher" output.check + } + { format.incoll.inproc.crossref output.nonnull + new.block + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + publisher empty$ + { output.year.month.check } + { output.year.check } + if$ + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + incollectionlike.series.volume.number output + new.block + publisher empty$ + { + organization empty$ + 'skip$ + { format.addr.org output } + if$ + } + { + organization empty$ + { format.addr.pub output } + { format.addr.pub.org output } + if$ + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.sentence + format.edition output + new.block + organization address new.block.checkb + format.addr.org output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.block + "M.Phil. thesis" format.thesis.type output.nonnull % ODWE abbrev. + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + output.year.month.check + new.block + format.btitle output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.block + "Ph.D. thesis" format.thesis.type output.nonnull % Butcher, + school "school" output.check % page 174. + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors "author and editor" output.check + editor format.key output + publisher empty$ + { output.year.month.check } + { output.year.check } + if$ + new.block + format.btitle "title" output.check + new.block + booklike.series.volume.number output + new.block + publisher empty$ + { + organization empty$ + 'skip$ + { format.addr.org output } + if$ + } + { + organization empty$ + { format.addr.pub output } + { format.addr.pub.org output } + if$ + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.block + format.tr.number output.nonnull + new.sentence + format.addr.inst "institution" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} % ODWE, "months", & + % Chicago, p. 383. +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " {\em et~al.\ }\relax" * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " {\em et~al.\ }\relax" * } + { " \& " * 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.label} + { type$ "book" = + type$ "inbook" = + type$ "incollection" = % For sensible + or or % treatment of + 'author.editor.key.label % Singer in + { type$ "proceedings" = % BS 1629. + 'editor.key.label + 'author.key.label + if$ + } + if$ + duplicate$ + year empty$ + { + "\protect\citename{" swap$ * ", }" * + "n.d." * 'label := % Chicago, + } % page 457. + { + "\protect\citename{" swap$ * ", }" * + year + * + 'label := + } + if$ + year field.or.null purify$ * + sortify 'sort.label := +} + + +FUNCTION {sort.format.names} % To produce the +{ 's := % order of entries + #1 'nameptr := % specified in item + "" % (3) on page 187 + s num.names$ 'numnames := % of Butcher. + numnames 'namesleft := + { namesleft #0 > nameptr #3 < and } % Only 1st 2 names + { nameptr #1 > % matter for + { " " * } % sorting. + 'skip$ + if$ % Anything that's + nameptr #2 = numnames #2 > and % "et al" goes + { "zzzzz" * } % after works by 2 + { % authors. + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + 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} % Two sorting +{ calc.label % passes, from + label sortify % apalike.bst. + " " + * + type$ "book" = + type$ "inbook" = + type$ "incollection" = % For Singer + or or % in BS 1629. + '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 } + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +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$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ % Code needed here + % if \citeauthor + % and \citeyear + label extra.label * 'label := % were supported. + extra.label 'next.extra := +} + +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}{}" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/authordate2.bst b/Master/texmf-dist/bibtex/bst/beebe/authordate2.bst new file mode 100644 index 00000000000..b777fe80789 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/authordate2.bst @@ -0,0 +1,1310 @@ +% This BibTeX 0.99 style file is intended for documents that use the +% author-date citation system. It should be used in conjunction with the +% authordate1-4.sty (or equivalent) LaTeX style-option. +% +% In deciding on the bibliography layout to be implemented, the following +% works have been consulted: +% 1. British Standard 5605: "Citing publications by bibliographic +% references", 1978. +% 2. British Standard 1629: "Bibliographic references", 1976. +% (Note: There is now a 1989 edition.) +% 3. "Copy-editing" by Judith Butcher, Cambridge University Press, 1981. +% 4. "The Oxford Dictionary for Writers and Editors", Oxford University +% Press, 1981 (for abbreviations). +% 5. "The Chicago Manual of Style", Chicago University Press, 1982. +% +% Discretion has been used in certain matters. In particular: +% - Titles are italic except when there is a "contribution title" and +% a "main publication title", in which case the "contribution title" +% is roman while the "main publication title" is italic. +% - When there is a PUBLISHER, it is assumed that ADDRESS contains "place of +% publication"; output is of the form "place-of-publication: publisher". +% When there is an ORGANIZATION as well as a PUBLISHER, output is of the +% form "place-of-publication: publisher, for organization". Otherwise, +% it is assumed that ADDRESS is a postal address, and output is of the +% form "institution, address", "organization, address", "school, address" +% or "howpublished, address". +% - If there is a MONTH but no VOLUME or NUMBER for a journal-article, the +% MONTH is used on the assumption that it contains information that is +% equivalent to VOLUME or NUMBER. MONTH is ignored for other documents +% that have a PUBLISHER, but output after YEAR for anything else. +% - When CHAPTER and/or PAGES are specified with INBOOK, it is assumed that +% these fields are being used to pick out particular pages of interest +% (as an alternative to using the optional [...] argument of \cite); +% the information is put at the very end of the entry, in line with BS 1629. +% When CHAPTER and/or PAGES are specified for INCOLLECTION or INPROCEEDINGS, +% it is assumed that the fields are being used to specify the location of +% the part/article of interest; the information is put before the +% BOOKTITLE, in line with Chicago's treatment of "parts" and "chapters". +% - Since "volume" can be used in various ways (see page 219 of Butcher), +% this file assumes that, when there is a SERIES, any VOLUME and NUMBER +% refer to position in the SERIES (i.e. Butcher's meaning 4). +% If there is a VOLUME but no SERIES, it is assumed that VOLUME refers +% to a volume within a particular work (i.e. Butcher's meaning 1, 2 or 3). +% For INPROCEEDINGS and INCOLLECTION, this information goes after the +% BOOKTITLE. (If you prefer to have volume information before EDITOR, +% as on page 449 of Chicago, you can set TYPE = "Vol." with INCOLLECTION.) +% +% This file differs from authordate1.bst, authordate3.bst and authordate4.bst +% in that: +% - Titles of journals, articles and boooks are "downstyle". Apart from the +% first character, and the first character following : and white space, +% uppercase letters are converted to lowercase unless protected by {}. +% - Author's and editor's names are in roman. +% +% The combination of authordate2.bst and authordate1-4.sty allows citations +% of the form \shortcite{bloggs-60} as well as the usual \cite{bloggs-60}. +% When +% ... \cite{bloggs-60} ... \shortcite{bloggs-60} ... +% appears in the input file, +% ... (Bloggs, 1960) ... (1960) ... +% appears in the final document. +% +% This file was developed from apalike.bst. It also uses code taken from +% acm.bst, aaai-named.bst, btxbst.doc, ieeetr.bst and siam.bst. +% +% David Rhead +% Cripps Computing Centre +% Nottingham University +% March 1990 +% + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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 {output.year.month.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { add.period$ write$ + month empty$ + { " " year * extra.label * "." * + after.sentence 'output.state := + } + { " " year * extra.label * " (" * month * ")." * + after.sentence 'output.state := + } + if$ + } + if$ +} + +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { add.period$ write$ + " " year * extra.label * "." * + after.sentence 'output.state := + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {boldface} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { ", {\em et~al.\ }\relax" * } + { ", \& " * t * } % Butcher, pages + if$ % 186-189. + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > % Use ODWE abbrevs. + { " (eds)" * } % to avoid + { " (ed)" * } % ambiguity between + if$ % "editor" and + } % "edition". + if$ +} + +FUNCTION {format.title} % Howells example +{ title empty$ % in BS 5605 comes + { "" } % out wrong because + { title "t" change.case$ } % Patashnik + if$ % capitalizes +} % after a colon. + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title empty$ + { "" } + { title "t" change.case$ emphasize } + if$ +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + 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.numberinseries} +{ number empty$ + { "" } + { number multi.page.check + { ", nos. " number n.dashify tie.or.space.connect } + { ", no. " number tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {booklike.series.volume.number} % Chicago, pages +{ series empty$ % 450-451. + { volume empty$ + { " " } + { " Vol. " volume * } + if$ + } + { + volume empty$ + { number empty$ + { series } + { series format.numberinseries * } + if$ + } + { number empty$ + { series ", vol. " volume * * } + { series ", vol. " * volume * format.numberinseries * } + if$ + } + if$ + } + if$ +} + +FUNCTION {incollectionlike.series.volume.number} +{ series empty$ + { volume empty$ + { " " } + { " vol. " volume * } + if$ + } + { new.block + volume empty$ + { number empty$ + { series } + { series format.numberinseries * } + if$ + } + { number empty$ + { series ", vol. " volume * * } + { series ", vol. " * volume * format.numberinseries * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edn." * } + { edition "t" change.case$ " edn." * } + if$ + } + if$ +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "" pages n.dashify tie.or.space.connect } + { "" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.pagesinbook} % By the time the +{ pages empty$ % reader has read + { "" } % address, pub'r, + { pages multi.page.check % note (where the + { "Pages " pages n.dashify tie.or.space.connect } % note may end with + { "Page " pages tie.or.space.connect } % numbers), s/he + if$ % may not recognise + } % a number-range as + if$ % meaning pages. +} % Avoid ambiguity + % (Butcher, p.181). + +FUNCTION {format.vol.num.date.pages} +{ volume empty$ + { month empty$ + { "" } + { month } + if$ + } + { volume boldface field.or.null + number empty$ + { month empty$ + 'skip$ + { "(" month * ")" * * } + if$ + } + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages.inbook} +{ chapter empty$ + 'format.pagesinbook + { type empty$ + { "Chap." } + { type } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pagesinbook "l" change.case$ * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages.incoll} +{ chapter empty$ + { pages empty$ + { "{\em In:} " } + { "{\em " format.pagesinbook " of:} " * * } + if$ + } + { type empty$ + { "{\em Chap. " chapter * } + { "{\em " type * " " * chapter * } + if$ + pages empty$ + { " of:} " * } + { ", " * format.pagesinbook "l" change.case$ " of:} " * * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} % Achieves effect +{ booktitle empty$ % shown in 16.51 + { "" } % of Chicago, at + { editor empty$ % expense of not + { format.chapter.pages.incoll % achieving effects + booktitle "t" change.case$ emphasize * } % shown in 16.50 + { format.chapter.pages.incoll % of Chicago, on + format.editors * ", " * % page 189 of + booktitle "t" change.case$ emphasize * } % Butcher and in + if$ % 4.4 of BS 1629. + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. rept." } % ODWE abbrevs. + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.addr.pub} +{ publisher empty$ + { "" } + { address empty$ + { "" } + { address ": " * } + if$ + publisher * + } + if$ +} + +FUNCTION {format.addr.pub.org} % If there's an +{ address empty$ % an organization + { publisher * ", for " * organization * } % and a publisher + { address ": " * publisher * ", for " * organization * } % too. + if$ +} + +FUNCTION {format.addr.inst} +{ address empty$ + { institution empty$ + { "" } + { institution } + if$ + } + { institution empty$ + { "" } + { institution ", " * } + if$ + address * + } + if$ +} + +FUNCTION {format.addr.org} +{ address empty$ + { organization empty$ + { "" } + { organization } + if$ + } + { organization empty$ + { "" } + { organization ", " * } + if$ + address * + } + if$ +} + +FUNCTION {format.article.crossref} +{ "{\em In:}" + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "{\em In:}" + } + { " Vol." volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ "{\em In:}" + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal "t" change.case$ emphasize + "journal" output.check + format.vol.num.date.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + 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$ + output.year.check + new.block + format.btitle "title" output.check + crossref missing$ + { new.sentence + format.edition output + new.block + booklike.series.volume.number output + new.block + format.addr.pub "publisher" output.check + } + { new.block + format.book.crossref output.nonnull + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.block + howpublished output + address output + new.block + 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$ + output.year.check + new.block + format.btitle "title" output.check + crossref missing$ + { new.sentence + format.edition output + new.block + booklike.series.volume.number output + new.block + format.addr.pub "publisher" output.check + } + { new.block + format.book.crossref output.nonnull + } + if$ + new.block + note output + new.block % BS 1629 (rather + format.chapter.pages.inbook "chapter and pages" output.check + fin.entry % than Chicago, +} % p. 451) + +FUNCTION {incollection} +{ output.bibitem + author empty$ + { format.editors "editor" output.check + editor format.key output } + { format.authors "author" output.check + author format.key output } + if$ + output.year.check + new.block + format.title "title" output.check + new.block + crossref missing$ % Chapter and/or + { format.in.ed.booktitle output % page numbers can + format.edition output % come out via this + incollectionlike.series.volume.number output % route, too. + new.block + format.addr.pub "publisher" output.check + } + { format.incoll.inproc.crossref output.nonnull + new.block + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + publisher empty$ + { output.year.month.check } + { output.year.check } + if$ + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + incollectionlike.series.volume.number output + new.block + publisher empty$ + { + organization empty$ + 'skip$ + { format.addr.org output } + if$ + } + { + organization empty$ + { format.addr.pub output } + { format.addr.pub.org output } + if$ + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.sentence + format.edition output + new.block + organization address new.block.checkb + format.addr.org output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.block + "M.Phil. thesis" format.thesis.type output.nonnull % ODWE abbrev. + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + output.year.month.check + new.block + format.btitle output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.block + "Ph.D. thesis" format.thesis.type output.nonnull % Butcher, + school "school" output.check % page 174. + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors "author and editor" output.check + editor format.key output + publisher empty$ + { output.year.month.check } + { output.year.check } + if$ + new.block + format.btitle "title" output.check + new.block + booklike.series.volume.number output + new.block + publisher empty$ + { + organization empty$ + 'skip$ + { format.addr.org output } + if$ + } + { + organization empty$ + { format.addr.pub output } + { format.addr.pub.org output } + if$ + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.block + format.tr.number output.nonnull + new.sentence + format.addr.inst "institution" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} % ODWE, "months", & + % Chicago, p. 383. +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " {\em et~al.\ }\relax" * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " {\em et~al.\ }\relax" * } + { " \& " * 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.label} + { type$ "book" = + type$ "inbook" = + type$ "incollection" = % For sensible + or or % treatment of + 'author.editor.key.label % Singer in + { type$ "proceedings" = % BS 1629. + 'editor.key.label + 'author.key.label + if$ + } + if$ + duplicate$ + year empty$ + { + "\protect\citename{" swap$ * ", }" * + "n.d." * 'label := % Chicago, + } % page 457. + { + "\protect\citename{" swap$ * ", }" * + year + * + 'label := + } + if$ + year field.or.null purify$ * + sortify 'sort.label := +} + + +FUNCTION {sort.format.names} % To produce the +{ 's := % order of entries + #1 'nameptr := % specified in item + "" % (3) on page 187 + s num.names$ 'numnames := % of Butcher. + numnames 'namesleft := + { namesleft #0 > nameptr #3 < and } % Only 1st 2 names + { nameptr #1 > % matter for + { " " * } % sorting. + 'skip$ + if$ % Anything that's + nameptr #2 = numnames #2 > and % "et al" goes + { "zzzzz" * } % after works by 2 + { % authors. + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + 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} % Two sorting +{ calc.label % passes, from + label sortify % apalike.bst. + " " + * + type$ "book" = + type$ "inbook" = + type$ "incollection" = % For Singer + or or % in BS 1629. + '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 } + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +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$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ % Code needed here + % if \citeauthor + % and \citeyear + label extra.label * 'label := % were supported. + extra.label 'next.extra := +} + +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}{}" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/authordate3.bst b/Master/texmf-dist/bibtex/bst/beebe/authordate3.bst new file mode 100644 index 00000000000..4abade9bde8 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/authordate3.bst @@ -0,0 +1,1309 @@ +% This BibTeX 0.99 style file is intended for documents that use the +% author-date citation system. It should be used in conjunction with the +% authordate1-4.sty (or equivalent) LaTeX style-option. +% +% In deciding on the bibliography layout to be implemented, the following +% works have been consulted: +% 1. British Standard 5605: "Citing publications by bibliographic +% references", 1978. +% 2. British Standard 1629: "Bibliographic references", 1976. +% (Note: There is now a 1989 edition.) +% 3. "Copy-editing" by Judith Butcher, Cambridge University Press, 1981. +% 4. "The Oxford Dictionary for Writers and Editors", Oxford University +% Press, 1981 (for abbreviations). +% 5. "The Chicago Manual of Style", Chicago University Press, 1982. +% +% Discretion has been used in certain matters. In particular: +% - Titles are italic except when there is a "contribution title" and +% a "main publication title", in which case the "contribution title" +% is roman while the "main publication title" is italic. +% - When there is a PUBLISHER, it is assumed that ADDRESS contains "place of +% publication"; output is of the form "place-of-publication: publisher". +% When there is an ORGANIZATION as well as a PUBLISHER, output is of the +% form "place-of-publication: publisher, for organization". Otherwise, +% it is assumed that ADDRESS is a postal address, and output is of the +% form "institution, address", "organization, address", "school, address" +% or "howpublished, address". +% - If there is a MONTH but no VOLUME or NUMBER for a journal-article, the +% MONTH is used on the assumption that it contains information that is +% equivalent to VOLUME or NUMBER. MONTH is ignored for other documents +% that have a PUBLISHER, but output after YEAR for anything else. +% - When CHAPTER and/or PAGES are specified with INBOOK, it is assumed that +% these fields are being used to pick out particular pages of interest +% (as an alternative to using the optional [...] argument of \cite); +% the information is put at the very end of the entry, in line with BS 1629. +% When CHAPTER and/or PAGES are specified for INCOLLECTION or INPROCEEDINGS, +% it is assumed that the fields are being used to specify the location of +% the part/article of interest; the information is put before the +% BOOKTITLE, in line with Chicago's treatment of "parts" and "chapters". +% - Since "volume" can be used in various ways (see page 219 of Butcher), +% this file assumes that, when there is a SERIES, any VOLUME and NUMBER +% refer to position in the SERIES (i.e. Butcher's meaning 4). +% If there is a VOLUME but no SERIES, it is assumed that VOLUME refers +% to a volume within a particular work (i.e. Butcher's meaning 1, 2 or 3). +% For INPROCEEDINGS and INCOLLECTION, this information goes after the +% BOOKTITLE. (If you prefer to have volume information before EDITOR, +% as on page 449 of Chicago, you can set TYPE = "Vol." with INCOLLECTION.) +% +% This file differs from authordate1.bst, authordate2.bst and authordate4.bst +% in that: +% - The titles of articles, journals and books are left in whatever +% combination of upper-case and lower-case appears in the .bib file. +% - Author's and editor's names are in small capitals. +% +% The combination of authordate3.bst and authordate1-4.sty allows citations +% of the form \shortcite{bloggs-60} as well as the usual \cite{bloggs-60}. +% When +% ... \cite{bloggs-60} ... \shortcite{bloggs-60} ... +% appears in the input file, +% ... (Bloggs, 1960) ... (1960) ... +% appears in the final document. +% +% This file was developed from apalike.bst. It also uses code taken from +% acm.bst, aaai-named.bst, btxbst.doc, ieeetr.bst and siam.bst. +% +% David Rhead +% Cripps Computing Centre +% Nottingham University +% March 1990 +% + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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 {output.year.month.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { add.period$ write$ + month empty$ + { " " year * extra.label * "." * + after.sentence 'output.state := + } + { " " year * extra.label * " (" * month * ")." * + after.sentence 'output.state := + } + if$ + } + if$ +} + +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { add.period$ write$ + " " year * extra.label * "." * + after.sentence 'output.state := + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {boldface} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { ", {\em et~al.\ }\relax" * } + { ", \& " * t * } % Butcher, pages + if$ % 186-189. + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } % Small capitals + { "{\sc " * author format.names "}" * } % for + if$ % authordate3.bst +} % and + % authordate4.bst. +FUNCTION {format.key} +{ empty$ + { "{\sc " * key field.or.null "}" * } % Small capitals. + { "" } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } % Small capitals. + { "{\sc " * editor format.names "}" * + editor num.names$ #1 > % Use ODWE abbrevs. + { " (eds)" * } % to avoid + { " (ed)" * } % ambiguity between + if$ % "editor" and + } % "edition". + if$ +} + +FUNCTION {format.title} % Nothing needs +{ title empty$ % doing here in + { "" } % authordate1.bst + { title } % or + if$ % authordate3.bst. +} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title empty$ + { "" } % Don't change case + { title emphasize } % in + if$ % authordate1.bst +} % or + % authordate3.bst. +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + 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.numberinseries} +{ number empty$ + { "" } + { number multi.page.check + { ", nos. " number n.dashify tie.or.space.connect } + { ", no. " number tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {booklike.series.volume.number} % Chicago, pages +{ series empty$ % 450-451. + { volume empty$ + { " " } + { " Vol. " volume * } + if$ + } + { + volume empty$ + { number empty$ + { series } + { series format.numberinseries * } + if$ + } + { number empty$ + { series ", vol. " volume * * } + { series ", vol. " * volume * format.numberinseries * } + if$ + } + if$ + } + if$ +} + +FUNCTION {incollectionlike.series.volume.number} +{ series empty$ + { volume empty$ + { " " } + { " vol. " volume * } + if$ + } + { new.block + volume empty$ + { number empty$ + { series } + { series format.numberinseries * } + if$ + } + { number empty$ + { series ", vol. " volume * * } + { series ", vol. " * volume * format.numberinseries * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edn." * } + { edition "t" change.case$ " edn." * } + if$ + } + if$ +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "" pages n.dashify tie.or.space.connect } + { "" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.pagesinbook} % By the time the +{ pages empty$ % reader has read + { "" } % address, pub'r, + { pages multi.page.check % note (where the + { "Pages " pages n.dashify tie.or.space.connect } % note may end with + { "Page " pages tie.or.space.connect } % numbers), s/he + if$ % may not recognise + } % a number-range as + if$ % meaning pages. +} % Avoid ambiguity + % (Butcher, p.181). + +FUNCTION {format.vol.num.date.pages} +{ volume empty$ + { month empty$ + { "" } + { month } + if$ + } + { volume boldface field.or.null + number empty$ + { month empty$ + 'skip$ + { "(" month * ")" * * } + if$ + } + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages.inbook} +{ chapter empty$ + 'format.pagesinbook + { type empty$ + { "Chap." } + { type } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pagesinbook "l" change.case$ * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages.incoll} +{ chapter empty$ + { pages empty$ + { "{\em In:} " } + { "{\em " format.pagesinbook " of:} " * * } + if$ + } + { type empty$ + { "{\em Chap. " chapter * } + { "{\em " type * " " * chapter * } + if$ + pages empty$ + { " of:} " * } + { ", " * format.pagesinbook "l" change.case$ " of:} " * * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} % Achieves effect +{ booktitle empty$ % shown in 16.51 + { "" } % of Chicago, at + { editor empty$ % expense of not + { format.chapter.pages.incoll % achieving effects + booktitle emphasize * } % shown in 16.50 + { format.chapter.pages.incoll % of Chicago, on + format.editors * ", " * % page 189 of + booktitle emphasize * } % Butcher and in + if$ % 4.4 of BS 1629. + } + if$ % Don't change +} % case. + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type % Don't change + } % case. + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. rept." } % ODWE abbrevs. + 'type + if$ + number empty$ + { } % Whatever was + { number tie.or.space.connect } % having its case + if$ % changed, leave +} % it alone. + +FUNCTION {format.addr.pub} +{ publisher empty$ + { "" } + { address empty$ + { "" } + { address ": " * } + if$ + publisher * + } + if$ +} + +FUNCTION {format.addr.pub.org} % If there's an +{ address empty$ % an organization + { publisher * ", for " * organization * } % and a publisher + { address ": " * publisher * ", for " * organization * } % too. + if$ +} + +FUNCTION {format.addr.inst} +{ address empty$ + { institution empty$ + { "" } + { institution } + if$ + } + { institution empty$ + { "" } + { institution ", " * } + if$ + address * + } + if$ +} + +FUNCTION {format.addr.org} +{ address empty$ + { organization empty$ + { "" } + { organization } + if$ + } + { organization empty$ + { "" } + { organization ", " * } + if$ + address * + } + if$ +} + +FUNCTION {format.article.crossref} +{ "{\em In:}" + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "{\em In:}" + } + { " Vol." volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ "{\em In:}" + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize % Don't change + "journal" output.check % case. + format.vol.num.date.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + 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$ + output.year.check + new.block + format.btitle "title" output.check + crossref missing$ + { new.sentence + format.edition output + new.block + booklike.series.volume.number output + new.block + format.addr.pub "publisher" output.check + } + { new.block + format.book.crossref output.nonnull + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.block + howpublished output + address output + new.block + 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$ + output.year.check + new.block + format.btitle "title" output.check + crossref missing$ + { new.sentence + format.edition output + new.block + booklike.series.volume.number output + new.block + format.addr.pub "publisher" output.check + } + { new.block + format.book.crossref output.nonnull + } + if$ + new.block + note output + new.block % BS 1629 (rather + format.chapter.pages.inbook "chapter and pages" output.check + fin.entry % than Chicago, +} % p. 451) + +FUNCTION {incollection} +{ output.bibitem + author empty$ + { format.editors "editor" output.check + editor format.key output } + { format.authors "author" output.check + author format.key output } + if$ + output.year.check + new.block + format.title "title" output.check + new.block + crossref missing$ % Chapter and/or + { format.in.ed.booktitle output % page numbers can + format.edition output % come out via this + incollectionlike.series.volume.number output % route, too. + new.block + format.addr.pub "publisher" output.check + } + { format.incoll.inproc.crossref output.nonnull + new.block + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + publisher empty$ + { output.year.month.check } + { output.year.check } + if$ + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + incollectionlike.series.volume.number output + new.block + publisher empty$ + { + organization empty$ + 'skip$ + { format.addr.org output } + if$ + } + { + organization empty$ + { format.addr.pub output } + { format.addr.pub.org output } + if$ + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.sentence + format.edition output + new.block + organization address new.block.checkb + format.addr.org output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.block + "M.Phil. thesis" format.thesis.type output.nonnull % ODWE abbrev. + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + output.year.month.check + new.block + format.btitle output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.block + "Ph.D. thesis" format.thesis.type output.nonnull % Butcher, + school "school" output.check % page 174. + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors "author and editor" output.check + editor format.key output + publisher empty$ + { output.year.month.check } + { output.year.check } + if$ + new.block + format.btitle "title" output.check + new.block + booklike.series.volume.number output + new.block + publisher empty$ + { + organization empty$ + 'skip$ + { format.addr.org output } + if$ + } + { + organization empty$ + { format.addr.pub output } + { format.addr.pub.org output } + if$ + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.block + format.tr.number output.nonnull + new.sentence + format.addr.inst "institution" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} % ODWE, "months", & + % Chicago, p. 383. +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " {\em et~al.\ }\relax" * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " {\em et~al.\ }\relax" * } + { " \& " * 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.label} + { type$ "book" = + type$ "inbook" = + type$ "incollection" = % For sensible + or or % treatment of + 'author.editor.key.label % Singer in + { type$ "proceedings" = % BS 1629. + 'editor.key.label + 'author.key.label + if$ + } + if$ + duplicate$ + year empty$ + { + "\protect\citename{" swap$ * ", }" * + "n.d." * 'label := % Chicago, + } % page 457. + { + "\protect\citename{" swap$ * ", }" * + year + * + 'label := + } + if$ + year field.or.null purify$ * + sortify 'sort.label := +} + + +FUNCTION {sort.format.names} % To produce the +{ 's := % order of entries + #1 'nameptr := % specified in item + "" % (3) on page 187 + s num.names$ 'numnames := % of Butcher. + numnames 'namesleft := + { namesleft #0 > nameptr #3 < and } % Only 1st 2 names + { nameptr #1 > % matter for + { " " * } % sorting. + 'skip$ + if$ % Anything that's + nameptr #2 = numnames #2 > and % "et al" goes + { "zzzzz" * } % after works by 2 + { % authors. + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + 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} % Two sorting +{ calc.label % passes, from + label sortify % apalike.bst. + " " + * + type$ "book" = + type$ "inbook" = + type$ "incollection" = % For Singer + or or % in BS 1629. + '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 } + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +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$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ % Code needed here + % if \citeauthor + % and \citeyear + label extra.label * 'label := % were supported. + extra.label 'next.extra := +} + +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}{}" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/authordate4.bst b/Master/texmf-dist/bibtex/bst/beebe/authordate4.bst new file mode 100644 index 00000000000..b41f2504361 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/authordate4.bst @@ -0,0 +1,1310 @@ +% This BibTeX 0.99 style file is intended for documents that use the +% author-date citation system. It should be used in conjunction with the +% authordate1-4.sty (or equivalent) LaTeX style-option. +% +% In deciding on the bibliography layout to be implemented, the following +% works have been consulted: +% 1. British Standard 5605: "Citing publications by bibliographic +% references", 1978. +% 2. British Standard 1629: "Bibliographic references", 1976. +% (Note: There is now a 1989 edition.) +% 3. "Copy-editing" by Judith Butcher, Cambridge University Press, 1981. +% 4. "The Oxford Dictionary for Writers and Editors", Oxford University +% Press, 1981 (for abbreviations). +% 5. "The Chicago Manual of Style", Chicago University Press, 1982. +% +% Discretion has been used in certain matters. In particular: +% - Titles are italic except when there is a "contribution title" and +% a "main publication title", in which case the "contribution title" +% is roman while the "main publication title" is italic. +% - When there is a PUBLISHER, it is assumed that ADDRESS contains "place of +% publication"; output is of the form "place-of-publication: publisher". +% When there is an ORGANIZATION as well as a PUBLISHER, output is of the +% form "place-of-publication: publisher, for organization". Otherwise, +% it is assumed that ADDRESS is a postal address, and output is of the +% form "institution, address", "organization, address", "school, address" +% or "howpublished, address". +% - If there is a MONTH but no VOLUME or NUMBER for a journal-article, the +% MONTH is used on the assumption that it contains information that is +% equivalent to VOLUME or NUMBER. MONTH is ignored for other documents +% that have a PUBLISHER, but output after YEAR for anything else. +% - When CHAPTER and/or PAGES are specified with INBOOK, it is assumed that +% these fields are being used to pick out particular pages of interest +% (as an alternative to using the optional [...] argument of \cite); +% the information is put at the very end of the entry, in line with BS 1629. +% When CHAPTER and/or PAGES are specified for INCOLLECTION or INPROCEEDINGS, +% it is assumed that the fields are being used to specify the location of +% the part/article of interest; the information is put before the +% BOOKTITLE, in line with Chicago's treatment of "parts" and "chapters". +% - Since "volume" can be used in various ways (see page 219 of Butcher), +% this file assumes that, when there is a SERIES, any VOLUME and NUMBER +% refer to position in the SERIES (i.e. Butcher's meaning 4). +% If there is a VOLUME but no SERIES, it is assumed that VOLUME refers +% to a volume within a particular work (i.e. Butcher's meaning 1, 2 or 3). +% For INPROCEEDINGS and INCOLLECTION, this information goes after the +% BOOKTITLE. (If you prefer to have volume information before EDITOR, +% as on page 449 of Chicago, you can set TYPE = "Vol." with INCOLLECTION.) +% +% This file differs from authordate1.bst, authordate2.bst and authordate3.bst +% in that: +% - Titles of articles, journals and books are "downstyle". Apart from the +% first character, and the first character following : and white space, +% uppercase letters are converted to lowercase unless protected by {}. +% - Author's and editor's names are in small capitals. +% +% The combination of authordate4.bst and authordate1-4.sty allows citations +% of the form \shortcite{bloggs-60} as well as the usual \cite{bloggs-60}. +% When +% ... \cite{bloggs-60} ... \shortcite{bloggs-60} ... +% appears in the input file, +% ... (Bloggs, 1960) ... (1960) ... +% appears in the final document. +% +% This file was developed from apalike.bst. It also uses code taken from +% acm.bst, aaai-named.bst, btxbst.doc, ieeetr.bst and siam.bst. +% +% David Rhead +% Cripps Computing Centre +% Nottingham University +% March 1990 +% + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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 {output.year.month.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { add.period$ write$ + month empty$ + { " " year * extra.label * "." * + after.sentence 'output.state := + } + { " " year * extra.label * " (" * month * ")." * + after.sentence 'output.state := + } + if$ + } + if$ +} + +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { add.period$ write$ + " " year * extra.label * "." * + after.sentence 'output.state := + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {boldface} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { ", {\em et~al.\ }\relax" * } + { ", \& " * t * } % Butcher, pages + if$ % 186-189. + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } % Small capitals + { "{\sc " * author format.names "}" * } % for + if$ % authordate3.bst +} % and + % authordate4.bst. +FUNCTION {format.key} +{ empty$ + { "{\sc " * key field.or.null "}" * } % Small capitals. + { "" } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } % Small capitals. + { "{\sc " * editor format.names "}" * + editor num.names$ #1 > % Use ODWE abbrevs. + { " (eds)" * } % to avoid + { " (ed)" * } % ambiguity between + if$ % "editor" and + } % "edition". + if$ +} + +FUNCTION {format.title} % Howells example +{ title empty$ % in BS 5605 comes + { "" } % out wrong because + { title "t" change.case$ } % Patashnik + if$ % capitalizes +} % after a colon. + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title empty$ + { "" } + { title "t" change.case$ emphasize } + if$ +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + 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.numberinseries} +{ number empty$ + { "" } + { number multi.page.check + { ", nos. " number n.dashify tie.or.space.connect } + { ", no. " number tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {booklike.series.volume.number} % Chicago, pages +{ series empty$ % 450-451. + { volume empty$ + { " " } + { " Vol. " volume * } + if$ + } + { + volume empty$ + { number empty$ + { series } + { series format.numberinseries * } + if$ + } + { number empty$ + { series ", vol. " volume * * } + { series ", vol. " * volume * format.numberinseries * } + if$ + } + if$ + } + if$ +} + +FUNCTION {incollectionlike.series.volume.number} +{ series empty$ + { volume empty$ + { " " } + { " vol. " volume * } + if$ + } + { new.block + volume empty$ + { number empty$ + { series } + { series format.numberinseries * } + if$ + } + { number empty$ + { series ", vol. " volume * * } + { series ", vol. " * volume * format.numberinseries * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edn." * } + { edition "t" change.case$ " edn." * } + if$ + } + if$ +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "" pages n.dashify tie.or.space.connect } + { "" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.pagesinbook} % By the time the +{ pages empty$ % reader has read + { "" } % address, pub'r, + { pages multi.page.check % note (where the + { "Pages " pages n.dashify tie.or.space.connect } % note may end with + { "Page " pages tie.or.space.connect } % numbers), s/he + if$ % may not recognise + } % a number-range as + if$ % meaning pages. +} % Avoid ambiguity + % (Butcher, p.181). + +FUNCTION {format.vol.num.date.pages} +{ volume empty$ + { month empty$ + { "" } + { month } + if$ + } + { volume boldface field.or.null + number empty$ + { month empty$ + 'skip$ + { "(" month * ")" * * } + if$ + } + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages.inbook} +{ chapter empty$ + 'format.pagesinbook + { type empty$ + { "Chap." } + { type } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pagesinbook "l" change.case$ * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages.incoll} +{ chapter empty$ + { pages empty$ + { "{\em In:} " } + { "{\em " format.pagesinbook " of:} " * * } + if$ + } + { type empty$ + { "{\em Chap. " chapter * } + { "{\em " type * " " * chapter * } + if$ + pages empty$ + { " of:} " * } + { ", " * format.pagesinbook "l" change.case$ " of:} " * * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} % Achieves effect +{ booktitle empty$ % shown in 16.51 + { "" } % of Chicago, at + { editor empty$ % expense of not + { format.chapter.pages.incoll % achieving effects + booktitle "t" change.case$ emphasize * } % shown in 16.50 + { format.chapter.pages.incoll % of Chicago, on + format.editors * ", " * % page 189 of + booktitle "t" change.case$ emphasize * } % Butcher and in + if$ % 4.4 of BS 1629. + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. rept." } % ODWE abbrevs. + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.addr.pub} +{ publisher empty$ + { "" } + { address empty$ + { "" } + { address ": " * } + if$ + publisher * + } + if$ +} + +FUNCTION {format.addr.pub.org} % If there's an +{ address empty$ % an organization + { publisher * ", for " * organization * } % and a publisher + { address ": " * publisher * ", for " * organization * } % too. + if$ +} + +FUNCTION {format.addr.inst} +{ address empty$ + { institution empty$ + { "" } + { institution } + if$ + } + { institution empty$ + { "" } + { institution ", " * } + if$ + address * + } + if$ +} + +FUNCTION {format.addr.org} +{ address empty$ + { organization empty$ + { "" } + { organization } + if$ + } + { organization empty$ + { "" } + { organization ", " * } + if$ + address * + } + if$ +} + +FUNCTION {format.article.crossref} +{ "{\em In:}" + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "{\em In:}" + } + { " Vol." volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ "{\em In:}" + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal "t" change.case$ emphasize + "journal" output.check + format.vol.num.date.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + 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$ + output.year.check + new.block + format.btitle "title" output.check + crossref missing$ + { new.sentence + format.edition output + new.block + booklike.series.volume.number output + new.block + format.addr.pub "publisher" output.check + } + { new.block + format.book.crossref output.nonnull + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.block + howpublished output + address output + new.block + 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$ + output.year.check + new.block + format.btitle "title" output.check + crossref missing$ + { new.sentence + format.edition output + new.block + booklike.series.volume.number output + new.block + format.addr.pub "publisher" output.check + } + { new.block + format.book.crossref output.nonnull + } + if$ + new.block + note output + new.block % BS 1629 (rather + format.chapter.pages.inbook "chapter and pages" output.check + fin.entry % than Chicago, +} % p. 451) + +FUNCTION {incollection} +{ output.bibitem + author empty$ + { format.editors "editor" output.check + editor format.key output } + { format.authors "author" output.check + author format.key output } + if$ + output.year.check + new.block + format.title "title" output.check + new.block + crossref missing$ % Chapter and/or + { format.in.ed.booktitle output % page numbers can + format.edition output % come out via this + incollectionlike.series.volume.number output % route, too. + new.block + format.addr.pub "publisher" output.check + } + { format.incoll.inproc.crossref output.nonnull + new.block + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + publisher empty$ + { output.year.month.check } + { output.year.check } + if$ + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + incollectionlike.series.volume.number output + new.block + publisher empty$ + { + organization empty$ + 'skip$ + { format.addr.org output } + if$ + } + { + organization empty$ + { format.addr.pub output } + { format.addr.pub.org output } + if$ + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.sentence + format.edition output + new.block + organization address new.block.checkb + format.addr.org output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.block + "M.Phil. thesis" format.thesis.type output.nonnull % ODWE abbrev. + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + output.year.month.check + new.block + format.btitle output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.block + "Ph.D. thesis" format.thesis.type output.nonnull % Butcher, + school "school" output.check % page 174. + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors "author and editor" output.check + editor format.key output + publisher empty$ + { output.year.month.check } + { output.year.check } + if$ + new.block + format.btitle "title" output.check + new.block + booklike.series.volume.number output + new.block + publisher empty$ + { + organization empty$ + 'skip$ + { format.addr.org output } + if$ + } + { + organization empty$ + { format.addr.pub output } + { format.addr.pub.org output } + if$ + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.block + format.tr.number output.nonnull + new.sentence + format.addr.inst "institution" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.month.check + new.block + format.btitle "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} % ODWE, "months", & + % Chicago, p. 383. +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " {\em et~al.\ }\relax" * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " {\em et~al.\ }\relax" * } + { " \& " * 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.label} + { type$ "book" = + type$ "inbook" = + type$ "incollection" = % For sensible + or or % treatment of + 'author.editor.key.label % Singer in + { type$ "proceedings" = % BS 1629. + 'editor.key.label + 'author.key.label + if$ + } + if$ + duplicate$ + year empty$ + { + "\protect\citename{" swap$ * ", }" * + "n.d." * 'label := % Chicago, + } % page 457. + { + "\protect\citename{" swap$ * ", }" * + year + * + 'label := + } + if$ + year field.or.null purify$ * + sortify 'sort.label := +} + + +FUNCTION {sort.format.names} % To produce the +{ 's := % order of entries + #1 'nameptr := % specified in item + "" % (3) on page 187 + s num.names$ 'numnames := % of Butcher. + numnames 'namesleft := + { namesleft #0 > nameptr #3 < and } % Only 1st 2 names + { nameptr #1 > % matter for + { " " * } % sorting. + 'skip$ + if$ % Anything that's + nameptr #2 = numnames #2 > and % "et al" goes + { "zzzzz" * } % after works by 2 + { % authors. + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "zzzzz" * } + { t sortify * } + if$ + } + 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} % Two sorting +{ calc.label % passes, from + label sortify % apalike.bst. + " " + * + type$ "book" = + type$ "inbook" = + type$ "incollection" = % For Singer + or or % in BS 1629. + '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 } + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +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$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ % Code needed here + % if \citeauthor + % and \citeyear + label extra.label * 'label := % were supported. + extra.label 'next.extra := +} + +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}{}" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/bbs.bst b/Master/texmf-dist/bibtex/bst/beebe/bbs.bst new file mode 100644 index 00000000000..ff4df8fdafc --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/bbs.bst @@ -0,0 +1,1162 @@ +%%% ==================================================================== +%%% @BibTeX-style-file{ +%%% author = "Alan Rogers", +%%% version = "1.1", +%%% date = "Feb 15, 1991", +%%% filename = "bbs.bst", +%%% address = "Dept of Anthropology, University of Utah, +%%% Salt Lake City, UT 84112", +%%% checksum = "63919 1162 3279 24277", +%%% email = "rogers@anthro.utah.edu", +%%% supported = "no", +%%% docstring = "The file produces bibliographies more or +%%% less in the format of Behavioral and Brain +%%% Sciences. It was adapted from apalike.bst, +%%% incorporating features of Sake J. +%%% Hogeveen's `astron.bst'. +%%% +%%% Usage: \documentstyle[astron]{...} +%%% ... +%%% \bibliographystyle{bbs} +%%% ... +%%% +%%% The \documentstyle command above invokes +%%% Hogeveen's `astron.sty', which must be in +%%% TeX's search path. +%%% +%%% The modifications implement `\cite*{}', +%%% which generates references in short form. +%%% For example, `Rogers \cite*{...}' would +%%% produce `Rogers (1992)'." +%%% } +%%% ==================================================================== +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% BibTeX `apalike' bibliography style (24-Jan-88 version) +% Adapted from the `alpha' style, version 0.99a; for BibTeX version 0.99a. +% Copyright (C) 1988, all rights reserved. +% Copying of this file is allowed, provided that if you make any changes at all +% you name it something other than `apalike.bst'. +% This restriction helps ensure that all copies are identical. +% Differences between this style and `alpha' are generally heralded by a `%'. +% The file btxbst.doc has the documentation for alpha.bst. +% +% This style should be used with the `apalike' LaTeX style (apalike.sty). +% \cite's come out like "(Jones, 1986)" in the text but there are no labels +% in the bibliography, and something like "(1986)" comes out immediately +% after the author. Author (and editor) names appear as last name, comma, +% initials. A `year' field is required for every entry, and so is either +% an author (or in some cases, an editor) field or a key field. +% +% Editorial note: +% Many journals require a style like `apalike', but I strongly, strongly, +% strongly recommend that you not use it if you have a choice---use something +% like `plain' instead. Mary-Claire van Leunen (A Handbook for Scholars, +% Knopf, 1979) argues convincingly that a style like `plain' encourages better +% writing than one like `apalike'. Furthermore the strongest arguments for +% using an author-date style like `apalike'---that it's "the most practical" +% (The Chicago Manual of Style, University of Chicago Press, thirteenth +% edition, 1982, pages 400--401)---fall flat on their face with the new +% computer-typesetting technology. For instance page 401 anachronistically +% states "The chief disadvantage of [a style like `plain'] is that additions +% or deletions cannot be made after the manuscript is typed without changing +% numbers in both text references and list." LaTeX sidesteps the disadvantage. +% +% History: +% 15-sep-86 (SK,OP) Original version, by Susan King and Oren Patashnik. +% 10-nov-86 (OP) Truncated the sort.key$ string to the correct length +% in bib.sort.order to eliminate error message. +% 24-jan-88 (OP) Updated for BibTeX version 0.99a, from alpha.bst 0.99a; +% apalike now sorts by author, then year, then title; +% THIS `apalike' VERSION DOES NOT WORK WITH BIBTEX 0.98i. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key +% month not used in apalike + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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$ +} + +% apalike needs this function because +% the year has special punctuation; +% apalike ignores the month +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ + " (" year * extra.label * ")" * + mid.sentence 'output.state := + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +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$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " \& " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.ed.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f. }{vv~}{ll}{, jj}" format.name$ 't := % last name first + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " \& " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.key} % this function is just for apalike +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { output.state mid.sentence = + {"ed. " editor format.ed.names * } + { editor format.ed.names ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { "(" edition "l" change.case$ * " ed.)" * } + { "(" edition "t" change.case$ * " ed.)" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In: " booktitle emphasize * } + { "In: " booktitle emphasize * ", " * format.editors * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * % this is for apalike +} + +FUNCTION {format.incoll.inproc.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + format.edition output + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check +% address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + howpublished output + address output + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + format.edition output + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check +% address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.edition output + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check +% address output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output +% address output % for apalike + new.sentence % there's no year + organization output % here so things + publisher output % are simpler + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + format.edition output + organization address new.block.checkb + organization output +% address output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check +% address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check +% address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output +% address output % for apalike + new.sentence % we always output + organization output % a nonempty organization + publisher output % here + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check +% address output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +% There are three apalike cases: one person (Jones), +% two (Jones and de~Bruijn), and more (Jones et~al.). +% This function is much like format.crossref.editors. +% +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole 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 % apalike uses the whole key, no organization + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} % this function came from ASTRON.BST (ARR) +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label % apalike ignores organization + 'author.key.label % for labeling and sorting + if$ + } + if$ + "\protect\astroncite{" swap$ * "}{" % these three lines are + * % for apalike, which + year field.or.null purify$ #-1 #4 substring$ % uses all four digits + * % the mathing closing "}" comes in at the reverse.pass + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ % apalike uses initials + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := % <= here + nameptr numnames = t "others" = and + { "et al" * } + { 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$ +} + +% apalike uses two sorting passes; the first one sets the +% labels so that the `a's, `b's, etc. can be computed; +% the second pass puts the references in "correct" order. +% The presort function is for the first pass. It computes +% label, sort.label, and title, and then concatenates. +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$ % for + 'sort.label := % apalike + sort.label % style + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT % by label, sort.label, title---for final label calculation + +STRINGS { last.label next.extra } % apalike labels are only for the text; + +INTEGERS { last.extra.num } % there are none in the bibliography + +FUNCTION {initialize.extra.label.stuff} % and hence there is no `longest.label' +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +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$ +} + +FUNCTION {reverse.pass} % this function came from ASTRON.BST (ARR) +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * "}" * 'label := + extra.label 'next.extra := +} + +EXECUTE {initialize.extra.label.stuff} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +% Now that the label is right we sort for real, +% on sort.label then year then title. This is +% for the second sorting 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 % by sort.label, year, title---giving final bibliography order + +FUNCTION {begin.bib} +{ preamble$ empty$ % no \etalchar in apalike + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ % no labels in apalike +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/bibtoref.bst b/Master/texmf-dist/bibtex/bst/beebe/bibtoref.bst new file mode 100644 index 00000000000..e33cf5e0418 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/bibtoref.bst @@ -0,0 +1,201 @@ +%%% ==================================================================== +%%% @BibTeX-style-file{ +%%% author = "Ciaran McHale", +%%% version = "1.00", +%%% date = "21 July 1992", +%%% time = "12:34:24 MDT", +%%% filename = "bibtoref.bst", +%%% address = "Department of Computer Science, +%%% Trinity College, +%%% Dublin 2, +%%% Ireland", +%%% telephone = "+353-1-772941 ext 1538", +%%% FAX = "+353-1-772204", +%%% telex = "93782 TCD EI", +%%% checksum = "04276 201 698 5689", +%%% email = "cjmchale@cs.tcd.ie or +%%% cjmchale%cs.tcd.ie@cunyvm.cuny.edu" +%%% codetable = "ISO/ASCII", +%%% keywords = "", +%%% supported = "no", +%%% docstring = "This BibTeX style file translates selected +%%% BibTeX bibliographies entries into UNIX +%%% refer format. It is based on a bib style +%%% file by Kannan Varadhan. +%%% +%%% To use it, create a temporary LaTeX file +%%% that contains the \cite{...} entries you +%%% want to convert, or else use \nocite{*} to +%%% convert all of them. Such a file might +%%% look like this: +%%% +%%% \documentstyle{article} +%%% \begin{document} +%%% \bibliographystyle{bibtoref} +%%% \nocite{*} % or \cite{...,...,...} +%%% \bibliography{BIBFILENAME} +%%% \end{document} +%%% +%%% Run latex then bibtex on the sample file; +%%% the UNIX refer bibliography will appear in +%%% the corresponding .bbl file. +%%% +%%% The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== + +ENTRY + { % entry fields + abstract % non standard + address + annote % non standard + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + keywords % non standard + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} % no integer entry variables + { label extra.label sort.label } % label entry variables + + +STRINGS { s t a.name } + + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {handle.names} +{ 't := % type e.g. "A" for authors, "E" for editors + 's := % the string containing the names + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 'a.name := + + a.name "others" = + 'skip$ % don't print out "%A others" + { "%" t * " " * a.name * write$ newline$ } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {handle.maybe.empty} +{ + 't := + duplicate$ + empty$ + 'pop$ + { "%" t * " " * swap$ * write$ newline$ } + if$ +} + +FUNCTION {translate} +{ + newline$ % get a blank line between each entry + + title "T" handle.maybe.empty + booktitle "B" handle.maybe.empty + + % there may be multiple authors so handle it differently + author empty$ + { " empty author in " cite$ * warning$ } + { author "A" handle.names } + if$ + editor "E" handle.maybe.empty + journal "J" handle.maybe.empty + keywords "K" handle.maybe.empty + cite$ "L" handle.maybe.empty + volume "V" handle.maybe.empty + abstract "X" handle.maybe.empty + + % The date, if present may be just the year or both the month and year + % or might even be just the month + month empty$ year empty$ and + 'skip$ % no date of publication so nothing to do + { + month empty$ % I'm using the if statement because I'm not + { "" } % sure that--- month " " year * --- would work. + { month " " * } % (The manual doesn't mention anything about + if$ % this so I'm playing safe) + year empty$ + { "" } + { year } + if$ + * + "D" handle.maybe.empty + } + if$ + pages "P" handle.maybe.empty + note "O" handle.maybe.empty + number "N" handle.maybe.empty + series "S" handle.maybe.empty + annote "Y" handle.maybe.empty + address "C" handle.maybe.empty + +} + + +FUNCTION {article} { translate } +FUNCTION {book} { translate } +FUNCTION {booklet} { translate } +FUNCTION {inbook} { translate } +FUNCTION {incollection} { translate } +FUNCTION {inproceedings} { translate } +FUNCTION {manual} { translate } +FUNCTION {mastersthesis} { translate } +FUNCTION {misc} { translate } +FUNCTION {phdthesis} { translate } +FUNCTION {proceedings} { translate } +FUNCTION {techreport} { translate } +FUNCTION {unpublished} { translate } +FUNCTION {default.type} { translate } + + +READ + +ITERATE {call.type$} diff --git a/Master/texmf-dist/bibtex/bst/beebe/cbe.bst b/Master/texmf-dist/bibtex/bst/beebe/cbe.bst new file mode 100644 index 00000000000..85c176fa861 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/cbe.bst @@ -0,0 +1,1161 @@ +%%% ==================================================================== +%%% @BibTeX-style-file{ +%%% author = "Alan Rogers", +%%% version = "1.1", +%%% date = "1990", +%%% filename = "cbe.bst", +%%% address = "Dept of Anthropology, University of Utah, +%%% Salt Lake City, UT 84112", +%%% checksum = "13520 1161 3284 24308", +%%% email = "rogers@anthro.utah.edu", +%%% supported = "no", +%%% docstring = "The file produces bibliographies more or +%%% less in the Council of Biology Editors +%%% format, which is used by Evolution, +%%% American Naturalist, & lots of other +%%% journals. It was adapted from apalike.bst, +%%% incorporating features of Sake J. +%%% Hogeveen's `astron.bst'. +%%% +%%% Usage: \documentstyle[astron]{...} +%%% ... +%%% \bibliographystyle{cbe} +%%% ... +%%% +%%% The \documentstyle command above invokes +%%% Hogeveen's `astron.sty', which must be in +%%% TeX's search path. +%%% +%%% The modifications implement `\cite*{}', +%%% which generates references in short form. +%%% For example, `Rogers \cite*{...}' would +%%% produce `Rogers (1992)'." +%%% } +%%% ==================================================================== +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% BibTeX `apalike' bibliography style (24-Jan-88 version) +% Adapted from the `alpha' style, version 0.99a; for BibTeX version 0.99a. +% Copyright (C) 1988, all rights reserved. +% Copying of this file is allowed, provided that if you make any changes at all +% you name it something other than `apalike.bst'. +% This restriction helps ensure that all copies are identical. +% Differences between this style and `alpha' are generally heralded by a `%'. +% The file btxbst.doc has the documentation for alpha.bst. +% +% This style should be used with the `apalike' LaTeX style (apalike.sty). +% \cite's come out like "(Jones, 1986)" in the text but there are no labels +% in the bibliography, and something like "(1986)" comes out immediately +% after the author. Author (and editor) names appear as last name, comma, +% initials. A `year' field is required for every entry, and so is either +% an author (or in some cases, an editor) field or a key field. +% +% Editorial note: +% Many journals require a style like `apalike', but I strongly, strongly, +% strongly recommend that you not use it if you have a choice---use something +% like `plain' instead. Mary-Claire van Leunen (A Handbook for Scholars, +% Knopf, 1979) argues convincingly that a style like `plain' encourages better +% writing than one like `apalike'. Furthermore the strongest arguments for +% using an author-date style like `apalike'---that it's "the most practical" +% (The Chicago Manual of Style, University of Chicago Press, thirteenth +% edition, 1982, pages 400--401)---fall flat on their face with the new +% computer-typesetting technology. For instance page 401 anachronistically +% states "The chief disadvantage of [a style like `plain'] is that additions +% or deletions cannot be made after the manuscript is typed without changing +% numbers in both text references and list." LaTeX sidesteps the disadvantage. +% +% History: +% 15-sep-86 (SK,OP) Original version, by Susan King and Oren Patashnik. +% 10-nov-86 (OP) Truncated the sort.key$ string to the correct length +% in bib.sort.order to eliminate error message. +% 24-jan-88 (OP) Updated for BibTeX version 0.99a, from alpha.bst 0.99a; +% apalike now sorts by author, then year, then title; +% THIS `apalike' VERSION DOES NOT WORK WITH BIBTEX 0.98i. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key +% month not used in apalike + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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$ +} + +% apalike needs this function because +% the year has special punctuation; +% apalike ignores the month +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ + " " year * extra.label * + mid.sentence 'output.state := + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +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$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {smallcaps} +{ duplicate$ empty$ + { pop$ "" } + { "{\sc " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.editor.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f. }{vv~}{ll}{, jj}" format.name$ 't := % last name first + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names smallcaps } + if$ +} + +FUNCTION {format.key} % this function is just for apalike +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.editor.names + editor num.names$ #1 > + { " (eds.)" * } + { " (ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title %emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pp." pages n.dashify tie.or.space.connect } + { "p." pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + { "" } + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ +% { "{\em In} " booktitle emphasize * } +% { "{\em In} " format.editors * ", " * booktitle emphasize * } + { "{\em In} " booktitle * } + { "{\em In} " format.editors * ", " * booktitle * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * % this is for apalike +} + +FUNCTION {format.incoll.inproc.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize " " * format.vol.num.pages * output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + howpublished output + address output + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + format.pages output + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address output % for apalike + new.sentence % there's no year + organization output % here so things + publisher output % are simpler + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output % for apalike + new.sentence % we always output + organization output % a nonempty organization + publisher output % here + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +% There are three apalike cases: one person (Jones), +% two (Jones and de~Bruijn), and more (Jones et~al.). +% This function is much like format.crossref.editors. +% +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole 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 % apalike uses the whole key, no organization + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} % this function came from ASTRON.BST (ARR) +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label % apalike ignores organization + 'author.key.label % for labeling and sorting + if$ + } + if$ + "\protect\astroncite{" swap$ * "}{" % these three lines are + * % for apalike, which + year field.or.null purify$ #-1 #4 substring$ % uses all four digits + * % the mathing closing "}" comes in at the reverse.pass + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ % apalike uses initials + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := % <= here + nameptr numnames = t "others" = and + { "et al" * } + { 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$ +} + +% apalike uses two sorting passes; the first one sets the +% labels so that the `a's, `b's, etc. can be computed; +% the second pass puts the references in "correct" order. +% The presort function is for the first pass. It computes +% label, sort.label, and title, and then concatenates. +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$ % for + 'sort.label := % apalike + sort.label % style + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT % by label, sort.label, title---for final label calculation + +STRINGS { last.label next.extra } % apalike labels are only for the text; + +INTEGERS { last.extra.num } % there are none in the bibliography + +FUNCTION {initialize.extra.label.stuff} % and hence there is no `longest.label' +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +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$ +} + +FUNCTION {reverse.pass} % this function came from ASTRON.BST (ARR) +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * "}" * 'label := + extra.label 'next.extra := +} + +EXECUTE {initialize.extra.label.stuff} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +% Now that the label is right we sort for real, +% on sort.label then year then title. This is +% for the second sorting 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 % by sort.label, year, title---giving final bibliography order + +FUNCTION {begin.bib} +{ preamble$ empty$ % no \etalchar in apalike + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ % no labels in apalike +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/cell.bst b/Master/texmf-dist/bibtex/bst/beebe/cell.bst new file mode 100644 index 00000000000..4d831b7a619 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/cell.bst @@ -0,0 +1,1442 @@ +% BibTex `cell' bibliography style +% version = 1.25 of cell.bst 1994 October 15 +% from version = 1.27 of jmb.bst 1992 October 22 + +% conversion from JMB to Cell by: +% changing emphasis to roman (\em to \rm) +% bold face to roman (\bf to \rm) (on volume) +% making the volume be italics +% removing the comma after the journal name +% +% Thomas Schneider +% National Cancer Institute +% Laboratory of Mathematical Biology +% Frederick, Maryland 21702-1013 +% toms@ncifcrf.gov +% +% This file is available by anonymous ftp from ncifcrf.gov in pub/delila. +% +% TITLES can be turned on and off! +% Just nocite the reference TitlesOn in the paper (i.e. \nocite{TitlesOn}) +% and have a bibliography article in your database with that cite key! +% +% WARNING: Since I use mostly article, book and inproceedings, these +% are formatted pretty closely to the Journal of Theoretical Biology style +% while other things are neglected. Also, I can't guarantee that the style +% is exactly right. +% +% The following documentation is identical from the source of jmb.bst, +% which was the apalike.bst taken from the Clarkson archive on 1989 June 19. +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% BibTeX `apalike' bibliography style (24-Jan-88 version) +% Adapted from the `alpha' style, version 0.99a; for BibTeX version 0.99a. +% Copyright (C) 1988, all rights reserved. +% Copying of this file is allowed, provided that if you make any changes at all +% you name it something other than `apalike.bst'. +% This restriction helps ensure that all copies are identical. +% Differences between this style and `alpha' are generally heralded by a `%'. +% The file btxbst.doc has the documentation for alpha.bst. +% +% This style should be used with the `apalike' LaTeX style (apalike.sty). +% \cite's come out like "(Jones, 1986)" in the text but there are no labels +% in the bibliography, and something like "(1986)" comes out immediately +% after the author. Author (and editor) names appear as last name, comma, +% initials. A `year' field is required for every entry, and so is either +% an author (or in some cases, an editor) field or a key field. +% +% Editorial note: +% Many journals require a style like `apalike', but I strongly, strongly, +% strongly recommend that you not use it if you have a choice---use something +% like `plain' instead. Mary-Claire van Leunen (A Handbook for Scholars, +% Knopf, 1979) argues convincingly that a style like `plain' encourages better +% writing than one like `apalike'. Furthermore the strongest arguments for +% using an author-date style like `apalike'---that it's "the most practical" +% (The Chicago Manual of Style, University of Chicago Press, thirteenth +% edition, 1982, pages 400--401)---fall flat on their face with the new +% computer-typesetting technology. For instance page 401 anachronistically +% states "The chief disadvantage of [a style like `plain'] is that additions +% or deletions cannot be made after the manuscript is typed without changing +% numbers in both text references and list." LaTeX sidesteps the disadvantage. +% +% History: +% 15-sep-86 (SK,OP) Original version, by Susan King and Oren Patashnik. +% 10-nov-86 (OP) Truncated the sort.key$ string to the correct length +% in bib.sort.order to eliminate error message. +% 24-jan-88 (OP) Updated for BibTeX version 0.99a, from alpha.bst 0.99a; +% apalike now sorts by author, then year, then title; +% THIS `apalike' VERSION DOES NOT WORK WITH BIBTEX 0.98i. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% The program was further modified by Tom Schneider: +% +% 1989 June 19 (TDS) Renamed jmb.bst. Items that do not have years were +% listed in the bibliography without identifiers. However, they +% have identifiers in the text. The identifier was added. +% Titles were removed :-(. +% +% 1989 October 2 (TDS) Made labels in the paper use the & symbol rather +% than `and', as required by JMB. +% 1989 October 3 (TDS) Made et~al. be in italics. +% Removed comma after journal name. (actually, all +% mid sentence commas go!) +% Made volume number be bold faced. +% Converted colon (:) after volume number to a comma (,). +% If a journal name does NOT end in a period, add +% a comma after the name. +% 1989 October 14 (TDS) Without a year the program used to sort on the +% title. I made it sort on the cite$ if there is no year. +% 1989 October 18 (TDS) If there is one reference without a year, put +% an "a" at the end of its label, so that it comes out +% as (Smith, a) in the text. in FUNCTION {forward.pass} +% 1989 November 2 (TDS) Unpublished papers now give the title. +% 1989 November 18 (TDS) TITLES can be turned on and off! +% Just nocite the reference TitlesOn in the paper +% and have a bibliography article in your database +% with that cite key! +% 1989 December 5 (TDS) I can't stand sorting to fall back on the +% titles of the article - no control! So in function +% bib.sort.order the default is now cite$. +% 1990 November 14 (TDS) Changes to match JTB better: +% Names in the bibliography are now connected +% with "\&" instead of "and", since this fits JTB better. +% "In" is now "In:". +% "editors" and "editor" are now "eds" and "ed". +% booktitle follows editors. editors in parenthesis. +% pp. and p. instead of pages and page. +% location followed by colon (:) and then publisher. +% 1992 October 22 (TDS) Publisher address is at the end of books. +% with no colon after address. +% no comma before & in name list in bibliography. +% The extra.label (as the a of 1991a) is emphasized. +% "In:" goes back to "In"! +% publisher address is at the end of inproceedings. +% volume is "vol.", with comma after number. +% ed.", and comma after ) closing editors. +% as a colon (:), JMB does NOT want the next +% ed, but the format.title function uses +% which leaves it capitalized. To fix this, a +% place change.case$ must be written. +% +% When a title has a colon (:), JMB does NOT want the next +% word capitalized, but the format.title function uses +% change.case$, which leaves it capitalized. To fix this, a +% function to replace change.case$ was written: +% special.change.case +% +% edition should follow TITLE for books! + +% possible bug: sorting order probably should be first author followed +% by year; but this is not absolutely clear. Sorting here is (I think) +% by all authors (or perhaps the key) then year. + + +ENTRY % declare variables that have a value for each entry on the list + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key +% month not used in apalike + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block + docomma givetitles } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + + #0 'docomma := % if it is 0 then don't do commas, otherwise do them. +} + +FUNCTION {init.toggle.switches} +{% set switches for controlling the output! + #0 'givetitles := % if it is 0 then don't give titles, otherwise do them. +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = +% "in of output.nonnull" warning$ + +% % { ", " * write$ } % the comma here is responsible for every comma! +% % % But JMB doesn't want commas, so away it goes! +% { " " * write$ } % That does it! + + { % doing a comma is controlled specifically in JMB using docomma + docomma #0 = + { " " * write$ } + { ", " * write$ } + if$ + } + { 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 +% "out of output.nonnull" warning$ +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := +% "in output.check" warning$ + duplicate$ empty$ + { t "title" = + { pop$ } % jmb ignores titles and does not object if missing + { pop$ "empty " t * " in " * cite$ * warning$ } + if$ + } + 'output.nonnull % block periods + % { pop$ } % don't do anything + if$ +% "ouT of output.check" warning$ +} + +% t "title" = +% { "zowie" warning$ } +% { duplicate$ empty$ +% { pop$ "EmPtY " t * " in " * cite$ * warning$ } +% 'output.nonnull +% } +% if$ +% if$ +%} + +% apalike needs this function because +% the year has special punctuation; +% apalike ignores the month +FUNCTION {output.year.check} +{ year empty$ + { + "empty year in " cite$ ", using label: " extra.label * * * warning$ + write$ +% " (" extra.label * ")" * % TDS UNemphasized label + +% zzz here is the problem: +% extra.label "BLURB" * warning$ + " ({\rm{" extra.label * "}})" * % TDS emphasized label +% "BLORB" warning$ + + { label "{\rm{" extra.label "}}" * * * 'label :=} +% "BLUBEL" warning$ + + mid.sentence 'output.state := +% "BLIP" warning$ + } + { write$ + +% " (" year * extra.label * ")" * % TDS UNemphasized label + " (" year * "{\rm{" extra.label "}}" * * * ")" * % TDS emphasized label + + mid.sentence 'output.state := + } + if$ +% "POW" warning$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +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$ "" } + { "{\rm " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > +% { "," * } % remove this comma TDS + { " " * } + 'skip$ + if$ + t "others" = + { " {\rm et~al.}" * } + { " \& " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.key} % this function is just for apalike +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", eds" * } % TDS + { ", ed." * } % TDS + if$ + } + if$ +} + +FUNCTION {special.change.case} +% change the entire string to lower case except +% for the first letter and things inside {} +% That is, force the first letter after a colon (:) to be lower case +% but otherwise use the change.case$ rules. +{ +% title "t" change.case$ % TDS this line was the original method + +% start with the first letter of the title, hang on stack +title #1 #1 substring$ + +% unearth this to see the breakpoint +%"|---|" * + +% take the title, change to entire lower case. +title "l" change.case$ + +% take from second position of lowered title to end of title +#2 +global.max$ +substring$ + +% concatenate first letter to rest of title +* +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { % decide whether to give the title or not + givetitles #1 = +% { title "t" change.case$ } % produce the title % TDS original function + { special.change.case } % produce the title + { title pop$ "" } % don't produce the title + if$ + } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } +% { "volume" volume tie.or.space.connect % TDS + { "vol." volume "," * tie.or.space.connect % made vol. + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ +% "volume and number" number either.or.check % TDS + "vol. and num." number either.or.check % made vol. + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pp." pages n.dashify tie.or.space.connect } % TDS + { "p." pages tie.or.space.connect } % TDS + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ "{\rm " volume "}" * * field.or.null % make volume bold face + +% cell does not take numbers +% number empty$ +% 'skip$ +%% { " (" number * ")" * * +% { " ({\em " number "\/}" * * ")" * * % CELL IS ITALICS +%% zzz +% volume empty$ +% { "there's a number but no volume in " cite$ * warning$ } +% 'skip$ +% if$ +% } +% if$ + + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } +% { ":" * pages n.dashify * } % no more colons after the volume + { ", " * pages n.dashify * } % comma's instead + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } % TDS + { "In " booktitle emphasize * ", " * % That's the comma after the title + "(" format.editors ")," * * * } % TDS + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "In" % this is for apalike % TDS + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " % TDS + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * % this is for apalike +} + +FUNCTION {format.incoll.inproc.crossref} +{ "In" % this is for apalike % TDS + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ + cite$ "TitlesOn" = + 'skip$ % Don't write out an article of this kind, it's a toggle switch! + { + output.bibitem + format.authors "author" output.check + author format.key output % special for +% "===> about to" warning$ + output.year.check % apalike +% "===> after it" warning$ + new.block + format.title "title" output.check + new.block + crossref missing$ + { % figure out the last character of the journal name. + % "<<" journal #-1 #1 substring$ ">>" * * % for testing + % "<" journal ">" * * % this works ok % for testing + + journal #-1 #1 substring$ "." = + { journal } % journal ended in period so don't do anything +% { journal ", " *} % journal ended without period, so add comma + { journal " " *} % journal ended without period, so add comma NONE FOR CELL + if$ + emphasize "journal" output.check + +% journal * emphasize "journal" output.check % the original method + + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry + } + if$ +} + +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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + #1 'docomma := % TURN COMMAS ON FOR JMB + crossref missing$ + { + format.bvolume output + new.block + format.number.series output + format.edition output % TDS JMB position for edition +% new.sentence +% #0 'docomma := % no comma after address +% address ":" * output % TDS + publisher "publisher" output.check % TDS +% #1 'docomma := % comma back on +% publisher "publisher" output.check +% address output + address output % TDS - no colon! + } + { new.block + format.book.crossref output.nonnull + } + if$ +% format.edition output % TDS original position of edition + new.block + note output + fin.entry + #0 'docomma := % TURN COMMAS OFF +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + howpublished output + address output + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + #0 'docomma := % no comma after address + address ":" * output % TDS + publisher "publisher" output.check % TDS + #1 'docomma := % comma back on +% publisher "publisher" output.check +% address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { +% #1 'docomma := % TURN COMMAS ON FOR JMB, BUT NOT FOR JTB: inconsistent. TDS NOW + format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages + pages empty$ + { output } + { "," * output } % TDS toss in comma instead of period + if$ + +% address output % TDS address is below for JTB +% new.sentence % TDS remove period + organization output + #0 'docomma := % NO COMMA AFTER ADDRESS + publisher "publisher" output.check % TDS + #1 'docomma := % comma back on + +% publisher output % are simpler + address output % TDS + #0 'docomma := % TURN COMMAS OFF + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + new.block + "PhD thesis," format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output % for apalike + new.sentence % we always output + organization output % a nonempty organization + publisher output % here + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for +% "===> about to unpuBLISH" warning$ + output.year.check % apalike +% "===> out of to unpuBLISH" warning$ + new.block +% "===> PLEASE PLEASE BE HERE" warning$ + +% Since format.title is out of commission, the original method won't work: +% format.title "title" output.check +% so do the equivalent of the format.title procedure: (TDS) + title empty$ + { "" } + { title "t" change.case$ } % produce the title + if$ +% "===> perfidity 1" warning$ + "title" output.check +% "===> perfidity" warning$ + + new.block + note "note" output.check + fin.entry + +% "===> GOlly done" warning$ +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +% *********************************************************** + +FUNCTION {check.for.titlecommand} +% go through each entry and see if one of them has the key +% 'TitlesOn'. If this is found, then do titles! +% 1989 November 18 TDS +{ +% "|" label "|" * * write$ newline$ % |Arrhenius {\rm et~al.}, 1986| +% "|" cite$ "|" * * write$ newline$ % |Arrhenius1986| +% so cite$ is the thing I want to detect... + + cite$ "TitlesOn" = + { % got it! +% "FOUND TitlesOn" write$ newline$ + "Titles Will Be Printed" warning$ + #1 'givetitles := % give titles! + } + 'skip$ + if$ +} +EXECUTE {init.toggle.switches} +ITERATE {check.for.titlecommand} +% *********************************************************** + +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$ +} + +% There are three apalike cases: one person (Jones), +% two (Jones and de~Bruijn), and more (Jones et~al.). +% This function is much like format.crossref.editors. +% +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " {\rm et~al.}" * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " {\rm et~al.}" * } + { " \& " * s #2 "{vv~}{ll}" format.name$ * } + % note new use of & rather than `and'. TDS + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole 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 % apalike uses the whole key, no organization + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label % apalike ignores organization + 'author.key.label % for labeling and sorting + if$ + } + if$ + ", " % these three lines are + * % for apalike, which + year field.or.null purify$ #-1 #4 substring$ % uses all four digits + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ % apalike uses initials + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := % <= here + nameptr numnames = t "others" = and + { "{\rm et al}" * } + { 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$ +} + +% apalike uses two sorting passes; the first one sets the +% labels so that the `a's, `b's, etc. can be computed; +% the second pass puts the references in "correct" order. +% The presort function is for the first pass. It computes +% label, sort.label, and title, and then concatenates. +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$ % for + 'sort.label := % apalike + sort.label % style + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT % by label, sort.label, title---for final label calculation + +STRINGS { last.label next.extra } % apalike labels are only for the text; + +INTEGERS { last.extra.num } % there are none in the bibliography + +FUNCTION {initialize.extra.label.stuff} % and hence there is no `longest.label' +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +% pass through the references forward +{ +%"\\ label=" label "//" * * write$ newline$ % display the label +%"\\last.label=" last.label "//" * * write$ newline$ % display the label + + last.label label = % if the label repeats the previous label... + { % then increment the extra number + last.extra.num #1 + 'last.extra.num := + % and convert it to a label + last.extra.num int.to.chr$ 'extra.label := + } + { % else set things up for the next entry + "a" chr.to.int$ 'last.extra.num := + + % However, if the year was missing, tack on an extra "a". TDS + year empty$ + {"a" 'extra.label :=} + {"" 'extra.label :=} + if$ + +% "" 'extra.label := % the original method was not to do anything TDS + + label 'last.label := % capture this label for next time + } + if$ +%"\\extra.label = " extra.label "//" * * write$ newline$ % display the label +} + +FUNCTION {reverse.pass} +% pass through the references backwards +% add extra characters to the end of the label string +{ +%"{{" label "}}" * * write$ newline$ % display the label + next.extra "b" = +% original logic: + { "a" 'extra.label := } + 'skip$ + if$ + +% next.extra "b" = { "next.extra was = b" write$ newline$} 'skip$ if$ + +% new as of 1989 Oct 18 +% { "a" 'extra.label := } +% { % Put on an "a" at the end of the label if the year is missing. TDS +% year empty$ +% { "a" 'extra.label := } +% %{ label "a" * 'label := } +% 'skip$ % otherwise leave it alone (orignial method) +% if$ } +% if$ + +% label extra.label * 'label := % TDS ORIGINAL LABEL METHOD + +% stick {\rm } around extra.label if it's not empty TDS + extra.label "" = + 'skip$ + { label "{\rm{" extra.label "}}" * * * 'label :=} + if$ + + extra.label 'next.extra := +%"{{" label "}}" * * write$ newline$ % display the label +} + +FUNCTION {bib.sort.order} +% Generate the sort.key$ variables for sorting. +% The sorting is first on the sort.label (ie, author's name), followed +% by the year then the title. If there is no year, the cite$ is used. +{ + sort.label % this is based on the author name + " " * % tack on some space +% original apa command was to use the year or an empty string: +% year field.or.null sortify +% +% Replace that with the use of the cite$, when there is no year: + year duplicate$ empty$ + {pop$ cite$} + 'skip$ + if$ + + * " " * % tack on some space + +% I CAN'T STAND SORTING ON TITLE!!! TDS 1989 Dec 5 +% title field.or.null +% sort.format.title +% * % attach them together + cite$ + * % use cite$ instead!! + + % note: if there is no year, then the cite$ will override the sorting + % on the title. Oh well. Title sorting is sorta (ha ha) awful. + + #1 entry.max$ substring$ + 'sort.key$ := + + % The following line helps debug the program. It shows what the sort.key$ is. + % "%" sort.key$ * write$ newline$ +} + +% Here is the place that the actual executions of the labeling and sorting +% functions are done. + + +EXECUTE {initialize.extra.label.stuff} % initialize variables +ITERATE {bib.sort.order} % set up the sorting keys +SORT % by sort.label, year, title---giving final bibliography order +% Having sorted NOW we apply the extra letters at the end! +ITERATE {forward.pass} +REVERSE {reverse.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ % no \etalchar in apalike + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ % no labels in apalike +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/chicago.bst b/Master/texmf-dist/bibtex/bst/beebe/chicago.bst new file mode 100644 index 00000000000..511f3aa5fa1 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/chicago.bst @@ -0,0 +1,1654 @@ +%%% ==================================================================== +%%% @BibTeX-style-file{ +%%% author = "Glenn Paulley", +%%% version = "4", +%%% date = "28 August 1992", +%%% time = "10:23:39 199", +%%% filename = "chicago.bst", +%%% address = "Data Structuring Group +%%% Department of Computer Science +%%% University of Waterloo +%%% Waterloo, Ontario, Canada +%%% N2L 3G1", +%%% telephone = "(519) 885-1211", +%%% FAX = "(519) 885-1208", +%%% checksum = "26323 1654 5143 37417", +%%% email = "gnpaulle@bluebox.uwaterloo.ca", +%%% codetable = "ISO/ASCII", +%%% keywords = "", +%%% supported = "yes", +%%% abstract = "A BibTeX bibliography style that follows the +%%% `B' reference style of the 13th Edition of +%%% the Chicago Manual of Style. A detailed +%%% feature list is given below.", +%%% docstring = "The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== +% +% "Chicago" BibTeX style, chicago.bst +% =================================== +% +% BibTeX `chicago' style file for BibTeX version 0.99c, LaTeX version 2.09 +% Place it in a file called chicago.bst in the BibTeX search path. +% You need to include chicago.sty as a \documentstyle option. +% (Placing it in the same directory as the LaTeX document should also work.) +% This "chicago" style is based on newapa.bst (American Psych. Assoc.) +% found at ymir.claremont.edu. +% +% Citation format: (author-last-name year) +% (author-last-name and author-last-name year) +% (author-last-name, author-last-name, and author-last-name year) +% (author-last-name et al. year) +% (author-last-name) +% author-last-name (year) +% (author-last-name and author-last-name) +% (author-last-name et al.) +% (year) or (year,year) +% year or year,year +% +% Reference list ordering: alphabetical by author or whatever passes +% for author in the absence of one. +% +% This BibTeX style has support for abbreviated author lists and for +% year-only citations. This is done by having the citations +% actually look like +% +% \citeauthoryear{full-author-info}{abbrev-author-info}{year} +% +% The LaTeX style has to have the following (or similar) +% +% \let\@internalcite\cite +% \def\fullcite{\def\citeauthoryear##1##2##3{##1, ##3}\@internalcite} +% \def\fullciteA{\def\citeauthoryear##1##2##3{##1}\@internalcite} +% \def\shortcite{\def\citeauthoryear##1##2##3{##2, ##3}\@internalcite} +% \def\shortciteA{\def\citeauthoryear##1##2##3{##2}\@internalcite} +% \def\citeyear{\def\citeauthoryear##1##2##3{##3}\@internalcite} +% +% These TeX macro definitions are found in chicago.sty. Additional +% commands to manipulate different components of a citation can be defined +% so that, for example, you can list author's names without parentheses +% if using a citation as a noun or object in a sentence. +% +% This file was originally copied from newapa.bst at ymir.claremont.edu. +% +% Features of chicago.bst: +% ======================= +% +% - full names used in citations, but abbreviated citations are available +% (see above) +% - if an entry has a "month", then the month and year are also printed +% as part of that bibitem. +% - all conjunctions use "and" instead of "\&" +% - major modification from Chicago Manual of Style (13th ed.) is that +% only the first author in a reference appears last name first- +% additional authors appear as J. Q. Public. +% - pages are listed as "pp. xx-xx" in all entry types except +% article entries. +% - book, inbook, and manual use "location: publisher" (or organization) +% for address and publisher. All other types list publishers separately. +% - "pp." are used to identify page numbers for all entry types except +% articles. +% - organization is used as a citation label if neither author nor editor +% is present (for manuals). +% - "et al." is used for long author and editor lists, or when "others" +% is used. +% +% Modifications and bug fixes from newapa.bst: +% =========================================== +% +% - added month, year to bib entries if month is present +% - fixed bug with In proceedings, added necessary comma after title +% - all conjunctions changed to "and" from "\&" +% - fixed bug with author labels in my.full.label: "et al." now is +% generated when "others" is an author name +% - major modification from Chicago Manual of Style (13th ed.) is that +% only the first author in a reference appears last name first- +% additional authors appear as J. Q. Public. +% - pages are listed as "pp. xx-xx" in all entry types except +% article entries. Unnecessary (IMHO) "()" around page numbers +% were removed, and page numbers now don't end with a period. +% - created chicago.sty for use with this bibstyle (required). +% - fixed bugs in FUNCTION {format.vol.num.pages} for missing volume, +% number, and /or pages. Renamed to format.jour.vol. +% - fixed bug in formatting booktitles: additional period an error if +% book has a volume. +% - fixed bug: editors usually given redundant period before next clause +% (format.editors.dot) removed. +% - added label support for organizations, if both author and editor +% are missing (from alpha.bst). If organization is too long, then +% the key field is used for abbreviated citations. +% - In proceedings or books of several volumes, no comma was written +% between the "Volume x" and the page numbers (this was intentional +% in newapa.bst). Fixed. +% - Some journals may not have volumes/numbers, only month/year (eg. +% IEEE Computer). Fixed bug in article style that assumed volume/number +% was always present. +% +% Original documentation for newapa.sty: +% ===================================== +% +% This version was made by modifying the master file made by +% Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU), and the 'named' BibTeX +% style of Peter F. Patel-Schneider. +% +% Copyright (C) 1985, all rights reserved. +% Copying of this file is authorized only if either +% (1) you make absolutely no changes to your copy, including name, or +% (2) if you do make changes, you name it something other than 'newapa.bst'. +% There are undoubtably bugs in this style. If you make bug fixes, +% improvements, etc. please let me know. My e-mail address is: +% spencer@cgrg.ohio.state.edu or 71160.3141@compuserve.com +% +% This style was made from 'plain.bst', 'named.bst', and 'apalike.bst', +% with lots of tweaking to make it look like APA style, along with tips +% from Young Ryu and Brian Reiser's modifications of 'apalike.bst'. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label.year extra.label sort.year sort.label } + +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 u } + +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 +} + +% Use a colon to separate output. Used only for address/publisher +% combination in book/inbook types, address/institution for manuals, +% and organization:publisher for proceedings (inproceedings). +% +FUNCTION {output.nonnull.colon} +{ '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.colon} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull.colon + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.check.colon} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull.colon + if$ +} + +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ + " (" year * extra.label * + month empty$ + { ")" * } + { ", " * month * ")" * } + if$ + mid.sentence 'output.state := + } + 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +% +% Emphasize the top string on the stack. +% +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +% +% Emphasize the top string on the stack, but add a trailing space. +% +FUNCTION {emphasize.space} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "\/}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } +% +% Format bibliographical entries with the first author last name first, +% and subsequent authors with initials followed by last name. +% All names are formatted in this routine. +% +FUNCTION {format.names} +{ 's := + #1 'nameptr := % nameptr = 1; + s num.names$ 'numnames := % numnames = num.name$(s); + numnames 'namesleft := + { namesleft #0 > } + + { nameptr #1 = + {s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := } + {s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } + if$ + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } % from Chicago Manual of Style + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := % nameptr += 1; + namesleft #1 - 'namesleft := % namesleft =- 1; + } + while$ +} + +FUNCTION {my.full.label} +{ 's := + #1 'nameptr := % nameptr = 1; + s num.names$ 'numnames := % numnames = num.name$(s); + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{vv~}{ll}" format.name$ 't := % get the next name + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } % from Chicago Manual of Style + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := % nameptr += 1; + namesleft #1 - 'namesleft := % namesleft =- 1; + } + while$ + +} + +FUNCTION {format.names.fml} +% +% Format names in "familiar" format, with first initial followed by +% last name. Like format.names, ALL names are formatted. +% +{ 's := + #1 'nameptr := % nameptr = 1; + s num.names$ 'numnames := % numnames = num.name$(s); + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } +% { " \& " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := % nameptr += 1; + namesleft #1 - 'namesleft := % namesleft =- 1; + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +% +% Format editor names for use in the "in" types: inbook, incollection, +% inproceedings: first initial, then last names. When editors are the +% LABEL for an entry, then format.editor is used which lists editors +% by last name first. +% +FUNCTION {format.editors.fml} +{ editor empty$ + { "" } + { editor format.names.fml + editor num.names$ #1 > + { " (Eds.)" * } + { " (Ed.)" * } + if$ + } + if$ +} + +% +% Format editor names for use in labels, last names first. +% +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { " (Eds.)" * } + { " (Ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +% Note that the APA style requres case changes +% in article titles. The following does not +% change cases. If you perfer it, uncomment the +% following and comment out the above. + +%FUNCTION {format.title} +%{ title empty$ +% { "" } +% { title } +% if$ +%} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ edition empty$ + { title emphasize } + { title empty$ + { title emphasize } + { volume empty$ % gnp - check for volume, then don't need period + { "{\em " title * "\/} (" * edition * " ed.)" * "." * } + { "{\em " title * "\/} (" * edition * " ed.)" * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.emphasize.booktitle} +{ edition empty$ + { booktitle emphasize } + { booktitle empty$ + { booktitle emphasize } + { volume empty$ % gnp - extra period an error if book has a volume + { "{\em " booktitle * "\/} (" * edition * " ed.)" * "." *} + { "{\em " booktitle * "\/} (" * edition * " ed.)" * } + if$ + } + if$ + } + if$ + } + + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Volume" volume tie.or.space.connect % gnp - changed to mixed case + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "Number" } % gnp - changed to mixed case always + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + 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 empty$ + { "" } + { pages multi.page.check + { "pp.\ " pages n.dashify tie.or.space.connect } % gnp - removed () + { "pp.\ " pages tie.or.space.connect } + if$ + } + if$ +} + +% By Young (and Spencer) +% GNP - fixed bugs with missing volume, number, and/or pages +% +% Format journal, volume, number, pages for article types. +% +FUNCTION {format.jour.vol} +{ journal empty$ + { "no journal in " cite$ * warning$ + "" } + { journal emphasize.space } + if$ + number empty$ + { volume empty$ + { "no number and no volume in " cite$ * warning$ + "" * } + { "~{\em " * Volume * "}" * } + if$ + } + { volume empty$ + {"no volume for " cite$ * warning$ + "~(" * number * ")" * } + { "~" * + volume emphasize.space + "(" * number * ")" * * } + if$ + } + if$ + pages empty$ + {"page numbers missing in " cite$ * warning$ + "" * } % gnp - place a null string on the stack for output + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } % gnp - removed pp. for articles + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "Chapter" } % gnp - changed to mixed case + { type "t" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + {"page numbers missing in " cite$ * warning$} % gnp - added check + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " format.emphasize.booktitle * } + { "In " format.editors.fml * ", " * format.emphasize.booktitle * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "See" + "\citeN{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect % gnp - changed to mixed case + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \citeN{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ "See" + " \citeN{" * crossref * "}" * +} + +% format.lab.names: +% +% determines "short" names for the abbreviated author information. +% "Long" labels are created in calc.label, using the routine my.full.label +% to format author and editor fields. +% +% There are 4 cases for labels. (n=3 in the example) +% a) one author Foo +% b) one to n Foo, Bar and Baz +% c) use of "and others" Foo, Bar et al. +% d) more than n Foo et al. +% +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #2 > % change number to number of others allowed before + % forcing "et al". + { s #1 "{vv~}{ll}" format.name$ " et~al." * } + { + numnames #1 - 'namesleft := + #2 'nameptr := + s #1 "{vv~}{ll}" format.name$ + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * s nameptr "{vv~}{ll}" format.name$ * } + if$ + } + { ", " * s nameptr "{vv~}{ll}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { "no key, author in " cite$ * warning$ + cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { "no key, editor in " cite$ * warning$ + cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +% +% added - gnp. Provide label formatting by organization if author is null. +% +{ author empty$ + { organization empty$ + { key empty$ + { "no key, author or organization in " cite$ * warning$ + cite$ #1 #3 substring$ } + 'key + if$ + } + { organization } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +% +% added - gnp. Provide label formatting by organization if editor is null. +% +{ editor empty$ + { organization empty$ + { key empty$ + { "no key, editor or organization in " cite$ * warning$ + cite$ #1 #3 substring$ } + 'key + if$ + } + { organization } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { "no key, author, or editor in " cite$ * warning$ + cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {calc.label} +% +% Changed - GNP. See also author.organization.sort, editor.organization.sort +% Form label for BibTeX entry. The classification of which fields are used +% for which type of entry (book, inbook, etc.) are taken from alpha.bst. +% The change here from newapa is to also include organization as a +% citation label if author or editor is missing. +% +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + + author empty$ % generate the full label citation information. + { editor empty$ + { organization empty$ + { "no author, editor, or organization in " cite$ * warning$ + "??" } + { organization } + if$ + } + { editor my.full.label } + if$ + } + { author my.full.label } + if$ + +% leave label on the stack, to be popped when required. + + "}{" * swap$ * "}{" * +% year field.or.null purify$ #-1 #4 substring$ * +% +% save the year for sort processing afterwards (adding a, b, c, etc.) +% + year field.or.null purify$ #-1 #4 substring$ + 'label.year := +} + +FUNCTION {output.bibitem} +{ newline$ + + "\bibitem[\protect\citeauthoryear{" write$ + calc.label write$ + sort.year write$ + "}]{" write$ + + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {article} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + crossref missing$ + { format.jour.vol output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors + "author and editor" output.check } + { format.authors + output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + output.year.check % added + new.block + format.btitle + "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + address output + publisher "publisher" output.check.colon + } + { new.block + format.book.crossref output.nonnull + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + howpublished output + address output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors + "author and editor" output.check + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + output.year.check % added + new.block + format.btitle + "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages + "chapter and pages" output.check + new.block + format.number.series output + new.sentence + address output + publisher + "publisher" output.check.colon + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle + "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output % gnp - was special.output.nonnull +% left out comma before page numbers + new.sentence + address output + publisher "publisher" output.check.colon + } + { format.incoll.inproc.crossref + output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle + "booktitle" output.check + format.bvolume output + format.number.series output + address output + format.pages output + new.sentence + organization output + publisher output.colon + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { editor empty$ + { organization "organization" output.check + organization format.key output } % if all else fails, use key + { format.editors "author and editor" output.check } + if$ + } + { format.authors output.nonnull } + if$ + output.year.check % added + new.block + format.btitle + "title" output.check + organization address new.block.checkb +% Reversed the order of "address" and "organization", added the ":". + address output + organization "organization" output.check.colon +% address output +% ":" output +% organization output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % added + output.year.check % added + title howpublished new.block.checkb + format.title output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.btitle + "title" output.check + new.block + "Ph.\ D. thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output + organization format.key output } % gnp - changed from author format.key + { format.editors output.nonnull } + if$ +% author format.key output % gnp - removed (should be either +% editor or organization + output.year.check % added (newapa) + new.block + format.btitle + "title" output.check + format.bvolume output + format.number.series output + address output + new.sentence + organization output + publisher output.colon + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + format.tr.number output.nonnull + institution + "institution" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {ai} {"Artificial Intelligence"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { " et~al" * } + { 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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { "missing author in " cite$ * warning$ + 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 {author.organization.sort} +% +% added - GNP. Stack author or organization for sorting (from alpha.bst). +% Unlike alpha.bst, we need entire names, not abbreviations +% +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { organization sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +% +% added - GNP. Stack editor or organization for sorting (from alpha.bst). +% Unlike alpha.bst, we need entire names, not abbreviations +% +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { organization sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +% +% Presort creates the bibentry's label via a call to calc.label, and then +% sorts the entries based on entry type. Chicago.bst adds support for +% including organizations as the sort key; the following is stolen from +% alpha.bst. +% +{ calc.label sortify % recalculate bibitem label + year field.or.null purify$ #-1 #4 substring$ * % add year + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + #1 entry.max$ substring$ % added for newapa + 'sort.label := % added for newapa + sort.label % added for newapa + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT % by label, year, author/editor, title + +STRINGS { last.label next.extra } + +INTEGERS { last.extra.num } + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +% +% Pass through all entries, comparing current entry to last one. +% Need to concatenate year to the stack (done by calc.label) to determine +% if two entries are the same (see presort) +% +{ last.label + calc.label year field.or.null purify$ #-1 #4 substring$ * % add year + #1 entry.max$ substring$ = % are they equal? + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + calc.label year field.or.null purify$ #-1 #4 substring$ * % add year + #1 entry.max$ substring$ 'last.label := % assign to last.label + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label.year extra.label * 'sort.year := + extra.label 'next.extra := +} + +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 % by sort.label, year, title --- giving final bib. order. + +FUNCTION {begin.bib} + +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ +} + + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + + diff --git a/Master/texmf-dist/bibtex/bst/beebe/chicagoa.bst b/Master/texmf-dist/bibtex/bst/beebe/chicagoa.bst new file mode 100644 index 00000000000..5816719e3e8 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/chicagoa.bst @@ -0,0 +1,1684 @@ +%%% ==================================================================== +%%% @BibTeX-style-file{ +%%% author = "Glenn Paulley", +%%% version = "4", +%%% date = "28 August 1992", +%%% time = "10:24:38 199", +%%% filename = "chicagoa.bst", +%%% address = "Data Structuring Group +%%% Department of Computer Science +%%% University of Waterloo +%%% Waterloo, Ontario, Canada +%%% N2L 3G1", +%%% telephone = "(519) 885-1211", +%%% FAX = "(519) 885-1208", +%%% checksum = "62428 1684 5231 38311", +%%% email = "gnpaulle@bluebox.uwaterloo.ca", +%%% codetable = "ISO/ASCII", +%%% keywords = "", +%%% supported = "yes", +%%% abstract = "A BibTeX bibliography style that follows the +%%% `B' reference style of the 13th Edition of +%%% the Chicago Manual of Style. Supports annotated +%%% bibliographies through the BibTeX field +%%% `annotation'. A detailed feature list is given +%%% below.", +%%% docstring = "The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== +% +% "Chicago" BibTeX style, chicagoa.bst - Chicago style with annotations +% ===================================================================== +% +% BibTeX `chicagoa' style file for BibTeX version 0.99c, LaTeX version 2.09 +% Place it in a file called chicagoa.bst in the BibTeX search path. +% You need to include chicago.sty as a \documentstyle option. +% (Placing it in the same directory as the LaTeX document should also work.) +% This "chicago" style is based on newapa.bst (American Psych. Assoc.) +% found at ymir.claremont.edu. Annotation support added 07/09/92. +% Modifications are loosely based on Chicago Manual of Style. +% +% Citation format: (author-last-name year) +% (author-last-name and author-last-name year) +% (author-last-name, author-last-name, and author-last-name year) +% (author-last-name et al. year) +% (author-last-name) +% author-last-name (year) +% (author-last-name and author-last-name) +% (author-last-name et al.) +% (year) or (year,year) +% year or year,year +% +% Reference list ordering: alphabetical by author or whatever passes +% for author in the absence of one. +% +% This BibTeX style has support for abbreviated author lists and for +% year-only citations. This is done by having the citations +% actually look like +% +% \citeauthoryear{full-author-info}{abbrev-author-info}{year} +% +% The LaTeX style has to have the following (or similar) +% +% \let\@internalcite\cite +% \def\fullcite{\def\citeauthoryear##1##2##3{##1, ##3}\@internalcite} +% \def\fullciteA{\def\citeauthoryear##1##2##3{##1}\@internalcite} +% \def\shortcite{\def\citeauthoryear##1##2##3{##2, ##3}\@internalcite} +% \def\shortciteA{\def\citeauthoryear##1##2##3{##2}\@internalcite} +% \def\citeyear{\def\citeauthoryear##1##2##3{##3}\@internalcite} +% +% These TeX macro definitions are found in chicago.sty. Additional +% commands to manipulate different components of a citation can be defined +% so that, for example, you can list author's names without parentheses +% if using a citation as a noun or object in a sentence. +% +% This file was originally copied from newapa.bst at ymir.claremont.edu. +% +% Features of chicago.bst: +% ======================= +% +% - supports an "annotation" field for annotated bibliographies. +% - full names used in citations, but abbreviated citations are available +% (see above) +% - if an entry has a "month", then the month and year are also printed +% as part of that bibitem. +% - all conjunctions use "and" instead of "\&" +% - major modification from Chicago Manual of Style (13th ed.) is that +% only the first author in a reference appears last name first- +% additional authors appear as J. Q. Public. +% - pages are listed as "pp. xx-xx" in all entry types except +% article entries. +% - book, inbook, and manual use "location: publisher" (or organization) +% for address and publisher. All other types list publishers separately. +% - "pp." are used to identify page numbers for all entry types except +% articles. +% - organization is used as a citation label if neither author nor editor +% is present (for manuals). +% - "et al." is used for long author and editor lists, or when "others" +% is used. +% +% Modifications and bug fixes from newapa.bst: +% =========================================== +% +% - added month, year to bib entries if month is present +% - fixed bug with In proceedings, added necessary comma after title +% - all conjunctions changed to "and" from "\&" +% - fixed bug with author labels in my.full.label: "et al." now is +% generated when "others" is an author name +% - major modification from Chicago Manual of Style (13th ed.) is that +% only the first author in a reference appears last name first- +% additional authors appear as J. Q. Public. +% - pages are listed as "pp. xx-xx" in all entry types except +% article entries. Unnecessary (IMHO) "()" around page numbers +% were removed, and page numbers now don't end with a period. +% - created chicago.sty for use with this bibstyle (required). +% - fixed bugs in FUNCTION {format.vol.num.pages} for missing volume, +% number, and /or pages. Renamed to format.jour.vol. +% - fixed bug in formatting booktitles: additional period an error if +% book has a volume. +% - fixed bug: editors usually given redundant period before next clause +% (format.editors.dot) removed. +% - added label support for organizations, if both author and editor +% are missing (from alpha.bst). If organization is too long, then +% the key field is used for abbreviated citations. +% - In proceedings or books of several volumes, no comma was written +% between the "Volume x" and the page numbers (this was intentional +% in newapa.bst). Fixed. +% - Some journals may not have volumes/numbers, only month/year (eg. +% IEEE Computer). Fixed bug in article style that assumed volume/number +% was always present. +% +% Original documentation for newapa.sty: +% ===================================== +% +% This version was made by modifying the master file made by +% Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU), and the 'named' BibTeX +% style of Peter F. Patel-Schneider. +% +% Copyright (C) 1985, all rights reserved. +% Copying of this file is authorized only if either +% (1) you make absolutely no changes to your copy, including name, or +% (2) if you do make changes, you name it something other than 'newapa.bst'. +% There are undoubtably bugs in this style. If you make bug fixes, +% improvements, etc. please let me know. My e-mail address is: +% spencer@cgrg.ohio.state.edu or 71160.3141@compuserve.com +% +% This style was made from 'plain.bst', 'named.bst', and 'apalike.bst', +% with lots of tweaking to make it look like APA style, along with tips +% from Young Ryu and Brian Reiser's modifications of 'apalike.bst'. + +ENTRY + { address + annotation + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label.year extra.label sort.year sort.label } + +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 u } + +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 +} + +% Use a colon to separate output. Used only for address/publisher +% combination in book/inbook types, address/institution for manuals, +% and organization:publisher for proceedings (inproceedings). +% +FUNCTION {output.nonnull.colon} +{ '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.colon} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull.colon + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.check.colon} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull.colon + if$ +} + +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ + " (" year * extra.label * + month empty$ + { ")" * } + { ", " * month * ")" * } + if$ + mid.sentence 'output.state := + } + 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +% +% Emphasize the top string on the stack. +% +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +% +% Emphasize the top string on the stack, but add a trailing space. +% +FUNCTION {emphasize.space} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "\/}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } +% +% Format bibliographical entries with the first author last name first, +% and subsequent authors with initials followed by last name. +% All names are formatted in this routine. +% +FUNCTION {format.names} +{ 's := + #1 'nameptr := % nameptr = 1; + s num.names$ 'numnames := % numnames = num.name$(s); + numnames 'namesleft := + { namesleft #0 > } + + { nameptr #1 = + {s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := } + {s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } + if$ + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } % from Chicago Manual of Style + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := % nameptr += 1; + namesleft #1 - 'namesleft := % namesleft =- 1; + } + while$ +} + +FUNCTION {my.full.label} +{ 's := + #1 'nameptr := % nameptr = 1; + s num.names$ 'numnames := % numnames = num.name$(s); + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{vv~}{ll}" format.name$ 't := % get the next name + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } % from Chicago Manual of Style + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := % nameptr += 1; + namesleft #1 - 'namesleft := % namesleft =- 1; + } + while$ + +} + +FUNCTION {format.names.fml} +% +% Format names in "familiar" format, with first initial followed by +% last name. Like format.names, ALL names are formatted. +% +{ 's := + #1 'nameptr := % nameptr = 1; + s num.names$ 'numnames := % numnames = num.name$(s); + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } +% { " \& " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := % nameptr += 1; + namesleft #1 - 'namesleft := % namesleft =- 1; + } + while$ +} + +FUNCTION {format.annotation} +{ annotation empty$ + { "" } + { " \begin{quotation}\noindent " + annotation + * " \end{quotation} " * + } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +% +% Format editor names for use in the "in" types: inbook, incollection, +% inproceedings: first initial, then last names. When editors are the +% LABEL for an entry, then format.editor is used which lists editors +% by last name first. +% +FUNCTION {format.editors.fml} +{ editor empty$ + { "" } + { editor format.names.fml + editor num.names$ #1 > + { " (Eds.)" * } + { " (Ed.)" * } + if$ + } + if$ +} + +% +% Format editor names for use in labels, last names first. +% +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { " (Eds.)" * } + { " (Ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +% Note that the APA style requres case changes +% in article titles. The following does not +% change cases. If you perfer it, uncomment the +% following and comment out the above. + +%FUNCTION {format.title} +%{ title empty$ +% { "" } +% { title } +% if$ +%} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ edition empty$ + { title emphasize } + { title empty$ + { title emphasize } + { volume empty$ % gnp - check for volume, then don't need period + { "{\em " title * "\/} (" * edition * " ed.)" * "." * } + { "{\em " title * "\/} (" * edition * " ed.)" * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.emphasize.booktitle} +{ edition empty$ + { booktitle emphasize } + { booktitle empty$ + { booktitle emphasize } + { volume empty$ % gnp - extra period an error if book has a volume + { "{\em " booktitle * "\/} (" * edition * " ed.)" * "." *} + { "{\em " booktitle * "\/} (" * edition * " ed.)" * } + if$ + } + if$ + } + if$ + } + + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Volume" volume tie.or.space.connect % gnp - changed to mixed case + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "Number" } % gnp - changed to mixed case always + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + 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 empty$ + { "" } + { pages multi.page.check + { "pp.\ " pages n.dashify tie.or.space.connect } % gnp - removed () + { "pp.\ " pages tie.or.space.connect } + if$ + } + if$ +} + +% By Young (and Spencer) +% GNP - fixed bugs with missing volume, number, and/or pages +% +% Format journal, volume, number, pages for article types. +% +FUNCTION {format.jour.vol} +{ journal empty$ + { "no journal in " cite$ * warning$ + "" } + { journal emphasize.space } + if$ + number empty$ + { volume empty$ + { "no number and no volume in " cite$ * warning$ + "" * } + { "~{\em " * Volume * "}" * } + if$ + } + { volume empty$ + {"no volume for " cite$ * warning$ + "~(" * number * ")" * } + { "~" * + volume emphasize.space + "(" * number * ")" * * } + if$ + } + if$ + pages empty$ + {"page numbers missing in " cite$ * warning$ + "" * } % gnp - place a null string on the stack for output + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } % gnp - removed pp. for articles + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "Chapter" } % gnp - changed to mixed case + { type "t" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + {"page numbers missing in " cite$ * warning$} % gnp - added check + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " format.emphasize.booktitle * } + { "In " format.editors.fml * ", " * format.emphasize.booktitle * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "See" + "\citeN{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect % gnp - changed to mixed case + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \citeN{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ "See" + " \citeN{" * crossref * "}" * +} + +% format.lab.names: +% +% determines "short" names for the abbreviated author information. +% "Long" labels are created in calc.label, using the routine my.full.label +% to format author and editor fields. +% +% There are 4 cases for labels. (n=3 in the example) +% a) one author Foo +% b) one to n Foo, Bar and Baz +% c) use of "and others" Foo, Bar et al. +% d) more than n Foo et al. +% +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #2 > % change number to number of others allowed before + % forcing "et al". + { s #1 "{vv~}{ll}" format.name$ " et~al." * } + { + numnames #1 - 'namesleft := + #2 'nameptr := + s #1 "{vv~}{ll}" format.name$ + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * s nameptr "{vv~}{ll}" format.name$ * } + if$ + } + { ", " * s nameptr "{vv~}{ll}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { "no key, author in " cite$ * warning$ + cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { "no key, editor in " cite$ * warning$ + cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +% +% added - gnp. Provide label formatting by organization if author is null. +% +{ author empty$ + { organization empty$ + { key empty$ + { "no key, author or organization in " cite$ * warning$ + cite$ #1 #3 substring$ } + 'key + if$ + } + { organization } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +% +% added - gnp. Provide label formatting by organization if editor is null. +% +{ editor empty$ + { organization empty$ + { key empty$ + { "no key, editor or organization in " cite$ * warning$ + cite$ #1 #3 substring$ } + 'key + if$ + } + { organization } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { "no key, author, or editor in " cite$ * warning$ + cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {calc.label} +% +% Changed - GNP. See also author.organization.sort, editor.organization.sort +% Form label for BibTeX entry. The classification of which fields are used +% for which type of entry (book, inbook, etc.) are taken from alpha.bst. +% The change here from newapa is to also include organization as a +% citation label if author or editor is missing. +% +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + + author empty$ % generate the full label citation information. + { editor empty$ + { organization empty$ + { "no author, editor, or organization in " cite$ * warning$ + "??" } + { organization } + if$ + } + { editor my.full.label } + if$ + } + { author my.full.label } + if$ + +% leave label on the stack, to be popped when required. + + "}{" * swap$ * "}{" * +% year field.or.null purify$ #-1 #4 substring$ * +% +% save the year for sort processing afterwards (adding a, b, c, etc.) +% + year field.or.null purify$ #-1 #4 substring$ + 'label.year := +} + +FUNCTION {output.bibitem} +{ newline$ + + "\bibitem[\protect\citeauthoryear{" write$ + calc.label write$ + sort.year write$ + "}]{" write$ + + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {article} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + crossref missing$ + { format.jour.vol output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry + format.annotation write$ + newline$ +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors + "author and editor" output.check } + { format.authors + output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + output.year.check % added + new.block + format.btitle + "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + address output + publisher "publisher" output.check.colon + } + { new.block + format.book.crossref output.nonnull + } + if$ + new.block + note output + fin.entry + format.annotation write$ + newline$ +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + howpublished output + address output + new.block + note output + fin.entry + format.annotation write$ +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors + "author and editor" output.check + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + output.year.check % added + new.block + format.btitle + "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages + "chapter and pages" output.check + new.block + format.number.series output + new.sentence + address output + publisher + "publisher" output.check.colon + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + new.block + note output + fin.entry + format.annotation write$ +} + +FUNCTION {incollection} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle + "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output % gnp - was special.output.nonnull +% left out comma before page numbers + new.sentence + address output + publisher "publisher" output.check.colon + } + { format.incoll.inproc.crossref + output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry + format.annotation write$ +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle + "booktitle" output.check + format.bvolume output + format.number.series output + address output + format.pages output + new.sentence + organization output + publisher output.colon + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry + format.annotation write$ +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { editor empty$ + { organization "organization" output.check + organization format.key output } % if all else fails, use key + { format.editors "author and editor" output.check } + if$ + } + { format.authors output.nonnull } + if$ + output.year.check % added + new.block + format.btitle + "title" output.check + organization address new.block.checkb +% Reversed the order of "address" and "organization", added the ":". + address output + organization "organization" output.check.colon +% address output +% ":" output +% organization output + new.block + note output + fin.entry + format.annotation write$ +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry + format.annotation write$ +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % added + output.year.check % added + title howpublished new.block.checkb + format.title output + new.block + howpublished output + new.block + note output + fin.entry + format.annotation write$ +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.btitle + "title" output.check + new.block + "Ph.\ D. thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry + format.annotation write$ +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output + organization format.key output } % gnp - changed from author format.key + { format.editors output.nonnull } + if$ +% author format.key output % gnp - removed (should be either +% editor or organization + output.year.check % added (newapa) + new.block + format.btitle + "title" output.check + format.bvolume output + format.number.series output + address output + new.sentence + organization output + publisher output.colon + new.block + note output + fin.entry + format.annotation write$ +} + +FUNCTION {techreport} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + format.tr.number output.nonnull + institution + "institution" output.check + address output + new.block + note output + fin.entry + format.annotation write$ +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + note "note" output.check + fin.entry + format.annotation write$ +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {ai} {"Artificial Intelligence"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { " et~al" * } + { 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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { "missing author in " cite$ * warning$ + 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 {author.organization.sort} +% +% added - GNP. Stack author or organization for sorting (from alpha.bst). +% Unlike alpha.bst, we need entire names, not abbreviations +% +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { organization sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +% +% added - GNP. Stack editor or organization for sorting (from alpha.bst). +% Unlike alpha.bst, we need entire names, not abbreviations +% +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { organization sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +% +% Presort creates the bibentry's label via a call to calc.label, and then +% sorts the entries based on entry type. Chicago.bst adds support for +% including organizations as the sort key; the following is stolen from +% alpha.bst. +% +{ calc.label sortify % recalculate bibitem label + year field.or.null purify$ #-1 #4 substring$ * % add year + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + #1 entry.max$ substring$ % added for newapa + 'sort.label := % added for newapa + sort.label % added for newapa + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT % by label, year, author/editor, title + +STRINGS { last.label next.extra } + +INTEGERS { last.extra.num } + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +% +% Pass through all entries, comparing current entry to last one. +% Need to concatenate year to the stack (done by calc.label) to determine +% if two entries are the same (see presort) +% +{ last.label + calc.label year field.or.null purify$ #-1 #4 substring$ * % add year + #1 entry.max$ substring$ = % are they equal? + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + calc.label year field.or.null purify$ #-1 #4 substring$ * % add year + #1 entry.max$ substring$ 'last.label := % assign to last.label + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label.year extra.label * 'sort.year := + extra.label 'next.extra := +} + +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 % by sort.label, year, title --- giving final bib. order. + +FUNCTION {begin.bib} + +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ +} + + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + + diff --git a/Master/texmf-dist/bibtex/bst/beebe/econometrica.bst b/Master/texmf-dist/bibtex/bst/beebe/econometrica.bst new file mode 100644 index 00000000000..1ebf5065bee --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/econometrica.bst @@ -0,0 +1,1292 @@ +%%% Econometrica bibliography style +%%% For use with harvard.sty and LaTeX2e (NFSS) or LaTeX 2.09 +%%% 24-aug-94 +%%% +%%% Based on makebst, but with modifications by +%%% kcb@hss.caltech.edu (KC Border) +%%% Please report any problems to me. +%%% +%%% The main changes from the ouput of makebst are: +%%% 1. Addition of a function to replace repeated authors with a 3 em dash. +%%% (Search for compare.names, this function is portable.) +%%% 2. Modification of output.nonnull to allow commas inside quotation marks +%%% and no comma after year. +%%% 3.Eliminated feature (bug?) of the harvard style of citation. +%%% It creates a short label for subsequent citations. This alleged +%%% feature shortens both Aliprantis, Border, and Luxemburg (1991) and +%%% Aliprantis, Brown, and Burkinshaw (1991) to Aliprantis et~al. (1991). +%%% This creates the need to label these as +%%% Aliprantis, Border, and Luxemburg (1991a) and +%%% Aliprantis, Brown, and Burkinshaw (1991b), despite the fact +%%% that these entries have different authors. I used my own format +%%% for creating the labels, and used the same label for +%%% both the short and long forms. I know that the +%%% _Chicago_Manual_of_Style recommends using Aliprantis et~al, +%% but Econometrica regularly writes out three authors, +%% and it is rare to cite an article with more than four authors in +%%% Econometrica. (I couldn't find an example of even four being cited, +%%% but I didn't spend a lot of time looking.) +%%% 4. Addition of macros to handle editions. (My own idiosycracy.) +%%% 5. A new entry type called issue for special issues of a journal. +%%% (Another idiosyncracy.) +%%% 6. Many details to conform to Econometrica's quirks. +%%% (Search for KCB ) +%%% 7. I wrote this for use with LaTeX2e and the NFSS2. However, I did +%%% add some macros so it will work with LaTeX 2.09. +%%% (Search for \ifx\undefined\emph ) +%%% The remainder of this file was generated by makebst, except for +%%% modifications marked with KCB. +%% +%% This is file `em.bst', generated +%% on <1994/8/17> with the docstrip utility (2.2h). +%% +%% The original source files were: +%% +%% genbst.mbs (with options: `ay,har,nm-rev1,nmft-sc,dt-beg,yr-par,tit-qq,atit-u,thtit-a,volp-com,edby,blk-com,pp,ed,abr,and-com,nfss') +%% ---------------------------------------- +%% *** Econometrica style *** +%% +%% (Here are the specifications of the source file) +%% \def\filename{genbst.mbs} +%% \def\filedate{1994 July 1} +%% \def\fileversion{1.3} +%% For use with BibTeX version 0.99a or later, LaTeX version 2.09 +%%------------------------------------------------------------------- +%% NOTICE: +%% This file may be used for non-profit purposes. +%% It may not be distributed in exchange for money, +%% other than distribution costs. +%% +%% The author provides it `as is' and does not guarantee it in any way. +%% +%% Copyright (C) 1994 Patrick W. Daly +%% Max-Planck-Institut f\"ur Aeronomie +%% Postfach 20 +%% D-37189 Katlenburg-Lindau +%% Germany +%% +%% E-mail: +%% SPAN-- nsp::linmpi::daly (note nsp also known as ecd1) +%% Internet-- daly@linmpi.dnet.gwdg.de +%%----------------------------------------------------------- +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%%--------------------------------------------------------------------- + % This is an author-year citation style bibliography. As such, it is + % non-standard LaTeX, and requires a style option to function properly. + % The appropriate style file is: harvard.sty + % The form of the bibitem entries is + % \harvarditem[Jones et al.]{Jones, Baker, and Smith}{1990}{key}... + % There are style changes that may be specified in the text with + % the command \citationstyle. + % \citeasnoun{key} ==>> Jones et al. (1990) + % \cite{key} ==>> (Jones et al. 1990) + % \cite[chap. 2]{key} ==>> (Jones et al. 1990, chap. 2) + % On the first citation of any work, the full author list is used. +%%--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } %%%KCB: removed long.label + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +%%%KCB: new output state, no.comma +INTEGERS { no.comma} + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'no.comma := %%%KCB +} + +STRINGS { s t } + + +%%%KCB: revise to use new output state +FUNCTION {output.nonnull} +{ 's := + output.state no.comma = %%%KCB: if in this state, write a space + { " " * write$ before.all 'output.state := } %%%KCB + { output.state mid.sentence = %%%KCB: add brace at beginning + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } %%%KCB: matching brace + if$ %%%KCB: test for no.comma state + 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 {output.bibitem} +{ newline$ + "\harvarditem[" write$ + label write$ + "]{" label * "}{" * write$ %%%KCB: replaced long.label with label + year duplicate$ empty$ + { pop$ "????" } + 'skip$ + if$ + extra.label * "}{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +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$ +} + +INTEGERS { nameptr namesleft numnames } + +%%%KCB: Here is a portable set of routines to check for repeated authors +%%% and replace them with a 3 em dash +%%% According to _Chicago_Manual_of_Style_, a dash is used to +%%% replace an author's name only if the entire list is the same, so: +%%% Compare names. See if prev.name is identical to CurrList. +%%% If not, then just output CurrList. +%%% If so, replace with \BySame +%%% I use a conservative matching scheme, +%%% and check to see if full names are identical, +%%% even though we only use initials. +%%% This may mean that you have to correct your .bib database +%%% to ensure consistency. +%%% +%%% sample usage: +%%% search for {format.author} + +INTEGERS {currNum prevNum} + +STRINGS {PrevList CurrList prev.name PrevTemp CurrTemp} + +%%%KCB: Initialize prev.name ot some nonsense string: + +FUNCTION {init.prev.name} +{ +"My puppy Harley" 'prev.name := +} + +%%%KCB: Must EXECUTE {init.prev.name} after READ + +%%%KCB: compare.names +FUNCTION {compare.names} +{ prev.name 'PrevList := + duplicate$ 'prev.name := % make current list the new previous list + 'CurrList := + PrevList num.names$ 'prevNum := + CurrList num.names$ 'currNum := +% + prevNum currNum = %% If prevNum = currNum + { "" 'PrevTemp := %% Then take this branch + "" 'CurrTemp := + #1 'nameptr := %%% start with first name in each list + { nameptr prevNum > not }%% while nameptr <= prevNum +%% Format both lists the same way. +%% Use full names: bib file might need to be corrected + { + PrevList nameptr "{ff }{vv~}{ll}{ jj}" format.name$ PrevTemp * 'PrevTemp := + CurrList nameptr "{ff }{vv~}{ll}{ jj}" format.name$ CurrTemp * 'CurrTemp := + nameptr #1 + 'nameptr := } + while$ +%% Now compare : + PrevTemp CurrTemp = %% If PrevTemp = CurrTemp + { "\BySame{}" } + { CurrList } + if$ + } + { CurrList } %% If not prevNum = currNum + if$ %% If prevNum = currNum +} + +%%% +%%% +%%%KCB: End of new routine. + + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := } + if$ + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + ", " * + t "others" = + { " et~al." * } + { " {\small and} " * t * } %%%KCB: added \small + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + + +FUNCTION {format.names.ed} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" + format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + ", " * + t "others" = + { " et~al." * } + { " {\small and} " * t * } %%%KCB: added \small + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { "\textsc{" author compare.names format.names * "} " * } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { "\textsc{" editor compare.names format.names * " }" * + editor num.names$ #1 > + { " (eds.)" * } + { " (ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title + "``" swap$ * ",'' " * + } +no.comma 'output.state := %%%KCB: + if$ +} + +FUNCTION {n.dashify} +{ '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} +{ "in " } + +FUNCTION {format.date} +{ year duplicate$ empty$ + { "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" } + 'skip$ + if$ + " (" swap$ * extra.label * "):" * %%%KCB: added : + before.all 'output.state := %%%KCB: +} + +FUNCTION {format.btitle} +{ title emphasize +no.comma 'output.state := %%%KCB: +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "vol." volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "no." } + { "No." } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edn." * } + { edition "t" change.case$ " edn." * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pp." pages n.dashify tie.or.space.connect } + { "p." pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chap." } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in booktitle emphasize * ", ed. by " * %%%KCB: abbrv ed. + format.in.editors * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Discussion Paper" } %%%KCB: changed default + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + word.in + "\cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { "vol." volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + "\cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + format.title "title" output.check + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + 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.date "year" output.check + format.btitle "title" output.check + mid.sentence 'output.state := %%%KCB: + crossref missing$ + { format.bvolume output + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { + format.book.crossref output.nonnull + } + if$ + format.edition output + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + format.title "title" output.check + howpublished output + address output + 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.date "year" output.check + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.edition output + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address output + new.sentence + organization output + publisher output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +%%%KCB: special issue of a journal with a special editor + +FUNCTION {issue} +{ output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + format.btitle "title" output.check + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + note output + fin.entry +} + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + format.btitle "title" output.check + organization output + address output + format.edition output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + format.title "title" output.check + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + format.title output + howpublished output + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + format.title "title" output.check + "Ph.D. thesis" format.thesis.type output.nonnull + school "school" output.check + address output + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output + new.sentence + organization output + publisher output + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + format.title "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + format.title "title" output.check + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +%%%KCB: removed computer science journal macros +%%%KCB: added following macros for editions +MACRO {first} {"1st "} +MACRO {second} {"2d "} +MACRO {third} {"3d "} +MACRO {fourth} {"4th "} +MACRO {fifth} {"5th "} +MACRO {sixth} {"6th"} +MACRO {seventh} {"7th "} +MACRO {eighth} {"8th "} +MACRO {ninth} {"9th "} +MACRO {tenth} {"10th "} + +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$ +} + + +%%%KCB: Change format of labels: +FUNCTION {format.lab.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +%%%KCB: removed FUNCTION {format.long.lab.names} + +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$ +} + +%%%KCB: use entire year field as label + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + type$ "issue" = %%%KCB: need for new entry type + or %%%KCB + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + ", " + * + year field.or.null + * + 'label := +} + +FUNCTION {calc.short.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'label := +} + +%%%KCB: removed FUNCTION {calc.long.label} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 + type$ "issue" = %%%KCB: need for new entry type + or %%%KCB + '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 } + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +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$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.extra.label.stuff} + +EXECUTE {init.prev.name} %%%KCB: needed for replacing repeated authors + +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$ := + calc.short.label +%%%KCB: removed calc.long.label +} + +ITERATE {bib.sort.order} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ +%%%KCB: add defn of \BySame, can be overridden in document +"\ifx\undefined\BySame" write$ newline$ + "\newcommand{\BySame}{\leavevmode\rule[.5ex]{3em}{.5pt}\ }" + write$ newline$ + "\fi" write$ newline$ +%%% KCB: For those who still cling to LaTeX 2.09 +"\ifx\undefined\textsc" write$ newline$ + "\newcommand{\textsc}[1]{{\sc #1}}" + write$ newline$ + "\newcommand{\emph}[1]{{\em #1\/}}" + write$ newline$ +"\let\tmpsmall\small" write$ newline$ +"\renewcommand{\small}{\tmpsmall\sc}" write$ newline$ + "\fi" write$ newline$ +%%% + "\begin{thebibliography}{}" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +"Done." top$ %%%KCB: Signal end for NeXTeX's TexView +} + +EXECUTE {end.bib} +%% End of customized bst file diff --git a/Master/texmf-dist/bibtex/bst/beebe/humanbio.bst b/Master/texmf-dist/bibtex/bst/beebe/humanbio.bst new file mode 100644 index 00000000000..039498ebd7a --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/humanbio.bst @@ -0,0 +1,1134 @@ +%%% ==================================================================== +%%% @BibTeX-style-file{ +%%% author = "Alan Rogers", +%%% version = "1.1", +%%% date = "1990", +%%% filename = "humanbio.bst", +%%% address = "Dept of Anthropology, University of Utah, +%%% Salt Lake City, UT 84112", +%%% checksum = "32432 1134 3172 23669", +%%% email = "rogers@anthro.utah.edu", +%%% supported = "no", +%%% docstring = "The file produces bibliographies more or +%%% less in the format of the journal Human +%%% Biology. It was adapted from apalike.bst, +%%% incorporating features of Sake J. +%%% Hogeveen's `astron.bst'. +%%% +%%% Usage: \documentstyle[astron]{...} +%%% ... +%%% \bibliographystyle{humanbio} +%%% ... +%%% +%%% The \documentstyle command above invokes +%%% Hogeveen's `astron.sty', which must be in +%%% TeX's search path. +%%% +%%% The modifications implement `\cite*{}', +%%% which generates references in short form. +%%% For example, `Rogers \cite*{...}' would +%%% produce `Rogers (1992)'." +%%% } +%%% ==================================================================== +%%%%%%%%%% +% BibTeX `apalike' bibliography style (24-Jan-88 version) +% Adapted from the `alpha' style, version 0.99a; for BibTeX version 0.99a. +% Copyright (C) 1988, all rights reserved. +% Copying of this file is allowed, provided that if you make any changes at all +% you name it something other than `apalike.bst'. +% This restriction helps ensure that all copies are identical. +% Differences between this style and `alpha' are generally heralded by a `%'. +% The file btxbst.doc has the documentation for alpha.bst. +% +% This style should be used with the `apalike' LaTeX style (apalike.sty). +% \cite's come out like "(Jones, 1986)" in the text but there are no labels +% in the bibliography, and something like "(1986)" comes out immediately +% after the author. Author (and editor) names appear as last name, comma, +% initials. A `year' field is required for every entry, and so is either +% an author (or in some cases, an editor) field or a key field. +% +% Editorial note: +% Many journals require a style like `apalike', but I strongly, strongly, +% strongly recommend that you not use it if you have a choice---use something +% like `plain' instead. Mary-Claire van Leunen (A Handbook for Scholars, +% Knopf, 1979) argues convincingly that a style like `plain' encourages better +% writing than one like `apalike'. Furthermore the strongest arguments for +% using an author-date style like `apalike'---that it's "the most practical" +% (The Chicago Manual of Style, University of Chicago Press, thirteenth +% edition, 1982, pages 400--401)---fall flat on their face with the new +% computer-typesetting technology. For instance page 401 anachronistically +% states "The chief disadvantage of [a style like `plain'] is that additions +% or deletions cannot be made after the manuscript is typed without changing +% numbers in both text references and list." LaTeX sidesteps the disadvantage. +% +% History: +% 15-sep-86 (SK,OP) Original version, by Susan King and Oren Patashnik. +% 10-nov-86 (OP) Truncated the sort.key$ string to the correct length +% in bib.sort.order to eliminate error message. +% 24-jan-88 (OP) Updated for BibTeX version 0.99a, from alpha.bst 0.99a; +% apalike now sorts by author, then year, then title; +% THIS `apalike' VERSION DOES NOT WORK WITH BIBTEX 0.98i. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key +% month not used in apalike + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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$ +} + +% apalike needs this function because +% the year has special punctuation; +% apalike ignores the month +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ + " " year * extra.label * "" * + mid.sentence 'output.state := + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +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$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.key} % this function is just for apalike +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * % this is for apalike +} + +FUNCTION {format.incoll.inproc.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + howpublished output + address output + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address output % for apalike + new.sentence % there's no year + organization output % here so things + publisher output % are simpler + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output % for apalike + new.sentence % we always output + organization output % a nonempty organization + publisher output % here + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +% There are three apalike cases: one person (Jones), +% two (Jones and de~Bruijn), and more (Jones et~al.). +% This function is much like format.crossref.editors. +% +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole 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 % apalike uses the whole key, no organization + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} % this function came from ASTRON.BST (ARR) +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label % apalike ignores organization + 'author.key.label % for labeling and sorting + if$ + } + if$ + "\protect\astroncite{" swap$ * "}{" % these three lines are + * % for apalike, which + year field.or.null purify$ #-1 #4 substring$ % uses all four digits + * % the mathing closing "}" comes in at the reverse.pass + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ % apalike uses initials + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := % <= here + nameptr numnames = t "others" = and + { "et al" * } + { 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$ +} + +% apalike uses two sorting passes; the first one sets the +% labels so that the `a's, `b's, etc. can be computed; +% the second pass puts the references in "correct" order. +% The presort function is for the first pass. It computes +% label, sort.label, and title, and then concatenates. +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$ % for + 'sort.label := % apalike + sort.label % style + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT % by label, sort.label, title---for final label calculation + +STRINGS { last.label next.extra } % apalike labels are only for the text; + +INTEGERS { last.extra.num } % there are none in the bibliography + +FUNCTION {initialize.extra.label.stuff} % and hence there is no `longest.label' +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +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$ +} + +FUNCTION {reverse.pass} % this function came from ASTRON.BST (ARR) +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * "}" * 'label := + extra.label 'next.extra := +} + +EXECUTE {initialize.extra.label.stuff} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +% Now that the label is right we sort for real, +% on sort.label then year then title. This is +% for the second sorting 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 % by sort.label, year, title---giving final bibliography order + +FUNCTION {begin.bib} +{ preamble$ empty$ % no \etalchar in apalike + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ % no labels in apalike +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/humannat.bst b/Master/texmf-dist/bibtex/bst/beebe/humannat.bst new file mode 100644 index 00000000000..425ac08d789 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/humannat.bst @@ -0,0 +1,1205 @@ +%%% ==================================================================== +%%% @BibTeX-style-file{ +%%% author = "Alan Rogers", +%%% version = "1.03", +%%% date = "29 June 1992", +%%% time = "09:34:02 MDT", +%%% filename = "humanbio.bst", +%%% address = "Dept of Anthropology, University of Utah, +%%% Salt Lake City, UT 84112", +%%% checksum = "39728 1205 3408 25147", +%%% email = "rogers@anthro.utah.edu", +%%% supported = "no", +%%% docstring = "The file produces bibliographies more or +%%% less in the format of the journals Human +%%% Nature and American Anthropologist. It was +%%% adapted from apalike.bst, incorporating +%%% features of Sake J. Hogeveen's +%%% `astron.bst'. +%%% +%%% Usage: \documentstyle[astron]{...} +%%% ... +%%% \bibliographystyle{humannat} +%%% ... +%%% +%%% The \documentstyle command above invokes +%%% Hogeveen's `astron.sty', which must be in +%%% TeX's search path. +%%% +%%% The modifications implement `\cite*{}', +%%% which generates references in short form. +%%% For example, `Rogers \cite*{...}' would +%%% produce `Rogers (1992)'." +%%% } +%%% ==================================================================== +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% BibTeX `apalike' bibliography style (24-Jan-88 version) +% Adapted from the `alpha' style, version 0.99a; for BibTeX version 0.99a. +% Copyright (C) 1988, all rights reserved. +% Copying of this file is allowed, provided that if you make any changes at all +% you name it something other than `apalike.bst'. +% This restriction helps ensure that all copies are identical. +% Differences between this style and `alpha' are generally heralded by a `%'. +% The file btxbst.doc has the documentation for alpha.bst. +% +% This style should be used with the `apalike' LaTeX style (apalike.sty). +% \cite's come out like "(Jones, 1986)" in the text but there are no labels +% in the bibliography, and something like "(1986)" comes out immediately +% after the author. Author (and editor) names appear as last name, comma, +% initials. A `year' field is required for every entry, and so is either +% an author (or in some cases, an editor) field or a key field. +% +% Editorial note: +% Many journals require a style like `apalike', but I strongly, strongly, +% strongly recommend that you not use it if you have a choice---use something +% like `plain' instead. Mary-Claire van Leunen (A Handbook for Scholars, +% Knopf, 1979) argues convincingly that a style like `plain' encourages better +% writing than one like `apalike'. Furthermore the strongest arguments for +% using an author-date style like `apalike'---that it's "the most practical" +% (The Chicago Manual of Style, University of Chicago Press, thirteenth +% edition, 1982, pages 400--401)---fall flat on their face with the new +% computer-typesetting technology. For instance page 401 anachronistically +% states "The chief disadvantage of [a style like `plain'] is that additions +% or deletions cannot be made after the manuscript is typed without changing +% numbers in both text references and list." LaTeX sidesteps the disadvantage. +% +% History: +% 15-sep-86 (SK,OP) Original version, by Susan King and Oren Patashnik. +% 10-nov-86 (OP) Truncated the sort.key$ string to the correct length +% in bib.sort.order to eliminate error message. +% 24-jan-88 (OP) Updated for BibTeX version 0.99a, from alpha.bst 0.99a; +% apalike now sorts by author, then year, then title; +% THIS `apalike' VERSION DOES NOT WORK WITH BIBTEX 0.98i. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key +% month not used in apalike + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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$ +} + +% apalike needs this function because +% the year has special punctuation; +% apalike ignores the month +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ +% " (" year * extra.label * ")" * + " " year * extra.label * % for humannature + mid.sentence 'output.state := + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +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$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := % last name last + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {format.editor.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := % last name first + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ + "\leavevmode\nopagebreak\newline" * % for humannature +} + +FUNCTION {format.key} % this function is just for apalike +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { author empty$ + { editor format.names } + { editor format.editor.names } + if$ + editor num.names$ #1 > + { ", eds." * } % for humannature + { ", ed." * } % for humannature + if$ + } + if$ + author empty$ + { "\leavevmode\nopagebreak\newline" * } + { "" * } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.address.publisher} +{ address empty$ + { + publisher empty$ + { "" } + { publisher } + if$ + } + { + publisher empty$ + { address ": [publisher unknown]" * } + { address ": " * publisher * } + if$ + } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "Pp.~" pages n.dashify tie.or.space.connect } + { "P.~" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " booktitle emphasize * ", " * format.editors * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * % this is for apalike +} + +FUNCTION {format.incoll.inproc.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + new.block + format.address.publisher output + } + { new.block + format.book.crossref output.nonnull + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + howpublished output + address output + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.block + format.address.publisher output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.block + format.address.publisher output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address output % for apalike + new.sentence % there's no year + organization output % here so things + publisher output % are simpler + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output % for apalike + new.sentence % we always output + organization output % a nonempty organization + publisher output % here + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +% There are three apalike cases: one person (Jones), +% two (Jones and de~Bruijn), and more (Jones et~al.). +% This function is much like format.crossref.editors. +% +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole 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 % apalike uses the whole key, no organization + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} % this function came from ASTRON.BST (ARR) +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label % apalike ignores organization + 'author.key.label % for labeling and sorting + if$ + } + if$ + "\protect\astroncite{" swap$ * "}{" % these three lines are + * % for apalike, which + year field.or.null purify$ #-1 #4 substring$ % uses all four digits + * % the mathing closing "}" comes in at the reverse.pass + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ % apalike uses initials + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := % <= here + nameptr numnames = t "others" = and + { "et al" * } + { 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$ +} + +% apalike uses two sorting passes; the first one sets the +% labels so that the `a's, `b's, etc. can be computed; +% the second pass puts the references in "correct" order. +% The presort function is for the first pass. It computes +% label, sort.label, and title, and then concatenates. +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$ % for + 'sort.label := % apalike + sort.label % style + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT % by label, sort.label, title---for final label calculation + +STRINGS { last.label next.extra } % apalike labels are only for the text; + +INTEGERS { last.extra.num } % there are none in the bibliography + +FUNCTION {initialize.extra.label.stuff} % and hence there is no `longest.label' +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +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$ +} + +FUNCTION {reverse.pass} % this function came from ASTRON.BST (ARR) +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * "}" * 'label := + extra.label 'next.extra := +} + +EXECUTE {initialize.extra.label.stuff} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +% Now that the label is right we sort for real, +% on sort.label then year then title. This is +% for the second sorting 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 % by sort.label, year, title---giving final bibliography order + +FUNCTION {begin.bib} +{ preamble$ empty$ % no \etalchar in apalike + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ % no labels in apalike +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/is-abbrv.bst b/Master/texmf-dist/bibtex/bst/beebe/is-abbrv.bst new file mode 100644 index 00000000000..5e4eaa102ac --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/is-abbrv.bst @@ -0,0 +1,1833 @@ +%% ===================================================================== +%% WARNING: Do NOT edit this file. It was produced automatically by +%% Nelson H. F. Beebe +%% from file://plot79.math.utah.edu/u/sy/beebe/tex/bib/merge/xbtxbst.doc +%% on Wed May 15 10:36:03 MDT 1996. +%% ===================================================================== +%%%===================================================================== +%%% @BibTeX-style-file{ +%%% author = "Nelson H. F. Beebe", +%%% version = "2.03", +%%% date = "15 May 1996", +%%% time = "10:35:51 MDT", +%%% filename = "is-abbrv.bst", +%%% address = "Center for Scientific Computing +%%% Department of Mathematics +%%% University of Utah +%%% Salt Lake City, UT 84112 +%%% USA", +%%% telephone = "+1 801 581 5254", +%%% FAX = "+1 801 581 4148", +%%% URL = "http://www.math.utah.edu/~beebe", +%%% checksum = "47504 1833 4630 37425", +%%% email = "beebe@math.utah.edu (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "BibTeX, style, bibliography", +%%% supported = "yes", +%%% docstring = "This file is a modification of the standard +%%% BibTeX btxbst.doc file, or is a .bst file +%%% derived from that modification. It contains +%%% optional added support for CODEN, ISBN, ISSN, +%%% LCCN, and PRICE fields, extended PAGES +%%% fields, the PERIODICAL entry, and extended +%%% citation label suffixing. +%%% +%%% In addition, date formatting supports a day +%%% keyword, so that bibliography entries can be +%%% written with +%%% +%%% day = {23}, +%%% month = aug, +%%% +%%% instead of the language-dependent awkward +%%% forms required by the standard styles +%%% +%%% month = {23~} # aug, +%%% month = aug # {~23}, +%%% +%%% These older forms are, of course, still +%%% handled correctly. +%%% +%%% The UNIX C preprocessor can be used to +%%% extract the standard styles, as follows: +%%% +%%% cpp -P -DPLAIN xbtxbst.doc >plain.bst +%%% cpp -P -DUNSRT xbtxbst.doc >unsrt.bst +%%% cpp -P -DALPHA xbtxbst.doc >alpha.bst +%%% cpp -P -DABBRV xbtxbst.doc >abbrv.bst +%%% +%%% To obtain correct file header checksums, pipe +%%% the output through the checksum program, e.g. +%%% +%%% cpp -P -DPLAIN xbtxbst.doc | checksum >plain.bst +%%% +%%% The accompanying UNIX Makefile automates this +%%% job, and provides some extra leading comments +%%% in the generated style files warning the user +%%% not to modify them. +%%% +%%% Additional optional definitions are recognized +%%% to provide extensions to the standard styles: +%%% +%%% -D_CODEN for CODEN output +%%% +%%% -D_ISBN for ISBN output +%%% +%%% -D_ISSN for ISSN output +%%% +%%% -D_LCCN for LCCN output +%%% +%%% -D_PRICE for price output, +%%% +%%% -D_BOOKPAGES for book, techreport, manual, +%%% and thesis pages output. +%%% +%%% -D_URL to get World-Wide Web Uniform +%%% Resource Locator (URL) output. +%%% +%%% -D_NUMERIC_SUFFIXES to get numeric +%%% label suffixes -1, -2, ..., -26, instead of +%%% letters a, b, ..., z, so as to correctly +%%% handle alpha-style bibliographies with more +%%% than 26 entries for a single author in one +%%% year. Change letter suffix code to switch +%%% to numeric suffixes if more than 26 letters +%%% are used, so that no matter which scheme is +%%% selected, correct output will always be +%%% obtained. +%%% +%%% The CODEN, ISBN, ISSN, LCCN, PRICE, and URL +%%% values are wrapped inside macros \showCODEN{} +%%% etc. that the user can provide alternate +%%% definitions of to change the formatting, or +%%% to suppress their output altogether. That +%%% way, output identical to that of the four +%%% standard BibTeX style files can be obtained +%%% with these extended files, if these macros +%%% are defined to expand to empty strings. +%%% +%%% URL handling is slightly more complex, +%%% because URLs can contain characters which TeX +%%% must handle in verbatim mode in a typewriter +%%% font, and such text cannot readily appear +%%% inside nested macro arguments. Consequently, +%%% URLs are formatted in the .bbl file like +%%% this: +%%% \ifshowURL {\showURL \path|...|} \fi +%%% where \showURL takes no argument, and +%%% normally expands to the 4-character string +%%% URL. The grouping braces ensure that +%%% any font changes made by \showURL remain +%%% localized. Vertical bar is chosen as the +%%% verbatim path delimiter, because it cannot +%%% appear in URLs. The other prohibited ISO +%%% Latin 1 characters are the non-printing +%%% control characters 0..31, plus those in the +%%% range 128..255, plus the ten special +%%% characters +%%% +%%% { } [ ] \ ^ ~ < > ` +%%% +%%% See Internet RFC 1630 (June 1994) for more +%%% details. (Backquote is not even mentioned +%%% there.) +%%% +%%% As an example of font changes, in LaTeX 2e +%%% you might define +%%% \newcommand{\showURL}{URL +%%% \let \oldtt = \tt +%%% \renewcommand{\tt}{\oldtt \itshape}} +%%% to get URLs set in a typewriter italic font. +%%% +%%% If desired, a sed script can be used to +%%% eliminate non-essential comments (this +%%% reduces the file size by 2/3); a command +%%% filter step like +%%% sed -e '/^%$/d' -e '/^%[^%].*$/d' +%%% will accomplish that job. +%%% +%%% The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility." +%%% } +%%% ==================================================================== +%%% Revision history (reverse time order): +%%% +%%% 2.03 [15-May-1996] +%%% Add CODEN support, ISBN and ISSN output for Article entries, +%%% and ISBN output for TechReport entries (yes, these sometimes +%%% do have ISBNs). +%%% +%%% Add wrapper macros \showXYZ{} (XYZ = CODEN, ISBN, ISSN, LCCN, +%%% PRICE, and URL) defined inside the thebibliography environment +%%% to expand to XYZ (except for PRICE) and their arguments, +%%% PROVIDED they are not already defined. That way, the user can +%%% provide alternate definitions outside the thebibliography +%%% environment, for example, to suppress particular ones, or +%%% to alter the font used. +%%% +%%% Substantially revise leading comments to better document the +%%% extensions. +%%% +%%% 2.02 [01-Apr-1996] +%%% Add day keyword support with new code in format.date function. +%%% Oren Patashnik will include this new keyword in standard styles +%%% in BibTeX 1.0. +%%% +%%% Add new function collapse.pagerange, and use it to collapse +%%% page ranges with identical initial and final numbers to a +%%% single number, so that bibliography files can distinguish +%%% between one-page documents, and documents missing final page +%%% numbers. +%%% +%%% 2.01 [25-Oct-1994] +%%% Add URL output support. +%%% +%%% 2.00 [12-Oct-1994] +%%% Add support for pages in theses and manuals, treating them +%%% like Book and InBook pages. +%%% +%%% Correct ISSN support: a typo caused output of ISBN instead of +%%% ISSN. +%%% +%%% Wherever ISBNs are output, also output an ISSN, if one +%%% exists, and vice versa. The reason is that some periodicals +%%% (e.g. The X Resource, published by O'Reilly and Associates) +%%% have both ISSN and ISBN numbers, and can be purchased either +%%% as journal subscriptions, or as single volumes. +%%% +%%% For InProceedings and Proceedings output, issue a warning for +%%% a missing publisher: even though that field is optional, a +%%% bibliographic reference without it is incomplete. +%%% +%%% Remove harmless, but unneeded, single horizontal space before +%%% price output added with version 1.03. +%%% +%%% Change Proceedings and InProceedings to treat address values +%%% as publisher addresses, as they are with every other document +%%% type, rather than as conference addresses, which belong in +%%% the title field (that is how major libraries, including OCLC +%%% and Library of Congress, with nearly 60M holdings, represent +%%% them). The need for this change has been discussed with +%%% BibTeX's author, Oren Patashnik, and there is a good +%%% possibility that BibTeX 1.0 will contain the change +%%% implemented here. This is an INCOMPATIBLE change that will +%%% produce different .bbl file formatting. However, the TUG and +%%% BibNet bibliography projects have consistently used address +%%% to me publisher/organization/institution address, and so +%%% already conform to the new practice. +%%% +%%% 1.05 [30-May-1994] +%%% Add NUMERIC_SUFFIXES support. +%%% +%%% Change all preprocessor statements to put else and endif +%%% labels inside C-style comments to conform to 1989 ISO/ANSI C +%%% Standard. +%%% +%%% 1.04 [11-Nov-1993] +%%% Add underscore prefix to new processor symbols to prevent +%%% substitution in comments +%%% +%%% 1.03 [11-Oct-1993] +%%% Add support for LCCN (Library of Congress Catalog Number) +%%% and price fields, and make ISBN, ISSN, LCCN, and price +%%% selectable by preprocessor conditionals. +%%% +%%% 1.02 [12-Sep-1991] +%%% Merge in Barbara N. Beeton's suggestion for hyphen-less +%%% line breaks around volume(number):page. +%%% +%%% 1.01 [10-Sep-1991] +%%% Update file comment header and use Solovay checksum program. +%%% +%%% 1.00 [17-Oct-1990] +%%% Original version merging hand-edits of is-xxx.bst files into +%%% this master file, xbtxbst.doc. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% BibTeX `plain' family +%% version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09. +%% Copyright (C) 1985, all rights reserved. +%% Copying of this file is authorized only if either +%% (1) you make absolutely no changes to your copy, including name, or +%% (2) if you do make changes, you name it something other than +%% btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. +%% This restriction helps ensure that all standard styles are identical. +%% The file btxbst.doc has the documentation for this style. + + + + + + + + + + + + + + + + + +ENTRY + { address + author + booktitle + chapter + + coden + + day + edition + editor + howpublished + institution + + isbn + + + issn + + journal + key + + lccn + + month + note + number + organization + pages + + price + + publisher + school + series + title + type + + URL + + volume + year + } + {} + + { label } + + + +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 { b e new.pages original.t 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 {output.bibitem} +{ newline$ + + "\bibitem{" write$ + + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + + +FUNCTION {format.coden} +{ coden empty$ + { "" } + { new.block "\showCODEN{" coden * "}" *} + if$ +} + + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { new.block "\showISBN{" isbn * "}" *} + if$ +} + + + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { new.block "\showISSN{" issn * "}" *} + if$ +} + + + +FUNCTION {format.lccn} +{ lccn empty$ + { "" } + { new.block "\showLCCN{" lccn * "}" *} + if$ +} + + + +FUNCTION {format.price} +{ price empty$ + { "" } + { new.block "\showPRICE{" price * "}" *} + if$ +} + + + +FUNCTION {format.url} +{ url empty$ + { "" } + { new.block "\ifshowURL {\showURL \path|" url * "|}\fi" *} + if$ +} + + + + +FUNCTION {format.title} +{ title empty$ + { "" } + + { title "t" change.case$ } + + if$ +} + + + +FUNCTION {collapse.pagerange} +{ 't := % save input page range string + t 'original.t := % save original page range + "" 'b := % beginning page number + "" 'e := % ending page number + { t empty$ not } % while-loop Boolean condition + { % while-loop body + t #1 #2 substring$ "--" = % have we found the en-dash? + { + t #3 global.max$ substring$ 'e := % yes, save ending page number + "" 't := % and set t to empty string to terminate loop + } + { + b t #1 #1 substring$ * 'b := % no, just accumulate this character + t #2 global.max$ substring$ 't := % and set t to the remaining string + } + if$ + } + while$ % on exit, t has ending page number string + e b = % are beginning and ending numbers the same? + { b } % yes, return the beginning page number string + { original.t } % no, return the original page number string + if$ +} + + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { + day empty$ + { "" } + { "there's a day but no month or year in " cite$ * warning$ } + if$ + } + { "there's a month but no year in " cite$ * warning$ + month + day empty$ + { } + { " " * day * } + if$ + } + if$ + } + { month empty$ + { + day empty$ + { year } + { "there's a day and year but no month in " cite$ * warning$ } + if$ + } + { + month " " * + day empty$ + { } + { day * ", " * } + if$ + year * + } + if$ + } + if$ +} + + +FUNCTION {format.btitle} +{ title emphasize +} + + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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.book.pages} +{ pages empty$ + { "" } + { new.block pages " pp." * } + if$ +} + + + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { + pages multi.page.check + { pages collapse.pagerange 'new.pages := } + { pages 'new.pages := } + if$ + new.pages multi.page.check + { "pages" new.pages n.dashify tie.or.space.connect } + { "page" new.pages tie.or.space.connect } + if$ + } + if$ +} + + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "\penalty0 (" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":\penalty0 " * pages collapse.pagerange n.dashify * } + if$ + } + if$ +} + + + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + + key empty$ not and + + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + + format.coden output + + + format.isbn output + + + format.issn output + + + format.url output + + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + + format.coden output + + + format.isbn output + + + format.issn output + + + format.book.pages output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + + format.coden output + + + format.isbn output + + + format.issn output + + + format.book.pages output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + + format.coden output + + + format.isbn output + + + format.issn output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + + format.coden output + + + format.isbn output + + + format.issn output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher "publisher" output.check + format.date "year" output.check + } + { new.sentence + organization output + publisher "publisher" output.check + address output.nonnull + format.date "year" output.check + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + + format.coden output + + + format.isbn output + + + format.issn output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {conference} { inproceedings } + + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + + format.book.pages output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + + format.book.pages output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + + format.coden output + + + format.isbn output + + + format.issn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry + empty.misc.check +} + + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + + format.book.pages output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {periodical} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + title emphasize "title" output.check + format.vol.num.pages output + format.date output + + format.coden output + + + format.isbn output + + + format.issn output + + + format.price output + + + format.url output + + new.sentence + publisher output + address output + howpublished new.block.checka + howpublished output + new.block + note output + fin.entry +} + + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher "publisher" output.check %%% <- new check for missing + format.date "year" output.check + } + { new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher "publisher" output.check + address output.nonnull + format.date "year" output.check + } + if$ + + format.coden output + + + format.isbn output + + + format.issn output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + + format.isbn output % NB: TechReports occasionally have ISBNs + + + format.book.pages output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + + format.url output + + fin.entry +} + + +FUNCTION {default.type} { misc } + + + + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + + + + + + +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. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + + + + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + + +FUNCTION {presort} + +{ type$ "book" = + + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + + +SORT + + + + + + + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + + + + +FUNCTION {begin.bib} + +{ preamble$ empty$ + + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + + "\ifx \showCODEN \undefined \def \showCODEN #1{CODEN #1} \fi" write$ newline$ + + + "\ifx \showISBN \undefined \def \showISBN #1{ISBN #1} \fi" write$ newline$ + + + "\ifx \showISSN \undefined \def \showISSN #1{ISSN #1} \fi" write$ newline$ + + + "\ifx \showLCCN \undefined \def \showLCCN #1{LCCN #1} \fi" write$ newline$ + + + "\ifx \showPRICE \undefined \def \showPRICE #1{#1} \fi" write$ newline$ + + + "\ifx \showURL \undefined \def \showURL {URL } \fi" write$ newline$ + "\ifx \path \undefined \input path.sty \fi" write$ newline$ + "\ifx \ifshowURL \undefined" write$ newline$ + " \newif \ifshowURL" write$ newline$ + " \showURLtrue" write$ newline$ + "\fi" write$ newline$ + +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + + +ITERATE {call.type$} + + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/is-alpha.bst b/Master/texmf-dist/bibtex/bst/beebe/is-alpha.bst new file mode 100644 index 00000000000..8e30c422a18 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/is-alpha.bst @@ -0,0 +1,2020 @@ +%% ===================================================================== +%% WARNING: Do NOT edit this file. It was produced automatically by +%% Nelson H. F. Beebe +%% from file://plot79.math.utah.edu/u/sy/beebe/tex/bib/merge/xbtxbst.doc +%% on Wed May 15 10:36:04 MDT 1996. +%% ===================================================================== +%%%===================================================================== +%%% @BibTeX-style-file{ +%%% author = "Nelson H. F. Beebe", +%%% version = "2.03", +%%% date = "15 May 1996", +%%% time = "10:35:51 MDT", +%%% filename = "is-alpha.bst", +%%% address = "Center for Scientific Computing +%%% Department of Mathematics +%%% University of Utah +%%% Salt Lake City, UT 84112 +%%% USA", +%%% telephone = "+1 801 581 5254", +%%% FAX = "+1 801 581 4148", +%%% URL = "http://www.math.utah.edu/~beebe", +%%% checksum = "49675 2020 5086 41225", +%%% email = "beebe@math.utah.edu (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "BibTeX, style, bibliography", +%%% supported = "yes", +%%% docstring = "This file is a modification of the standard +%%% BibTeX btxbst.doc file, or is a .bst file +%%% derived from that modification. It contains +%%% optional added support for CODEN, ISBN, ISSN, +%%% LCCN, and PRICE fields, extended PAGES +%%% fields, the PERIODICAL entry, and extended +%%% citation label suffixing. +%%% +%%% In addition, date formatting supports a day +%%% keyword, so that bibliography entries can be +%%% written with +%%% +%%% day = {23}, +%%% month = aug, +%%% +%%% instead of the language-dependent awkward +%%% forms required by the standard styles +%%% +%%% month = {23~} # aug, +%%% month = aug # {~23}, +%%% +%%% These older forms are, of course, still +%%% handled correctly. +%%% +%%% The UNIX C preprocessor can be used to +%%% extract the standard styles, as follows: +%%% +%%% cpp -P -DPLAIN xbtxbst.doc >plain.bst +%%% cpp -P -DUNSRT xbtxbst.doc >unsrt.bst +%%% cpp -P -DALPHA xbtxbst.doc >alpha.bst +%%% cpp -P -DABBRV xbtxbst.doc >abbrv.bst +%%% +%%% To obtain correct file header checksums, pipe +%%% the output through the checksum program, e.g. +%%% +%%% cpp -P -DPLAIN xbtxbst.doc | checksum >plain.bst +%%% +%%% The accompanying UNIX Makefile automates this +%%% job, and provides some extra leading comments +%%% in the generated style files warning the user +%%% not to modify them. +%%% +%%% Additional optional definitions are recognized +%%% to provide extensions to the standard styles: +%%% +%%% -D_CODEN for CODEN output +%%% +%%% -D_ISBN for ISBN output +%%% +%%% -D_ISSN for ISSN output +%%% +%%% -D_LCCN for LCCN output +%%% +%%% -D_PRICE for price output, +%%% +%%% -D_BOOKPAGES for book, techreport, manual, +%%% and thesis pages output. +%%% +%%% -D_URL to get World-Wide Web Uniform +%%% Resource Locator (URL) output. +%%% +%%% -D_NUMERIC_SUFFIXES to get numeric +%%% label suffixes -1, -2, ..., -26, instead of +%%% letters a, b, ..., z, so as to correctly +%%% handle alpha-style bibliographies with more +%%% than 26 entries for a single author in one +%%% year. Change letter suffix code to switch +%%% to numeric suffixes if more than 26 letters +%%% are used, so that no matter which scheme is +%%% selected, correct output will always be +%%% obtained. +%%% +%%% The CODEN, ISBN, ISSN, LCCN, PRICE, and URL +%%% values are wrapped inside macros \showCODEN{} +%%% etc. that the user can provide alternate +%%% definitions of to change the formatting, or +%%% to suppress their output altogether. That +%%% way, output identical to that of the four +%%% standard BibTeX style files can be obtained +%%% with these extended files, if these macros +%%% are defined to expand to empty strings. +%%% +%%% URL handling is slightly more complex, +%%% because URLs can contain characters which TeX +%%% must handle in verbatim mode in a typewriter +%%% font, and such text cannot readily appear +%%% inside nested macro arguments. Consequently, +%%% URLs are formatted in the .bbl file like +%%% this: +%%% \ifshowURL {\showURL \path|...|} \fi +%%% where \showURL takes no argument, and +%%% normally expands to the 4-character string +%%% URL. The grouping braces ensure that +%%% any font changes made by \showURL remain +%%% localized. Vertical bar is chosen as the +%%% verbatim path delimiter, because it cannot +%%% appear in URLs. The other prohibited ISO +%%% Latin 1 characters are the non-printing +%%% control characters 0..31, plus those in the +%%% range 128..255, plus the ten special +%%% characters +%%% +%%% { } [ ] \ ^ ~ < > ` +%%% +%%% See Internet RFC 1630 (June 1994) for more +%%% details. (Backquote is not even mentioned +%%% there.) +%%% +%%% As an example of font changes, in LaTeX 2e +%%% you might define +%%% \newcommand{\showURL}{URL +%%% \let \oldtt = \tt +%%% \renewcommand{\tt}{\oldtt \itshape}} +%%% to get URLs set in a typewriter italic font. +%%% +%%% If desired, a sed script can be used to +%%% eliminate non-essential comments (this +%%% reduces the file size by 2/3); a command +%%% filter step like +%%% sed -e '/^%$/d' -e '/^%[^%].*$/d' +%%% will accomplish that job. +%%% +%%% The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility." +%%% } +%%% ==================================================================== +%%% Revision history (reverse time order): +%%% +%%% 2.03 [15-May-1996] +%%% Add CODEN support, ISBN and ISSN output for Article entries, +%%% and ISBN output for TechReport entries (yes, these sometimes +%%% do have ISBNs). +%%% +%%% Add wrapper macros \showXYZ{} (XYZ = CODEN, ISBN, ISSN, LCCN, +%%% PRICE, and URL) defined inside the thebibliography environment +%%% to expand to XYZ (except for PRICE) and their arguments, +%%% PROVIDED they are not already defined. That way, the user can +%%% provide alternate definitions outside the thebibliography +%%% environment, for example, to suppress particular ones, or +%%% to alter the font used. +%%% +%%% Substantially revise leading comments to better document the +%%% extensions. +%%% +%%% 2.02 [01-Apr-1996] +%%% Add day keyword support with new code in format.date function. +%%% Oren Patashnik will include this new keyword in standard styles +%%% in BibTeX 1.0. +%%% +%%% Add new function collapse.pagerange, and use it to collapse +%%% page ranges with identical initial and final numbers to a +%%% single number, so that bibliography files can distinguish +%%% between one-page documents, and documents missing final page +%%% numbers. +%%% +%%% 2.01 [25-Oct-1994] +%%% Add URL output support. +%%% +%%% 2.00 [12-Oct-1994] +%%% Add support for pages in theses and manuals, treating them +%%% like Book and InBook pages. +%%% +%%% Correct ISSN support: a typo caused output of ISBN instead of +%%% ISSN. +%%% +%%% Wherever ISBNs are output, also output an ISSN, if one +%%% exists, and vice versa. The reason is that some periodicals +%%% (e.g. The X Resource, published by O'Reilly and Associates) +%%% have both ISSN and ISBN numbers, and can be purchased either +%%% as journal subscriptions, or as single volumes. +%%% +%%% For InProceedings and Proceedings output, issue a warning for +%%% a missing publisher: even though that field is optional, a +%%% bibliographic reference without it is incomplete. +%%% +%%% Remove harmless, but unneeded, single horizontal space before +%%% price output added with version 1.03. +%%% +%%% Change Proceedings and InProceedings to treat address values +%%% as publisher addresses, as they are with every other document +%%% type, rather than as conference addresses, which belong in +%%% the title field (that is how major libraries, including OCLC +%%% and Library of Congress, with nearly 60M holdings, represent +%%% them). The need for this change has been discussed with +%%% BibTeX's author, Oren Patashnik, and there is a good +%%% possibility that BibTeX 1.0 will contain the change +%%% implemented here. This is an INCOMPATIBLE change that will +%%% produce different .bbl file formatting. However, the TUG and +%%% BibNet bibliography projects have consistently used address +%%% to me publisher/organization/institution address, and so +%%% already conform to the new practice. +%%% +%%% 1.05 [30-May-1994] +%%% Add NUMERIC_SUFFIXES support. +%%% +%%% Change all preprocessor statements to put else and endif +%%% labels inside C-style comments to conform to 1989 ISO/ANSI C +%%% Standard. +%%% +%%% 1.04 [11-Nov-1993] +%%% Add underscore prefix to new processor symbols to prevent +%%% substitution in comments +%%% +%%% 1.03 [11-Oct-1993] +%%% Add support for LCCN (Library of Congress Catalog Number) +%%% and price fields, and make ISBN, ISSN, LCCN, and price +%%% selectable by preprocessor conditionals. +%%% +%%% 1.02 [12-Sep-1991] +%%% Merge in Barbara N. Beeton's suggestion for hyphen-less +%%% line breaks around volume(number):page. +%%% +%%% 1.01 [10-Sep-1991] +%%% Update file comment header and use Solovay checksum program. +%%% +%%% 1.00 [17-Oct-1990] +%%% Original version merging hand-edits of is-xxx.bst files into +%%% this master file, xbtxbst.doc. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% BibTeX `plain' family +%% version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09. +%% Copyright (C) 1985, all rights reserved. +%% Copying of this file is authorized only if either +%% (1) you make absolutely no changes to your copy, including name, or +%% (2) if you do make changes, you name it something other than +%% btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. +%% This restriction helps ensure that all standard styles are identical. +%% The file btxbst.doc has the documentation for this style. + + + + + + + + + + + + + + + +ENTRY + { address + author + booktitle + chapter + + coden + + day + edition + editor + howpublished + institution + + isbn + + + issn + + journal + key + + lccn + + month + note + number + organization + pages + + price + + publisher + school + series + title + type + + URL + + volume + year + } + {} + + + { label extra.label sort.label } + + + + +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 { b e new.pages original.t 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 {output.bibitem} +{ newline$ + + "\bibitem[" write$ + label write$ + "]{" write$ + + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + + +FUNCTION {format.coden} +{ coden empty$ + { "" } + { new.block "\showCODEN{" coden * "}" *} + if$ +} + + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { new.block "\showISBN{" isbn * "}" *} + if$ +} + + + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { new.block "\showISSN{" issn * "}" *} + if$ +} + + + +FUNCTION {format.lccn} +{ lccn empty$ + { "" } + { new.block "\showLCCN{" lccn * "}" *} + if$ +} + + + +FUNCTION {format.price} +{ price empty$ + { "" } + { new.block "\showPRICE{" price * "}" *} + if$ +} + + + +FUNCTION {format.url} +{ url empty$ + { "" } + { new.block "\ifshowURL {\showURL \path|" url * "|}\fi" *} + if$ +} + + + + +FUNCTION {format.title} +{ title empty$ + { "" } + + { title "t" change.case$ } + + if$ +} + + + +FUNCTION {collapse.pagerange} +{ 't := % save input page range string + t 'original.t := % save original page range + "" 'b := % beginning page number + "" 'e := % ending page number + { t empty$ not } % while-loop Boolean condition + { % while-loop body + t #1 #2 substring$ "--" = % have we found the en-dash? + { + t #3 global.max$ substring$ 'e := % yes, save ending page number + "" 't := % and set t to empty string to terminate loop + } + { + b t #1 #1 substring$ * 'b := % no, just accumulate this character + t #2 global.max$ substring$ 't := % and set t to the remaining string + } + if$ + } + while$ % on exit, t has ending page number string + e b = % are beginning and ending numbers the same? + { b } % yes, return the beginning page number string + { original.t } % no, return the original page number string + if$ +} + + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { + day empty$ + { "" } + { "there's a day but no month or year in " cite$ * warning$ } + if$ + } + { "there's a month but no year in " cite$ * warning$ + month + day empty$ + { } + { " " * day * } + if$ + } + if$ + } + { month empty$ + { + day empty$ + { year } + { "there's a day and year but no month in " cite$ * warning$ } + if$ + } + { + month " " * + day empty$ + { } + { day * ", " * } + if$ + year * + } + if$ + } + if$ +} + + +FUNCTION {format.btitle} +{ title emphasize +} + + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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.book.pages} +{ pages empty$ + { "" } + { new.block pages " pp." * } + if$ +} + + + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { + pages multi.page.check + { pages collapse.pagerange 'new.pages := } + { pages 'new.pages := } + if$ + new.pages multi.page.check + { "pages" new.pages n.dashify tie.or.space.connect } + { "page" new.pages tie.or.space.connect } + if$ + } + if$ +} + + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "\penalty0 (" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":\penalty0 " * pages collapse.pagerange n.dashify * } + if$ + } + if$ +} + + + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + + key empty$ not and + + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + + format.coden output + + + format.isbn output + + + format.issn output + + + format.url output + + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + + format.coden output + + + format.isbn output + + + format.issn output + + + format.book.pages output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + + format.coden output + + + format.isbn output + + + format.issn output + + + format.book.pages output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + + format.coden output + + + format.isbn output + + + format.issn output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + + format.coden output + + + format.isbn output + + + format.issn output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher "publisher" output.check + format.date "year" output.check + } + { new.sentence + organization output + publisher "publisher" output.check + address output.nonnull + format.date "year" output.check + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + + format.coden output + + + format.isbn output + + + format.issn output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {conference} { inproceedings } + + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + + format.book.pages output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + + format.book.pages output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + + format.coden output + + + format.isbn output + + + format.issn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry + empty.misc.check +} + + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + + format.book.pages output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {periodical} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + title emphasize "title" output.check + format.vol.num.pages output + format.date output + + format.coden output + + + format.isbn output + + + format.issn output + + + format.price output + + + format.url output + + new.sentence + publisher output + address output + howpublished new.block.checka + howpublished output + new.block + note output + fin.entry +} + + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher "publisher" output.check %%% <- new check for missing + format.date "year" output.check + } + { new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher "publisher" output.check + address output.nonnull + format.date "year" output.check + } + if$ + + format.coden output + + + format.isbn output + + + format.issn output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + + format.isbn output % NB: TechReports occasionally have ISBNs + + + format.book.pages output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + + format.url output + + fin.entry +} + + +FUNCTION {default.type} { misc } + + + + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + + + + + + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + + + + +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$ +} + + + + + + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + + { cite$ #1 #3 substring$ } + + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + + { cite$ #1 #3 substring$ } + + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + + { cite$ #1 #3 substring$ } + + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + + { cite$ #1 #3 substring$ } + + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + + + + + + + + + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + + +FUNCTION {presort} + +{ calc.label + sort.label + " " + * + type$ "book" = + + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + + * + + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + + +SORT + + + + + + + + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.label = + { last.extra.num #1 + 'last.extra.num := + + last.extra.num "z" chr.to.int$ > + + % Generate -1, -2, ... suffixes + { "-" last.extra.num "a" chr.to.int$ - #1 + int.to.str$ * 'extra.label := } + % Generate a, b, ..., z suffixes + { last.extra.num int.to.chr$ 'extra.label := } + if$ + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ + + next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + + + + + + +FUNCTION {begin.bib} + +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + + "\ifx \showCODEN \undefined \def \showCODEN #1{CODEN #1} \fi" write$ newline$ + + + "\ifx \showISBN \undefined \def \showISBN #1{ISBN #1} \fi" write$ newline$ + + + "\ifx \showISSN \undefined \def \showISSN #1{ISSN #1} \fi" write$ newline$ + + + "\ifx \showLCCN \undefined \def \showLCCN #1{LCCN #1} \fi" write$ newline$ + + + "\ifx \showPRICE \undefined \def \showPRICE #1{#1} \fi" write$ newline$ + + + "\ifx \showURL \undefined \def \showURL {URL } \fi" write$ newline$ + "\ifx \path \undefined \input path.sty \fi" write$ newline$ + "\ifx \ifshowURL \undefined" write$ newline$ + " \newif \ifshowURL" write$ newline$ + " \showURLtrue" write$ newline$ + "\fi" write$ newline$ + +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + + +ITERATE {call.type$} + + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/is-plain.bst b/Master/texmf-dist/bibtex/bst/beebe/is-plain.bst new file mode 100644 index 00000000000..8e044f2cc60 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/is-plain.bst @@ -0,0 +1,1835 @@ +%% ===================================================================== +%% WARNING: Do NOT edit this file. It was produced automatically by +%% Nelson H. F. Beebe +%% from file://plot79.math.utah.edu/u/sy/beebe/tex/bib/merge/xbtxbst.doc +%% on Wed May 15 10:36:06 MDT 1996. +%% ===================================================================== +%%%===================================================================== +%%% @BibTeX-style-file{ +%%% author = "Nelson H. F. Beebe", +%%% version = "2.03", +%%% date = "15 May 1996", +%%% time = "10:35:51 MDT", +%%% filename = "is-plain.bst", +%%% address = "Center for Scientific Computing +%%% Department of Mathematics +%%% University of Utah +%%% Salt Lake City, UT 84112 +%%% USA", +%%% telephone = "+1 801 581 5254", +%%% FAX = "+1 801 581 4148", +%%% URL = "http://www.math.utah.edu/~beebe", +%%% checksum = "22091 1835 4654 37711", +%%% email = "beebe@math.utah.edu (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "BibTeX, style, bibliography", +%%% supported = "yes", +%%% docstring = "This file is a modification of the standard +%%% BibTeX btxbst.doc file, or is a .bst file +%%% derived from that modification. It contains +%%% optional added support for CODEN, ISBN, ISSN, +%%% LCCN, and PRICE fields, extended PAGES +%%% fields, the PERIODICAL entry, and extended +%%% citation label suffixing. +%%% +%%% In addition, date formatting supports a day +%%% keyword, so that bibliography entries can be +%%% written with +%%% +%%% day = {23}, +%%% month = aug, +%%% +%%% instead of the language-dependent awkward +%%% forms required by the standard styles +%%% +%%% month = {23~} # aug, +%%% month = aug # {~23}, +%%% +%%% These older forms are, of course, still +%%% handled correctly. +%%% +%%% The UNIX C preprocessor can be used to +%%% extract the standard styles, as follows: +%%% +%%% cpp -P -DPLAIN xbtxbst.doc >plain.bst +%%% cpp -P -DUNSRT xbtxbst.doc >unsrt.bst +%%% cpp -P -DALPHA xbtxbst.doc >alpha.bst +%%% cpp -P -DABBRV xbtxbst.doc >abbrv.bst +%%% +%%% To obtain correct file header checksums, pipe +%%% the output through the checksum program, e.g. +%%% +%%% cpp -P -DPLAIN xbtxbst.doc | checksum >plain.bst +%%% +%%% The accompanying UNIX Makefile automates this +%%% job, and provides some extra leading comments +%%% in the generated style files warning the user +%%% not to modify them. +%%% +%%% Additional optional definitions are recognized +%%% to provide extensions to the standard styles: +%%% +%%% -D_CODEN for CODEN output +%%% +%%% -D_ISBN for ISBN output +%%% +%%% -D_ISSN for ISSN output +%%% +%%% -D_LCCN for LCCN output +%%% +%%% -D_PRICE for price output, +%%% +%%% -D_BOOKPAGES for book, techreport, manual, +%%% and thesis pages output. +%%% +%%% -D_URL to get World-Wide Web Uniform +%%% Resource Locator (URL) output. +%%% +%%% -D_NUMERIC_SUFFIXES to get numeric +%%% label suffixes -1, -2, ..., -26, instead of +%%% letters a, b, ..., z, so as to correctly +%%% handle alpha-style bibliographies with more +%%% than 26 entries for a single author in one +%%% year. Change letter suffix code to switch +%%% to numeric suffixes if more than 26 letters +%%% are used, so that no matter which scheme is +%%% selected, correct output will always be +%%% obtained. +%%% +%%% The CODEN, ISBN, ISSN, LCCN, PRICE, and URL +%%% values are wrapped inside macros \showCODEN{} +%%% etc. that the user can provide alternate +%%% definitions of to change the formatting, or +%%% to suppress their output altogether. That +%%% way, output identical to that of the four +%%% standard BibTeX style files can be obtained +%%% with these extended files, if these macros +%%% are defined to expand to empty strings. +%%% +%%% URL handling is slightly more complex, +%%% because URLs can contain characters which TeX +%%% must handle in verbatim mode in a typewriter +%%% font, and such text cannot readily appear +%%% inside nested macro arguments. Consequently, +%%% URLs are formatted in the .bbl file like +%%% this: +%%% \ifshowURL {\showURL \path|...|} \fi +%%% where \showURL takes no argument, and +%%% normally expands to the 4-character string +%%% URL. The grouping braces ensure that +%%% any font changes made by \showURL remain +%%% localized. Vertical bar is chosen as the +%%% verbatim path delimiter, because it cannot +%%% appear in URLs. The other prohibited ISO +%%% Latin 1 characters are the non-printing +%%% control characters 0..31, plus those in the +%%% range 128..255, plus the ten special +%%% characters +%%% +%%% { } [ ] \ ^ ~ < > ` +%%% +%%% See Internet RFC 1630 (June 1994) for more +%%% details. (Backquote is not even mentioned +%%% there.) +%%% +%%% As an example of font changes, in LaTeX 2e +%%% you might define +%%% \newcommand{\showURL}{URL +%%% \let \oldtt = \tt +%%% \renewcommand{\tt}{\oldtt \itshape}} +%%% to get URLs set in a typewriter italic font. +%%% +%%% If desired, a sed script can be used to +%%% eliminate non-essential comments (this +%%% reduces the file size by 2/3); a command +%%% filter step like +%%% sed -e '/^%$/d' -e '/^%[^%].*$/d' +%%% will accomplish that job. +%%% +%%% The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility." +%%% } +%%% ==================================================================== +%%% Revision history (reverse time order): +%%% +%%% 2.03 [15-May-1996] +%%% Add CODEN support, ISBN and ISSN output for Article entries, +%%% and ISBN output for TechReport entries (yes, these sometimes +%%% do have ISBNs). +%%% +%%% Add wrapper macros \showXYZ{} (XYZ = CODEN, ISBN, ISSN, LCCN, +%%% PRICE, and URL) defined inside the thebibliography environment +%%% to expand to XYZ (except for PRICE) and their arguments, +%%% PROVIDED they are not already defined. That way, the user can +%%% provide alternate definitions outside the thebibliography +%%% environment, for example, to suppress particular ones, or +%%% to alter the font used. +%%% +%%% Substantially revise leading comments to better document the +%%% extensions. +%%% +%%% 2.02 [01-Apr-1996] +%%% Add day keyword support with new code in format.date function. +%%% Oren Patashnik will include this new keyword in standard styles +%%% in BibTeX 1.0. +%%% +%%% Add new function collapse.pagerange, and use it to collapse +%%% page ranges with identical initial and final numbers to a +%%% single number, so that bibliography files can distinguish +%%% between one-page documents, and documents missing final page +%%% numbers. +%%% +%%% 2.01 [25-Oct-1994] +%%% Add URL output support. +%%% +%%% 2.00 [12-Oct-1994] +%%% Add support for pages in theses and manuals, treating them +%%% like Book and InBook pages. +%%% +%%% Correct ISSN support: a typo caused output of ISBN instead of +%%% ISSN. +%%% +%%% Wherever ISBNs are output, also output an ISSN, if one +%%% exists, and vice versa. The reason is that some periodicals +%%% (e.g. The X Resource, published by O'Reilly and Associates) +%%% have both ISSN and ISBN numbers, and can be purchased either +%%% as journal subscriptions, or as single volumes. +%%% +%%% For InProceedings and Proceedings output, issue a warning for +%%% a missing publisher: even though that field is optional, a +%%% bibliographic reference without it is incomplete. +%%% +%%% Remove harmless, but unneeded, single horizontal space before +%%% price output added with version 1.03. +%%% +%%% Change Proceedings and InProceedings to treat address values +%%% as publisher addresses, as they are with every other document +%%% type, rather than as conference addresses, which belong in +%%% the title field (that is how major libraries, including OCLC +%%% and Library of Congress, with nearly 60M holdings, represent +%%% them). The need for this change has been discussed with +%%% BibTeX's author, Oren Patashnik, and there is a good +%%% possibility that BibTeX 1.0 will contain the change +%%% implemented here. This is an INCOMPATIBLE change that will +%%% produce different .bbl file formatting. However, the TUG and +%%% BibNet bibliography projects have consistently used address +%%% to me publisher/organization/institution address, and so +%%% already conform to the new practice. +%%% +%%% 1.05 [30-May-1994] +%%% Add NUMERIC_SUFFIXES support. +%%% +%%% Change all preprocessor statements to put else and endif +%%% labels inside C-style comments to conform to 1989 ISO/ANSI C +%%% Standard. +%%% +%%% 1.04 [11-Nov-1993] +%%% Add underscore prefix to new processor symbols to prevent +%%% substitution in comments +%%% +%%% 1.03 [11-Oct-1993] +%%% Add support for LCCN (Library of Congress Catalog Number) +%%% and price fields, and make ISBN, ISSN, LCCN, and price +%%% selectable by preprocessor conditionals. +%%% +%%% 1.02 [12-Sep-1991] +%%% Merge in Barbara N. Beeton's suggestion for hyphen-less +%%% line breaks around volume(number):page. +%%% +%%% 1.01 [10-Sep-1991] +%%% Update file comment header and use Solovay checksum program. +%%% +%%% 1.00 [17-Oct-1990] +%%% Original version merging hand-edits of is-xxx.bst files into +%%% this master file, xbtxbst.doc. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% BibTeX `plain' family +%% version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09. +%% Copyright (C) 1985, all rights reserved. +%% Copying of this file is authorized only if either +%% (1) you make absolutely no changes to your copy, including name, or +%% (2) if you do make changes, you name it something other than +%% btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. +%% This restriction helps ensure that all standard styles are identical. +%% The file btxbst.doc has the documentation for this style. + + + + + + + + + + + + + + + + + + + +ENTRY + { address + author + booktitle + chapter + + coden + + day + edition + editor + howpublished + institution + + isbn + + + issn + + journal + key + + lccn + + month + note + number + organization + pages + + price + + publisher + school + series + title + type + + URL + + volume + year + } + {} + + { label } + + + +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 { b e new.pages original.t 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 {output.bibitem} +{ newline$ + + "\bibitem{" write$ + + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + + +FUNCTION {format.coden} +{ coden empty$ + { "" } + { new.block "\showCODEN{" coden * "}" *} + if$ +} + + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { new.block "\showISBN{" isbn * "}" *} + if$ +} + + + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { new.block "\showISSN{" issn * "}" *} + if$ +} + + + +FUNCTION {format.lccn} +{ lccn empty$ + { "" } + { new.block "\showLCCN{" lccn * "}" *} + if$ +} + + + +FUNCTION {format.price} +{ price empty$ + { "" } + { new.block "\showPRICE{" price * "}" *} + if$ +} + + + +FUNCTION {format.url} +{ url empty$ + { "" } + { new.block "\ifshowURL {\showURL \path|" url * "|}\fi" *} + if$ +} + + + + +FUNCTION {format.title} +{ title empty$ + { "" } + + { title "t" change.case$ } + + if$ +} + + + +FUNCTION {collapse.pagerange} +{ 't := % save input page range string + t 'original.t := % save original page range + "" 'b := % beginning page number + "" 'e := % ending page number + { t empty$ not } % while-loop Boolean condition + { % while-loop body + t #1 #2 substring$ "--" = % have we found the en-dash? + { + t #3 global.max$ substring$ 'e := % yes, save ending page number + "" 't := % and set t to empty string to terminate loop + } + { + b t #1 #1 substring$ * 'b := % no, just accumulate this character + t #2 global.max$ substring$ 't := % and set t to the remaining string + } + if$ + } + while$ % on exit, t has ending page number string + e b = % are beginning and ending numbers the same? + { b } % yes, return the beginning page number string + { original.t } % no, return the original page number string + if$ +} + + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { + day empty$ + { "" } + { "there's a day but no month or year in " cite$ * warning$ } + if$ + } + { "there's a month but no year in " cite$ * warning$ + month + day empty$ + { } + { " " * day * } + if$ + } + if$ + } + { month empty$ + { + day empty$ + { year } + { "there's a day and year but no month in " cite$ * warning$ } + if$ + } + { + month " " * + day empty$ + { } + { day * ", " * } + if$ + year * + } + if$ + } + if$ +} + + +FUNCTION {format.btitle} +{ title emphasize +} + + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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.book.pages} +{ pages empty$ + { "" } + { new.block pages " pp." * } + if$ +} + + + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { + pages multi.page.check + { pages collapse.pagerange 'new.pages := } + { pages 'new.pages := } + if$ + new.pages multi.page.check + { "pages" new.pages n.dashify tie.or.space.connect } + { "page" new.pages tie.or.space.connect } + if$ + } + if$ +} + + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "\penalty0 (" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":\penalty0 " * pages collapse.pagerange n.dashify * } + if$ + } + if$ +} + + + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + + key empty$ not and + + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + + format.coden output + + + format.isbn output + + + format.issn output + + + format.url output + + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + + format.coden output + + + format.isbn output + + + format.issn output + + + format.book.pages output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + + format.coden output + + + format.isbn output + + + format.issn output + + + format.book.pages output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + + format.coden output + + + format.isbn output + + + format.issn output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + + format.coden output + + + format.isbn output + + + format.issn output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher "publisher" output.check + format.date "year" output.check + } + { new.sentence + organization output + publisher "publisher" output.check + address output.nonnull + format.date "year" output.check + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + + format.coden output + + + format.isbn output + + + format.issn output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {conference} { inproceedings } + + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + + format.book.pages output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + + format.book.pages output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + + format.coden output + + + format.isbn output + + + format.issn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry + empty.misc.check +} + + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + + format.book.pages output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {periodical} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + title emphasize "title" output.check + format.vol.num.pages output + format.date output + + format.coden output + + + format.isbn output + + + format.issn output + + + format.price output + + + format.url output + + new.sentence + publisher output + address output + howpublished new.block.checka + howpublished output + new.block + note output + fin.entry +} + + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher "publisher" output.check %%% <- new check for missing + format.date "year" output.check + } + { new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher "publisher" output.check + address output.nonnull + format.date "year" output.check + } + if$ + + format.coden output + + + format.isbn output + + + format.issn output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + + format.isbn output % NB: TechReports occasionally have ISBNs + + + format.book.pages output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + + format.url output + + fin.entry +} + + +FUNCTION {default.type} { misc } + + + + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + + + + + + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + + + + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + + +FUNCTION {presort} + +{ type$ "book" = + + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + + +SORT + + + + + + + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + + + + +FUNCTION {begin.bib} + +{ preamble$ empty$ + + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + + "\ifx \showCODEN \undefined \def \showCODEN #1{CODEN #1} \fi" write$ newline$ + + + "\ifx \showISBN \undefined \def \showISBN #1{ISBN #1} \fi" write$ newline$ + + + "\ifx \showISSN \undefined \def \showISSN #1{ISSN #1} \fi" write$ newline$ + + + "\ifx \showLCCN \undefined \def \showLCCN #1{LCCN #1} \fi" write$ newline$ + + + "\ifx \showPRICE \undefined \def \showPRICE #1{#1} \fi" write$ newline$ + + + "\ifx \showURL \undefined \def \showURL {URL } \fi" write$ newline$ + "\ifx \path \undefined \input path.sty \fi" write$ newline$ + "\ifx \ifshowURL \undefined" write$ newline$ + " \newif \ifshowURL" write$ newline$ + " \showURLtrue" write$ newline$ + "\fi" write$ newline$ + +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + + +ITERATE {call.type$} + + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/is-unsrt.bst b/Master/texmf-dist/bibtex/bst/beebe/is-unsrt.bst new file mode 100644 index 00000000000..6d7b4dd5790 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/is-unsrt.bst @@ -0,0 +1,1673 @@ +%% ===================================================================== +%% WARNING: Do NOT edit this file. It was produced automatically by +%% Nelson H. F. Beebe +%% from file://plot79.math.utah.edu/u/sy/beebe/tex/bib/merge/xbtxbst.doc +%% on Wed May 15 10:36:08 MDT 1996. +%% ===================================================================== +%%%===================================================================== +%%% @BibTeX-style-file{ +%%% author = "Nelson H. F. Beebe", +%%% version = "2.03", +%%% date = "15 May 1996", +%%% time = "10:35:51 MDT", +%%% filename = "is-unsrt.bst", +%%% address = "Center for Scientific Computing +%%% Department of Mathematics +%%% University of Utah +%%% Salt Lake City, UT 84112 +%%% USA", +%%% telephone = "+1 801 581 5254", +%%% FAX = "+1 801 581 4148", +%%% URL = "http://www.math.utah.edu/~beebe", +%%% checksum = "64263 1673 4293 35112", +%%% email = "beebe@math.utah.edu (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "BibTeX, style, bibliography", +%%% supported = "yes", +%%% docstring = "This file is a modification of the standard +%%% BibTeX btxbst.doc file, or is a .bst file +%%% derived from that modification. It contains +%%% optional added support for CODEN, ISBN, ISSN, +%%% LCCN, and PRICE fields, extended PAGES +%%% fields, the PERIODICAL entry, and extended +%%% citation label suffixing. +%%% +%%% In addition, date formatting supports a day +%%% keyword, so that bibliography entries can be +%%% written with +%%% +%%% day = {23}, +%%% month = aug, +%%% +%%% instead of the language-dependent awkward +%%% forms required by the standard styles +%%% +%%% month = {23~} # aug, +%%% month = aug # {~23}, +%%% +%%% These older forms are, of course, still +%%% handled correctly. +%%% +%%% The UNIX C preprocessor can be used to +%%% extract the standard styles, as follows: +%%% +%%% cpp -P -DPLAIN xbtxbst.doc >plain.bst +%%% cpp -P -DUNSRT xbtxbst.doc >unsrt.bst +%%% cpp -P -DALPHA xbtxbst.doc >alpha.bst +%%% cpp -P -DABBRV xbtxbst.doc >abbrv.bst +%%% +%%% To obtain correct file header checksums, pipe +%%% the output through the checksum program, e.g. +%%% +%%% cpp -P -DPLAIN xbtxbst.doc | checksum >plain.bst +%%% +%%% The accompanying UNIX Makefile automates this +%%% job, and provides some extra leading comments +%%% in the generated style files warning the user +%%% not to modify them. +%%% +%%% Additional optional definitions are recognized +%%% to provide extensions to the standard styles: +%%% +%%% -D_CODEN for CODEN output +%%% +%%% -D_ISBN for ISBN output +%%% +%%% -D_ISSN for ISSN output +%%% +%%% -D_LCCN for LCCN output +%%% +%%% -D_PRICE for price output, +%%% +%%% -D_BOOKPAGES for book, techreport, manual, +%%% and thesis pages output. +%%% +%%% -D_URL to get World-Wide Web Uniform +%%% Resource Locator (URL) output. +%%% +%%% -D_NUMERIC_SUFFIXES to get numeric +%%% label suffixes -1, -2, ..., -26, instead of +%%% letters a, b, ..., z, so as to correctly +%%% handle alpha-style bibliographies with more +%%% than 26 entries for a single author in one +%%% year. Change letter suffix code to switch +%%% to numeric suffixes if more than 26 letters +%%% are used, so that no matter which scheme is +%%% selected, correct output will always be +%%% obtained. +%%% +%%% The CODEN, ISBN, ISSN, LCCN, PRICE, and URL +%%% values are wrapped inside macros \showCODEN{} +%%% etc. that the user can provide alternate +%%% definitions of to change the formatting, or +%%% to suppress their output altogether. That +%%% way, output identical to that of the four +%%% standard BibTeX style files can be obtained +%%% with these extended files, if these macros +%%% are defined to expand to empty strings. +%%% +%%% URL handling is slightly more complex, +%%% because URLs can contain characters which TeX +%%% must handle in verbatim mode in a typewriter +%%% font, and such text cannot readily appear +%%% inside nested macro arguments. Consequently, +%%% URLs are formatted in the .bbl file like +%%% this: +%%% \ifshowURL {\showURL \path|...|} \fi +%%% where \showURL takes no argument, and +%%% normally expands to the 4-character string +%%% URL. The grouping braces ensure that +%%% any font changes made by \showURL remain +%%% localized. Vertical bar is chosen as the +%%% verbatim path delimiter, because it cannot +%%% appear in URLs. The other prohibited ISO +%%% Latin 1 characters are the non-printing +%%% control characters 0..31, plus those in the +%%% range 128..255, plus the ten special +%%% characters +%%% +%%% { } [ ] \ ^ ~ < > ` +%%% +%%% See Internet RFC 1630 (June 1994) for more +%%% details. (Backquote is not even mentioned +%%% there.) +%%% +%%% As an example of font changes, in LaTeX 2e +%%% you might define +%%% \newcommand{\showURL}{URL +%%% \let \oldtt = \tt +%%% \renewcommand{\tt}{\oldtt \itshape}} +%%% to get URLs set in a typewriter italic font. +%%% +%%% If desired, a sed script can be used to +%%% eliminate non-essential comments (this +%%% reduces the file size by 2/3); a command +%%% filter step like +%%% sed -e '/^%$/d' -e '/^%[^%].*$/d' +%%% will accomplish that job. +%%% +%%% The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility." +%%% } +%%% ==================================================================== +%%% Revision history (reverse time order): +%%% +%%% 2.03 [15-May-1996] +%%% Add CODEN support, ISBN and ISSN output for Article entries, +%%% and ISBN output for TechReport entries (yes, these sometimes +%%% do have ISBNs). +%%% +%%% Add wrapper macros \showXYZ{} (XYZ = CODEN, ISBN, ISSN, LCCN, +%%% PRICE, and URL) defined inside the thebibliography environment +%%% to expand to XYZ (except for PRICE) and their arguments, +%%% PROVIDED they are not already defined. That way, the user can +%%% provide alternate definitions outside the thebibliography +%%% environment, for example, to suppress particular ones, or +%%% to alter the font used. +%%% +%%% Substantially revise leading comments to better document the +%%% extensions. +%%% +%%% 2.02 [01-Apr-1996] +%%% Add day keyword support with new code in format.date function. +%%% Oren Patashnik will include this new keyword in standard styles +%%% in BibTeX 1.0. +%%% +%%% Add new function collapse.pagerange, and use it to collapse +%%% page ranges with identical initial and final numbers to a +%%% single number, so that bibliography files can distinguish +%%% between one-page documents, and documents missing final page +%%% numbers. +%%% +%%% 2.01 [25-Oct-1994] +%%% Add URL output support. +%%% +%%% 2.00 [12-Oct-1994] +%%% Add support for pages in theses and manuals, treating them +%%% like Book and InBook pages. +%%% +%%% Correct ISSN support: a typo caused output of ISBN instead of +%%% ISSN. +%%% +%%% Wherever ISBNs are output, also output an ISSN, if one +%%% exists, and vice versa. The reason is that some periodicals +%%% (e.g. The X Resource, published by O'Reilly and Associates) +%%% have both ISSN and ISBN numbers, and can be purchased either +%%% as journal subscriptions, or as single volumes. +%%% +%%% For InProceedings and Proceedings output, issue a warning for +%%% a missing publisher: even though that field is optional, a +%%% bibliographic reference without it is incomplete. +%%% +%%% Remove harmless, but unneeded, single horizontal space before +%%% price output added with version 1.03. +%%% +%%% Change Proceedings and InProceedings to treat address values +%%% as publisher addresses, as they are with every other document +%%% type, rather than as conference addresses, which belong in +%%% the title field (that is how major libraries, including OCLC +%%% and Library of Congress, with nearly 60M holdings, represent +%%% them). The need for this change has been discussed with +%%% BibTeX's author, Oren Patashnik, and there is a good +%%% possibility that BibTeX 1.0 will contain the change +%%% implemented here. This is an INCOMPATIBLE change that will +%%% produce different .bbl file formatting. However, the TUG and +%%% BibNet bibliography projects have consistently used address +%%% to me publisher/organization/institution address, and so +%%% already conform to the new practice. +%%% +%%% 1.05 [30-May-1994] +%%% Add NUMERIC_SUFFIXES support. +%%% +%%% Change all preprocessor statements to put else and endif +%%% labels inside C-style comments to conform to 1989 ISO/ANSI C +%%% Standard. +%%% +%%% 1.04 [11-Nov-1993] +%%% Add underscore prefix to new processor symbols to prevent +%%% substitution in comments +%%% +%%% 1.03 [11-Oct-1993] +%%% Add support for LCCN (Library of Congress Catalog Number) +%%% and price fields, and make ISBN, ISSN, LCCN, and price +%%% selectable by preprocessor conditionals. +%%% +%%% 1.02 [12-Sep-1991] +%%% Merge in Barbara N. Beeton's suggestion for hyphen-less +%%% line breaks around volume(number):page. +%%% +%%% 1.01 [10-Sep-1991] +%%% Update file comment header and use Solovay checksum program. +%%% +%%% 1.00 [17-Oct-1990] +%%% Original version merging hand-edits of is-xxx.bst files into +%%% this master file, xbtxbst.doc. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% BibTeX `plain' family +%% version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09. +%% Copyright (C) 1985, all rights reserved. +%% Copying of this file is authorized only if either +%% (1) you make absolutely no changes to your copy, including name, or +%% (2) if you do make changes, you name it something other than +%% btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. +%% This restriction helps ensure that all standard styles are identical. +%% The file btxbst.doc has the documentation for this style. + + + + + + + + + + + + + +ENTRY + { address + author + booktitle + chapter + + coden + + day + edition + editor + howpublished + institution + + isbn + + + issn + + journal + key + + lccn + + month + note + number + organization + pages + + price + + publisher + school + series + title + type + + URL + + volume + year + } + {} + + { label } + + + +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 { b e new.pages original.t 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 {output.bibitem} +{ newline$ + + "\bibitem{" write$ + + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + + +FUNCTION {format.coden} +{ coden empty$ + { "" } + { new.block "\showCODEN{" coden * "}" *} + if$ +} + + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { new.block "\showISBN{" isbn * "}" *} + if$ +} + + + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { new.block "\showISSN{" issn * "}" *} + if$ +} + + + +FUNCTION {format.lccn} +{ lccn empty$ + { "" } + { new.block "\showLCCN{" lccn * "}" *} + if$ +} + + + +FUNCTION {format.price} +{ price empty$ + { "" } + { new.block "\showPRICE{" price * "}" *} + if$ +} + + + +FUNCTION {format.url} +{ url empty$ + { "" } + { new.block "\ifshowURL {\showURL \path|" url * "|}\fi" *} + if$ +} + + + + +FUNCTION {format.title} +{ title empty$ + { "" } + + { title "t" change.case$ } + + if$ +} + + + +FUNCTION {collapse.pagerange} +{ 't := % save input page range string + t 'original.t := % save original page range + "" 'b := % beginning page number + "" 'e := % ending page number + { t empty$ not } % while-loop Boolean condition + { % while-loop body + t #1 #2 substring$ "--" = % have we found the en-dash? + { + t #3 global.max$ substring$ 'e := % yes, save ending page number + "" 't := % and set t to empty string to terminate loop + } + { + b t #1 #1 substring$ * 'b := % no, just accumulate this character + t #2 global.max$ substring$ 't := % and set t to the remaining string + } + if$ + } + while$ % on exit, t has ending page number string + e b = % are beginning and ending numbers the same? + { b } % yes, return the beginning page number string + { original.t } % no, return the original page number string + if$ +} + + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { + day empty$ + { "" } + { "there's a day but no month or year in " cite$ * warning$ } + if$ + } + { "there's a month but no year in " cite$ * warning$ + month + day empty$ + { } + { " " * day * } + if$ + } + if$ + } + { month empty$ + { + day empty$ + { year } + { "there's a day and year but no month in " cite$ * warning$ } + if$ + } + { + month " " * + day empty$ + { } + { day * ", " * } + if$ + year * + } + if$ + } + if$ +} + + +FUNCTION {format.btitle} +{ title emphasize +} + + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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.book.pages} +{ pages empty$ + { "" } + { new.block pages " pp." * } + if$ +} + + + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { + pages multi.page.check + { pages collapse.pagerange 'new.pages := } + { pages 'new.pages := } + if$ + new.pages multi.page.check + { "pages" new.pages n.dashify tie.or.space.connect } + { "page" new.pages tie.or.space.connect } + if$ + } + if$ +} + + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "\penalty0 (" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":\penalty0 " * pages collapse.pagerange n.dashify * } + if$ + } + if$ +} + + + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + + + + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + + format.coden output + + + format.isbn output + + + format.issn output + + + format.url output + + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + + format.coden output + + + format.isbn output + + + format.issn output + + + format.book.pages output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + + format.coden output + + + format.isbn output + + + format.issn output + + + format.book.pages output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + + format.coden output + + + format.isbn output + + + format.issn output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + + format.coden output + + + format.isbn output + + + format.issn output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher "publisher" output.check + format.date "year" output.check + } + { new.sentence + organization output + publisher "publisher" output.check + address output.nonnull + format.date "year" output.check + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + + format.coden output + + + format.isbn output + + + format.issn output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {conference} { inproceedings } + + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + + format.book.pages output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + + format.book.pages output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + + format.coden output + + + format.isbn output + + + format.issn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry + empty.misc.check +} + + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + + format.book.pages output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {periodical} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + title emphasize "title" output.check + format.vol.num.pages output + format.date output + + format.coden output + + + format.isbn output + + + format.issn output + + + format.price output + + + format.url output + + new.sentence + publisher output + address output + howpublished new.block.checka + howpublished output + new.block + note output + fin.entry +} + + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher "publisher" output.check %%% <- new check for missing + format.date "year" output.check + } + { new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher "publisher" output.check + address output.nonnull + format.date "year" output.check + } + if$ + + format.coden output + + + format.isbn output + + + format.issn output + + + format.lccn output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + + format.isbn output % NB: TechReports occasionally have ISBNs + + + format.book.pages output + + + format.price output + + + format.url output + + new.block + note output + fin.entry +} + + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + + format.url output + + fin.entry +} + + +FUNCTION {default.type} { misc } + + + + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + + + + + + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + + + + +READ + + + + + + + + + + + + + + + + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + + + + +FUNCTION {begin.bib} + +{ preamble$ empty$ + + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + + "\ifx \showCODEN \undefined \def \showCODEN #1{CODEN #1} \fi" write$ newline$ + + + "\ifx \showISBN \undefined \def \showISBN #1{ISBN #1} \fi" write$ newline$ + + + "\ifx \showISSN \undefined \def \showISSN #1{ISSN #1} \fi" write$ newline$ + + + "\ifx \showLCCN \undefined \def \showLCCN #1{LCCN #1} \fi" write$ newline$ + + + "\ifx \showPRICE \undefined \def \showPRICE #1{#1} \fi" write$ newline$ + + + "\ifx \showURL \undefined \def \showURL {URL } \fi" write$ newline$ + "\ifx \path \undefined \input path.sty \fi" write$ newline$ + "\ifx \ifshowURL \undefined" write$ newline$ + " \newif \ifshowURL" write$ newline$ + " \showURLtrue" write$ newline$ + "\fi" write$ newline$ + +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + + +ITERATE {call.type$} + + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/jas99.bst b/Master/texmf-dist/bibtex/bst/beebe/jas99.bst new file mode 100644 index 00000000000..ca4a4dc1299 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/jas99.bst @@ -0,0 +1,1336 @@ +% Attempted hack to create BibTeX `jas' style for BibTeX version 0.99c +% Journal of Atmospheric Science, Journal of Applied Meteorology +% Monthly Weather Review +% by Mike Moran, Dept. of Atmospheric Science, Colorado State University +% based on `newapa' style file. Changes are documented. March 9, 1990 +% Submitted 20-JUL-1993 by Piotr J. Flatau +% e-mail for Mike Moran: +% ======================================================================== +% +% BibTeX `newapa' style file for BibTeX version 0.99c, LaTeX version 2.09 +% Place it in a file called newapa.bst in the BibTeX search path. +%(Placing it in the same directory as the LaTeX document should also work.) +% Support for named citations is provided by named.sty + +% This version was made by modifying the master file made by +% Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU), and the 'named' BibTeX +% style of Peter F. Patel-Schneider. + +% Copyright (C) 1985, all rights reserved. +% Modifications Copyright 1989, 1990, Stephen N. Spencer +% Copying of this file is authorized only if either +% (1) you make absolutely no changes to your copy, including name, or +% (2) if you do make changes, you name it something other than +% btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. +% This restriction helps ensure that all standard styles are identical. + +% There are undoubtably bugs in this style. If you make bug fixes, +% improvements, etc. please let me know. My e-mail address is: +% spencer@heinlein.cgrg.ohio.state.edu +% +% Citation format: (author-last-name, year) +% (author-last-name and author-last-name, year) +% (author-last-name {\em et al.}, year) +% (author-last-name) +% (author-last-name and author-last-name) +% (author-last-name {\em et al.}) +% (year) +% +% Reference list ordering: alphabetical by author or whatever passes +% for author in the absence of one. +% +% This BibTeX style has support for abbreviated author lists and for +% year-only citations. This is done by having the citations +% actually look like +% +% \citeauthoryear{full-author-info}{abbrev-author-info}{year} +% +% The LaTeX style has to have the following (or similar) +% +% \let\@internalcite\cite +% \def\fullcite{\def\citeauthoryear##1##2##3{##1, ##3}\@internalcite} +% \def\fullciteA{\def\citeauthoryear##1##2##3{##1}\@internalcite} +% \def\shortcite{\def\citeauthoryear##1##2##3{##2, ##3}\@internalcite} +% \def\shortciteA{\def\citeauthoryear##1##2##3{##2}\@internalcite} +% \def\citeyear{\def\citeauthoryear##1##2##3{##3}\@internalcite} +% + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key +% month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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 u } + +%% Added this function March 9, 1990. Used in FUNCTION format.vol.num.pages +FUNCTION {boldcize} +{ 's := + s "" = + { "" } + { "{\bf " s * "}" * } + if$ +} + +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 +} + +%% Added this entire function based on JAS98.BST (March 10, 1990) +FUNCTION {output.nonnull1} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { write$ %% This is only difference + 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$ +} + +%% Added this function based on JAS98.BST (March 10, 1990) +FUNCTION {output.check1} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull1 %% Only difference + if$ +} + +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ +%% " (" year * extra.label * ") " * + ", " year * extra.label * ": " * +%% March 9, 1990 + mid.sentence 'output.state := + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := % nameptr = 1; + s num.names$ 'numnames := % numnames = num.name$(s); + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := % nameptr += 1; + namesleft #1 - 'namesleft := % namesleft =- 1; + } + while$ +} + +%% Added this entire function based on JAS98.BST (March 10, 1990) +FUNCTION {format.names.reverse1} +{ 's := + #1 'nameptr := % nameptr = 1 (name pointer variable); + s num.names$ 'numnames := % numnames = num.name$(s); + numnames 'namesleft := % namesleft = numnames (names left variable); + { namesleft #0 > } + +%% So long as "namesleft" is positive, execute following function + { +%% s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % Set name format + + nameptr #1 > +%% ** Co-authors section + { + s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := % Set name format + namesleft #1 > +%% ** Not last author + { ", " * t * } +%% ** Last author + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } +%% ** First author section + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % Set name format + t + } + if$ + nameptr #1 + 'nameptr := % nameptr += 1; + namesleft #1 - 'namesleft := % namesleft =- 1; + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } +%% { author format.names } + { author format.names.reverse1 } +%% March 10, 1990 + if$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + + { title "t" change.case$ } + + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check +%% { "pages" pages n.dashify tie.or.space.connect } +%% { "page" pages tie.or.space.connect } + { pages n.dashify tie.or.space.connect } + { pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +%%{ volume field.or.null +{volume field.or.null boldcize %% March 9, 1990 + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } +%% { ":" * pages n.dashify * } + { ", " * pages n.dashify * } %% March 9, 1990 + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } +%% { "In " format.editors * ", " * booktitle emphasize * } + { "In " booktitle emphasize * ", " * format.editors * } +%% March 11, 1990 + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "In" + "\cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ "In" + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output % added + output.year.check % added + new.block +%% format.title "title" output.check + format.title "title" output.check1 %% March 10, 1990 + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + output.year.check % added + new.block +%% format.btitle "title" output.check + format.btitle "title" output.check1 %% March 11, 1990 + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + pages output %% March 11, 1990 + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % added + output.year.check % added + new.block +%% format.title "title" output.check + format.title "title" output.check1 %% March 11, 1990 + new.block + howpublished output + address output + pages output %% March 11, 1990 + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + output.year.check % added + new.block +%% format.btitle "title" output.check + format.btitle "title" output.check1 %% March 11, 1990 + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output +%% format.chapter.pages "chapter and pages" output.check + pages output %% March 20, 1990 + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output % added + output.year.check % added + new.block +%% format.title "title" output.check + format.title "title" output.check1 %% March 11, 1990 + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output +%% format.chapter.pages output %% March 20, 1990 + new.sentence + publisher "publisher" output.check + address output + format.edition output + pages output %% March 20, 1990 + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output % added + output.year.check % added + new.block +%% format.title "title" output.check + format.title "title" output.check1 %% March 11, 1990 + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output +%% new.sentence %% March 17, 1990 + organization output + publisher output + address output + pages output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output % added + output.year.check % added + new.block +%% format.btitle "title" output.check + format.btitle "title" output.check1 %% March 11, 1990 + organization address new.block.checkb + organization output + address output + format.edition output + pages output %% March 11, 1990 + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % added + output.year.check % added + new.block +%% format.title "title" output.check + format.title "title" output.check1 %% March 11, 1990 + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + pages output %% March 11, 1990 + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % added + output.year.check % added + title howpublished new.block.checkb +%% format.title output + format.title "title" output.check1 %% March 11, 1990 + new.block + howpublished output + pages output %% March 11, 1990 +%% new.block %% March 17, 1990 + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % added + output.year.check % added + new.block +%% format.btitle "title" output.check + format.btitle "title" output.check1 %% March 11, 1990 + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + pages output %% March 11, 1990 + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + author format.key output % added + output.year.check % added + new.block +%% format.btitle "title" output.check + format.btitle "title" output.check1 %% March 11, 1990 + format.bvolume output + format.number.series output + address output + new.sentence + organization output + publisher output + pages output %% March 11, 1990 + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output % added + output.year.check % added + new.block +%% format.title "title" output.check + format.title "title" output.check1 %% March 11, 1990 + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + pages output %% March 11, 1990 + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output % added + output.year.check % added + new.block +%% format.title "title" output.check + format.title "title" output.check1 %% March 11, 1990 + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +INTEGERS { fullptr numfull fullsleft } + +STRINGS { u1 u2 } + +%FUNCTION {my.full.label} +%{ +% "foo" 'u := +% u +%} + +FUNCTION {my.full.label} +{ +% Initialize 'u1','u2','s'. + "" 'u1 := + "" 'u2 := + 's := + +% Initialize 'fullptr','numfull','fullsleft'. + #1 'fullptr := + s num.names$ 'numfull := + numfull 'fullsleft := + +% enter the while loop which generates the first-citation information. +% while we have names left, +% format the next name +% if this is the next-to-last name, tack the ampersand on the end +% else if this isn't the last name, tack the comma on the end. +% concatenate the next name onto the first-citation string. +% update the counters. + + { fullsleft #0 > } + { s fullptr "{vv~}{ll}" format.name$ 'u1 := + fullsleft #2 = + { u1 " \& " * 'u1 := } + { fullsleft #2 > + { u1 ", " * 'u1 := } + 'skip$ + if$ + } + if$ + u2 u1 * 'u2 := + fullptr #1 + 'fullptr := + fullsleft #1 - 'fullsleft := + } + while$ + +% push 'u2' onto the stack -- our first-citation information. + u2 +} + +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "et~al. " * } + { " and " * 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 {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor 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 {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + duplicate$ + + author my.full.label % generate the first-citation information. + + "\protect\citeauthoryear{" swap$ * "}{" * swap$ * "}{" * + year field.or.null purify$ #-1 #4 substring$ * + 'label := + year field.or.null purify$ #-1 #4 substring$ * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor 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 {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$ % added for newapa + 'sort.label := % added for newapa + sort.label % added for newapa + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT % sort by label, sort.label, title --- for final label calculation + +STRINGS { last.label next.extra } + +INTEGERS { last.extra.num } + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +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$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * "}" * 'label := + extra.label 'next.extra := +} + +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 % by sort.label, year, title --- giving final bib. order. + +FUNCTION {begin.bib} + +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/jbact.bst b/Master/texmf-dist/bibtex/bst/beebe/jbact.bst new file mode 100644 index 00000000000..b56b63fbe06 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/jbact.bst @@ -0,0 +1,1490 @@ +% BibTex `jbact' bibliography style +% version = 1.30 of jbact.bst 1992 June 29 +% Fix format.vol.num.pages to use field.or.null to +% correctly handle case of missing volume. +% [Nelson H. F. Beebe ] +% version = 1.29 of jbact.bst 1992 April 21 +% from version = 1.21 of jmb.bst 1991 June 10 + +% TO BE DONE in inproceedings: +% 1. editors are not boldface +% 2. need comma after title, not period +% 3. don't rearrange editor names +% 4. no comma after editors +% (The trouble is that there is only one name function...) + +% This program must be used in conjunction with jbact.sty + +% Thomas Schneider +% National Cancer Institute +% Laboratory of Mathematical Biology +% Frederick, Maryland 21702-1013 +% toms@ncifcrf.gov +% +% This file is available by anonymous ftp from ncifcrf.gov in pub/delila. +% +% TITLES can be turned on and off! +% Just nocite the reference TitlesOn in the paper (i.e. \nocite{TitlesOn}) +% and have a bibliography article in your database with that cite key! +% Without titles is Journal of Molecular Biology; +% With titles is Journal of Theoretical Biology. +% +% WARNING: Since I use mostly article, book and inproceedings, these +% are formatted pretty closely to the Journal of Theoretical Biology style +% while other things are neglected. Also, I can't guarantee that the style +% is exactly right. +% +% The following documentation is identical from the source of jmb.bst, +% which was the apalike.bst taken from the Clarkson archive on 1989 June 19. +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% BibTeX `apalike' bibliography style (24-Jan-88 version) +% Adapted from the `alpha' style, version 0.99a; for BibTeX version 0.99a. +% Copyright (C) 1988, all rights reserved. +% Copying of this file is allowed, provided that if you make any changes at all +% you name it something other than `apalike.bst'. +% This restriction helps ensure that all copies are identical. +% Differences between this style and `alpha' are generally heralded by a `%'. +% The file btxbst.doc has the documentation for alpha.bst. +% +% This style should be used with the `apalike' LaTeX style (apalike.sty). +% \cite's come out like "(Jones, 1986)" in the text but there are no labels +% in the bibliography, and something like "(1986)" comes out immediately +% after the author. Author (and editor) names appear as last name, comma, +% initials. A `year' field is required for every entry, and so is either +% an author (or in some cases, an editor) field or a key field. +% +% Editorial note: +% Many journals require a style like `apalike', but I strongly, strongly, +% strongly recommend that you not use it if you have a choice---use something +% like `plain' instead. Mary-Claire van Leunen (A Handbook for Scholars, +% Knopf, 1979) argues convincingly that a style like `plain' encourages better +% writing than one like `apalike'. Furthermore the strongest arguments for +% using an author-date style like `apalike'---that it's "the most practical" +% (The Chicago Manual of Style, University of Chicago Press, thirteenth +% edition, 1982, pages 400--401)---fall flat on their face with the new +% computer-typesetting technology. For instance page 401 anachronistically +% states "The chief disadvantage of [a style like `plain'] is that additions +% or deletions cannot be made after the manuscript is typed without changing +% numbers in both text references and list." LaTeX sidesteps the disadvantage. +% +% History: +% 15-sep-86 (SK,OP) Original version, by Susan King and Oren Patashnik. +% 10-nov-86 (OP) Truncated the sort.key$ string to the correct length +% in bib.sort.order to eliminate error message. +% 24-jan-88 (OP) Updated for BibTeX version 0.99a, from alpha.bst 0.99a; +% apalike now sorts by author, then year, then title; +% THIS `apalike' VERSION DOES NOT WORK WITH BIBTEX 0.98i. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% The program was further modified by Tom Schneider: +% +% 1989 June 19 (TDS) Renamed jmb.bst. Items that do not have years were +% listed in the bibliography without identifiers. However, they +% have identifiers in the text. The identifier was added. +% Titles were removed :-(. + +% 1989 October 2 (TDS) Made labels in the paper use the & symbol rather +% than `and', as required by JMB. +% 1989 October 3 (TDS) Made et~al. be in italics. +% Removed comma after journal name. (actually, all +% mid sentence commas go!) +% Made volume number be bold faced. +% Converted colon (:) after volume number to a comma (,). +% If a journal name does NOT end in a period, add +% a comma after the name. +% 1989 October 14 (TDS) Without a year the program used to sort on the +% title. I made it sort on the cite$ if there is no year. +% 1989 October 18 (TDS) If there is one reference without a year, put +% an "a" at the end of its label, so that it comes out +% as (Smith, a) in the text. in FUNCTION {forward.pass} +% 1989 November 2 (TDS) Unpublished papers now give the title. +% 1989 November 18 (TDS) TITLES can be turned on and off! +% Just nocite the reference TitlesOn in the paper +% and have a bibliography article in your database +% with that cite key! +% 1989 December 5 (TDS) I can't stand sorting to fall back on the +% titles of the article - no control! So in function +% bib.sort.order the default is now cite$. +% 1990 November 14 (TDS) Changes to match JTB better: +% Names in the bibliography are now connected +% with "\&" instead of "and", since this fits JTB better. +% "In" is now "In:". +% "editors" and "editor" are now "eds" and "ed". +% booktitle follows editors. editors in parenthesis. +% pp. and p. instead of pages and page. +% location followed by colon (:) and then publisher. + +% 1992 April 22 Changes to match J. Bact Proof +% year is not in parens, ends with period. +% the first name should be 'last name first', +% but later ones should be the other way! +% 'and' rather than & +% journal name is not emphasized +% author list is bold face, ends with period +% comma after first author when there are two authors +% changes to match J. Bact galley proof markings +% expand journal titles where required by J. Bact! +% no comma after title! + +ENTRY % declare variables that have a value for each entry on the list + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key +% month not used in apalike + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block + docomma givetitles } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + + #0 'docomma := % if it is 0 then don't do commas, otherwise do them. +} + +FUNCTION {init.toggle.switches} +{% set switches for controlling the output! + #0 'givetitles := % if it is 0 then don't give titles, otherwise do them. +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + +% % { ", " * write$ } % the comma here is responsible for every comma! +% % % But JMB doesn't want commas, so away it goes! +% { " " * write$ } % That does it! + + { % doing a comma is controlled specifically in JMB using docomma + docomma #0 = + { " " * write$ } + { ", " * write$ } + if$ + } + { 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$ + { t "title" = + { pop$ } % jmb ignores titles and does not object if missing + { pop$ "empty " t * " in " * cite$ * warning$ } + if$ + } + 'output.nonnull % block periods + % { pop$ } % don't do anything + if$ +} + +% t "title" = +% { "zowie" warning$ } +% { duplicate$ empty$ +% { pop$ "EmPtY " t * " in " * cite$ * warning$ } +% 'output.nonnull +% } +% if$ +% if$ +%} + +% apalike needs this function because +% the year has special punctuation; +% apalike ignores the month +FUNCTION {output.year.check} +{ year empty$ + { + "empty year in " cite$ ", using label: " extra.label * * * warning$ + write$ +% " (" extra.label * ")" * % TDS no parens in jbact + " " extra.label * ". " * % period after year + mid.sentence 'output.state := + } + { write$ +% " (" year * extra.label * ")" * + " " year * extra.label * % period after year TDS + mid.sentence 'output.state := + } + if$ +} + +%FUNCTION {output.bibitem} +%{ newline$ +% "\bibitem[" write$ +% label write$ +% "]{" write$ +% cite$ write$ +% "}" write$ +% newline$ +% "" +% before.all 'output.state := +%} + +% do numbers instead: TDS (taken from unsrt.bst +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +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$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + +%"TRY WITH" s * warning$ + + #1 'nameptr := + s num.names$ 'numnames := + +%"TRY WITH" numnames * warning$ % this gives a warning +% the problem is that num.names$ is 1, so the loop +% doesn't work. Looks like names weren't counted somewhere! + + "{\bf " % start bold face + + numnames 'namesleft := + { namesleft #0 > } + { +% the first name should be 'last name first', +% but later ones should be the other way! + nameptr #1 = + {s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := } % last name first + {s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := } % first name first + if$ + +% nameptr #1 = +% {"then bbl" t * warning$} +% {"ELSE bbl" t * warning$} +% if$ + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + +% if there are EXACTY two names, put a comma after the first one! + numnames #2 = + { "," * } % TDS + 'skip$ + if$ + + t "others" = + { " {\em et~al.}" * } + { " and " * t * } % back to 'and' TDS +% { " \& " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + + % if there is more than one name, then DON'T put a period + % at the end of the name list because it looks like Smith, J. K.. + % otherwise put that period because the last name will end the list + % as in Helsberg, M. and R.~Eichenlaub. + numnames #1 > + {"." *} + 'skip$ + if$ + + "} " * * % end bold face end whole thing with period +} + +FUNCTION {format.authors} +{ author empty$ + { "" } +% { author format.names } + +% { "{\bf " author ".} " * * format.names } % make bold face, end with . +% doing the above causes trouble! +% NOTE: we can't put bf here since it messes up the formatting of names! + + { author format.names } % make bold face, end with . + if$ +} + +FUNCTION {format.key} % this function is just for apalike +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names +% editor num.names$ #1 > +% { ", eds" * } % TDS +% { ", ed" * } % TDS +% if$ + ", (ed.)," * % TDS + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { % decide whether to give the title or not + givetitles #1 = + { title "t" change.case$ } % produce the title + { title pop$ "" } % don't produce the title + if$ + } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "vol." volume tie.or.space.connect % TDS vol, not volume + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { + output.state mid.sentence = + { edition "l" change.case$ } + { edition "t" change.case$ } + if$ +% If the database has the word 'second' replace it with 2nd for J. Bact! + "second" = + { "2nd"} + { + if$ + "third" = + { "3nd"} + { edition } + } + + if$ + + " ed." * + +% output.state mid.sentence = +% { edition "l" change.case$ " ed." * } +% { edition "t" change.case$ " ed." * } +% if$ + } + 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 empty$ + { "" } + { pages multi.page.check +% { "pp." pages n.dashify tie.or.space.connect } % TDS +% for some crazy reason, J.Bact wants p instead of pp + { "p." pages n.dashify tie.or.space.connect } % TDS + { "p." pages tie.or.space.connect } % TDS + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ "{\bf " volume field.or.null * "}" * % make volume bold face + number empty$ + 'skip$ + { " (" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In: " emphasize booktitle * } % TDS + { "In: " emphasize format.editors " " * * + booktitle * ", " * + } % TDS + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "In:" % this is for apalike % TDS + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In: " % TDS + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * % this is for apalike +} + +FUNCTION {format.incoll.inproc.crossref} +{ "In:" % this is for apalike % TDS + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ + cite$ "TitlesOn" = + 'skip$ % Don't write out an article of this kind, it's a toggle switch! + { + output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block +% zzzz + format.title "title" output.check + new.block + crossref missing$ + { % figure out the last character of the journal name. + % "<<" journal #-1 #1 substring$ ">>" * * % for testing + % "<" journal ">" * * % this works ok % for testing + + % from here on the string t will carry the journal title + journal 't := + + % expand journal titles where required by J. Bact! TDS + t "Nucl. Acids Res." = + { "Nucleic Acids Res." 't := } + 'skip$ + if$ + + t "J. Bact." = + { "J. Bacteriol." 't := } + 'skip$ + if$ + + t "Bell System Tech. J." = + { "Bell Syst. Tech. J." 't := } + 'skip$ + if$ + + t "Molec. Microb." = + { "Molec. Microbiol." 't := } + 'skip$ + if$ + + % deal with periods at the ends of titles + t #-1 #1 substring$ "." = + { t } % journal ended in period so don't do anything + { t " " *} % NO COMMAS AFTER THE JOURNAL NAME IN J. BACT! +% { t ", " *} % journal ended without period, so add comma + if$ + + %journal #-1 #1 substring$ "." = + %{ journal } % journal ended in period so don't do anything + %{ journal ", " *} % journal ended without period, so add comma + %if$ + +% emphasize "journal" output.check % TDS + "journal" output.check % not emphasized any more + +% journal * emphasize "journal" output.check % the original method + + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry + } + if$ +} + +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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + #1 'docomma := % TURN COMMAS ON FOR JMB + crossref missing$ + { + format.bvolume output + new.block + format.number.series output + format.edition output + new.sentence + #0 'docomma := % no comma after address +% publisher "publisher" % TDS +% address output output.check % TDS + #1 'docomma := % comma back on + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ +% format.edition output + new.block + note output + fin.entry + #0 'docomma := % TURN COMMAS OFF +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + howpublished output + address output + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + #0 'docomma := % no comma after address + address ":" * output % TDS + publisher "publisher" output.check % TDS + #1 'docomma := % comma back on +% publisher "publisher" output.check +% address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block +% NOTE: they want a comma after the title, but that would mess +% up the period after other titles. + format.title "title" output.check + new.block + crossref missing$ + { +% #1 'docomma := % TURN COMMAS ON FOR JMB, BUT NOT FOR JTB: inconsistent + + format.pages + pages empty$ + { output } + { "." * output } % TDS toss in period + if$ + + format.in.ed.booktitle "booktitle" output.check + format.bvolume "." * output + format.number.series output + +% address output % TDS address is below for JTB +% new.sentence % TDS remove period + organization output + #0 'docomma := % NO COMMA AFTER ADDRESS + publisher "," * output % TDS +% publisher "publisher" output % TDS + address output % TDS + #1 'docomma := % comma back on + +% publisher output % are simpler + #0 'docomma := % TURN COMMAS OFF + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output % for apalike + new.sentence % we always output + organization output % a nonempty organization + publisher output % here + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + +% Since format.title is out of commission, the original method won't work: +% format.title "title" output.check +% so do the equivalent of the format.title procedure: (TDS) + title empty$ + { "" } + { title "t" change.case$ } % produce the title + if$ + "title" output.check + + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +% *********************************************************** + +FUNCTION {check.for.titlecommand} +% go through each entry and see if one of them has the key +% 'TitlesOn'. If this is found, then do titles! +% 1989 November 18 TDS +{ +% "|" label "|" * * write$ newline$ % |Arrhenius {\em et~al.}, 1986| +% "|" cite$ "|" * * write$ newline$ % |Arrhenius1986| +% so cite$ is the thing I want to detect... + + cite$ "TitlesOn" = + { % got it! +% "FOUND TitlesOn" write$ newline$ + "Titles Will Be Printed" warning$ + #1 'givetitles := % give titles! + } + 'skip$ + if$ +} +EXECUTE {init.toggle.switches} +ITERATE {check.for.titlecommand} +% *********************************************************** + +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$ +} + +% There are three apalike cases: one person (Jones), +% two (Jones and de~Bruijn), and more (Jones et~al.). +% This function is much like format.crossref.editors. +% +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " {\em et~al.}" * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " {\em et~al.}" * } + { " and " * s #2 "{vv~}{ll}" format.name$ * } % TDS +% well, back to 'and'! +% { " \& " * s #2 "{vv~}{ll}" format.name$ * } + % note new use of & rather than `and'. TDS + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole 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 % apalike uses the whole key, no organization + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label % apalike ignores organization + 'author.key.label % for labeling and sorting + if$ + } + if$ + ", " % these three lines are + * % for apalike, which + year field.or.null purify$ #-1 #4 substring$ % uses all four digits + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ % apalike uses initials + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := % <= here + nameptr numnames = t "others" = and + { "{\em et al}" * } + { 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$ +} + +% apalike uses two sorting passes; the first one sets the +% labels so that the `a's, `b's, etc. can be computed; +% the second pass puts the references in "correct" order. +% The presort function is for the first pass. It computes +% label, sort.label, and title, and then concatenates. +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$ % for + 'sort.label := % apalike + sort.label % style + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT % by label, sort.label, title---for final label calculation + +STRINGS { last.label next.extra } % apalike labels are only for the text; + +INTEGERS { last.extra.num } % there are none in the bibliography + +FUNCTION {initialize.extra.label.stuff} % and hence there is no `longest.label' +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +% pass through the references forward +{ +%"\\ label=" label "//" * * write$ newline$ % display the label +%"\\last.label=" last.label "//" * * write$ newline$ % display the label + + last.label label = % if the label repeats the previous label... + { % then increment the extra number + last.extra.num #1 + 'last.extra.num := + % and convert it to a label + last.extra.num int.to.chr$ 'extra.label := + } + { % else set things up for the next entry + "a" chr.to.int$ 'last.extra.num := + + % However, if the year was missing, tack on an extra "a". TDS + year empty$ + {"a" 'extra.label :=} + {"" 'extra.label :=} + if$ + +% "" 'extra.label := % the original method was not to do anything TDS + + label 'last.label := % capture this label for next time + } + if$ +%"\\extra.label = " extra.label "//" * * write$ newline$ % display the label +} + +FUNCTION {reverse.pass} +% pass through the references backwards +% add extra characters to the end of the label string +{ +%"{{" label "}}" * * write$ newline$ % display the label + next.extra "b" = +% original logic: + { "a" 'extra.label := } + 'skip$ + if$ + +% next.extra "b" = { "next.extra was = b" write$ newline$} 'skip$ if$ + +% new as of 1989 Oct 18 +% { "a" 'extra.label := } +% { % Put on an "a" at the end of the label if the year is missing. TDS +% year empty$ +% { "a" 'extra.label := } +% %{ label "a" * 'label := } +% 'skip$ % otherwise leave it alone (orignial method) +% if$ } +% if$ + + label extra.label * 'label := + extra.label 'next.extra := +%"{{" label "}}" * * write$ newline$ % display the label +} + +FUNCTION {bib.sort.order} +% Generate the sort.key$ variables for sorting. +% The sorting is first on the sort.label (ie, author's name), followed +% by the year then the title. If there is no year, the cite$ is used. +{ + sort.label % this is based on the author name + " " * % tack on some space +% original apa command was to use the year or an empty string: +% year field.or.null sortify +% +% Replace that with the use of the cite$, when there is no year: + year duplicate$ empty$ + {pop$ cite$} + 'skip$ + if$ + + * " " * % tack on some space + +% I CAN'T STAND SORTING ON TITLE!!! TDS 1989 Dec 5 +% title field.or.null +% sort.format.title +% * % attach them together + cite$ + * % use cite$ instead!! + + % note: if there is no year, then the cite$ will override the sorting + % on the title. Oh well. Title sorting is sorta (ha ha) awful. + + #1 entry.max$ substring$ + 'sort.key$ := + + % The following line helps debug the program. It shows what the sort.key$ is. + % "%" sort.key$ * write$ newline$ +} + +% Here is the place that the actual executions of the labeling and sorting +% functions are done. + + +EXECUTE {initialize.extra.label.stuff} % initialize variables +ITERATE {bib.sort.order} % set up the sorting keys +SORT % by sort.label, year, title---giving final bibliography order +% Having sorted NOW we apply the extra letters at the end! +ITERATE {forward.pass} +REVERSE {reverse.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ % no \etalchar in apalike + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ % no labels in apalike +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/jmb.bst b/Master/texmf-dist/bibtex/bst/beebe/jmb.bst new file mode 100644 index 00000000000..5455f72645d --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/jmb.bst @@ -0,0 +1,1368 @@ +%%% ==================================================================== +%%% @BibTeX-style-file{ +%%% author = "Tom Schneider", +%%% version = "1.21", +%%% date = "29 June 1992", +%%% time = "17:30:33 MDT", +%%% filename = "jmb.bst", +%%% address = "National Cancer Institute +%%% Laboratory of Mathematical Biology +%%% Frederick, Maryland 21701-1013 +%%% USA", +%%% checksum = "11681 1368 4735 33144", +%%% email = "toms@ncifcrf.gov (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "molecular biology, BibTeX", +%%% supported = "yes", +%%% docstring = "This BibTeX bibliography style is for the +%%% Journal of Molecular Biology and Journal of +%%% Theoretical Biology. This file is available +%%% by anonymous ftp from ncifcrf.gov in +%%% pub/delila. +%%% +%%% TITLES can be turned on and off! Just nocite +%%% the reference TitlesOn in the paper (i.e. +%%% \nocite{TitlesOn}) and have a bibliography +%%% article in your database with that cite key! +%%% Without titles is Journal of Molecular +%%% Biology; With titles is Journal of +%%% Theoretical Biology. +%%% +%%% WARNING: Since I use mostly article, book and +%%% inproceedings, these are formatted pretty +%%% closely to the Journal of Theoretical Biology +%%% style while other things are neglected. +%%% Also, I can't guarantee that the style is +%%% exactly right. +%%% +%%% The following documentation is identical from +%%% the source of jmb.bst, which was the +%%% apalike.bst taken from the Clarkson archive +%%% on 1989 June 19. +%%% +%%% The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility." +%%% } +%%% ==================================================================== + +% BibTex `jmb' bibliography style +% version = 1.21 of jmb.bst 1992 June 29 +% Fix format.vol.num.pages to use field.or.null to +% correctly handle case of missing volume. +% [Nelson H. F. Beebe ] +% version = 1.20 of jmb.bst 1990 November 16 + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% BibTeX `apalike' bibliography style (24-Jan-88 version) +% Adapted from the `alpha' style, version 0.99a; for BibTeX version 0.99a. +% Copyright (C) 1988, all rights reserved. +% Copying of this file is allowed, provided that if you make any changes at all +% you name it something other than `apalike.bst'. +% This restriction helps ensure that all copies are identical. +% Differences between this style and `alpha' are generally heralded by a `%'. +% The file btxbst.doc has the documentation for alpha.bst. +% +% This style should be used with the `apalike' LaTeX style (apalike.sty). +% \cite's come out like "(Jones, 1986)" in the text but there are no labels +% in the bibliography, and something like "(1986)" comes out immediately +% after the author. Author (and editor) names appear as last name, comma, +% initials. A `year' field is required for every entry, and so is either +% an author (or in some cases, an editor) field or a key field. +% +% Editorial note: +% Many journals require a style like `apalike', but I strongly, strongly, +% strongly recommend that you not use it if you have a choice---use something +% like `plain' instead. Mary-Claire van Leunen (A Handbook for Scholars, +% Knopf, 1979) argues convincingly that a style like `plain' encourages better +% writing than one like `apalike'. Furthermore the strongest arguments for +% using an author-date style like `apalike'---that it's "the most practical" +% (The Chicago Manual of Style, University of Chicago Press, thirteenth +% edition, 1982, pages 400--401)---fall flat on their face with the new +% computer-typesetting technology. For instance page 401 anachronistically +% states "The chief disadvantage of [a style like `plain'] is that additions +% or deletions cannot be made after the manuscript is typed without changing +% numbers in both text references and list." LaTeX sidesteps the disadvantage. +% +% History: +% 15-sep-86 (SK,OP) Original version, by Susan King and Oren Patashnik. +% 10-nov-86 (OP) Truncated the sort.key$ string to the correct length +% in bib.sort.order to eliminate error message. +% 24-jan-88 (OP) Updated for BibTeX version 0.99a, from alpha.bst 0.99a; +% apalike now sorts by author, then year, then title; +% THIS `apalike' VERSION DOES NOT WORK WITH BIBTEX 0.98i. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% The program was further modified by Tom Schneider: +% +% 1989 June 19 (TDS) Renamed jmb.bst. Items that do not have years were +% listed in the bibliography without identifiers. However, they +% have identifiers in the text. The identifier was added. +% Titles were removed :-(. + +% 1989 October 2 (TDS) Made labels in the paper use the & symbol rather +% than `and', as required by JMB. +% 1989 October 3 (TDS) Made et~al. be in italics. +% Removed comma after journal name. (actually, all +% mid sentence commas go!) +% Made volume number be bold faced. +% Converted colon (:) after volume number to a comma (,). +% If a journal name does NOT end in a period, add +% a comma after the name. +% 1989 October 14 (TDS) Without a year the program used to sort on the +% title. I made it sort on the cite$ if there is no year. +% 1989 October 18 (TDS) If there is one reference without a year, put +% an "a" at the end of its label, so that it comes out +% as (Smith, a) in the text. in FUNCTION {forward.pass} +% 1989 November 2 (TDS) Unpublished papers now give the title. +% 1989 November 18 (TDS) TITLES can be turned on and off! +% Just nocite the reference TitlesOn in the paper +% and have a bibliography article in your database +% with that cite key! +% 1989 December 5 (TDS) I can't stand sorting to fall back on the +% titles of the article - no control! So in function +% bib.sort.order the default is now cite$. +% 1990 November 14 (TDS) Changes to match JTB better: +% Names in the bibliography are now connected +% with "\&" instead of "and", since this fits JTB better. +% "In" is now "In:". +% "editors" and "editor" are now "eds" and "ed". +% booktitle follows editors. editors in parenthesis. +% pp. and p. instead of pages and page. +% location followed by colon (:) and then publisher. + +ENTRY % declare variables that have a value for each entry on the list + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key +% month not used in apalike + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block + docomma givetitles } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + + #0 'docomma := % if it is 0 then don't do commas, otherwise do them. +} + +FUNCTION {init.toggle.switches} +{% set switches for controlling the output! + #0 'givetitles := % if it is 0 then don't give titles, otherwise do them. +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + +% % { ", " * write$ } % the comma here is responsible for every comma! +% % % But JMB doesn't want commas, so away it goes! +% { " " * write$ } % That does it! + + { % doing a comma is controlled specifically in JMB using docomma + docomma #0 = + { " " * write$ } + { ", " * write$ } + if$ + } + { 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$ + { t "title" = + { pop$ } % jmb ignores titles and does not object if missing + { pop$ "empty " t * " in " * cite$ * warning$ } + if$ + } + 'output.nonnull % block periods + % { pop$ } % don't do anything + if$ +} + +% t "title" = +% { "zowie" warning$ } +% { duplicate$ empty$ +% { pop$ "EmPtY " t * " in " * cite$ * warning$ } +% 'output.nonnull +% } +% if$ +% if$ +%} + +% apalike needs this function because +% the year has special punctuation; +% apalike ignores the month +FUNCTION {output.year.check} +{ year empty$ + { + "empty year in " cite$ ", using label: " extra.label * * * warning$ + write$ + " (" extra.label * ")" * + mid.sentence 'output.state := + } + { write$ + " (" year * extra.label * ")" * + mid.sentence 'output.state := + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +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$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " {\em et~al.}" * } + { " \& " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.key} % this function is just for apalike +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", eds" * } % TDS + { ", ed" * } % TDS + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { % decide whether to give the title or not + givetitles #1 = + { title "t" change.case$ } % produce the title + { title pop$ "" } % don't produce the title + if$ + } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pp." pages n.dashify tie.or.space.connect } % TDS + { "p." pages tie.or.space.connect } % TDS + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ "{\bf " volume field.or.null * "}" * % make volume bold face + number empty$ + 'skip$ + { " (" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } +% { ":" * pages n.dashify * } % no more colons after the volume + { ", " * pages n.dashify * } % comma's instead + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In: " booktitle emphasize * } % TDS + { "In: " booktitle emphasize * ", " * + "(" format.editors ")" * * * } % TDS + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "In:" % this is for apalike % TDS + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In: " % TDS + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * % this is for apalike +} + +FUNCTION {format.incoll.inproc.crossref} +{ "In:" % this is for apalike % TDS + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ + cite$ "TitlesOn" = + 'skip$ % Don't write out an article of this kind, it's a toggle switch! + { + output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { % figure out the last character of the journal name. + % "<<" journal #-1 #1 substring$ ">>" * * % for testing + % "<" journal ">" * * % this works ok % for testing + + journal #-1 #1 substring$ "." = + { journal } % journal ended in period so don't do anything + { journal ", " *} % journal ended without period, so add comma + if$ + emphasize "journal" output.check + +% journal * emphasize "journal" output.check % the original method + + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry + } + if$ +} + +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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + #1 'docomma := % TURN COMMAS ON FOR JMB + crossref missing$ + { + format.bvolume output + new.block + format.number.series output + new.sentence + #0 'docomma := % no comma after address + address ":" * output % TDS + publisher "publisher" output.check % TDS + #1 'docomma := % comma back on +% publisher "publisher" output.check +% address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry + #0 'docomma := % TURN COMMAS OFF +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + howpublished output + address output + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + #0 'docomma := % no comma after address + address ":" * output % TDS + publisher "publisher" output.check % TDS + #1 'docomma := % comma back on +% publisher "publisher" output.check +% address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { +% #1 'docomma := % TURN COMMAS ON FOR JMB, BUT NOT FOR JTB: inconsistent + format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages "," * output % TDS toss in comma instead of period +% address output % TDS address is below for JTB +% new.sentence % TDS remove period + organization output + #0 'docomma := % NO COMMA AFTER ADDRESS + address ":" * output % TDS + publisher "publisher" output.check % TDS + #1 'docomma := % comma back on + +% publisher output % are simpler + #0 'docomma := % TURN COMMAS OFF + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output % for apalike + new.sentence % we always output + organization output % a nonempty organization + publisher output % here + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + +% Since format.title is out of commission, the original method won't work: +% format.title "title" output.check +% so do the equivalent of the format.title procedure: (TDS) + title empty$ + { "" } + { title "t" change.case$ } % produce the title + if$ + "title" output.check + + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +% *********************************************************** + +FUNCTION {check.for.titlecommand} +% go through each entry and see if one of them has the key +% 'TitlesOn'. If this is found, then do titles! +% 1989 November 18 TDS +{ +% "|" label "|" * * write$ newline$ % |Arrhenius {\em et~al.}, 1986| +% "|" cite$ "|" * * write$ newline$ % |Arrhenius1986| +% so cite$ is the thing I want to detect... + + cite$ "TitlesOn" = + { % got it! +% "FOUND TitlesOn" write$ newline$ + "Titles Will Be Printed" warning$ + #1 'givetitles := % give titles! + } + 'skip$ + if$ +} +EXECUTE {init.toggle.switches} +ITERATE {check.for.titlecommand} +% *********************************************************** + +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$ +} + +% There are three apalike cases: one person (Jones), +% two (Jones and de~Bruijn), and more (Jones et~al.). +% This function is much like format.crossref.editors. +% +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " {\em et~al.}" * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " {\em et~al.}" * } + { " \& " * s #2 "{vv~}{ll}" format.name$ * } + % note new use of & rather than `and'. TDS + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole 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 % apalike uses the whole key, no organization + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label % apalike ignores organization + 'author.key.label % for labeling and sorting + if$ + } + if$ + ", " % these three lines are + * % for apalike, which + year field.or.null purify$ #-1 #4 substring$ % uses all four digits + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ % apalike uses initials + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := % <= here + nameptr numnames = t "others" = and + { "{\em et al}" * } + { 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$ +} + +% apalike uses two sorting passes; the first one sets the +% labels so that the `a's, `b's, etc. can be computed; +% the second pass puts the references in "correct" order. +% The presort function is for the first pass. It computes +% label, sort.label, and title, and then concatenates. +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$ % for + 'sort.label := % apalike + sort.label % style + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT % by label, sort.label, title---for final label calculation + +STRINGS { last.label next.extra } % apalike labels are only for the text; + +INTEGERS { last.extra.num } % there are none in the bibliography + +FUNCTION {initialize.extra.label.stuff} % and hence there is no `longest.label' +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +% pass through the references forward +{ +%"\\ label=" label "//" * * write$ newline$ % display the label +%"\\last.label=" last.label "//" * * write$ newline$ % display the label + + last.label label = % if the label repeats the previous label... + { % then increment the extra number + last.extra.num #1 + 'last.extra.num := + % and convert it to a label + last.extra.num int.to.chr$ 'extra.label := + } + { % else set things up for the next entry + "a" chr.to.int$ 'last.extra.num := + + % However, if the year was missing, tack on an extra "a". TDS + year empty$ + {"a" 'extra.label :=} + {"" 'extra.label :=} + if$ + +% "" 'extra.label := % the original method was not to do anything TDS + + label 'last.label := % capture this label for next time + } + if$ +%"\\extra.label = " extra.label "//" * * write$ newline$ % display the label +} + +FUNCTION {reverse.pass} +% pass through the references backwards +% add extra characters to the end of the label string +{ +%"{{" label "}}" * * write$ newline$ % display the label + next.extra "b" = +% original logic: + { "a" 'extra.label := } + 'skip$ + if$ + +% next.extra "b" = { "next.extra was = b" write$ newline$} 'skip$ if$ + +% new as of 1989 Oct 18 +% { "a" 'extra.label := } +% { % Put on an "a" at the end of the label if the year is missing. TDS +% year empty$ +% { "a" 'extra.label := } +% %{ label "a" * 'label := } +% 'skip$ % otherwise leave it alone (orignial method) +% if$ } +% if$ + + label extra.label * 'label := + extra.label 'next.extra := +%"{{" label "}}" * * write$ newline$ % display the label +} + +FUNCTION {bib.sort.order} +% Generate the sort.key$ variables for sorting. +% The sorting is first on the sort.label (ie, author's name), followed +% by the year then the title. If there is no year, the cite$ is used. +{ + sort.label % this is based on the author name + " " * % tack on some space +% original apa command was to use the year or an empty string: +% year field.or.null sortify +% +% Replace that with the use of the cite$, when there is no year: + year duplicate$ empty$ + {pop$ cite$} + 'skip$ + if$ + + * " " * % tack on some space + +% I CAN'T STAND SORTING ON TITLE!!! TDS 1989 Dec 5 +% title field.or.null +% sort.format.title +% * % attach them together + cite$ + * % use cite$ instead!! + + % note: if there is no year, then the cite$ will override the sorting + % on the title. Oh well. Title sorting is sorta (ha ha) awful. + + #1 entry.max$ substring$ + 'sort.key$ := + + % The following line helps debug the program. It shows what the sort.key$ is. + % "%" sort.key$ * write$ newline$ +} + +% Here is the place that the actual executions of the labeling and sorting +% functions are done. + + +EXECUTE {initialize.extra.label.stuff} % initialize variables +ITERATE {bib.sort.order} % set up the sorting keys +SORT % by sort.label, year, title---giving final bibliography order +% Having sorted NOW we apply the extra letters at the end! +ITERATE {forward.pass} +REVERSE {reverse.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ % no \etalchar in apalike + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ % no labels in apalike +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/jtb.bst b/Master/texmf-dist/bibtex/bst/beebe/jtb.bst new file mode 100644 index 00000000000..20abbcc2f93 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/jtb.bst @@ -0,0 +1,1202 @@ +%%% ==================================================================== +%%% @BibTeX-style-file{ +%%% author = "Alan Rogers", +%%% version = "1.1", +%%% date = "1990", +%%% filename = "humanbio.bst", +%%% address = "Dept of Anthropology, University of Utah, +%%% Salt Lake City, UT 84112", +%%% checksum = "29497 1202 3234 26025", +%%% email = "rogers@anthro.utah.edu", +%%% supported = "no", +%%% docstring = "The file produces bibliographies more or +%%% less in the format of the Journal of +%%% Theoretical Biology. It was adapted from +%%% Sake J. Hogeveen's `astron.bst'. +%%% +%%% Usage: \documentstyle[astron]{...} +%%% ... +%%% \bibliographystyle{jtb} +%%% ... +%%% +%%% The \documentstyle command above invokes +%%% Hogeveen's `astron.sty', which must be in +%%% TeX's search path. +%%% +%%% The modifications implement `\cite*{}', +%%% which generates references in short form. +%%% For example, `Rogers \cite*{...}' would +%%% produce `Rogers (1992)'." +%%% } +%%% ==================================================================== +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Copyright (C) 1990 Sake J. Hogeveen. + +% This is ASTRON.BST, a BibTeX style for use with BibTeX version 0.99c. +% ASTRON.BST has to be used in conjunction with the LaTeX style ASTRON.STY. +% The use of both styles is documented in ASTDOC.TEX. + +% ASTRON.BST is an adaptation of APALIKE.BST by Oren Patashnik and Suzan King. + +% This style produces citations in the `author-year' format, which is widely +% used among astronomical journals. +% It supports two forms of citation: the \cite command produces: (Author, year) +% in the text; the \cite* command only: (year) . + +% The long an short citation trickery is adapted from NAMED.BST by +% Peter F. Patel-Schneider. + +% Copyright Notice: +% The files ASTRON.BST, ASTRON.STY, ASTDOC.TEX, ASTDOC.BIB, EXAMPLE.TEX, +% EXAMPLE.BIB, MNEMONIC.BIB, and TEMPLATE.BIB are a package. +% You may copy and distribute them freely for non-commercial purposes, +% provided that you keep the package together and this copyright notice +% in tact. +% You may not alter or modify the files; this helps to ensure that all +% distributions of ASTRON.BST and related files are the same. +% If you make any modifications, then you must give the files new names, +% other than the present. +% The author bears no responsibilities for errors in this document or +% the software it describes; and shall not be held liable for any indirect, +% incidental, or consequential damages. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key +% month not used in apalike + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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 = + { ", " * write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { ", " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output.nonnull.extra} +{ 's := + output.state mid.sentence = + { " " * write$ } + { output.state after.block = + { ", " * write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { ", " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.extra} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull.extra + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.check.extra} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull.extra + if$ +} + +% apalike needs this function because +% the year has special punctuation; +% apalike ignores the month +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ + " (" year * extra.label * ") " * + mid.sentence 'output.state := + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {boldface} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.ed.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f. }{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.key} % this function is just for apalike +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + {" (" * editor format.names + editor num.names$ #1 > + { " eds.)" * } + { " ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.editors.extra} +{ editor empty$ + { "" } + {" (" * editor format.ed.names + editor num.names$ #1 > + { " eds.)" * } + { " ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {first.page.number} +{ 't := + "" + { t "" = + { #0 } + { t #1 #1 substring$ "-" = not } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + while$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Vol." volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "No." } + { "No." } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pp." pages n.dashify tie.or.space.connect } + { "p." pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.page} +{ pages empty$ + { "" } + { "p.~" pages first.page.number * } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { boldface ", " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.vol.num.page} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { boldface ", " * pages first.page.number * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "Chapt." } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " booktitle emphasize * ". " * format.editors.extra * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Vol." volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * % this is for apalike +} + +FUNCTION {format.incoll.inproc.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + crossref missing$ + { journal emphasize "journal" output.check.extra + format.vol.num.page output.extra + } + { format.article.crossref output.nonnull + format.page output + } + if$ + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + address ": " * publisher * output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + new.block + howpublished output + address output + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + address ": " * publisher * output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block +% format.title "title" output.check +% new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + address ": " * publisher * output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block +% format.title "title" output.check +% new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + new.sentence % there's no year + organization output % here so things + address ": " * publisher * output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block +% format.title "title" output.check +% new.block + "Master's thesis" emphasize format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.btitle output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block +% format.btitle "title" output.check +% new.block + "Ph.D. thesis" emphasize format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output % for apalike + new.sentence % we always output + organization output % a nonempty organization + publisher output % here + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + new.block + format.tr.number output.nonnull + address ": " * institution * output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr,"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +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$ +} + +% There are three apalike cases: one person (Jones), +% two (Jones and de~Bruijn), and more (Jones et~al.). +% This function is much like format.crossref.editors. +% +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole 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 % apalike uses the whole key, no organization + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label % apalike ignores organization + 'author.key.label % for labeling and sorting + if$ + } + if$ + "\protect\astroncite{" swap$ * "}{" % these three lines are + * % for apalike, which + year field.or.null purify$ #-1 #4 substring$ % uses all four digits + * % the mathing closing "}" comes in at the reverse.pass + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ % apalike uses initials + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := % <= here + nameptr numnames = t "others" = and + { "et al" * } + { 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$ +} + +% apalike uses two sorting passes; the first one sets the +% labels so that the `a's, `b's, etc. can be computed; +% the second pass puts the references in "correct" order. +% The presort function is for the first pass. It computes +% label, sort.label, and title, and then concatenates. +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$ % for + 'sort.label := % apalike + sort.label % style + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT % by label, sort.label, title---for final label calculation + +STRINGS { last.label next.extra } % apalike labels are only for the text; + +INTEGERS { last.extra.num } % there are none in the bibliography + +FUNCTION {initialize.extra.label.stuff} % and hence there is no `longest.label' +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +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$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * "}" * 'label := + extra.label 'next.extra := +} + +EXECUTE {initialize.extra.label.stuff} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +% Now that the label is right we sort for real, +% on sort.label then year then title. This is +% for the second sorting 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 % by sort.label, year, title---giving final bibliography order + +FUNCTION {begin.bib} +{ preamble$ empty$ % no \etalchar in apalike + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ % no labels in apalike +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/jthcarsu.bst b/Master/texmf-dist/bibtex/bst/beebe/jthcarsu.bst new file mode 100644 index 00000000000..2382d783934 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/jthcarsu.bst @@ -0,0 +1,986 @@ +% This is the modification of the BibTeX standard +% bibliography style `unsrt' +% +% It is named jthcarsu.bst, for the Journal of Thoracic and +% Cardiovascular Surgery. +% +% The changes have been made on 8. January, 1995 by: +% +% Borut Gersak Tel: ++ 386 61 1334 162 +% Department of Cardiovascular Surgery Fax: ++ 386 61 1334 162 +% Medical Center Ljubljana Internet: borut.gersak@mf.uni-lj.si +% Zaloska 7, 61000 Ljubjana +% Slovenia, Europe +% (University of Ljubljana) +% +% If somebody from the medical field has the same problems as I +% (modifications of *.bst for different medical journals) please let us +% join our forces together. +% +% Thanks to: +% +% Nelson H. F. Beebe Tel: +1 801 581 5254 +% Center for Scientific Computing FAX: +1 801 581 4148 +% Department of Mathematics, 105 JWB Internet: beebe@math.utah.edu +% University of Utah +% Salt Lake City, UT 84112, USA +% +% who gave me some valuable information about changing the styles for BibTex. +% +% The changes were made in the areas: +% FUNCTION {article} +% FUNCTION {format.date} +% FUNCTION {output.nonnull} +% If should be used for BibTex as follows: +% +% + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + {" " year * ";" * } + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.date "year" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/named.bst b/Master/texmf-dist/bibtex/bst/beebe/named.bst new file mode 100644 index 00000000000..78b6bb6eb35 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/named.bst @@ -0,0 +1,1287 @@ +%NAME: named.bst +% BibTeX `named' style file for BibTeX version 0.99c, LaTeX version 2.09 +% Place it in a file called named.bst in the BibTeX search path. (Placing it +% in the same directory as the LaTeX document should also work.) +% Support for named citations is provided by named.sty + +% This version was made by modifying the master file made by +% Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU) + +% Copyright (C) 1985, all rights reserved. +% Modifications Copyright 1988, Peter F. Patel-Schneider +% Copying of this file is authorized only if either +% (1) you make absolutely no changes to your copy, including name, or +% (2) if you do make changes, you name it something other than +% btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. +% This restriction helps ensure that all standard styles are identical. + +% There are undoubtably bugs in this style. If you make bug fixes, +% improvements, etc. please let me know. My e-mail address is: +% pfps@research.att.com + +% Citation format: [author-last-name, year] +% [author-last-name and author-last-name, year] +% [author-last-name {\em et al.}, year] +% +% Reference list ordering: alphabetical by author or whatever passes +% for author in the absence of one. +% +% This BibTeX style has support for short (year only) citations. This +% is done by having the citations actually look like +% \citeauthoryear{author-info}{year} +% The LaTeX style has to have the following (or similar) +% \let\@internalcite\cite +% \def\cite{\def\citeauthoryear##1##2{##1, ##2}\@internalcite} +% \def\shortcite{\def\citeauthoryear##1{##2}\@internalcite} +% \def\@biblabel#1{\def\citeauthoryear##1##2{##1, ##2}[#1]\hfill} +% which makes \shortcite the macro for short citations. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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 {output.bibitem} +{ newline$ + + "\bibitem[" write$ + label write$ + "]{" write$ + + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + + { title "t" change.case$ } + + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + + key empty$ not and + + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \shortcite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \shortcite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \shortcite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + + numnames #1 = + { s #1 "{vv }{ll}" format.name$ } + { numnames #2 = + { s #1 "{vv }{ll }and " format.name$ s #2 "{vv }{ll}" format.name$ * + } + { s #1 "{vv }{ll }\bgroup \em et al.\egroup " format.name$ } + 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 {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + + { cite$ #1 #3 substring$ } + + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + + { cite$ #1 #3 substring$ } + + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + + "\protect\citeauthoryear{" swap$ * "}{" * + year field.or.null purify$ * % CHANGED - pfps - 15 Feb 1989 + 'label := + year field.or.null purify$ * + + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} + +{ calc.label + sort.label + " " + * + type$ "book" = + + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + + * + + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * "}" * 'label := % CHANGED - pfps 15 Feb 1989 + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {begin.bib} + +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + + 'skip$ + { preamble$ write$ newline$ } + if$ + + "\begin{thebibliography}{}" write$ newline$ + +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/namunsrt.bst b/Master/texmf-dist/bibtex/bst/beebe/namunsrt.bst new file mode 100644 index 00000000000..8c04e10fbcf --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/namunsrt.bst @@ -0,0 +1,949 @@ +% BibTeX standard bibliography style `unsrt' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + nam + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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 {output.bibitem} +{ newline$ + "\bibitem[" write$ + nam write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "NAM" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/nar.bst b/Master/texmf-dist/bibtex/bst/beebe/nar.bst new file mode 100644 index 00000000000..e08fdd3be85 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/nar.bst @@ -0,0 +1,1056 @@ +%%% ==================================================================== +%%% @BibTeX-style-file{ +%%% author = "Tom Schneider", +%%% version = "3.04", +%%% date = "10 Sep 1991", +%%% filename = "nar.bst", +%%% address = "National Cancer Institute +%%% Laboratory of Mathematical Biology +%%% Frederick, Maryland 21701-1013 +%%% USA", +%%% checksum = "49904 1056 2955 21359", +%%% email = "toms@ncifcrf.gov (Internet)", +%%% codetable = "ISO/ASCII", +%%% keywords = "nucleic acid research", +%%% supported = "yes", +%%% docstring = "This BibTeX bibliography style is for the +%%% journal Nucleic Acid Research. It was +%%% adapted from the standard unsrt.bst style +%%% file. +%%% +%%% The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility." +%%% } +%%% ==================================================================== + +% new.bst +% nar.bst was created by Tom Schneider from unsrt.bst +% version = 3.04 of nar.bst 1990 May 23 +% Tom Schneider +% National Cancer Institute +% Laboratory of Mathematical Biology +% Frederick, Maryland +% toms@ncifcrf.gov + +% BibTeX standard bibliography style `unsrt' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block + doblank straightnames} + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + + #0 'doblank := % put a blanks in output.nonnul if not zero + #0 'straightnames := % force names to be J. B. Smith if not zero + % otherwise they are Smith, J. B. +} + +STRINGS { s t } + +FUNCTION {between} +{ % what to do between output items TDS (AVOID COMMAS) + doblank #0 = + {" " * write$} + {write$} + if$ +} + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = +% { ", " * write$ } % TDS NO COMMAS!!! + { + between + } + + { output.state after.block = + { +% add.period$ write$ % TDS NO PERIODS! + write$ % TDS NO PERIODS! + newline$ +% "\newblock " write$ % TDS NO NEWBLOCKS: makes for a cleaner file + } + { output.state before.all = + 'write$ +% { add.period$ " " * write$ } % TDS NO PERIODS!!! +% { " " * write$ } % TDS NO PERIODS!!! + {between} + 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { +% the original format line: makes "J. D. Smith". TDS +% s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := % TDS old formatting +% the new format line: makes "Smith, J. D.". TDS +% s nameptr "{vv}{ll}{, jj}{, f.}" format.name$ 't := % TDS new formatting +% note, no ~ so that the format is straight for NAR. + + straightnames #0 = + { s nameptr "{vv}{ll}{, jj}{, f.}" format.name$ 't := }% TDS + { s nameptr "{ff{ }}{vv}{ ll}{, jj}" format.name$ 't := }% TDS + if$ + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = +% { " et~al." * } % TDS + { " et al." * } % TDS no ~ + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ + #1 'straightnames := % names go as J. B. Smith for editors + editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", (ed.)" * } + { ", (ed.)" * } +% { ", editors" * } +% { ", editor" * } + if$ + } + if$ + #0 'straightnames := % names go as Smith, J. B. again +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ +% 'year originally + {"(" year ")" * * } % TDS + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title %emphasize not for NAR! TDS +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } +% { "volume" volume tie.or.space.connect % TDS + { "volume" "{\bf " volume "}, " * * tie.or.space.connect + % TDS add a comma and bold + series empty$ + 'skip$ + %{ " of " * series emphasize * } TDS + { " of " * series } % TDS book titles not emphasized for NAR + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { " " edition * "l" change.case$ " edition" * } % TDS add space before + { " " edition * "t" change.case$ " edition" * } % TDS add space before + if$ + } + 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 empty$ + { "" } + { pages multi.page.check +% { "pages" pages n.dashify tie.or.space.connect } % TDS +% { "page" pages tie.or.space.connect } % TDS + { "pp." pages n.dashify tie.or.space.connect } % TDS + { "p." pages tie.or.space.connect } % TDS + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +%{ volume * field.or.null +{ "{\bf " volume * field.or.null % TDS add boldface + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } +% { ":" * pages n.dashify * } % TDS remove colon! + { "}, " * pages n.dashify * } % TDS replace colon with a comma + % TDS add a boldface + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + % add colon after "In" + %{ "In " booktitle emphasize * } % TDS + %{ "In " format.editors * ", " * booktitle emphasize * + { "In " booktitle *} % TDS no emphasis in nar! + { "In " format.editors * ", " * booktitle * % TDS no emphasis in nar! + ", " * } % TDS and tack on a comma + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } % TDS + if$ + } + { "In " key * } % TDS + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " % TDS + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In " booktitle * } % TDS + if$ + } + { "In " key * } % TDS + if$ + } + { "In " format.crossref.editor * } % TDS + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.date "year" output.check % TDS move date to here + new.block +% format.title "title" output.check % TDS NO TITLES +% new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output +% format.date "year" output.check % TDS move date + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + + format.date "year" output.check % TDS new location + new.block + #1 'doblank := % remove blanks TDS + format.btitle "title" output.check + ", " output % give it a comma after the title TDS + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + ", " output % give it a comma after the publisher TDS + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output +% format.date "year" output.check % TDS former location + new.block + note output + fin.entry + #0 'doblank := % blanks again TDS +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.date "year" output.check % TDS + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output +% format.date "year" output.check % TDS + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.date "year" output.check % TDS + new.block +% format.title "title" output.check % TDS NO TITLE +% new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output +% format.pages output % TDS pages go at the end + address empty$ + { organization publisher new.sentence.checkb + organization output + ": " output % TDS put a colon + publisher output +% format.date "year" output.check + } + { address output.nonnull +% format.date "year" output.check + new.sentence + #1 'doblank := % remove blanks + organization output + ": " output % TDS put a colon after the location +%zzz + publisher output + ". " output % TDS put a period after the publisher + #0 'doblank := % put back blanks + } + if$ + } + { format.incoll.inproc.crossref output.nonnull +% format.pages output % TDS pages go at the end + } + if$ + new.block + note output + format.pages output % TDS pages go at the end + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/nature.bst b/Master/texmf-dist/bibtex/bst/beebe/nature.bst new file mode 100644 index 00000000000..4d23240bdf9 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/nature.bst @@ -0,0 +1,1012 @@ +% version = 1.05 of nature.bst 1992 June 29 + +% 1.01 1991 July 3 last name first +% bold face volume numbers +% volume followed by comma, not colon +% parenthesis around year +% no comma after page numbers (not done yet!) +% 1.02 1991 Aug 7 Titles removed in FUNCTION {format.title}. +% (Should put \nocite{TitlesOn} +% mechanism in from jmb.bst next) +% 1.03 1991 Aug 29 in inproceedings, book title preceeds the editors!! +% 1.04 1991 Aug 30 year at end of inproceedings +% no 'pages' in inproceedings +% when no comma, don't put space instead +% 1.04 1992 Jun 29 Fix format.vol.num.pages to use field.or.null to +% correctly handle case of missing volume. +% [Nelson H. F. Beebe ] + +% from: +% BibTeX standard bibliography style `unsrt' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block + docomma } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + + #1 'docomma := % if it is 0 then don't do commas, otherwise do them. +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { % doing a comma is controlled specifically using docomma + docomma #0 = + { "" * write$ } % TDS nothing if no comma + { ", " * write$ } + if$ + } + { 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } +% { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := % TDS + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { "" } % the zapped title +% { title "t" change.case$ } % TDS NO TITLES + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ +% 'year % TDS +% { month " " * year * } % TDS + { " (" year * ")" * } + { " " month * " " * " (" year * ")" * * } +%The preceding line was modified by Alan Rogers on 6/26/92. It used to +%look like this: { month " " * " (" year * ")" * * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check +% { "pages" pages n.dashify tie.or.space.connect } +% { "page" pages tie.or.space.connect } +% no word in nature! + { "" pages n.dashify tie.or.space.connect } + { "" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ "{ \bf " volume field.or.null * "}" * % make volume bold face + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } +% { ":" * pages n.dashify * } % TDS + { ", " * pages n.dashify * } % comma, not colon TDS + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } +% { "In " format.editors * ", " * booktitle emphasize * } + { % book title preceeds the editors!! TDS + "In " + booktitle + ", " + * + emphasize + * + format.editors + * + } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { + journal emphasize "journal" output.check + #0 'docomma := % TURN COMMAS OFF + format.vol.num.pages output % these now do their own comma!! + format.date "year" output.check + #1 'docomma := % TURN COMMAS ON + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + #0 'docomma := % TURN COMMAS OFF + format.date "year" output.check + #1 'docomma := % TURN COMMAS ON + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + #0 'docomma := % TURN COMMAS OFF + format.edition output + format.date "year" output.check + #1 'docomma := % TURN COMMAS ON + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { +% new.sentence + #0 'docomma := % TURN COMMAS OFF + " (" output.nonnull + organization output + publisher output + #1 'docomma := % TURN COMMAS ON + address output.nonnull +% year is at the end TDS +% format.date "year" output.check +%zzz + year ")" * output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/newapa.bst b/Master/texmf-dist/bibtex/bst/beebe/newapa.bst new file mode 100644 index 00000000000..2a0d1481397 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/newapa.bst @@ -0,0 +1,1468 @@ +%$$$ newapa.bst $$$ +% BibTeX `newapa' style file for BibTeX version 0.99c, LaTeX version 2.09 +% Place it in a file called newapa.bst in the BibTeX search path. +%(Placing it in the same directory as the LaTeX document should also work.) +% Support for named citations is provided by named.sty + +% This version was made by modifying the master file made by +% Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU), and the 'named' BibTeX +% style of Peter F. Patel-Schneider. + +% Copyright (C) 1985, all rights reserved. +% Copying of this file is authorized only if either +% (1) you make absolutely no changes to your copy, including name, or +% (2) if you do make changes, you name it something other than 'newapa.bst'. +% There are undoubtably bugs in this style. If you make bug fixes, +% improvements, etc. please let me know. My e-mail address is: +% spencer@cgrg.ohio.state.edu or 71160.3141@compuserve.com +% +% This style was made from 'plain.bst', 'named.bst', and 'apalike.bst', +% with lots of tweaking to make it look like APA style, along with tips +% from Young Ryu and Brian Reiser's modifications of 'apalike.bst'. +% +% Citation format: (author-last-name, year) +% (author-last-name and author-last-name, year) +% (author-last-name {\em et al.}, year) +% (author-last-name) +% (author-last-name and author-last-name) +% (author-last-name {\em et al.}) +% (year) +% +% Reference list ordering: alphabetical by author or whatever passes +% for author in the absence of one. +% +% This BibTeX style has support for abbreviated author lists and for +% year-only citations. This is done by having the citations +% actually look like +% +% \citeauthoryear{full-author-info}{abbrev-author-info}{year} +% +% The LaTeX style has to have the following (or similar) +% +% \let\@internalcite\cite +% \def\fullcite{\def\citeauthoryear##1##2##3{##1, ##3}\@internalcite} +% \def\fullciteA{\def\citeauthoryear##1##2##3{##1}\@internalcite} +% \def\shortcite{\def\citeauthoryear##1##2##3{##2, ##3}\@internalcite} +% \def\shortciteA{\def\citeauthoryear##1##2##3{##2}\@internalcite} +% \def\citeyear{\def\citeauthoryear##1##2##3{##3}\@internalcite} +% + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key +% month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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 u } + +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 {special.output.nonnull} +{ 's := + output.state mid.sentence = + { " " * write$ } + { output.state after.block = + { ": " write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { ": " * write$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output.nonnull.colon} +{ '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.nonnull.space} +{ '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 {special.output} +{ duplicate$ empty$ + 'pop$ + 'special.output.nonnull + if$ +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.check.colon} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull.colon + if$ +} + +FUNCTION {output.check.space} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull.space + if$ +} + +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ + " (" year * extra.label * ")" * + mid.sentence 'output.state := + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + + "\bibitem[" write$ + label write$ + "]{" write$ + + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {underline} +{ duplicate$ empty$ + { pop$ "" } + { "\underline{" swap$ * "}" * } + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {emphasize.space} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "\/}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := % nameptr = 1; + s num.names$ 'numnames := % numnames = num.name$(s); + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } +% { " and " * t * } +% { ", \& " * t * } + { " \& " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := % nameptr += 1; + namesleft #1 - 'namesleft := % namesleft =- 1; + } + while$ +} + +FUNCTION {format.names.fml} +{ 's := + #1 'nameptr := % nameptr = 1; + s num.names$ 'numnames := % numnames = num.name$(s); + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } +% { " and " * t * } + { " \& " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := % nameptr += 1; + namesleft #1 - 'namesleft := % namesleft =- 1; + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.editors.fml} +{ editor empty$ + { "" } + { editor format.names.fml + editor num.names$ #1 > + { " (Eds.)" * } + { " (Ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { " (Eds.)" * } + { " (Ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.editors.dot} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { " (Eds.)." * } + { " (Ed.)." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +% Note that the APA style requres case changes +% in article titles. The following does not +% change cases. If you perfer it, uncomment the +% following and comment out the above. + +%FUNCTION {format.title} +%{ title empty$ +% { "" } +% { title } +% if$ +%} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ edition empty$ + { title emphasize } + { title empty$ + { title emphasize } + { "{\em " title * "\/} (" * edition * " ed.)" * "." * } + if$ + } + if$ +} + +FUNCTION {format.emphasize.booktitle} +{ edition empty$ + { booktitle emphasize } + { booktitle empty$ + { booktitle emphasize } + { "{\em " booktitle * "\/} (" * edition * " ed.)" * "." * } + if$ + } + if$ +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check +% { "pages" pages n.dashify tie.or.space.connect } +% { "page" pages tie.or.space.connect } + { "(pp.\" pages n.dashify tie.or.space.connect } + { "(pp.\" pages tie.or.space.connect } + if$ + ")." * + } + if$ +} + +% By Young (and Spencer) +FUNCTION {format.vol.num.pages} +{ number empty$ + { volume empty$ + 'skip$ + { "{\em " volume * "}" * } +% { "\underline{" volume * "}" * } + if$ + } + { volume emphasize.space + number empty$ + {"there's a number but no volume in " cite$ * warning$ } + { "(" number * ")" * * } + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages.incoll} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { " " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " format.emphasize.booktitle * } + { "In " format.editors * ", " * format.emphasize.booktitle * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle.incoll} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " format.emphasize.booktitle * } + { "In " format.editors.fml * ", " * format.emphasize.booktitle * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "In" + "\cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ "In" + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors.dot + "author and editor" output.check } + { format.authors + output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + output.year.check % added + new.block + format.btitle + "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + address output + publisher "publisher" output.check.colon + } + { new.block + format.book.crossref output.nonnull + } + if$ +% format.edition output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + howpublished output + address output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors.dot + "author and editor" output.check + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + output.year.check % added + new.block + format.btitle + "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages + "chapter and pages" output.check + new.block + format.number.series output + new.sentence + address output + publisher + "publisher" output.check.colon + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ +% format.edition output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle.incoll + "booktitle" output.check.colon + format.bvolume output + format.number.series output + format.chapter.pages special.output + new.sentence + address output + publisher "publisher" output.check.colon + } + { format.incoll.inproc.crossref + output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle + "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address output + new.sentence + organization output + publisher output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output % added + output.year.check % added + new.block + format.btitle + "title" output.check + organization address new.block.checkb +% Reversed the order of "address" and "organization", added the ":". + address output + organization "organization" output.check.colon +% address output +% ":" output +% organization output +% format.edition output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % added + output.year.check % added + title howpublished new.block.checkb + format.title output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.btitle + "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors.dot output.nonnull } + if$ + author format.key output % added + output.year.check % added + new.block + format.btitle + "title" output.check + format.bvolume output + format.number.series output + address output + new.sentence + organization output + publisher output + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + format.tr.number output.nonnull + institution + "institution" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {ai} {"Artificial Intelligence"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +INTEGERS { fullptr numfull fullsleft } + +STRINGS { u1 u2 } + +FUNCTION {my.full.label} +{ +% Initialize 'u1','u2','s'. + "" 'u1 := + "" 'u2 := + 's := + +% Initialize 'fullptr','numfull','fullsleft'. + #1 'fullptr := + s num.names$ 'numfull := + numfull 'fullsleft := + +% enter the while loop which generates the first-citation information. +% while we have names left, +% format the next name +% if this is the next-to-last name, tack the ampersand on the end +% else if this isn't the last name, tack the comma on the end. +% concatenate the next name onto the first-citation string. +% update the counters. + + { fullsleft #0 > } + { s fullptr "{vv~}{ll}" format.name$ 'u1 := + fullsleft #2 = + { u1 " \& " * 'u1 := } + { fullsleft #2 > + { u1 ", " * 'u1 := } + 'skip$ + if$ + } + if$ + u2 u1 * 'u2 := + fullptr #1 + 'fullptr := + fullsleft #1 - 'fullsleft := + } + while$ + +% push 'u2' onto the stack -- our first-citation information. + u2 +} + +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "et~al. " * } +% { " and " * s #2 "{vv~}{ll}" format.name$ * } + { " \& " * 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 {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor 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 {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + duplicate$ + + author my.full.label % generate the first-citation information. + + "\protect\citeauthoryear{" swap$ * "}{" * swap$ * "}{" * + year field.or.null purify$ #-1 #4 substring$ * + 'label := + year field.or.null purify$ #-1 #4 substring$ * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor 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 {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$ % added for newapa + 'sort.label := % added for newapa + sort.label % added for newapa + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT % by label, sort.label, title --- for final label calculation + +STRINGS { last.label next.extra } + +INTEGERS { last.extra.num } + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +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$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * "}" * 'label := + extra.label 'next.extra := +} + +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 % by sort.label, year, title --- giving final bib. order. + +FUNCTION {begin.bib} + +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ +} + + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + + diff --git a/Master/texmf-dist/bibtex/bst/beebe/phaip.bst b/Master/texmf-dist/bibtex/bst/beebe/phaip.bst new file mode 100644 index 00000000000..4c138d904be --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/phaip.bst @@ -0,0 +1,1885 @@ +% BibTeX styles for various physics journals (27-Feb-1990). +% This file, physics.btx, is based on the file btxbst.doc. + % Please notify Charles Karney (Karney@Princeton.EDU) + % of any bugs, improvements, etc. +% Run this file through cpp to get specific versions. I have written +% a version of cpp within Emacs. To access it put +% (autoload 'cpp "tex$bibtex:cpp" ; Use cpp for BibTeX styles +% "C preprocessor" +% t) +% into your .emacs file. Read in this file with +% emacs tex$bibtex:physics.btx +% and run cpp with e.g., +% M-x cpp aip +% Save the resulting file to tex$latex:aip.bst. +% To accomodate the variations we need (in addition to the definitions below) +% ATIT_SUPPRESS: do not include the titles of journal articles +% NAME_INVERT: put the initials last +% NAME_UPPER: convert names to all caps. +% MONTH_SUPPRESS: do not include months in journal articles +% PAREN_DATE: dates go in parens in journal articles +% DATE_FIRST: dates go before page numbers +% VOLUME_SPACE: volume set off with space (not colon) +% NUM_SUPPRESS: do not include numbers in journal articles +% BOLD_VOL: volume numbers in bold face in journal articles +% BRACKET_NOTE: notes in brackets +% PAGE_START_J: include only starting page for journal articles +% PAGE_START_O: include only starting page for other entries +% PAGE_ABBREV: abbreviate page to p. and pages to pp. +% PHYSICS_JOUR: include abbreviations for Physics journals +% COMMA_DELIMIT: use comma (instead of period) to divide a citation +% NOTE_SUPPRESS: suppress the note +% MAX_NAMES: max number of authors before using et al (0 = infinity) +% MIN_NAMES: number of authors to list with et al. +% EDIT_VAR: use "edited by ..." instead of "..., editors" +% RMP_LABELS: create RMP-style labels +% KEY_CITE: use key as label +% NAMED_REFS: use (Smith, 1988) style of citations +% CSC_NAMES: names set in caps and small caps +% JOUR_DEEMPH: don't emphasize journal name +% ETAL_EMPH: emphasize et al. +% ALT_INCOLL alternate ordering of fields in incollections +% These are all boolean (0 or 1) except for MAX_NAMES and MIN_NAMES. +% These need to satisfy 0 <= MIN_NAMES <= MAX_NAMES. +% The rule here is that if all these are defined to be zero, we revert to +% the standard styles. For that reason we initialize them all to 0. +% These are the original macros + % For American Institute of Physics Journals +% This is the start of btxbst.doc +% BibTeX `plain' family + % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. +% Please notify Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU) of any bugs in +% these standard styles or in this documentation file. +% +% This is file btxbxt.doc; it helps document bibliography styles, +% and is also a template file that you can use to make +% several different style files, if you have access to a C preprocessor. +% For example, the standard styles were made by doing something like +% cpp -P -DPLAIN btxbst.doc plain.txt +% cpp -P -DUNSRT btxbst.doc unsrt.txt +% cpp -P -DALPHA btxbst.doc alpha.txt +% cpp -P -DABBRV btxbst.doc abbrv.txt +% and then renaming after removing unwanted comments and blank lines. +% If you don't have access, +% you can edit this file by hand to imitate the preprocessor, +% with the following explanation of the C preprocessor constructs used here. +% +% The output of the preprocessor is the same as the input, except that certain +% lines will be excluded (and some blank lines will be added). The sequence +% #if VAR +% lines to be included when VAR is not zero +% #else +% lines to be included when VAR is zero +% #endif +% (with the #-signs appearing in column 1) means that one set or the other of +% the lines are to be included depending on the value of VAR. +% The #else part is optional. Comments can be added after #else and #endif. +% Variables can be set by +% #define VAR value +% and one can also use #ifdef VAR to see if VAR has any value, and #ifndef +% to see if it has none. +% Another #if form used in this file is #if !VAR, which includes the lines +% after the #if only if VAR is zero. +% +% Convention: Use all uppercase identifiers for these preprocessor variables +% so you can spot them easily +% +% The command line to the preprocessor should define one of PLAIN, UNSRT, ALPHA +% or ABBRV (though PLAIN will be used by default if none is given), +% and the following lines will set various boolean variables to control the +% various lines that are chosen from the rest of the file. +% Each boolean variable should be set true (1) or false (0) in each style. +% Here are the current variables, and their meanings: +% 0: an alphabetic label is used (if false then a numeric +% label is used) +% 0: the entries should be sorted by label (if nonnumeric) +% and other info, like authors (if false, then +% entries remain in order of occurrence) +% 0: the authors, editors, etc., get the full names as +% given in the bibliography file (if false, the first +% names become initials) +% 1: titles of non-"books" (e.g., articles) should be +% converted to lower-case, except the first letter or +% first letter after a colon +% (if false then they appear as in the database) +% 0: months are spelled out in full (if false, then +% they're abbreviated) +% 0: macro journal names are spelled out in full +% (if false then they are abbreviated, currently +% as they appear in ACM publications) +%# define PLAIN 1 +% +% Entry formatting: Similar to that recommended by Mary-Claire van Leunen +% in "A Handbook for Scholars". Book-like titles are italicized +% (emphasized) and non-book titles are converted to sentence +% capitilization (and not enclosed in quotes). +% This file outputs a \newblock between major blocks of an entry +% (the name \newblock is analogous to the names \newline and \newpage) +% so that the user can obtain an "open" format, which has a line break +% before each block and lines after the first are indented within blocks, +% by giving the optional \documentstyle argument `openbib'; +% The default is the "closed" format---blocks runs together. +% +% Citation alphabetic label format: +% [Knu73] for single author (or editor or key) +% [AHU83] (first letters of last names) for multiple authors +% +% Citation label numberic format: +% [number] +% +% Reference list ordering for sorted, alphabetic lables: +% alphabetical by citation label, then by author(s) or whatever +% passes for author in the absence of one, then by year, +% then title +% +% Reference list ordering for sorted, numeric lables: +% alphabetical by author(s) or whatever passes +% for author in the absence of one, then by year, then title +% +% Reference list ordering for unsorted: +% by the order cited in the text +% +% History +% 12/16/84 (HWT) Original `plain' version, by Howard Trickey. +% 12/23/84 (LL) Some comments made by Leslie Lamport. +% 2/16/85 (OP) Changes based on LL's comments, Oren Patashnik. +% 2/17/85 (HWT) Template file and other standard styles made. +% 3/28/85 (OP) First release, version 0.98b for BibTeX 0.98f. +% 5/ 9/85 (OP) Version 0.98c for BibTeX 0.98i: +% fixed Theoretical Computer Science macro name; +% fixed the format.vol.num.pages function. +% 1/24/88 (OP) Version 0.99a for BibTeX 0.99a, main changes: +% assignment operator (:=) arguments reversed; +% the preamble$ function outputs the database PREAMBLE; +% entry.max$ and global.max$ (built-in) variables replace +% entry.string.max and global.string.max functions; +% alphabetizing by year then title, not just title; +% many unnecessary ties removed; \it ==> \em; +% the `alpha' style uses a superscripted `+' instead of a +% `*' for unnamed names in constructing the label; +% the `abbrv' style now uses "Mar." and "Sept."; +% the functions calc.label and presort now look at just +% the fields they're supposed to; +% BOOKLET, MASTERSTHESIS, TECHREPORT use nonbook titles; +% INBOOK and INCOLLECTION take an optional type (e.g. +% type = "Section"), overriding the default "chapter"; +% BOOK, INBOOK, INCOLLECTION, and PROCEEDINGS now allow +% either volume or number, not just volume; +% INCOLLECTION now allows an edition and series field; +% PROCEEDINGS and INPROCEEDINGS now use the address field +% to tell where a conference was held; +% INPROCEEDINGS and PROCEEDINGS now allow either volume +% or number, and also a series field; +% MASTERSTHESIS and PHDTHESIS accept types other than +% "Master's thesis" and "PhD thesis"; +% UNPUBLISHED now outputs, in one block, note then date; +% MANUAL now prints out the organization in +% the first block if the author field is empty; +% MISC can't be empty---it requires some optional field. +% 3/23/88 (OP) Version 0.99b for BibTeX 0.99c---changed the three +% erroneous occurrences of `cite ' to `cite$ '; this +% change didn't affect the four standard styles, so the +% 0.99a versions of those styles are still current. +% +% The ENTRY declaration +% Like Scribe's (according to pages 231-2 of the April '84 edition), +% but no fullauthor or editors fields because BibTeX does name handling. +% The annote field is commented out here because this family doesn't +% include an annotated bibliography style. And in addition to the fields +% listed here, BibTeX has a built-in crossref field, explained later. +ENTRY +% Fields: + { address +% Usually the address of a publisher or other type of organization. +% Put information in this field only if it helps the reader find the +% thing---for example you should omit the address of a major +% publisher entirely. For a PROCEEDINGS or an INPROCEEDINGS, +% however, it's the address of the conference; for those two entry +% types, include the publisher's or organization's address, if +% necessary, in the publisher or organization field. +% annote +% Long annotation---for annotated bibliographies (begins sentence). + author +% Name(s) of author(s), in BibTeX name format. + booktitle +% Book title when the thing being referenced isn't the whole book. +% For book entries, the title field should be used instead. + chapter +% Chapter (or section or whatever) number. + edition +% Edition of a book---should be an ordinal (e.g., "Second"). + editor +% Name(s) of editor(s), in BibTeX name format. +% If there is also an author field, then the editor field should be +% for the book or collection that the work appears in. + howpublished +% How something strange has been published (begins sentence). + institution +% Sponsoring institution of a technical report. + journal +% Journal name (macros are provided for many). + key +% Alphabetizing, labeling, and cross-referencing key +% (needed when an entry has no author or editor). + month +% Month (macros are provided). + note +% To help the reader find a reference (begins sentence). + number +% Number of a journal or technical report, or of a work in a series. + organization +% Organization sponsoring a conference (or publishing a manual); if +% the editor (or author) is empty, and if the organization produces +% an awkward label or cross reference, you should put appropriately +% condensed organization information in the key field as well. + pages +% Page number or numbers (use `--' to separate a range, use `+' +% to indicate pages following that don't form a simple range). + publisher +% Publisher name. + school +% School name (for theses). + series +% The name of a series or set of books. +% An individual book will will also have it's own title. + title +% The title of the thing you're referred to. + type +% Type of a Techreport (e.g., "Research Note") to be used instead of +% the default "Technical Report"; or, similarly, the type of a +% thesis; or of a part of a book. + volume +% The volume number of a journal or multivolume work. + year +% The year should contain only numerals (technically, it should end +% with four numerals, after purification; doesn't a begin sentence). + } +% There are no integer entry variables + {} +% These string entry variables are used to form the citation label. +% In a storage pinch, sort.label can be easily computed on the fly. + { label } +% Each entry function starts by calling output.bibitem, to write the +% \bibitem and its arguments to the .BBL file. Then the various fields +% are formatted and printed by output or output.check. Those functions +% handle the writing of separators (commas, periods, \newblock's), +% taking care not to do so when they are passed a null string. +% Finally, fin.entry is called to add the final period and finish the +% entry. +% +% A bibliographic reference is formatted into a number of `blocks': +% in the open format, a block begins on a new line and subsequent +% lines of the block are indented. A block may contain more than +% one sentence (well, not a grammatical sentence, but something to +% be ended with a sentence ending period). The entry functions should +% call new.block whenever a block other than the first is about to be +% started. They should call new.sentence whenever a new sentence is +% to be started. The output functions will ensure that if two +% new.sentence's occur without any non-null string being output between +% them then there won't be two periods output. Similarly for two +% successive new.block's. +% +% The output routines don't write their argument immediately. +% Instead, by convention, that argument is saved on the stack to be +% output next time (when we'll know what separator needs to come +% after it). Meanwhile, the output routine has to pop the pending +% output off the stack, append any needed separator, and write it. +% +% To tell which separator is needed, we maintain an output.state. +% It will be one of these values: +% before.all just after the \bibitem +% mid.sentence in the middle of a sentence: comma needed +% if more sentence is output +% after.sentence just after a sentence: period needed +% after.block just after a block (and sentence): +% period and \newblock needed. +% Note: These styles don't use after.sentence +% +% VAR: output.state : INTEGER -- state variable for output +% +% The output.nonnull function saves its argument (assumed to be nonnull) +% on the stack, and writes the old saved value followed by any needed +% separator. The ordering of the tests is decreasing frequency of +% occurrence. +% +% output.nonnull(s) == +% BEGIN +% s := argument on stack +% if output.state = mid.sentence then +% write$(pop() * ", ") +% -- "pop" isn't a function: just use stack top +% else +% if output.state = after.block then +% write$(add.period$(pop())) +% newline$ +% write$("\newblock ") +% else +% if output.state = before.all then +% write$(pop()) +% else -- output.state should be after.sentence +% write$(add.period$(pop()) * " ") +% fi +% fi +% output.state := mid.sentence +% fi +% push s on stack +% END +% +% The output function calls output.nonnull if its argument is non-empty; +% its argument may be a missing field (thus, not necessarily a string) +% +% output(s) == +% BEGIN +% if not empty$(s) then output.nonnull(s) +% fi +% END +% +% The output.check function is the same as the output function except that, if +% necessary, output.check warns the user that the t field shouldn't be empty +% (this is because it probably won't be a good reference without the field; +% the entry functions try to make the formatting look reasonable even when +% such fields are empty). +% +% output.check(s,t) == +% BEGIN +% if empty$(s) then +% warning$("empty " * t * " in " * cite$) +% else output.nonnull(s) +% fi +% END +% +% The output.bibitem function writes the \bibitem for the current entry +% (the label should already have been set up), and sets up the separator +% state for the output functions. And, it leaves a string on the stack +% as per the output convention. +% +% output.bibitem == +% BEGIN +% newline$ +% write$("\bibitem[") % for alphabetic labels, +% write$(label) % these three lines +% write$("]{") % are used +% write$("\bibitem{") % this line for numeric labels +% write$(cite$) +% write$("}") +% push "" on stack +% output.state := before.all +% END +% +% The fin.entry function finishes off an entry by adding a period to the +% string remaining on the stack. If the state is still before.all +% then nothing was produced for this entry, so the result will look bad, +% but the user deserves it. (We don't omit the whole entry because the +% entry was cited, and a bibitem is needed to define the citation label.) +% +% fin.entry == +% BEGIN +% write$(add.period$(pop())) +% newline$ +% END +% +% The new.block function prepares for a new block to be output, and +% new.sentence prepares for a new sentence. +% +% new.block == +% BEGIN +% if output.state <> before.all then +% output.state := after.block +% fi +% END +% +% new.sentence == +% BEGIN +% if output.state <> after.block then +% if output.state <> before.all then +% output.state := after.sentence +% fi +% fi +% END +% +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 := +} +% the variables s and t are temporary string holders +STRINGS { s t } +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { "," * 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} +% This function finishes all entries. +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} +FUNCTION {new.sentence} +{ skip$ +} +% These three functions pop one or two (integer) arguments from the stack +% and push a single one, either 0 or 1. +% The 'skip$ in the `and' and `or' functions are used because +% the corresponding if$ would be idempotent +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +% Sometimes we begin a new block only if the block will be big enough. The +% new.block.checka function issues a new.block if its argument is nonempty; +% new.block.checkb does the same if either of its TWO arguments is nonempty. +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +% The new.sentence.check functions are analogous. +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} +% Here are some functions for formatting chunks of an entry. +% By convention they either produce a string that can be followed by +% a comma or period (using add.period$, so it is OK to end in a period), +% or they produce the null string. +% +% A useful utility is the field.or.null function, which checks if the +% argument is the result of pushing a `missing' field (one for which no +% assignment was made when the current entry was read in from the database) +% or the result of pushing a string having no non-white-space characters. +% It returns the null string if so, otherwise it returns the field string. +% Its main (but not only) purpose is to guarantee that what's left on the +% stack is a string rather than a missing field. +% +% field.or.null(s) == +% BEGIN +% if empty$(s) then return "" +% else return s +% END +% +% Another helper function is emphasize, which returns the argument emphazised, +% if that is non-empty, otherwise it returns the null string. Italic +% corrections aren't used, so this function should be used when punctation +% will follow the result. +% +% emphasize(s) == +% BEGIN +% if empty$(s) then return "" +% else return "{\em " * s * "}" +% +% The format.names function formats the argument (which should be in +% BibTeX name format) into "First Von Last, Junior", separated by commas +% and with an "and" before the last (but ending with "et~al." if the last +% of multiple authors is "others"). This function's argument should always +% contain at least one name. +% +% VAR: nameptr, namesleft, numnames: INTEGER +% pseudoVAR: nameresult: STRING (it's what's accumulated on the stack) +% +% format.names(s) == +% BEGIN +% nameptr := 1 +% numnames := num.names$(s) +% namesleft := numnames +% while namesleft > 0 +% do +% % for full names: +% t := format.name$(s, nameptr, "{ff~}{vv~}{ll}{, jj}") +% % for abbreviated first names: +% t := format.name$(s, nameptr, "{f.~}{vv~}{ll}{, jj}") +% if nameptr > 1 then +% if namesleft > 1 then nameresult := nameresult * ", " * t +% else if numnames > 2 +% then nameresult := nameresult * "," +% fi +% if t = "others" +% then nameresult := nameresult * " et~al." +% else nameresult := nameresult * " and " * t +% fi +% fi +% else nameresult := t +% fi +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% return nameresult +% END +% +% The format.authors function returns the result of format.names(author) +% if the author is present, or else it returns the null string +% +% format.authors == +% BEGIN +% if empty$(author) then return "" +% else return format.names(author) +% fi +% END +% +% Format.editors is like format.authors, but it uses the editor field, +% and appends ", editor" or ", editors" +% +% format.editors == +% BEGIN +% if empty$(editor) then return "" +% else +% if num.names$(editor) > 1 then +% return format.names(editor) * ", editors" +% else +% return format.names(editor) * ", editor" +% fi +% fi +% END +% +% Other formatting functions are similar, so no "comment version" will be +% given for them. +% +% The `pop$' in this function gets rid of the duplicate `empty' value and +% the `skip$' returns the duplicate field value +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} +FUNCTION {embolden} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} +FUNCTION {paren} +{ duplicate$ empty$ + { pop$ "" } + { "(" swap$ * ")" * } + if$ +} +INTEGERS { nameptr namesleft numnames } +INTEGERS { etal } +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames #5 > + s numnames "{ll}" format.name$ "others" = numnames #1 > and + or 'etal := + etal + { #1 #1 + 'namesleft := } + { numnames 'namesleft := } + if$ + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { nameptr #2 > + { "," * } + 'skip$ + if$ + t "others" = + etal or + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} +FUNCTION {format.edited} +{ editor empty$ + { "" } + { "edited by " editor format.names * } + if$ +} +% The format.title function is used for non-book-like titles. +% For most styles we convert to lowercase (except for the very first letter, +% and except for the first one after a colon (followed by whitespace)), +% and hope the user has brace-surrounded words that need to stay capitilized; +% for some styles, however, we leave it as it is in the database. +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} +% By default, BibTeX sets the global integer variable global.max$ to the BibTeX +% constant glob_str_size, the maximum length of a global string variable. +% Analogously, BibTeX sets the global integer variable entry.max$ to +% ent_str_size, the maximum length of an entry string variable. +% The style designer may change these if necessary (but this is unlikely) +% The n.dashify function makes each single `-' in a string a double `--' +% if it's not already +% +% pseudoVAR: pageresult: STRING (it's what's accumulated on the stack) +% +% n.dashify(s) == +% BEGIN +% t := s +% pageresult := "" +% while (not empty$(t)) +% do +% if (first character of t = "-") +% then +% if (next character isn't) +% then +% pageresult := pageresult * "--" +% t := t with the "-" removed +% else +% while (first character of t = "-") +% do +% pageresult := pageresult * "-" +% t := t with the "-" removed +% od +% fi +% else +% pageresult := pageresult * the first character +% t := t with the first character removed +% fi +% od +% return pageresult +% END +FUNCTION {n.dashify} +{ '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 {first.page} +{ 't := + "" + { t empty$ not t #1 #1 substring$ "-" = not and } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + while$ +} +% The format.date function is for the month and year, but we give a warning if +% there's an empty year but the month is there, and we return the empty string +% if they're both empty. +FUNCTION {format.date} +{ year empty$ + { "" } + 'year + if$ +} +% The format.btitle is for formatting the title field when it is a book-like +% entry---the style used here keeps it in uppers-and-lowers and emphasizes it. +FUNCTION {format.btitle} +{ title emphasize +} +% For several functions we'll need to connect two strings with a +% tie (~) if the second one isn't very long (fewer than 3 characters). +% The tie.or.space.connect function does that. It concatenates the two +% strings on top of the stack, along with either a tie or space between +% them, and puts this concatenation back onto the stack: +% +% tie.or.space.connect(str1,str2) == +% BEGIN +% if text.length$(str2) < 3 +% then return the concatenation of str1, "~", and str2 +% else return the concatenation of str1, " ", and str2 +% END +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} +% The either.or.check function complains if both fields or an either-or pair +% are nonempty. +% +% either.or.check(t,s) == +% BEGIN +% if empty$(s) then +% warning$(can't use both " * t * " fields in " * cite$) +% fi +% END +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +% The format.bvolume function is for formatting the volume and perhaps +% series name of a multivolume work. If both a volume and a series field +% are there, we assume the series field is the title of the whole multivolume +% work (the title field should be the title of the thing being referred to), +% and we add an "of ". This function is called in mid-sentence. +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +% The format.number.series function is for formatting the series name +% and perhaps number of a work in a series. This function is similar to +% format.bvolume, although for this one the series must exist (and the +% volume must not exist). If the number field is empty we output either +% the series field unchanged if it exists or else the null string. +% If both the number and series fields are there we assume the series field +% gives the name of the whole series (the title field should be the title +% of the work being one referred to), and we add an "in ". +% We capitilize Number when this function is used at the beginning of a block. +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} +% The format.edition function appends " edition" to the edition, if present. +% We lowercase the edition (it should be something like "Third"), because +% this doesn't start a sentence. +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + if$ +} +% The format.pages function is used for formatting a page range in a book +% (and in rare circumstances, an article). +% +% The multi.page.check function examines the page field for a "-" or "," or "+" +% so that format.pages can use "page" instead of "pages" if none exists. +% Note: global.max$ here means "take the rest of the string" +% +% VAR: multiresult: INTEGER (actually, a boolean) +% +% multi.page.check(s) == +% BEGIN +% t := s +% multiresult := false +% while ((not multiresult) and (not empty$(t))) +% do +% if (first character of t = "-" or "," or "+") +% then multiresult := true +% else t := t with the first character removed +% fi +% od +% return multiresult +% END +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 +} +% This function doesn't begin a sentence so "pages" isn't capitalized. +% Other functions that use this should keep that in mind. +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} +FUNCTION {format.pages.a} +{ pages empty$ + { "" } + { "page" pages first.page tie.or.space.connect } + if$ +} +% The format.vol.num.pages function is for the volume, number, and page range +% of a journal article. We use the format: vol(number):pages, with some +% variations for empty fields. This doesn't begin a sentence. +FUNCTION {format.vol.num.pages} +{ volume field.or.null embolden + " " swap$ * * + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages.a } + { ", " * pages first.page * } + if$ + } + if$ +} +% The format.chapter.pages, if the chapter is present, puts whatever is in the +% type field (or else "chapter" if type is empty) in front of a chapter number. +% It then appends the pages, if present. This doesn't begin a sentence. +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} +% The format.in.ed.booktitle function is used for starting out a sentence +% that begins "In ", putting an editor before the title if one +% exists. +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "in " booktitle emphasize * } + { "in " booktitle emphasize * ", " * format.edited * } + if$ + } + if$ +} +% The function empty.misc.check complains if all six fields are empty, and +% if there's been no sorting or alphabetic-label complaint. +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} +% The function format.thesis.type returns either the (case-changed) type field, +% if it is defined, or else the default string already on the stack +% (like "Master's thesis" or "PhD thesis"). +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} +% The function format.tr.number makes a string starting with "Technical Report" +% (or type, if that field is defined), followed by the number if there is one; +% it returns the starting part (with a case change) even if there is no number. +% This is used at the beginning of a sentence. +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} +% Now come the cross-referencing functions (these are invoked because +% one entry in the database file(s) cross-references another, by giving +% the other entry's database key in a `crossref' field). This feature +% allows one or more titled things that are part of a larger titled +% thing to cross-reference the larger thing. These styles allow for +% five posibilities: (1) an ARTICLE may cross-reference an ARTICLE; +% (2) a BOOK, (3) INBOOK, or (4) INCOLLECTION may cross-reference a BOOK; +% or (5) an INPROCEEDINGS may cross-reference a PROCEEDINGS. +% Each of these is explained in more detail later. +% +% An ARTICLE entry type may cross reference another ARTICLE (this is +% intended for when an entire journal is devoted to a single topic--- +% but since there is no JOURNAL entry type, the journal, too, should be +% classified as an ARTICLE but without the author and title fields). +% This will result in two warning messages for the journal's entry +% if it's included in the reference list, but such is life. +% +% format.article.crossref == +% BEGIN +% if empty$(key) then +% if empty$(journal) then +% warning$("need key or journal for " * cite$ * +% " to crossref " * crossref) +% return(" \cite{" * crossref * "}") +% else +% return("In " * emphazise.correct (journal) * +% " \cite{" * crossref * "}") +% fi +% else +% return("In " * key * " \cite{" * crossref * "}") +% fi +% END +% +% The other cross-referencing functions are similar, so no "comment version" +% will be given for them. +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In " journal * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} +% We use just the last names of editors for a cross reference: either +% "editor", or "editor1 and editor2", or "editor1 et~al." depending on +% whether there are one, or two, or more than two editors. +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} +% A BOOK (or INBOOK) entry type (assumed to be for a single volume in a +% multivolume work) may cross reference another BOOK (the entire multivolume). +% Usually there will be an editor, in which case we use that to construct the +% cross reference; otherwise we use a nonempty key field or else the series +% field (since the series gives the title of the multivolume work). +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} +% An INCOLLECTION entry type may cross reference a BOOK (assumed to be the +% collection), or an INPROCEEDINGS may cross reference a PROCEEDINGS. +% Often there will be an editor, in which case we use that to construct +% the cross reference; otherwise we use a nonempty key field or else +% the booktitle field (which gives the cross-referenced work's title). +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} +% Now we define the type functions for all entry types that may appear +% in the .BIB file---e.g., functions like `article' and `book'. These +% are the routines that actually generate the .BBL-file output for +% the entry. These must all precede the READ command. In addition, the +% style designer should have a function `default.type' for unknown types. +% Note: The fields (within each list) are listed in order of appearance, +% except as described for an `inbook' or a `proceedings'. +% +% The article function is for an article in a journal. An article may +% CROSSREF another article. +% Required fields: author, title, journal, year +% Optional fields: volume, number, pages, month, note +% +% article == +% BEGIN +% output.bibitem +% output.check(format.authors,"author") +% new.block +% output.check(format.title,"title") +% new.block +% if missing$(crossref) then +% output.check(emphasize(journal),"journal") +% output(format.vol.num.pages) +% output.check(format.date,"year") +% else +% output.nonnull(format.article.crossref) +% output(format.pages) +% fi +% new.block +% output(note) +% fin.entry +% END +% +% The book function is for a whole book. A book may CROSSREF another book. +% Required fields: author or editor, title, publisher, year +% Optional fields: volume or number, series, address, edition, month, +% note +% +% book == +% BEGIN +% if empty$(author) then output.check(format.editors,"author and editor") +% else output.check(format.authors,"author") +% if missing$(crossref) then +% either.or.check("author and editor",editor) +% fi +% fi +% new.block +% output.check(format.btitle,"title") +% if missing$(crossref) then +% output(format.bvolume) +% new.block +% output(format.number.series) +% new.sentence +% output.check(publisher,"publisher") +% output(address) +% else +% new.block +% output.nonnull(format.book.crossref) +% fi +% output(format.edition) +% output.check(format.date,"year") +% new.block +% output(note) +% fin.entry +% END +% +% The other entry functions are all quite similar, so no "comment version" +% will be given for them. +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + crossref missing$ + { journal field.or.null + format.vol.num.pages + format.date empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.date paren } + { " " * format.date paren * } + if$ + } + if$ + output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} +% A booklet is a bound thing without a publisher or sponsoring institution. +% Required: title +% Optional: author, howpublished, address, month, year, note +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} +% For the conference entry type, see inproceedings. +% An inbook is a piece of a book: either a chapter and/or a page range. +% It may CROSSREF a book. If there's no volume field, the type field +% will come before number and series. +% Required: author or editor, title, chapter and/or pages, publisher,year +% Optional: volume or number, series, type, address, edition, month, note +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} +% An incollection is like inbook, but where there is a separate title +% for the referenced thing (and perhaps an editor for the whole). +% An incollection may CROSSREF a book. +% Required: author, title, booktitle, publisher, year +% Optional: editor, volume or number, series, type, chapter, pages, +% address, edition, month, note +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} +% An inproceedings is an article in a conference proceedings, and it may +% CROSSREF a proceedings. If there's no address field, the month (& year) +% will appear just before note. +% Required: author, title, booktitle, year +% Optional: editor, volume or number, series, pages, address, month, +% organization, publisher, note +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} +% The conference function is included for Scribe compatibility. +FUNCTION {conference} { inproceedings } +% A manual is technical documentation. +% Required: title +% Optional: author, organization, address, edition, month, year, note +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} +% A mastersthesis is a Master's thesis. +% Required: author, title, school, year +% Optional: type, address, month, note +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% A misc is something that doesn't fit elsewhere. +% Required: at least one of the `optional' fields +% Optional: author, title, howpublished, month, year, note +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} +% A phdthesis is like a mastersthesis. +% Required: author, title, school, year +% Optional: type, address, month, note +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% A proceedings is a conference proceedings. +% If there is an organization but no editor field, the organization will +% appear as the first optional field (we try to make the first block nonempty); +% if there's no address field, the month (& year) will appear just before note. +% Required: title, year +% Optional: editor, volume or number, series, address, month, +% organization, publisher, note +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} +% A techreport is a technical report. +% Required: author, title, institution, year +% Optional: type, number, address, month, note +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% An unpublished is something that hasn't been published. +% Required: author, title, note +% Optional: month, year +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} +% We use entry type `misc' for an unknown type; BibTeX gives a warning. +FUNCTION {default.type} { misc } +% Here are macros for common things that may vary from style to style. +% Users are encouraged to use these macros. +% +% Months are either written out in full or abbreviated +MACRO {jan} {"Jan."} +MACRO {feb} {"Feb."} +MACRO {mar} {"Mar."} +MACRO {apr} {"Apr."} +MACRO {may} {"May"} +MACRO {jun} {"June"} +MACRO {jul} {"July"} +MACRO {aug} {"Aug."} +MACRO {sep} {"Sept."} +MACRO {oct} {"Oct."} +MACRO {nov} {"Nov."} +MACRO {dec} {"Dec."} +% Journals are either written out in full or abbreviated; +% the abbreviations are like those found in ACM publications. +% +% To get a completely different set of abbreviations, it may be best to make +% a separate .bib file with nothing but those abbreviations; users could then +% include that file name as the first argument to the \bibliography command +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. Softw. Eng."} +MACRO {ieeetc} {"IEEE Trans. Comput."} +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} +MACRO {ipl} {"Inf. Process. Lett."} +MACRO {jacm} {"J.~ACM"} +MACRO {jcss} {"J.~Comput. Syst. Sci."} +MACRO {scp} {"Sci. Comput. Programming"} +MACRO {sicomp} {"SIAM J. Comput."} +MACRO {tocs} {"ACM Trans. Comput. Syst."} +MACRO {tods} {"ACM Trans. Database Syst."} +MACRO {tog} {"ACM Trans. Gr."} +MACRO {toms} {"ACM Trans. Math. Softw."} +MACRO {toois} {"ACM Trans. Office Inf. Syst."} +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} +MACRO {tcs} {"Theoretical Comput. Sci."} +%% /usr/local/lib/tex/bibtex/phyjfull.btx, Tue Jun 30 08:37:48 1992 +%% Edit by Nelson H. F. Beebe +%% Change file names in leading comment +% Journal Title Abbreviations from the Physical Review Style and Notation +% Guide, July, 1983, in BAPS Vol. 28. +% Selected by Cris Barnes and Charles Karney, March 1988 +% IMPORTANT!! Don't make changes to this file without making the +% corresponding changes to +% phyjabb.bib +% phyjabb.btx +MACRO {advp} {"Advances in Physics"} +MACRO {ajp} {"American Journal of Physics"} +MACRO {ao} {"Applied Optics"} +MACRO {apl} {"Applied Physics Letters"} +MACRO {apj} {"Astrophysical Journal"} +MACRO {baps} {"Bulletin of the American Physical Society"} +MACRO {cpc} {"Computer Physics Communications"} +MACRO {cppcf} {"Comments on Plasma Physics and Controlled Fusion"} +MACRO {fed} {"Fusion Engineering and Design"} +MACRO {ft} {"Fusion Technology"} +MACRO {ieeens} {"IEEE Transactions on Nuclear Science"} +MACRO {ieeeps} {"IEEE Transactions on Plasma Science"} +MACRO {ijimw} {"International Journal of Infrared and Millimeter Waves"} +MACRO {ip} {"Infrared Physics"} +MACRO {jap} {"Journal of Applied Physics"} +MACRO {jcp} {"Journal of Computational Physics"} +MACRO {jetp} {"Soviet Physics-JETP"} +MACRO {jfe} {"Journal of Fusion Energy"} +MACRO {jfm} {"Journal of Fluid Mechanics"} +MACRO {jgr} {"Journal of Geophysical Research"} +MACRO {jmp} {"Journal of Mathematical Physics"} +MACRO {jne} {"Journal of Nuclear Energy"} +MACRO {jnec} {"Journal of Nuclear Energy, Part C: Plasma Physics, Accelerators, Thermonuclear Research"} +MACRO {jnm} {"Journal of Nuclear Materials"} +MACRO {josa} {"Journal of the Optical Society of America"} +MACRO {jpp} {"Journal of Plasma Physics"} +MACRO {jpsj} {"Journal of the Physical Society of Japan"} +MACRO {jvst} {"Journal of Vacuum Science and Technology"} +MACRO {nedf} {"Nuclear Engineering and Design/Fusion"} +MACRO {nf} {"Nuclear Fusion"} +MACRO {nim} {"Nuclear Instruments and Methods"} +MACRO {nimpr} {"Nuclear Instruments and Methods in Physics Research"} +MACRO {nt/f} {"Nuclear Technology/Fusion"} +MACRO {pf} {"Physics of Fluids"} +MACRO {pfa} {"Physics of Fluids A: Fluid Dynamics"} +MACRO {pfb} {"Physics of Fluids B: Plasma Physics"} +MACRO {pl} {"Physics Letters"} +MACRO {pla} {"Physics Letters A"} +MACRO {pnas} {"Proceedings of the National Academy of Sciences of the USA"} +MACRO {pp} {"Plasma Physics"} +MACRO {ppcf} {"Plasma Physics and Controlled Fusion"} +MACRO {prl} {"Physical Review Letters"} +MACRO {pr} {"Physical Review"} +MACRO {pra} {"Physical Review A: General Physics"} +MACRO {ps} {"Physica Scripta"} +MACRO {rmp} {"Reviews of Modern Physics"} +MACRO {rsi} {"Review of Scientific Instruments"} +MACRO {sjpp} {"Soviet Journal of Plasma Phys."} +MACRO {spd} {"Soviet Physics-Doklady"} +MACRO {sptp} {"Soviet Physics-Technical Physics"} +MACRO {spu} {"Soviet Physics-Uspeki"} +% Now we read in the .BIB entries. +READ +% The sortify function converts to lower case after purify$ing; it's +% used in sorting and in computing alphabetic labels after sorting +% +% The chop.word(w,len,s) function returns either s or, if the first len +% letters of s equals w (this comparison is done in the third line of the +% function's definition), it returns that part of s after w. +% This long comment applies only to alphabetic labels +% +% The format.lab.names function makes a short label by using the initials of +% the von and Last parts of the names (but if there are more than four names, +% (i.e., people) it truncates after three and adds a superscripted "+"; +% it also adds such a "+" if the last of multiple authors is "others"). +% If there is only one name, and its von and Last parts combined have just +% a single name-token ("Knuth" has a single token, "Brinch Hansen" has two), +% we take the first three letters of the last name. The boolean +% et.al.char.used tells whether we've used a superscripted "+", so that we +% know whether to include a LaTeX macro for it. +% +% format.lab.names(s) == +% BEGIN +% numnames := num.names$(s) +% if numnames > 1 then +% if numnames > 4 then +% namesleft := 3 +% else +% namesleft := numnames +% nameptr := 1 +% nameresult := "" +% while namesleft > 0 +% do +% if (name_ptr = numnames) and +% format.name$(s, nameptr, "{ff }{vv }{ll}{ jj}") = "others" +% then nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else nameresult := nameresult * +% format.name$(s, nameptr, "{v{}}{l{}}") +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% if numnames > 4 then +% nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else +% t := format.name$(s, 1, "{v{}}{l{}}") +% if text.length$(t) < 2 then % there's just one name-token +% nameresult := text.prefix$(format.name$(s,1,"{ll}"),3) +% else +% nameresult := t +% fi +% fi +% return nameresult +% END +% +% Exactly what fields we look at in constructing the primary part of the label +% depends on the entry type; this selectivity (as opposed to, say, always +% looking at author, then editor, then key) helps ensure that "ignored" fields, +% as described in the LaTeX book, really are ignored. Note that MISC is part +% of the deepest `else' clause in the nested part of calc.label; thus, any +% unrecognized entry type in the database is handled correctly. +% +% There is one auxiliary function for each of the four different sequences of +% fields we use. The first of these functions looks at the author field, and +% then, if necessary, the key field. The other three functions, which might +% look at two fields and the key field, are similar, except that the key field +% takes precedence over the organization field (for labels---not for sorting). +% +% The calc.label function calculates the preliminary label of an entry, which +% is formed by taking three letters of information from the author or editor or +% key or organization field (depending on the entry type and on what's empty, +% but ignoring a leading "The " in the organization), and appending the last +% two characters (digits) of the year. It is an error if the appropriate fields +% among author, editor, organization, and key are missing, and we use +% the first three letters of the cite$ in desperation when this happens. +% The resulting label has the year part, but not the name part, purify$ed +% (purify$ing the year allows some sorting shenanigans by the user). +% +% This function also calculates the version of the label to be used in sorting. +% +% The final label may need a trailing 'a', 'b', etc., to distinguish it from +% otherwise identical labels, but we can't calculated those "extra.label"s +% until after sorting. +% +% calc.label == +% BEGIN +% if type$ = "book" or "inbook" then +% author.editor.key.label +% else if type$ = "proceedings" then +% editor.key.organization.label +% else if type$ = "manual" then +% author.key.organization.label +% else +% author.key.label +% fi fi fi +% label := label * substring$(purify$(field.or.null(year)), -1, 2) +% % assuming we will also sort, we calculate a sort.label +% sort.label := sortify(label), but use the last four, not two, digits +% END +% When sorting, we compute the sortkey by executing "presort" on each entry. +% The presort key contains a number of "sortify"ed strings, concatenated +% with multiple blanks between them. This makes things like "brinch per" +% come before "brinch hansen per". +% +% The fields used here are: the sort.label for alphabetic labels (as set by +% calc.label), followed by the author names (or editor names or organization +% (with a leading "The " removed) or key field, depending on entry type and on +% what's empty), followed by year, followed by the first bit of the title +% (chopping off a leading "The ", "A ", or "An "). +% Names are formatted: Von Last First Junior. +% The names within a part will be separated by a single blank +% (such as "brinch hansen"), two will separate the name parts themselves +% (except the von and last), three will separate the names, +% four will separate the names from year (and from label, if alphabetic), +% and four will separate year from title. +% +% The sort.format.names function takes an argument that should be in +% BibTeX name format, and returns a string containing " "-separated +% names in the format described above. The function is almost the same +% as format.names. +% This long comment applies only to alphabetic labels, when sorted +% +% Now comes the final computation for alphabetic labels, putting in the 'a's +% and 'b's and so forth if required. This involves two passes: a forward +% pass to put in the 'b's, 'c's and so on, and a backwards pass +% to put in the 'a's (we don't want to put in 'a's unless we know there +% are 'b's). +% We have to keep track of the longest (in width$ terms) label, for use +% by the "thebibliography" environment. +% +% VAR: longest.label, last.sort.label, next.extra: string +% longest.label.width, last.extra.num: integer +% +% initialize.longest.label == +% BEGIN +% longest.label := "" +% last.sort.label := int.to.chr$(0) +% next.extra := "" +% longest.label.width := 0 +% last.extra.num := 0 +% END +% +% forward.pass == +% BEGIN +% if last.sort.label = sort.label then +% last.extra.num := last.extra.num + 1 +% extra.label := int.to.chr$(last.extra.num) +% else +% last.extra.num := chr.to.int$("a") +% extra.label := "" +% last.sort.label := sort.label +% fi +% END +% +% reverse.pass == +% BEGIN +% if next.extra = "b" then +% extra.label := "a" +% fi +% label := label * extra.label +% if width$(label) > longest.label.width then +% longest.label := label +% longest.label.width := width$(label) +% fi +% next.extra := extra.label +% END +% Now comes the computation for numeric labels. +% We use either the sorted order or original order. +% We still have to keep track of the longest (in width$ terms) label, for use +% by the "thebibliography" environment. +STRINGS { longest.label } +INTEGERS { number.label longest.label.width } +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} +% Now we're ready to start writing the .BBL file. +% We begin, if necessary, with a LaTeX macro for unnamed names in an alphabetic +% label; next comes stuff from the `preamble' command in the database files. +% Then we give an incantation containing the command +% \begin{thebibliography}{...} +% where the `...' is the longest label. +% +% We also call init.state.consts, for use by the output routines. +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +% Now we produce the output for all the entries +ITERATE {call.type$} +% Finally, we finish up by writing the `\end{thebibliography}' command. +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/phapalik.bst b/Master/texmf-dist/bibtex/bst/beebe/phapalik.bst new file mode 100644 index 00000000000..84a0dda965e --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/phapalik.bst @@ -0,0 +1,1943 @@ +% BibTeX styles for various physics journals (27-Feb-1990). +% This file, physics.btx, is based on the file btxbst.doc. + % Please notify Charles Karney (Karney@Princeton.EDU) + % of any bugs, improvements, etc. +% Run this file through cpp to get specific versions. I have written +% a version of cpp within Emacs. To access it put +% (autoload 'cpp "tex$bibtex:cpp" ; Use cpp for BibTeX styles +% "C preprocessor" +% t) +% into your .emacs file. Read in this file with +% emacs tex$bibtex:physics.btx +% and run cpp with e.g., +% M-x cpp aip +% Save the resulting file to tex$latex:aip.bst. +% To accomodate the variations we need (in addition to the definitions below) +% ATIT_SUPPRESS: do not include the titles of journal articles +% NAME_INVERT: put the initials last +% NAME_UPPER: convert names to all caps. +% MONTH_SUPPRESS: do not include months in journal articles +% PAREN_DATE: dates go in parens in journal articles +% DATE_FIRST: dates go before page numbers +% VOLUME_SPACE: volume set off with space (not colon) +% NUM_SUPPRESS: do not include numbers in journal articles +% BOLD_VOL: volume numbers in bold face in journal articles +% BRACKET_NOTE: notes in brackets +% PAGE_START_J: include only starting page for journal articles +% PAGE_START_O: include only starting page for other entries +% PAGE_ABBREV: abbreviate page to p. and pages to pp. +% PHYSICS_JOUR: include abbreviations for Physics journals +% COMMA_DELIMIT: use comma (instead of period) to divide a citation +% NOTE_SUPPRESS: suppress the note +% MAX_NAMES: max number of authors before using et al (0 = infinity) +% MIN_NAMES: number of authors to list with et al. +% EDIT_VAR: use "edited by ..." instead of "..., editors" +% RMP_LABELS: create RMP-style labels +% KEY_CITE: use key as label +% NAMED_REFS: use (Smith, 1988) style of citations +% CSC_NAMES: names set in caps and small caps +% JOUR_DEEMPH: don't emphasize journal name +% ETAL_EMPH: emphasize et al. +% ALT_INCOLL alternate ordering of fields in incollections +% These are all boolean (0 or 1) except for MAX_NAMES and MIN_NAMES. +% These need to satisfy 0 <= MIN_NAMES <= MAX_NAMES. +% The rule here is that if all these are defined to be zero, we revert to +% the standard styles. For that reason we initialize them all to 0. +% These are the original macros + % For American Psychological Association + % (same as ALPHA but with 0 set and 0 unset) +% This is the start of btxbst.doc +% BibTeX `plain' family + % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. +% BibTeX `apalike' bibliography style (24-Jan-88 version) +% Adapted from the `alpha' style, version 0.99a; for BibTeX version 0.99a. +% Copyright (C) 1988, all rights reserved. +% Copying of this file is allowed, provided that if you make any changes at all +% you name it something other than `apalike.bst'. +% This restriction helps ensure that all copies are identical. +% Differences between this style and `alpha' are generally heralded by a `%'. +% The file btxbst.doc has the documentation for alpha.bst. +% +% This style should be used with the `apalike' LaTeX style (apalike.sty). +% \cite's come out like "(Jones, 1986)" in the text but there are no labels +% in the bibliography, and something like "(1986)" comes out immediately +% after the author. Author (and editor) names appear as last name, comma, +% initials. A `year' field is required for every entry, and so is either +% an author (or in some cases, an editor) field or a key field. +% +% Editorial note: +% Many journals require a style like `apalike', but I strongly, strongly, +% strongly recommend that you not use it if you have a choice---use something +% like `plain' instead. Mary-Claire van Leunen (A Handbook for Scholars, +% Knopf, 1979) argues convincingly that a style like `plain' encourages better +% writing than one like `apalike'. Furthermore the strongest arguments for +% using an author-date style like `apalike'---that it's "the most practical" +% (The Chicago Manual of Style, University of Chicago Press, thirteenth +% edition, 1982, pages 400--401)---fall flat on their face with the new +% computer-typesetting technology. For instance page 401 anachronistically +% states "The chief disadvantage of [a style like `plain'] is that additions +% or deletions cannot be made after the manuscript is typed without changing +% numbers in both text references and list." LaTeX sidesteps the disadvantage. +% +% History: +% 15-sep-86 (SK,OP) Original version, by Susan King and Oren Patashnik. +% 10-nov-86 (OP) Truncated the sort.key$ string to the correct length +% in bib.sort.order to eliminate error message. +% 24-jan-88 (OP) Updated for BibTeX version 0.99a, from alpha.bst 0.99a; +% apalike now sorts by author, then year, then title; +% THIS `apalike' VERSION DOES NOT WORK WITH BIBTEX 0.98i. +% Please notify Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU) of any bugs in +% these standard styles or in this documentation file. +% +% This is file btxbxt.doc; it helps document bibliography styles, +% and is also a template file that you can use to make +% several different style files, if you have access to a C preprocessor. +% For example, the standard styles were made by doing something like +% cpp -P -DPLAIN btxbst.doc plain.txt +% cpp -P -DUNSRT btxbst.doc unsrt.txt +% cpp -P -DALPHA btxbst.doc alpha.txt +% cpp -P -DABBRV btxbst.doc abbrv.txt +% and then renaming after removing unwanted comments and blank lines. +% If you don't have access, +% you can edit this file by hand to imitate the preprocessor, +% with the following explanation of the C preprocessor constructs used here. +% +% The output of the preprocessor is the same as the input, except that certain +% lines will be excluded (and some blank lines will be added). The sequence +% #if VAR +% lines to be included when VAR is not zero +% #else +% lines to be included when VAR is zero +% #endif +% (with the #-signs appearing in column 1) means that one set or the other of +% the lines are to be included depending on the value of VAR. +% The #else part is optional. Comments can be added after #else and #endif. +% Variables can be set by +% #define VAR value +% and one can also use #ifdef VAR to see if VAR has any value, and #ifndef +% to see if it has none. +% Another #if form used in this file is #if !VAR, which includes the lines +% after the #if only if VAR is zero. +% +% Convention: Use all uppercase identifiers for these preprocessor variables +% so you can spot them easily +% +% The command line to the preprocessor should define one of PLAIN, UNSRT, ALPHA +% or ABBRV (though PLAIN will be used by default if none is given), +% and the following lines will set various boolean variables to control the +% various lines that are chosen from the rest of the file. +% Each boolean variable should be set true (1) or false (0) in each style. +% Here are the current variables, and their meanings: +% 1: an alphabetic label is used (if false then a numeric +% label is used) +% 1: the entries should be sorted by label (if nonnumeric) +% and other info, like authors (if false, then +% entries remain in order of occurrence) +% 0: the authors, editors, etc., get the full names as +% given in the bibliography file (if false, the first +% names become initials) +% 1: titles of non-"books" (e.g., articles) should be +% converted to lower-case, except the first letter or +% first letter after a colon +% (if false then they appear as in the database) +% 1: months are spelled out in full (if false, then +% they're abbreviated) +% 1: macro journal names are spelled out in full +% (if false then they are abbreviated, currently +% as they appear in ACM publications) +%# define PLAIN 1 +% +% Entry formatting: Similar to that recommended by Mary-Claire van Leunen +% in "A Handbook for Scholars". Book-like titles are italicized +% (emphasized) and non-book titles are converted to sentence +% capitilization (and not enclosed in quotes). +% This file outputs a \newblock between major blocks of an entry +% (the name \newblock is analogous to the names \newline and \newpage) +% so that the user can obtain an "open" format, which has a line break +% before each block and lines after the first are indented within blocks, +% by giving the optional \documentstyle argument `openbib'; +% The default is the "closed" format---blocks runs together. +% +% Citation alphabetic label format: +% [Knu73] for single author (or editor or key) +% [AHU83] (first letters of last names) for multiple authors +% +% Citation label numberic format: +% [number] +% +% Reference list ordering for sorted, alphabetic lables: +% alphabetical by citation label, then by author(s) or whatever +% passes for author in the absence of one, then by year, +% then title +% +% Reference list ordering for sorted, numeric lables: +% alphabetical by author(s) or whatever passes +% for author in the absence of one, then by year, then title +% +% Reference list ordering for unsorted: +% by the order cited in the text +% +% History +% 12/16/84 (HWT) Original `plain' version, by Howard Trickey. +% 12/23/84 (LL) Some comments made by Leslie Lamport. +% 2/16/85 (OP) Changes based on LL's comments, Oren Patashnik. +% 2/17/85 (HWT) Template file and other standard styles made. +% 3/28/85 (OP) First release, version 0.98b for BibTeX 0.98f. +% 5/ 9/85 (OP) Version 0.98c for BibTeX 0.98i: +% fixed Theoretical Computer Science macro name; +% fixed the format.vol.num.pages function. +% 1/24/88 (OP) Version 0.99a for BibTeX 0.99a, main changes: +% assignment operator (:=) arguments reversed; +% the preamble$ function outputs the database PREAMBLE; +% entry.max$ and global.max$ (built-in) variables replace +% entry.string.max and global.string.max functions; +% alphabetizing by year then title, not just title; +% many unnecessary ties removed; \it ==> \em; +% the `alpha' style uses a superscripted `+' instead of a +% `*' for unnamed names in constructing the label; +% the `abbrv' style now uses "Mar." and "Sept."; +% the functions calc.label and presort now look at just +% the fields they're supposed to; +% BOOKLET, MASTERSTHESIS, TECHREPORT use nonbook titles; +% INBOOK and INCOLLECTION take an optional type (e.g. +% type = "Section"), overriding the default "chapter"; +% BOOK, INBOOK, INCOLLECTION, and PROCEEDINGS now allow +% either volume or number, not just volume; +% INCOLLECTION now allows an edition and series field; +% PROCEEDINGS and INPROCEEDINGS now use the address field +% to tell where a conference was held; +% INPROCEEDINGS and PROCEEDINGS now allow either volume +% or number, and also a series field; +% MASTERSTHESIS and PHDTHESIS accept types other than +% "Master's thesis" and "PhD thesis"; +% UNPUBLISHED now outputs, in one block, note then date; +% MANUAL now prints out the organization in +% the first block if the author field is empty; +% MISC can't be empty---it requires some optional field. +% 3/23/88 (OP) Version 0.99b for BibTeX 0.99c---changed the three +% erroneous occurrences of `cite ' to `cite$ '; this +% change didn't affect the four standard styles, so the +% 0.99a versions of those styles are still current. +% +% The ENTRY declaration +% Like Scribe's (according to pages 231-2 of the April '84 edition), +% but no fullauthor or editors fields because BibTeX does name handling. +% The annote field is commented out here because this family doesn't +% include an annotated bibliography style. And in addition to the fields +% listed here, BibTeX has a built-in crossref field, explained later. +ENTRY +% Fields: + { address +% Usually the address of a publisher or other type of organization. +% Put information in this field only if it helps the reader find the +% thing---for example you should omit the address of a major +% publisher entirely. For a PROCEEDINGS or an INPROCEEDINGS, +% however, it's the address of the conference; for those two entry +% types, include the publisher's or organization's address, if +% necessary, in the publisher or organization field. +% annote +% Long annotation---for annotated bibliographies (begins sentence). + author +% Name(s) of author(s), in BibTeX name format. + booktitle +% Book title when the thing being referenced isn't the whole book. +% For book entries, the title field should be used instead. + chapter +% Chapter (or section or whatever) number. + edition +% Edition of a book---should be an ordinal (e.g., "Second"). + editor +% Name(s) of editor(s), in BibTeX name format. +% If there is also an author field, then the editor field should be +% for the book or collection that the work appears in. + howpublished +% How something strange has been published (begins sentence). + institution +% Sponsoring institution of a technical report. + journal +% Journal name (macros are provided for many). + key +% Alphabetizing, labeling, and cross-referencing key +% (needed when an entry has no author or editor). +% month not used in apalike +% Month (macros are provided). + note +% To help the reader find a reference (begins sentence). + number +% Number of a journal or technical report, or of a work in a series. + organization +% Organization sponsoring a conference (or publishing a manual); if +% the editor (or author) is empty, and if the organization produces +% an awkward label or cross reference, you should put appropriately +% condensed organization information in the key field as well. + pages +% Page number or numbers (use `--' to separate a range, use `+' +% to indicate pages following that don't form a simple range). + publisher +% Publisher name. + school +% School name (for theses). + series +% The name of a series or set of books. +% An individual book will will also have it's own title. + title +% The title of the thing you're referred to. + type +% Type of a Techreport (e.g., "Research Note") to be used instead of +% the default "Technical Report"; or, similarly, the type of a +% thesis; or of a part of a book. + volume +% The volume number of a journal or multivolume work. + year +% The year should contain only numerals (technically, it should end +% with four numerals, after purification; doesn't a begin sentence). + } +% There are no integer entry variables + {} +% These string entry variables are used to form the citation label. +% In a storage pinch, sort.label can be easily computed on the fly. + { label extra.label sort.label } +% Each entry function starts by calling output.bibitem, to write the +% \bibitem and its arguments to the .BBL file. Then the various fields +% are formatted and printed by output or output.check. Those functions +% handle the writing of separators (commas, periods, \newblock's), +% taking care not to do so when they are passed a null string. +% Finally, fin.entry is called to add the final period and finish the +% entry. +% +% A bibliographic reference is formatted into a number of `blocks': +% in the open format, a block begins on a new line and subsequent +% lines of the block are indented. A block may contain more than +% one sentence (well, not a grammatical sentence, but something to +% be ended with a sentence ending period). The entry functions should +% call new.block whenever a block other than the first is about to be +% started. They should call new.sentence whenever a new sentence is +% to be started. The output functions will ensure that if two +% new.sentence's occur without any non-null string being output between +% them then there won't be two periods output. Similarly for two +% successive new.block's. +% +% The output routines don't write their argument immediately. +% Instead, by convention, that argument is saved on the stack to be +% output next time (when we'll know what separator needs to come +% after it). Meanwhile, the output routine has to pop the pending +% output off the stack, append any needed separator, and write it. +% +% To tell which separator is needed, we maintain an output.state. +% It will be one of these values: +% before.all just after the \bibitem +% mid.sentence in the middle of a sentence: comma needed +% if more sentence is output +% after.sentence just after a sentence: period needed +% after.block just after a block (and sentence): +% period and \newblock needed. +% Note: These styles don't use after.sentence +% +% VAR: output.state : INTEGER -- state variable for output +% +% The output.nonnull function saves its argument (assumed to be nonnull) +% on the stack, and writes the old saved value followed by any needed +% separator. The ordering of the tests is decreasing frequency of +% occurrence. +% +% output.nonnull(s) == +% BEGIN +% s := argument on stack +% if output.state = mid.sentence then +% write$(pop() * ", ") +% -- "pop" isn't a function: just use stack top +% else +% if output.state = after.block then +% write$(add.period$(pop())) +% newline$ +% write$("\newblock ") +% else +% if output.state = before.all then +% write$(pop()) +% else -- output.state should be after.sentence +% write$(add.period$(pop()) * " ") +% fi +% fi +% output.state := mid.sentence +% fi +% push s on stack +% END +% +% The output function calls output.nonnull if its argument is non-empty; +% its argument may be a missing field (thus, not necessarily a string) +% +% output(s) == +% BEGIN +% if not empty$(s) then output.nonnull(s) +% fi +% END +% +% The output.check function is the same as the output function except that, if +% necessary, output.check warns the user that the t field shouldn't be empty +% (this is because it probably won't be a good reference without the field; +% the entry functions try to make the formatting look reasonable even when +% such fields are empty). +% +% output.check(s,t) == +% BEGIN +% if empty$(s) then +% warning$("empty " * t * " in " * cite$) +% else output.nonnull(s) +% fi +% END +% +% The output.bibitem function writes the \bibitem for the current entry +% (the label should already have been set up), and sets up the separator +% state for the output functions. And, it leaves a string on the stack +% as per the output convention. +% +% output.bibitem == +% BEGIN +% newline$ +% write$("\bibitem[") % for alphabetic labels, +% write$(label) % these three lines +% write$("]{") % are used +% write$("\bibitem{") % this line for numeric labels +% write$(cite$) +% write$("}") +% push "" on stack +% output.state := before.all +% END +% +% The fin.entry function finishes off an entry by adding a period to the +% string remaining on the stack. If the state is still before.all +% then nothing was produced for this entry, so the result will look bad, +% but the user deserves it. (We don't omit the whole entry because the +% entry was cited, and a bibitem is needed to define the citation label.) +% +% fin.entry == +% BEGIN +% write$(add.period$(pop())) +% newline$ +% END +% +% The new.block function prepares for a new block to be output, and +% new.sentence prepares for a new sentence. +% +% new.block == +% BEGIN +% if output.state <> before.all then +% output.state := after.block +% fi +% END +% +% new.sentence == +% BEGIN +% if output.state <> after.block then +% if output.state <> before.all then +% output.state := after.sentence +% fi +% fi +% END +% +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 := +} +% the variables s and t are temporary string holders +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$ +} +% apalike needs this function because +% the year has special punctuation; +% apalike ignores the month +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ + " (" year * extra.label * ")" * + mid.sentence 'output.state := + } + if$ +} +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} +% This function finishes all entries. +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$ +} +% These three functions pop one or two (integer) arguments from the stack +% and push a single one, either 0 or 1. +% The 'skip$ in the `and' and `or' functions are used because +% the corresponding if$ would be idempotent +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +% Sometimes we begin a new block only if the block will be big enough. The +% new.block.checka function issues a new.block if its argument is nonempty; +% new.block.checkb does the same if either of its TWO arguments is nonempty. +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +% Here are some functions for formatting chunks of an entry. +% By convention they either produce a string that can be followed by +% a comma or period (using add.period$, so it is OK to end in a period), +% or they produce the null string. +% +% A useful utility is the field.or.null function, which checks if the +% argument is the result of pushing a `missing' field (one for which no +% assignment was made when the current entry was read in from the database) +% or the result of pushing a string having no non-white-space characters. +% It returns the null string if so, otherwise it returns the field string. +% Its main (but not only) purpose is to guarantee that what's left on the +% stack is a string rather than a missing field. +% +% field.or.null(s) == +% BEGIN +% if empty$(s) then return "" +% else return s +% END +% +% Another helper function is emphasize, which returns the argument emphazised, +% if that is non-empty, otherwise it returns the null string. Italic +% corrections aren't used, so this function should be used when punctation +% will follow the result. +% +% emphasize(s) == +% BEGIN +% if empty$(s) then return "" +% else return "{\em " * s * "}" +% +% The format.names function formats the argument (which should be in +% BibTeX name format) into "First Von Last, Junior", separated by commas +% and with an "and" before the last (but ending with "et~al." if the last +% of multiple authors is "others"). This function's argument should always +% contain at least one name. +% +% VAR: nameptr, namesleft, numnames: INTEGER +% pseudoVAR: nameresult: STRING (it's what's accumulated on the stack) +% +% format.names(s) == +% BEGIN +% nameptr := 1 +% numnames := num.names$(s) +% namesleft := numnames +% while namesleft > 0 +% do +% % for full names: +% t := format.name$(s, nameptr, "{ff~}{vv~}{ll}{, jj}") +% % for abbreviated first names: +% t := format.name$(s, nameptr, "{f.~}{vv~}{ll}{, jj}") +% if nameptr > 1 then +% if namesleft > 1 then nameresult := nameresult * ", " * t +% else if numnames > 2 +% then nameresult := nameresult * "," +% fi +% if t = "others" +% then nameresult := nameresult * " et~al." +% else nameresult := nameresult * " and " * t +% fi +% fi +% else nameresult := t +% fi +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% return nameresult +% END +% +% The format.authors function returns the result of format.names(author) +% if the author is present, or else it returns the null string +% +% format.authors == +% BEGIN +% if empty$(author) then return "" +% else return format.names(author) +% fi +% END +% +% Format.editors is like format.authors, but it uses the editor field, +% and appends ", editor" or ", editors" +% +% format.editors == +% BEGIN +% if empty$(editor) then return "" +% else +% if num.names$(editor) > 1 then +% return format.names(editor) * ", editors" +% else +% return format.names(editor) * ", editor" +% fi +% fi +% END +% +% Other formatting functions are similar, so no "comment version" will be +% given for them. +% +% The `pop$' in this function gets rid of the duplicate `empty' value and +% the `skip$' returns the duplicate field value +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} +INTEGERS { nameptr namesleft numnames } +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} +FUNCTION {format.key} % this function is just for apalike +{ empty$ + { key field.or.null } + { "" } + if$ +} +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} +% The format.title function is used for non-book-like titles. +% For most styles we convert to lowercase (except for the very first letter, +% and except for the first one after a colon (followed by whitespace)), +% and hope the user has brace-surrounded words that need to stay capitilized; +% for some styles, however, we leave it as it is in the database. +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} +% By default, BibTeX sets the global integer variable global.max$ to the BibTeX +% constant glob_str_size, the maximum length of a global string variable. +% Analogously, BibTeX sets the global integer variable entry.max$ to +% ent_str_size, the maximum length of an entry string variable. +% The style designer may change these if necessary (but this is unlikely) +% The n.dashify function makes each single `-' in a string a double `--' +% if it's not already +% +% pseudoVAR: pageresult: STRING (it's what's accumulated on the stack) +% +% n.dashify(s) == +% BEGIN +% t := s +% pageresult := "" +% while (not empty$(t)) +% do +% if (first character of t = "-") +% then +% if (next character isn't) +% then +% pageresult := pageresult * "--" +% t := t with the "-" removed +% else +% while (first character of t = "-") +% do +% pageresult := pageresult * "-" +% t := t with the "-" removed +% od +% fi +% else +% pageresult := pageresult * the first character +% t := t with the first character removed +% fi +% od +% return pageresult +% END +FUNCTION {n.dashify} +{ '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$ +} +% The format.btitle is for formatting the title field when it is a book-like +% entry---the style used here keeps it in uppers-and-lowers and emphasizes it. +FUNCTION {format.btitle} +{ title emphasize +} +% For several functions we'll need to connect two strings with a +% tie (~) if the second one isn't very long (fewer than 3 characters). +% The tie.or.space.connect function does that. It concatenates the two +% strings on top of the stack, along with either a tie or space between +% them, and puts this concatenation back onto the stack: +% +% tie.or.space.connect(str1,str2) == +% BEGIN +% if text.length$(str2) < 3 +% then return the concatenation of str1, "~", and str2 +% else return the concatenation of str1, " ", and str2 +% END +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} +% The either.or.check function complains if both fields or an either-or pair +% are nonempty. +% +% either.or.check(t,s) == +% BEGIN +% if empty$(s) then +% warning$(can't use both " * t * " fields in " * cite$) +% fi +% END +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +% The format.bvolume function is for formatting the volume and perhaps +% series name of a multivolume work. If both a volume and a series field +% are there, we assume the series field is the title of the whole multivolume +% work (the title field should be the title of the thing being referred to), +% and we add an "of ". This function is called in mid-sentence. +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +% The format.number.series function is for formatting the series name +% and perhaps number of a work in a series. This function is similar to +% format.bvolume, although for this one the series must exist (and the +% volume must not exist). If the number field is empty we output either +% the series field unchanged if it exists or else the null string. +% If both the number and series fields are there we assume the series field +% gives the name of the whole series (the title field should be the title +% of the work being one referred to), and we add an "in ". +% We capitilize Number when this function is used at the beginning of a block. +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} +% The format.edition function appends " edition" to the edition, if present. +% We lowercase the edition (it should be something like "Third"), because +% this doesn't start a sentence. +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + if$ +} +% The format.pages function is used for formatting a page range in a book +% (and in rare circumstances, an article). +% +% The multi.page.check function examines the page field for a "-" or "," or "+" +% so that format.pages can use "page" instead of "pages" if none exists. +% Note: global.max$ here means "take the rest of the string" +% +% VAR: multiresult: INTEGER (actually, a boolean) +% +% multi.page.check(s) == +% BEGIN +% t := s +% multiresult := false +% while ((not multiresult) and (not empty$(t))) +% do +% if (first character of t = "-" or "," or "+") +% then multiresult := true +% else t := t with the first character removed +% fi +% od +% return multiresult +% END +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 +} +% This function doesn't begin a sentence so "pages" isn't capitalized. +% Other functions that use this should keep that in mind. +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} +% The format.vol.num.pages function is for the volume, number, and page range +% of a journal article. We use the format: vol(number):pages, with some +% variations for empty fields. This doesn't begin a sentence. +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} +% The format.chapter.pages, if the chapter is present, puts whatever is in the +% type field (or else "chapter" if type is empty) in front of a chapter number. +% It then appends the pages, if present. This doesn't begin a sentence. +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} +% The format.in.ed.booktitle function is used for starting out a sentence +% that begins "In ", putting an editor before the title if one +% exists. +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} +% The function format.thesis.type returns either the (case-changed) type field, +% if it is defined, or else the default string already on the stack +% (like "Master's thesis" or "PhD thesis"). +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} +% The function format.tr.number makes a string starting with "Technical Report" +% (or type, if that field is defined), followed by the number if there is one; +% it returns the starting part (with a case change) even if there is no number. +% This is used at the beginning of a sentence. +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} +% Now come the cross-referencing functions (these are invoked because +% one entry in the database file(s) cross-references another, by giving +% the other entry's database key in a `crossref' field). This feature +% allows one or more titled things that are part of a larger titled +% thing to cross-reference the larger thing. These styles allow for +% five posibilities: (1) an ARTICLE may cross-reference an ARTICLE; +% (2) a BOOK, (3) INBOOK, or (4) INCOLLECTION may cross-reference a BOOK; +% or (5) an INPROCEEDINGS may cross-reference a PROCEEDINGS. +% Each of these is explained in more detail later. +% +% An ARTICLE entry type may cross reference another ARTICLE (this is +% intended for when an entire journal is devoted to a single topic--- +% but since there is no JOURNAL entry type, the journal, too, should be +% classified as an ARTICLE but without the author and title fields). +% This will result in two warning messages for the journal's entry +% if it's included in the reference list, but such is life. +% +% format.article.crossref == +% BEGIN +% if empty$(key) then +% if empty$(journal) then +% warning$("need key or journal for " * cite$ * +% " to crossref " * crossref) +% return(" \cite{" * crossref * "}") +% else +% return("In " * emphazise.correct (journal) * +% " \cite{" * crossref * "}") +% fi +% else +% return("In " * key * " \cite{" * crossref * "}") +% fi +% END +% +% The other cross-referencing functions are similar, so no "comment version" +% will be given for them. +FUNCTION {format.article.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} +% A BOOK (or INBOOK) entry type (assumed to be for a single volume in a +% multivolume work) may cross reference another BOOK (the entire multivolume). +% Usually there will be an editor, in which case we use that to construct the +% cross reference; otherwise we use a nonempty key field or else the series +% field (since the series gives the title of the multivolume work). +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * % this is for apalike +} +% An INCOLLECTION entry type may cross reference a BOOK (assumed to be the +% collection), or an INPROCEEDINGS may cross reference a PROCEEDINGS. +% Often there will be an editor, in which case we use that to construct +% the cross reference; otherwise we use a nonempty key field or else +% the booktitle field (which gives the cross-referenced work's title). +FUNCTION {format.incoll.inproc.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} +% Now we define the type functions for all entry types that may appear +% in the .BIB file---e.g., functions like `article' and `book'. These +% are the routines that actually generate the .BBL-file output for +% the entry. These must all precede the READ command. In addition, the +% style designer should have a function `default.type' for unknown types. +% Note: The fields (within each list) are listed in order of appearance, +% except as described for an `inbook' or a `proceedings'. +% +% The article function is for an article in a journal. An article may +% CROSSREF another article. +% Required fields: author, title, journal, year +% Optional fields: volume, number, pages, month, note +% +% article == +% BEGIN +% output.bibitem +% output.check(format.authors,"author") +% new.block +% output.check(format.title,"title") +% new.block +% if missing$(crossref) then +% output.check(emphasize(journal),"journal") +% output(format.vol.num.pages) +% output.check(format.date,"year") +% else +% output.nonnull(format.article.crossref) +% output(format.pages) +% fi +% new.block +% output(note) +% fin.entry +% END +% +% The book function is for a whole book. A book may CROSSREF another book. +% Required fields: author or editor, title, publisher, year +% Optional fields: volume or number, series, address, edition, month, +% note +% +% book == +% BEGIN +% if empty$(author) then output.check(format.editors,"author and editor") +% else output.check(format.authors,"author") +% if missing$(crossref) then +% either.or.check("author and editor",editor) +% fi +% fi +% new.block +% output.check(format.btitle,"title") +% if missing$(crossref) then +% output(format.bvolume) +% new.block +% output(format.number.series) +% new.sentence +% output.check(publisher,"publisher") +% output(address) +% else +% new.block +% output.nonnull(format.book.crossref) +% fi +% output(format.edition) +% output.check(format.date,"year") +% new.block +% output(note) +% fin.entry +% END +% +% The other entry functions are all quite similar, so no "comment version" +% will be given for them. +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} +% A booklet is a bound thing without a publisher or sponsoring institution. +% Required: title +% Optional: author, howpublished, address, month, year, note +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + howpublished output + address output + new.block + note output + fin.entry +} +% For the conference entry type, see inproceedings. +% An inbook is a piece of a book: either a chapter and/or a page range. +% It may CROSSREF a book. If there's no volume field, the type field +% will come before number and series. +% Required: author or editor, title, chapter and/or pages, publisher,year +% Optional: volume or number, series, type, address, edition, month, note +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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} +% An incollection is like inbook, but where there is a separate title +% for the referenced thing (and perhaps an editor for the whole). +% An incollection may CROSSREF a book. +% Required: author, title, booktitle, publisher, year +% Optional: editor, volume or number, series, type, chapter, pages, +% address, edition, month, note +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} +% An inproceedings is an article in a conference proceedings, and it may +% CROSSREF a proceedings. If there's no address field, the month (& year) +% will appear just before note. +% Required: author, title, booktitle, year +% Optional: editor, volume or number, series, pages, address, month, +% organization, publisher, note +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address output % for apalike + new.sentence % there's no year + organization output % here so things + publisher output % are simpler + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} +% The conference function is included for Scribe compatibility. +FUNCTION {conference} { inproceedings } +% A manual is technical documentation. +% Required: title +% Optional: author, organization, address, edition, month, year, note +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + new.block + note output + fin.entry +} +% A mastersthesis is a Master's thesis. +% Required: author, title, school, year +% Optional: type, address, month, note +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} +% A misc is something that doesn't fit elsewhere. +% Required: at least one of the `optional' fields +% Optional: author, title, howpublished, month, year, note +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title output + new.block + howpublished output + new.block + note output + fin.entry +} +% A phdthesis is like a mastersthesis. +% Required: author, title, school, year +% Optional: type, address, month, note +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} +% A proceedings is a conference proceedings. +% If there is an organization but no editor field, the organization will +% appear as the first optional field (we try to make the first block nonempty); +% if there's no address field, the month (& year) will appear just before note. +% Required: title, year +% Optional: editor, volume or number, series, address, month, +% organization, publisher, note +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output % for apalike + new.sentence % we always output + organization output % a nonempty organization + publisher output % here + new.block + note output + fin.entry +} +% A techreport is a technical report. +% Required: author, title, institution, year +% Optional: type, number, address, month, note +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry +} +% An unpublished is something that hasn't been published. +% Required: author, title, note +% Optional: month, year +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + note "note" output.check + fin.entry +} +% We use entry type `misc' for an unknown type; BibTeX gives a warning. +FUNCTION {default.type} { misc } +% Here are macros for common things that may vary from style to style. +% Users are encouraged to use these macros. +% +% Months are either written out in full or abbreviated +MACRO {jan} {"January"} +MACRO {feb} {"February"} +MACRO {mar} {"March"} +MACRO {apr} {"April"} +MACRO {may} {"May"} +MACRO {jun} {"June"} +MACRO {jul} {"July"} +MACRO {aug} {"August"} +MACRO {sep} {"September"} +MACRO {oct} {"October"} +MACRO {nov} {"November"} +MACRO {dec} {"December"} +% Journals are either written out in full or abbreviated; +% the abbreviations are like those found in ACM publications. +% +% To get a completely different set of abbreviations, it may be best to make +% a separate .bib file with nothing but those abbreviations; users could then +% include that file name as the first argument to the \bibliography command +MACRO {acmcs} {"ACM Computing Surveys"} +MACRO {acta} {"Acta Informatica"} +MACRO {cacm} {"Communications of the ACM"} +MACRO {ibmjrd} {"IBM Journal of Research and Development"} +MACRO {ibmsj} {"IBM Systems Journal"} +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} +MACRO {ieeetc} {"IEEE Transactions on Computers"} +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} +MACRO {ipl} {"Information Processing Letters"} +MACRO {jacm} {"Journal of the ACM"} +MACRO {jcss} {"Journal of Computer and System Sciences"} +MACRO {scp} {"Science of Computer Programming"} +MACRO {sicomp} {"SIAM Journal on Computing"} +MACRO {tocs} {"ACM Transactions on Computer Systems"} +MACRO {tods} {"ACM Transactions on Database Systems"} +MACRO {tog} {"ACM Transactions on Graphics"} +MACRO {toms} {"ACM Transactions on Mathematical Software"} +MACRO {toois} {"ACM Transactions on Office Information Systems"} +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} +MACRO {tcs} {"Theoretical Computer Science"} +% Now we read in the .BIB entries. +READ +% The sortify function converts to lower case after purify$ing; it's +% used in sorting and in computing alphabetic labels after sorting +% +% The chop.word(w,len,s) function returns either s or, if the first len +% letters of s equals w (this comparison is done in the third line of the +% function's definition), it returns that part of s after w. +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$ +} +% This long comment applies only to alphabetic labels +% +% The format.lab.names function makes a short label by using the initials of +% the von and Last parts of the names (but if there are more than four names, +% (i.e., people) it truncates after three and adds a superscripted "+"; +% it also adds such a "+" if the last of multiple authors is "others"). +% If there is only one name, and its von and Last parts combined have just +% a single name-token ("Knuth" has a single token, "Brinch Hansen" has two), +% we take the first three letters of the last name. The boolean +% et.al.char.used tells whether we've used a superscripted "+", so that we +% know whether to include a LaTeX macro for it. +% +% format.lab.names(s) == +% BEGIN +% numnames := num.names$(s) +% if numnames > 1 then +% if numnames > 4 then +% namesleft := 3 +% else +% namesleft := numnames +% nameptr := 1 +% nameresult := "" +% while namesleft > 0 +% do +% if (name_ptr = numnames) and +% format.name$(s, nameptr, "{ff }{vv }{ll}{ jj}") = "others" +% then nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else nameresult := nameresult * +% format.name$(s, nameptr, "{v{}}{l{}}") +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% if numnames > 4 then +% nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else +% t := format.name$(s, 1, "{v{}}{l{}}") +% if text.length$(t) < 2 then % there's just one name-token +% nameresult := text.prefix$(format.name$(s,1,"{ll}"),3) +% else +% nameresult := t +% fi +% fi +% return nameresult +% END +% +% Exactly what fields we look at in constructing the primary part of the label +% depends on the entry type; this selectivity (as opposed to, say, always +% looking at author, then editor, then key) helps ensure that "ignored" fields, +% as described in the LaTeX book, really are ignored. Note that MISC is part +% of the deepest `else' clause in the nested part of calc.label; thus, any +% unrecognized entry type in the database is handled correctly. +% +% There is one auxiliary function for each of the four different sequences of +% fields we use. The first of these functions looks at the author field, and +% then, if necessary, the key field. The other three functions, which might +% look at two fields and the key field, are similar, except that the key field +% takes precedence over the organization field (for labels---not for sorting). +% +% The calc.label function calculates the preliminary label of an entry, which +% is formed by taking three letters of information from the author or editor or +% key or organization field (depending on the entry type and on what's empty, +% but ignoring a leading "The " in the organization), and appending the last +% two characters (digits) of the year. It is an error if the appropriate fields +% among author, editor, organization, and key are missing, and we use +% the first three letters of the cite$ in desperation when this happens. +% The resulting label has the year part, but not the name part, purify$ed +% (purify$ing the year allows some sorting shenanigans by the user). +% +% This function also calculates the version of the label to be used in sorting. +% +% The final label may need a trailing 'a', 'b', etc., to distinguish it from +% otherwise identical labels, but we can't calculated those "extra.label"s +% until after sorting. +% +% calc.label == +% BEGIN +% if type$ = "book" or "inbook" then +% author.editor.key.label +% else if type$ = "proceedings" then +% editor.key.organization.label +% else if type$ = "manual" then +% author.key.organization.label +% else +% author.key.label +% fi fi fi +% label := label * substring$(purify$(field.or.null(year)), -1, 2) +% % assuming we will also sort, we calculate a sort.label +% sort.label := sortify(label), but use the last four, not two, digits +% END +% There are three apalike cases: one person (Jones), +% two (Jones and de~Bruijn), and more (Jones et~al.). +% This function is much like format.crossref.editors. +% +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole key + if$ + } + { author format.lab.names } + if$ +} +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole 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 % apalike uses the whole key, no organization + if$ + } + { editor format.lab.names } + if$ +} +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label % apalike ignores organization + 'author.key.label % for labeling and sorting + if$ + } + if$ + ", " % these three lines are + * % for apalike, which + year field.or.null purify$ #-1 #4 substring$ % uses all four digits + * + 'label := +} +% It doesn't seem like a particularly good idea to use an order-of-citation +% reference list when using alphabetic labels, but we need to have a +% special pass to calculate labels when this happens. +% When sorting, we compute the sortkey by executing "presort" on each entry. +% The presort key contains a number of "sortify"ed strings, concatenated +% with multiple blanks between them. This makes things like "brinch per" +% come before "brinch hansen per". +% +% The fields used here are: the sort.label for alphabetic labels (as set by +% calc.label), followed by the author names (or editor names or organization +% (with a leading "The " removed) or key field, depending on entry type and on +% what's empty), followed by year, followed by the first bit of the title +% (chopping off a leading "The ", "A ", or "An "). +% Names are formatted: Von Last First Junior. +% The names within a part will be separated by a single blank +% (such as "brinch hansen"), two will separate the name parts themselves +% (except the von and last), three will separate the names, +% four will separate the names from year (and from label, if alphabetic), +% and four will separate year from title. +% +% The sort.format.names function takes an argument that should be in +% BibTeX name format, and returns a string containing " "-separated +% names in the format described above. The function is almost the same +% as format.names. +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ % apalike uses initials + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := % <= here + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +% The sort.format.title function returns the argument, +% but first any leading "A "'s, "An "'s, or "The "'s are removed. +% The chop.word function uses s, so we need another string variable, t +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +% The auxiliary functions here, for the presort function, are analogous to +% the ones for calc.label; the same comments apply, except that the +% organization field takes precedence here over the key field. For sorting +% purposes, we still remove a leading "The " from the organization field. +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$ +} +% apalike uses two sorting passes; the first one sets the +% labels so that the `a's, `b's, etc. can be computed; +% the second pass puts the references in "correct" order. +% The presort function is for the first pass. It computes +% label, sort.label, and title, and then concatenates. +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$ % for + 'sort.label := % apalike + sort.label % style + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {presort} +% And now we can sort +SORT % by label, sort.label, title---for final label calculation +% This long comment applies only to alphabetic labels, when sorted +% +% Now comes the final computation for alphabetic labels, putting in the 'a's +% and 'b's and so forth if required. This involves two passes: a forward +% pass to put in the 'b's, 'c's and so on, and a backwards pass +% to put in the 'a's (we don't want to put in 'a's unless we know there +% are 'b's). +% We have to keep track of the longest (in width$ terms) label, for use +% by the "thebibliography" environment. +% +% VAR: longest.label, last.sort.label, next.extra: string +% longest.label.width, last.extra.num: integer +% +% initialize.longest.label == +% BEGIN +% longest.label := "" +% last.sort.label := int.to.chr$(0) +% next.extra := "" +% longest.label.width := 0 +% last.extra.num := 0 +% END +% +% forward.pass == +% BEGIN +% if last.sort.label = sort.label then +% last.extra.num := last.extra.num + 1 +% extra.label := int.to.chr$(last.extra.num) +% else +% last.extra.num := chr.to.int$("a") +% extra.label := "" +% last.sort.label := sort.label +% fi +% END +% +% reverse.pass == +% BEGIN +% if next.extra = "b" then +% extra.label := "a" +% fi +% label := label * extra.label +% if width$(label) > longest.label.width then +% longest.label := label +% longest.label.width := width$(label) +% fi +% next.extra := extra.label +% END +STRINGS { last.label next.extra } % apalike labels are only for the text; +INTEGERS { last.extra.num } % there are none in the bibliography +FUNCTION {initialize.extra.label.stuff} % and hence there is no `longest.label' +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} +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$ +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + extra.label 'next.extra := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +% Now that the label is right we sort for real, +% on sort.label then year then title. This is +% for the second sorting 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 % by sort.label, year, title---giving final bibliography order +% Now we're ready to start writing the .BBL file. +% We begin, if necessary, with a LaTeX macro for unnamed names in an alphabetic +% label; next comes stuff from the `preamble' command in the database files. +% Then we give an incantation containing the command +% \begin{thebibliography}{...} +% where the `...' is the longest label. +% +% We also call init.state.consts, for use by the output routines. +FUNCTION {begin.bib} +{ preamble$ empty$ % no \etalchar in apalike + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ % no labels in apalike +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +% Now we produce the output for all the entries +ITERATE {call.type$} +% Finally, we finish up by writing the `\end{thebibliography}' command. +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/phcpc.bst b/Master/texmf-dist/bibtex/bst/beebe/phcpc.bst new file mode 100644 index 00000000000..e313fe16af8 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/phcpc.bst @@ -0,0 +1,1885 @@ +% BibTeX styles for various physics journals (27-Feb-1990). +% This file, physics.btx, is based on the file btxbst.doc. + % Please notify Charles Karney (Karney@Princeton.EDU) + % of any bugs, improvements, etc. +% Run this file through cpp to get specific versions. I have written +% a version of cpp within Emacs. To access it put +% (autoload 'cpp "tex$bibtex:cpp" ; Use cpp for BibTeX styles +% "C preprocessor" +% t) +% into your .emacs file. Read in this file with +% emacs tex$bibtex:physics.btx +% and run cpp with e.g., +% M-x cpp aip +% Save the resulting file to tex$latex:aip.bst. +% To accomodate the variations we need (in addition to the definitions below) +% ATIT_SUPPRESS: do not include the titles of journal articles +% NAME_INVERT: put the initials last +% NAME_UPPER: convert names to all caps. +% MONTH_SUPPRESS: do not include months in journal articles +% PAREN_DATE: dates go in parens in journal articles +% DATE_FIRST: dates go before page numbers +% VOLUME_SPACE: volume set off with space (not colon) +% NUM_SUPPRESS: do not include numbers in journal articles +% BOLD_VOL: volume numbers in bold face in journal articles +% BRACKET_NOTE: notes in brackets +% PAGE_START_J: include only starting page for journal articles +% PAGE_START_O: include only starting page for other entries +% PAGE_ABBREV: abbreviate page to p. and pages to pp. +% PHYSICS_JOUR: include abbreviations for Physics journals +% COMMA_DELIMIT: use comma (instead of period) to divide a citation +% NOTE_SUPPRESS: suppress the note +% MAX_NAMES: max number of authors before using et al (0 = infinity) +% MIN_NAMES: number of authors to list with et al. +% EDIT_VAR: use "edited by ..." instead of "..., editors" +% RMP_LABELS: create RMP-style labels +% KEY_CITE: use key as label +% NAMED_REFS: use (Smith, 1988) style of citations +% CSC_NAMES: names set in caps and small caps +% JOUR_DEEMPH: don't emphasize journal name +% ETAL_EMPH: emphasize et al. +% ALT_INCOLL alternate ordering of fields in incollections +% These are all boolean (0 or 1) except for MAX_NAMES and MIN_NAMES. +% These need to satisfy 0 <= MIN_NAMES <= MAX_NAMES. +% The rule here is that if all these are defined to be zero, we revert to +% the standard styles. For that reason we initialize them all to 0. +% These are the original macros + % For Computer Physics Communications +% same as AIP except for 0, 0 +% This is the start of btxbst.doc +% BibTeX `plain' family + % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. +% Please notify Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU) of any bugs in +% these standard styles or in this documentation file. +% +% This is file btxbxt.doc; it helps document bibliography styles, +% and is also a template file that you can use to make +% several different style files, if you have access to a C preprocessor. +% For example, the standard styles were made by doing something like +% cpp -P -DPLAIN btxbst.doc plain.txt +% cpp -P -DUNSRT btxbst.doc unsrt.txt +% cpp -P -DALPHA btxbst.doc alpha.txt +% cpp -P -DABBRV btxbst.doc abbrv.txt +% and then renaming after removing unwanted comments and blank lines. +% If you don't have access, +% you can edit this file by hand to imitate the preprocessor, +% with the following explanation of the C preprocessor constructs used here. +% +% The output of the preprocessor is the same as the input, except that certain +% lines will be excluded (and some blank lines will be added). The sequence +% #if VAR +% lines to be included when VAR is not zero +% #else +% lines to be included when VAR is zero +% #endif +% (with the #-signs appearing in column 1) means that one set or the other of +% the lines are to be included depending on the value of VAR. +% The #else part is optional. Comments can be added after #else and #endif. +% Variables can be set by +% #define VAR value +% and one can also use #ifdef VAR to see if VAR has any value, and #ifndef +% to see if it has none. +% Another #if form used in this file is #if !VAR, which includes the lines +% after the #if only if VAR is zero. +% +% Convention: Use all uppercase identifiers for these preprocessor variables +% so you can spot them easily +% +% The command line to the preprocessor should define one of PLAIN, UNSRT, ALPHA +% or ABBRV (though PLAIN will be used by default if none is given), +% and the following lines will set various boolean variables to control the +% various lines that are chosen from the rest of the file. +% Each boolean variable should be set true (1) or false (0) in each style. +% Here are the current variables, and their meanings: +% 0: an alphabetic label is used (if false then a numeric +% label is used) +% 0: the entries should be sorted by label (if nonnumeric) +% and other info, like authors (if false, then +% entries remain in order of occurrence) +% 0: the authors, editors, etc., get the full names as +% given in the bibliography file (if false, the first +% names become initials) +% 1: titles of non-"books" (e.g., articles) should be +% converted to lower-case, except the first letter or +% first letter after a colon +% (if false then they appear as in the database) +% 0: months are spelled out in full (if false, then +% they're abbreviated) +% 0: macro journal names are spelled out in full +% (if false then they are abbreviated, currently +% as they appear in ACM publications) +%# define PLAIN 1 +% +% Entry formatting: Similar to that recommended by Mary-Claire van Leunen +% in "A Handbook for Scholars". Book-like titles are italicized +% (emphasized) and non-book titles are converted to sentence +% capitilization (and not enclosed in quotes). +% This file outputs a \newblock between major blocks of an entry +% (the name \newblock is analogous to the names \newline and \newpage) +% so that the user can obtain an "open" format, which has a line break +% before each block and lines after the first are indented within blocks, +% by giving the optional \documentstyle argument `openbib'; +% The default is the "closed" format---blocks runs together. +% +% Citation alphabetic label format: +% [Knu73] for single author (or editor or key) +% [AHU83] (first letters of last names) for multiple authors +% +% Citation label numberic format: +% [number] +% +% Reference list ordering for sorted, alphabetic lables: +% alphabetical by citation label, then by author(s) or whatever +% passes for author in the absence of one, then by year, +% then title +% +% Reference list ordering for sorted, numeric lables: +% alphabetical by author(s) or whatever passes +% for author in the absence of one, then by year, then title +% +% Reference list ordering for unsorted: +% by the order cited in the text +% +% History +% 12/16/84 (HWT) Original `plain' version, by Howard Trickey. +% 12/23/84 (LL) Some comments made by Leslie Lamport. +% 2/16/85 (OP) Changes based on LL's comments, Oren Patashnik. +% 2/17/85 (HWT) Template file and other standard styles made. +% 3/28/85 (OP) First release, version 0.98b for BibTeX 0.98f. +% 5/ 9/85 (OP) Version 0.98c for BibTeX 0.98i: +% fixed Theoretical Computer Science macro name; +% fixed the format.vol.num.pages function. +% 1/24/88 (OP) Version 0.99a for BibTeX 0.99a, main changes: +% assignment operator (:=) arguments reversed; +% the preamble$ function outputs the database PREAMBLE; +% entry.max$ and global.max$ (built-in) variables replace +% entry.string.max and global.string.max functions; +% alphabetizing by year then title, not just title; +% many unnecessary ties removed; \it ==> \em; +% the `alpha' style uses a superscripted `+' instead of a +% `*' for unnamed names in constructing the label; +% the `abbrv' style now uses "Mar." and "Sept."; +% the functions calc.label and presort now look at just +% the fields they're supposed to; +% BOOKLET, MASTERSTHESIS, TECHREPORT use nonbook titles; +% INBOOK and INCOLLECTION take an optional type (e.g. +% type = "Section"), overriding the default "chapter"; +% BOOK, INBOOK, INCOLLECTION, and PROCEEDINGS now allow +% either volume or number, not just volume; +% INCOLLECTION now allows an edition and series field; +% PROCEEDINGS and INPROCEEDINGS now use the address field +% to tell where a conference was held; +% INPROCEEDINGS and PROCEEDINGS now allow either volume +% or number, and also a series field; +% MASTERSTHESIS and PHDTHESIS accept types other than +% "Master's thesis" and "PhD thesis"; +% UNPUBLISHED now outputs, in one block, note then date; +% MANUAL now prints out the organization in +% the first block if the author field is empty; +% MISC can't be empty---it requires some optional field. +% 3/23/88 (OP) Version 0.99b for BibTeX 0.99c---changed the three +% erroneous occurrences of `cite ' to `cite$ '; this +% change didn't affect the four standard styles, so the +% 0.99a versions of those styles are still current. +% +% The ENTRY declaration +% Like Scribe's (according to pages 231-2 of the April '84 edition), +% but no fullauthor or editors fields because BibTeX does name handling. +% The annote field is commented out here because this family doesn't +% include an annotated bibliography style. And in addition to the fields +% listed here, BibTeX has a built-in crossref field, explained later. +ENTRY +% Fields: + { address +% Usually the address of a publisher or other type of organization. +% Put information in this field only if it helps the reader find the +% thing---for example you should omit the address of a major +% publisher entirely. For a PROCEEDINGS or an INPROCEEDINGS, +% however, it's the address of the conference; for those two entry +% types, include the publisher's or organization's address, if +% necessary, in the publisher or organization field. +% annote +% Long annotation---for annotated bibliographies (begins sentence). + author +% Name(s) of author(s), in BibTeX name format. + booktitle +% Book title when the thing being referenced isn't the whole book. +% For book entries, the title field should be used instead. + chapter +% Chapter (or section or whatever) number. + edition +% Edition of a book---should be an ordinal (e.g., "Second"). + editor +% Name(s) of editor(s), in BibTeX name format. +% If there is also an author field, then the editor field should be +% for the book or collection that the work appears in. + howpublished +% How something strange has been published (begins sentence). + institution +% Sponsoring institution of a technical report. + journal +% Journal name (macros are provided for many). + key +% Alphabetizing, labeling, and cross-referencing key +% (needed when an entry has no author or editor). + month +% Month (macros are provided). + note +% To help the reader find a reference (begins sentence). + number +% Number of a journal or technical report, or of a work in a series. + organization +% Organization sponsoring a conference (or publishing a manual); if +% the editor (or author) is empty, and if the organization produces +% an awkward label or cross reference, you should put appropriately +% condensed organization information in the key field as well. + pages +% Page number or numbers (use `--' to separate a range, use `+' +% to indicate pages following that don't form a simple range). + publisher +% Publisher name. + school +% School name (for theses). + series +% The name of a series or set of books. +% An individual book will will also have it's own title. + title +% The title of the thing you're referred to. + type +% Type of a Techreport (e.g., "Research Note") to be used instead of +% the default "Technical Report"; or, similarly, the type of a +% thesis; or of a part of a book. + volume +% The volume number of a journal or multivolume work. + year +% The year should contain only numerals (technically, it should end +% with four numerals, after purification; doesn't a begin sentence). + } +% There are no integer entry variables + {} +% These string entry variables are used to form the citation label. +% In a storage pinch, sort.label can be easily computed on the fly. + { label } +% Each entry function starts by calling output.bibitem, to write the +% \bibitem and its arguments to the .BBL file. Then the various fields +% are formatted and printed by output or output.check. Those functions +% handle the writing of separators (commas, periods, \newblock's), +% taking care not to do so when they are passed a null string. +% Finally, fin.entry is called to add the final period and finish the +% entry. +% +% A bibliographic reference is formatted into a number of `blocks': +% in the open format, a block begins on a new line and subsequent +% lines of the block are indented. A block may contain more than +% one sentence (well, not a grammatical sentence, but something to +% be ended with a sentence ending period). The entry functions should +% call new.block whenever a block other than the first is about to be +% started. They should call new.sentence whenever a new sentence is +% to be started. The output functions will ensure that if two +% new.sentence's occur without any non-null string being output between +% them then there won't be two periods output. Similarly for two +% successive new.block's. +% +% The output routines don't write their argument immediately. +% Instead, by convention, that argument is saved on the stack to be +% output next time (when we'll know what separator needs to come +% after it). Meanwhile, the output routine has to pop the pending +% output off the stack, append any needed separator, and write it. +% +% To tell which separator is needed, we maintain an output.state. +% It will be one of these values: +% before.all just after the \bibitem +% mid.sentence in the middle of a sentence: comma needed +% if more sentence is output +% after.sentence just after a sentence: period needed +% after.block just after a block (and sentence): +% period and \newblock needed. +% Note: These styles don't use after.sentence +% +% VAR: output.state : INTEGER -- state variable for output +% +% The output.nonnull function saves its argument (assumed to be nonnull) +% on the stack, and writes the old saved value followed by any needed +% separator. The ordering of the tests is decreasing frequency of +% occurrence. +% +% output.nonnull(s) == +% BEGIN +% s := argument on stack +% if output.state = mid.sentence then +% write$(pop() * ", ") +% -- "pop" isn't a function: just use stack top +% else +% if output.state = after.block then +% write$(add.period$(pop())) +% newline$ +% write$("\newblock ") +% else +% if output.state = before.all then +% write$(pop()) +% else -- output.state should be after.sentence +% write$(add.period$(pop()) * " ") +% fi +% fi +% output.state := mid.sentence +% fi +% push s on stack +% END +% +% The output function calls output.nonnull if its argument is non-empty; +% its argument may be a missing field (thus, not necessarily a string) +% +% output(s) == +% BEGIN +% if not empty$(s) then output.nonnull(s) +% fi +% END +% +% The output.check function is the same as the output function except that, if +% necessary, output.check warns the user that the t field shouldn't be empty +% (this is because it probably won't be a good reference without the field; +% the entry functions try to make the formatting look reasonable even when +% such fields are empty). +% +% output.check(s,t) == +% BEGIN +% if empty$(s) then +% warning$("empty " * t * " in " * cite$) +% else output.nonnull(s) +% fi +% END +% +% The output.bibitem function writes the \bibitem for the current entry +% (the label should already have been set up), and sets up the separator +% state for the output functions. And, it leaves a string on the stack +% as per the output convention. +% +% output.bibitem == +% BEGIN +% newline$ +% write$("\bibitem[") % for alphabetic labels, +% write$(label) % these three lines +% write$("]{") % are used +% write$("\bibitem{") % this line for numeric labels +% write$(cite$) +% write$("}") +% push "" on stack +% output.state := before.all +% END +% +% The fin.entry function finishes off an entry by adding a period to the +% string remaining on the stack. If the state is still before.all +% then nothing was produced for this entry, so the result will look bad, +% but the user deserves it. (We don't omit the whole entry because the +% entry was cited, and a bibitem is needed to define the citation label.) +% +% fin.entry == +% BEGIN +% write$(add.period$(pop())) +% newline$ +% END +% +% The new.block function prepares for a new block to be output, and +% new.sentence prepares for a new sentence. +% +% new.block == +% BEGIN +% if output.state <> before.all then +% output.state := after.block +% fi +% END +% +% new.sentence == +% BEGIN +% if output.state <> after.block then +% if output.state <> before.all then +% output.state := after.sentence +% fi +% fi +% END +% +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 := +} +% the variables s and t are temporary string holders +STRINGS { s t } +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { "," * 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} +% This function finishes all entries. +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} +FUNCTION {new.sentence} +{ skip$ +} +% These three functions pop one or two (integer) arguments from the stack +% and push a single one, either 0 or 1. +% The 'skip$ in the `and' and `or' functions are used because +% the corresponding if$ would be idempotent +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +% Sometimes we begin a new block only if the block will be big enough. The +% new.block.checka function issues a new.block if its argument is nonempty; +% new.block.checkb does the same if either of its TWO arguments is nonempty. +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +% The new.sentence.check functions are analogous. +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} +% Here are some functions for formatting chunks of an entry. +% By convention they either produce a string that can be followed by +% a comma or period (using add.period$, so it is OK to end in a period), +% or they produce the null string. +% +% A useful utility is the field.or.null function, which checks if the +% argument is the result of pushing a `missing' field (one for which no +% assignment was made when the current entry was read in from the database) +% or the result of pushing a string having no non-white-space characters. +% It returns the null string if so, otherwise it returns the field string. +% Its main (but not only) purpose is to guarantee that what's left on the +% stack is a string rather than a missing field. +% +% field.or.null(s) == +% BEGIN +% if empty$(s) then return "" +% else return s +% END +% +% Another helper function is emphasize, which returns the argument emphazised, +% if that is non-empty, otherwise it returns the null string. Italic +% corrections aren't used, so this function should be used when punctation +% will follow the result. +% +% emphasize(s) == +% BEGIN +% if empty$(s) then return "" +% else return "{\em " * s * "}" +% +% The format.names function formats the argument (which should be in +% BibTeX name format) into "First Von Last, Junior", separated by commas +% and with an "and" before the last (but ending with "et~al." if the last +% of multiple authors is "others"). This function's argument should always +% contain at least one name. +% +% VAR: nameptr, namesleft, numnames: INTEGER +% pseudoVAR: nameresult: STRING (it's what's accumulated on the stack) +% +% format.names(s) == +% BEGIN +% nameptr := 1 +% numnames := num.names$(s) +% namesleft := numnames +% while namesleft > 0 +% do +% % for full names: +% t := format.name$(s, nameptr, "{ff~}{vv~}{ll}{, jj}") +% % for abbreviated first names: +% t := format.name$(s, nameptr, "{f.~}{vv~}{ll}{, jj}") +% if nameptr > 1 then +% if namesleft > 1 then nameresult := nameresult * ", " * t +% else if numnames > 2 +% then nameresult := nameresult * "," +% fi +% if t = "others" +% then nameresult := nameresult * " et~al." +% else nameresult := nameresult * " and " * t +% fi +% fi +% else nameresult := t +% fi +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% return nameresult +% END +% +% The format.authors function returns the result of format.names(author) +% if the author is present, or else it returns the null string +% +% format.authors == +% BEGIN +% if empty$(author) then return "" +% else return format.names(author) +% fi +% END +% +% Format.editors is like format.authors, but it uses the editor field, +% and appends ", editor" or ", editors" +% +% format.editors == +% BEGIN +% if empty$(editor) then return "" +% else +% if num.names$(editor) > 1 then +% return format.names(editor) * ", editors" +% else +% return format.names(editor) * ", editor" +% fi +% fi +% END +% +% Other formatting functions are similar, so no "comment version" will be +% given for them. +% +% The `pop$' in this function gets rid of the duplicate `empty' value and +% the `skip$' returns the duplicate field value +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} +FUNCTION {embolden} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} +FUNCTION {paren} +{ duplicate$ empty$ + { pop$ "" } + { "(" swap$ * ")" * } + if$ +} +INTEGERS { nameptr namesleft numnames } +INTEGERS { etal } +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames #5 > + s numnames "{ll}" format.name$ "others" = numnames #1 > and + or 'etal := + etal + { #1 #1 + 'namesleft := } + { numnames 'namesleft := } + if$ + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { nameptr #2 > + { "," * } + 'skip$ + if$ + t "others" = + etal or + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} +FUNCTION {format.edited} +{ editor empty$ + { "" } + { "edited by " editor format.names * } + if$ +} +% The format.title function is used for non-book-like titles. +% For most styles we convert to lowercase (except for the very first letter, +% and except for the first one after a colon (followed by whitespace)), +% and hope the user has brace-surrounded words that need to stay capitilized; +% for some styles, however, we leave it as it is in the database. +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} +% By default, BibTeX sets the global integer variable global.max$ to the BibTeX +% constant glob_str_size, the maximum length of a global string variable. +% Analogously, BibTeX sets the global integer variable entry.max$ to +% ent_str_size, the maximum length of an entry string variable. +% The style designer may change these if necessary (but this is unlikely) +% The n.dashify function makes each single `-' in a string a double `--' +% if it's not already +% +% pseudoVAR: pageresult: STRING (it's what's accumulated on the stack) +% +% n.dashify(s) == +% BEGIN +% t := s +% pageresult := "" +% while (not empty$(t)) +% do +% if (first character of t = "-") +% then +% if (next character isn't) +% then +% pageresult := pageresult * "--" +% t := t with the "-" removed +% else +% while (first character of t = "-") +% do +% pageresult := pageresult * "-" +% t := t with the "-" removed +% od +% fi +% else +% pageresult := pageresult * the first character +% t := t with the first character removed +% fi +% od +% return pageresult +% END +FUNCTION {n.dashify} +{ '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 {first.page} +{ 't := + "" + { t empty$ not t #1 #1 substring$ "-" = not and } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + while$ +} +% The format.date function is for the month and year, but we give a warning if +% there's an empty year but the month is there, and we return the empty string +% if they're both empty. +FUNCTION {format.date} +{ year empty$ + { "" } + 'year + if$ +} +% The format.btitle is for formatting the title field when it is a book-like +% entry---the style used here keeps it in uppers-and-lowers and emphasizes it. +FUNCTION {format.btitle} +{ title emphasize +} +% For several functions we'll need to connect two strings with a +% tie (~) if the second one isn't very long (fewer than 3 characters). +% The tie.or.space.connect function does that. It concatenates the two +% strings on top of the stack, along with either a tie or space between +% them, and puts this concatenation back onto the stack: +% +% tie.or.space.connect(str1,str2) == +% BEGIN +% if text.length$(str2) < 3 +% then return the concatenation of str1, "~", and str2 +% else return the concatenation of str1, " ", and str2 +% END +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} +% The either.or.check function complains if both fields or an either-or pair +% are nonempty. +% +% either.or.check(t,s) == +% BEGIN +% if empty$(s) then +% warning$(can't use both " * t * " fields in " * cite$) +% fi +% END +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +% The format.bvolume function is for formatting the volume and perhaps +% series name of a multivolume work. If both a volume and a series field +% are there, we assume the series field is the title of the whole multivolume +% work (the title field should be the title of the thing being referred to), +% and we add an "of ". This function is called in mid-sentence. +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +% The format.number.series function is for formatting the series name +% and perhaps number of a work in a series. This function is similar to +% format.bvolume, although for this one the series must exist (and the +% volume must not exist). If the number field is empty we output either +% the series field unchanged if it exists or else the null string. +% If both the number and series fields are there we assume the series field +% gives the name of the whole series (the title field should be the title +% of the work being one referred to), and we add an "in ". +% We capitilize Number when this function is used at the beginning of a block. +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} +% The format.edition function appends " edition" to the edition, if present. +% We lowercase the edition (it should be something like "Third"), because +% this doesn't start a sentence. +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + if$ +} +% The format.pages function is used for formatting a page range in a book +% (and in rare circumstances, an article). +% +% The multi.page.check function examines the page field for a "-" or "," or "+" +% so that format.pages can use "page" instead of "pages" if none exists. +% Note: global.max$ here means "take the rest of the string" +% +% VAR: multiresult: INTEGER (actually, a boolean) +% +% multi.page.check(s) == +% BEGIN +% t := s +% multiresult := false +% while ((not multiresult) and (not empty$(t))) +% do +% if (first character of t = "-" or "," or "+") +% then multiresult := true +% else t := t with the first character removed +% fi +% od +% return multiresult +% END +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 +} +% This function doesn't begin a sentence so "pages" isn't capitalized. +% Other functions that use this should keep that in mind. +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} +FUNCTION {format.pages.a} +{ pages empty$ + { "" } + { "page" pages first.page tie.or.space.connect } + if$ +} +% The format.vol.num.pages function is for the volume, number, and page range +% of a journal article. We use the format: vol(number):pages, with some +% variations for empty fields. This doesn't begin a sentence. +FUNCTION {format.vol.num.pages} +{ volume field.or.null embolden + " " swap$ * * + format.date empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.date paren } + { " " * format.date paren * } + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages.a } + { " " * pages first.page *} + if$ + } + if$ +} +% The format.chapter.pages, if the chapter is present, puts whatever is in the +% type field (or else "chapter" if type is empty) in front of a chapter number. +% It then appends the pages, if present. This doesn't begin a sentence. +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} +% The format.in.ed.booktitle function is used for starting out a sentence +% that begins "In ", putting an editor before the title if one +% exists. +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "in " booktitle emphasize * } + { "in " booktitle emphasize * ", " * format.edited * } + if$ + } + if$ +} +% The function empty.misc.check complains if all six fields are empty, and +% if there's been no sorting or alphabetic-label complaint. +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} +% The function format.thesis.type returns either the (case-changed) type field, +% if it is defined, or else the default string already on the stack +% (like "Master's thesis" or "PhD thesis"). +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} +% The function format.tr.number makes a string starting with "Technical Report" +% (or type, if that field is defined), followed by the number if there is one; +% it returns the starting part (with a case change) even if there is no number. +% This is used at the beginning of a sentence. +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} +% Now come the cross-referencing functions (these are invoked because +% one entry in the database file(s) cross-references another, by giving +% the other entry's database key in a `crossref' field). This feature +% allows one or more titled things that are part of a larger titled +% thing to cross-reference the larger thing. These styles allow for +% five posibilities: (1) an ARTICLE may cross-reference an ARTICLE; +% (2) a BOOK, (3) INBOOK, or (4) INCOLLECTION may cross-reference a BOOK; +% or (5) an INPROCEEDINGS may cross-reference a PROCEEDINGS. +% Each of these is explained in more detail later. +% +% An ARTICLE entry type may cross reference another ARTICLE (this is +% intended for when an entire journal is devoted to a single topic--- +% but since there is no JOURNAL entry type, the journal, too, should be +% classified as an ARTICLE but without the author and title fields). +% This will result in two warning messages for the journal's entry +% if it's included in the reference list, but such is life. +% +% format.article.crossref == +% BEGIN +% if empty$(key) then +% if empty$(journal) then +% warning$("need key or journal for " * cite$ * +% " to crossref " * crossref) +% return(" \cite{" * crossref * "}") +% else +% return("In " * emphazise.correct (journal) * +% " \cite{" * crossref * "}") +% fi +% else +% return("In " * key * " \cite{" * crossref * "}") +% fi +% END +% +% The other cross-referencing functions are similar, so no "comment version" +% will be given for them. +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In " journal * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} +% We use just the last names of editors for a cross reference: either +% "editor", or "editor1 and editor2", or "editor1 et~al." depending on +% whether there are one, or two, or more than two editors. +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} +% A BOOK (or INBOOK) entry type (assumed to be for a single volume in a +% multivolume work) may cross reference another BOOK (the entire multivolume). +% Usually there will be an editor, in which case we use that to construct the +% cross reference; otherwise we use a nonempty key field or else the series +% field (since the series gives the title of the multivolume work). +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} +% An INCOLLECTION entry type may cross reference a BOOK (assumed to be the +% collection), or an INPROCEEDINGS may cross reference a PROCEEDINGS. +% Often there will be an editor, in which case we use that to construct +% the cross reference; otherwise we use a nonempty key field or else +% the booktitle field (which gives the cross-referenced work's title). +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} +% Now we define the type functions for all entry types that may appear +% in the .BIB file---e.g., functions like `article' and `book'. These +% are the routines that actually generate the .BBL-file output for +% the entry. These must all precede the READ command. In addition, the +% style designer should have a function `default.type' for unknown types. +% Note: The fields (within each list) are listed in order of appearance, +% except as described for an `inbook' or a `proceedings'. +% +% The article function is for an article in a journal. An article may +% CROSSREF another article. +% Required fields: author, title, journal, year +% Optional fields: volume, number, pages, month, note +% +% article == +% BEGIN +% output.bibitem +% output.check(format.authors,"author") +% new.block +% output.check(format.title,"title") +% new.block +% if missing$(crossref) then +% output.check(emphasize(journal),"journal") +% output(format.vol.num.pages) +% output.check(format.date,"year") +% else +% output.nonnull(format.article.crossref) +% output(format.pages) +% fi +% new.block +% output(note) +% fin.entry +% END +% +% The book function is for a whole book. A book may CROSSREF another book. +% Required fields: author or editor, title, publisher, year +% Optional fields: volume or number, series, address, edition, month, +% note +% +% book == +% BEGIN +% if empty$(author) then output.check(format.editors,"author and editor") +% else output.check(format.authors,"author") +% if missing$(crossref) then +% either.or.check("author and editor",editor) +% fi +% fi +% new.block +% output.check(format.btitle,"title") +% if missing$(crossref) then +% output(format.bvolume) +% new.block +% output(format.number.series) +% new.sentence +% output.check(publisher,"publisher") +% output(address) +% else +% new.block +% output.nonnull(format.book.crossref) +% fi +% output(format.edition) +% output.check(format.date,"year") +% new.block +% output(note) +% fin.entry +% END +% +% The other entry functions are all quite similar, so no "comment version" +% will be given for them. +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + crossref missing$ + { journal field.or.null + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} +% A booklet is a bound thing without a publisher or sponsoring institution. +% Required: title +% Optional: author, howpublished, address, month, year, note +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} +% For the conference entry type, see inproceedings. +% An inbook is a piece of a book: either a chapter and/or a page range. +% It may CROSSREF a book. If there's no volume field, the type field +% will come before number and series. +% Required: author or editor, title, chapter and/or pages, publisher,year +% Optional: volume or number, series, type, address, edition, month, note +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} +% An incollection is like inbook, but where there is a separate title +% for the referenced thing (and perhaps an editor for the whole). +% An incollection may CROSSREF a book. +% Required: author, title, booktitle, publisher, year +% Optional: editor, volume or number, series, type, chapter, pages, +% address, edition, month, note +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} +% An inproceedings is an article in a conference proceedings, and it may +% CROSSREF a proceedings. If there's no address field, the month (& year) +% will appear just before note. +% Required: author, title, booktitle, year +% Optional: editor, volume or number, series, pages, address, month, +% organization, publisher, note +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} +% The conference function is included for Scribe compatibility. +FUNCTION {conference} { inproceedings } +% A manual is technical documentation. +% Required: title +% Optional: author, organization, address, edition, month, year, note +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} +% A mastersthesis is a Master's thesis. +% Required: author, title, school, year +% Optional: type, address, month, note +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% A misc is something that doesn't fit elsewhere. +% Required: at least one of the `optional' fields +% Optional: author, title, howpublished, month, year, note +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} +% A phdthesis is like a mastersthesis. +% Required: author, title, school, year +% Optional: type, address, month, note +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% A proceedings is a conference proceedings. +% If there is an organization but no editor field, the organization will +% appear as the first optional field (we try to make the first block nonempty); +% if there's no address field, the month (& year) will appear just before note. +% Required: title, year +% Optional: editor, volume or number, series, address, month, +% organization, publisher, note +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} +% A techreport is a technical report. +% Required: author, title, institution, year +% Optional: type, number, address, month, note +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% An unpublished is something that hasn't been published. +% Required: author, title, note +% Optional: month, year +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} +% We use entry type `misc' for an unknown type; BibTeX gives a warning. +FUNCTION {default.type} { misc } +% Here are macros for common things that may vary from style to style. +% Users are encouraged to use these macros. +% +% Months are either written out in full or abbreviated +MACRO {jan} {"Jan."} +MACRO {feb} {"Feb."} +MACRO {mar} {"Mar."} +MACRO {apr} {"Apr."} +MACRO {may} {"May"} +MACRO {jun} {"June"} +MACRO {jul} {"July"} +MACRO {aug} {"Aug."} +MACRO {sep} {"Sept."} +MACRO {oct} {"Oct."} +MACRO {nov} {"Nov."} +MACRO {dec} {"Dec."} +% Journals are either written out in full or abbreviated; +% the abbreviations are like those found in ACM publications. +% +% To get a completely different set of abbreviations, it may be best to make +% a separate .bib file with nothing but those abbreviations; users could then +% include that file name as the first argument to the \bibliography command +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. Softw. Eng."} +MACRO {ieeetc} {"IEEE Trans. Comput."} +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} +MACRO {ipl} {"Inf. Process. Lett."} +MACRO {jacm} {"J.~ACM"} +MACRO {jcss} {"J.~Comput. Syst. Sci."} +MACRO {scp} {"Sci. Comput. Programming"} +MACRO {sicomp} {"SIAM J. Comput."} +MACRO {tocs} {"ACM Trans. Comput. Syst."} +MACRO {tods} {"ACM Trans. Database Syst."} +MACRO {tog} {"ACM Trans. Gr."} +MACRO {toms} {"ACM Trans. Math. Softw."} +MACRO {toois} {"ACM Trans. Office Inf. Syst."} +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} +MACRO {tcs} {"Theoretical Comput. Sci."} +%% /usr/local/lib/tex/bibtex/phyjfull.btx, Tue Jun 30 08:37:48 1992 +%% Edit by Nelson H. F. Beebe +%% Change file names in leading comment +% Journal Title Abbreviations from the Physical Review Style and Notation +% Guide, July, 1983, in BAPS Vol. 28. +% Selected by Cris Barnes and Charles Karney, March 1988 +% IMPORTANT!! Don't make changes to this file without making the +% corresponding changes to +% phyjabb.bib +% phyjabb.btx +MACRO {advp} {"Advances in Physics"} +MACRO {ajp} {"American Journal of Physics"} +MACRO {ao} {"Applied Optics"} +MACRO {apl} {"Applied Physics Letters"} +MACRO {apj} {"Astrophysical Journal"} +MACRO {baps} {"Bulletin of the American Physical Society"} +MACRO {cpc} {"Computer Physics Communications"} +MACRO {cppcf} {"Comments on Plasma Physics and Controlled Fusion"} +MACRO {fed} {"Fusion Engineering and Design"} +MACRO {ft} {"Fusion Technology"} +MACRO {ieeens} {"IEEE Transactions on Nuclear Science"} +MACRO {ieeeps} {"IEEE Transactions on Plasma Science"} +MACRO {ijimw} {"International Journal of Infrared and Millimeter Waves"} +MACRO {ip} {"Infrared Physics"} +MACRO {jap} {"Journal of Applied Physics"} +MACRO {jcp} {"Journal of Computational Physics"} +MACRO {jetp} {"Soviet Physics-JETP"} +MACRO {jfe} {"Journal of Fusion Energy"} +MACRO {jfm} {"Journal of Fluid Mechanics"} +MACRO {jgr} {"Journal of Geophysical Research"} +MACRO {jmp} {"Journal of Mathematical Physics"} +MACRO {jne} {"Journal of Nuclear Energy"} +MACRO {jnec} {"Journal of Nuclear Energy, Part C: Plasma Physics, Accelerators, Thermonuclear Research"} +MACRO {jnm} {"Journal of Nuclear Materials"} +MACRO {josa} {"Journal of the Optical Society of America"} +MACRO {jpp} {"Journal of Plasma Physics"} +MACRO {jpsj} {"Journal of the Physical Society of Japan"} +MACRO {jvst} {"Journal of Vacuum Science and Technology"} +MACRO {nedf} {"Nuclear Engineering and Design/Fusion"} +MACRO {nf} {"Nuclear Fusion"} +MACRO {nim} {"Nuclear Instruments and Methods"} +MACRO {nimpr} {"Nuclear Instruments and Methods in Physics Research"} +MACRO {nt/f} {"Nuclear Technology/Fusion"} +MACRO {pf} {"Physics of Fluids"} +MACRO {pfa} {"Physics of Fluids A: Fluid Dynamics"} +MACRO {pfb} {"Physics of Fluids B: Plasma Physics"} +MACRO {pl} {"Physics Letters"} +MACRO {pla} {"Physics Letters A"} +MACRO {pnas} {"Proceedings of the National Academy of Sciences of the USA"} +MACRO {pp} {"Plasma Physics"} +MACRO {ppcf} {"Plasma Physics and Controlled Fusion"} +MACRO {prl} {"Physical Review Letters"} +MACRO {pr} {"Physical Review"} +MACRO {pra} {"Physical Review A: General Physics"} +MACRO {ps} {"Physica Scripta"} +MACRO {rmp} {"Reviews of Modern Physics"} +MACRO {rsi} {"Review of Scientific Instruments"} +MACRO {sjpp} {"Soviet Journal of Plasma Phys."} +MACRO {spd} {"Soviet Physics-Doklady"} +MACRO {sptp} {"Soviet Physics-Technical Physics"} +MACRO {spu} {"Soviet Physics-Uspeki"} +% Now we read in the .BIB entries. +READ +% The sortify function converts to lower case after purify$ing; it's +% used in sorting and in computing alphabetic labels after sorting +% +% The chop.word(w,len,s) function returns either s or, if the first len +% letters of s equals w (this comparison is done in the third line of the +% function's definition), it returns that part of s after w. +% This long comment applies only to alphabetic labels +% +% The format.lab.names function makes a short label by using the initials of +% the von and Last parts of the names (but if there are more than four names, +% (i.e., people) it truncates after three and adds a superscripted "+"; +% it also adds such a "+" if the last of multiple authors is "others"). +% If there is only one name, and its von and Last parts combined have just +% a single name-token ("Knuth" has a single token, "Brinch Hansen" has two), +% we take the first three letters of the last name. The boolean +% et.al.char.used tells whether we've used a superscripted "+", so that we +% know whether to include a LaTeX macro for it. +% +% format.lab.names(s) == +% BEGIN +% numnames := num.names$(s) +% if numnames > 1 then +% if numnames > 4 then +% namesleft := 3 +% else +% namesleft := numnames +% nameptr := 1 +% nameresult := "" +% while namesleft > 0 +% do +% if (name_ptr = numnames) and +% format.name$(s, nameptr, "{ff }{vv }{ll}{ jj}") = "others" +% then nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else nameresult := nameresult * +% format.name$(s, nameptr, "{v{}}{l{}}") +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% if numnames > 4 then +% nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else +% t := format.name$(s, 1, "{v{}}{l{}}") +% if text.length$(t) < 2 then % there's just one name-token +% nameresult := text.prefix$(format.name$(s,1,"{ll}"),3) +% else +% nameresult := t +% fi +% fi +% return nameresult +% END +% +% Exactly what fields we look at in constructing the primary part of the label +% depends on the entry type; this selectivity (as opposed to, say, always +% looking at author, then editor, then key) helps ensure that "ignored" fields, +% as described in the LaTeX book, really are ignored. Note that MISC is part +% of the deepest `else' clause in the nested part of calc.label; thus, any +% unrecognized entry type in the database is handled correctly. +% +% There is one auxiliary function for each of the four different sequences of +% fields we use. The first of these functions looks at the author field, and +% then, if necessary, the key field. The other three functions, which might +% look at two fields and the key field, are similar, except that the key field +% takes precedence over the organization field (for labels---not for sorting). +% +% The calc.label function calculates the preliminary label of an entry, which +% is formed by taking three letters of information from the author or editor or +% key or organization field (depending on the entry type and on what's empty, +% but ignoring a leading "The " in the organization), and appending the last +% two characters (digits) of the year. It is an error if the appropriate fields +% among author, editor, organization, and key are missing, and we use +% the first three letters of the cite$ in desperation when this happens. +% The resulting label has the year part, but not the name part, purify$ed +% (purify$ing the year allows some sorting shenanigans by the user). +% +% This function also calculates the version of the label to be used in sorting. +% +% The final label may need a trailing 'a', 'b', etc., to distinguish it from +% otherwise identical labels, but we can't calculated those "extra.label"s +% until after sorting. +% +% calc.label == +% BEGIN +% if type$ = "book" or "inbook" then +% author.editor.key.label +% else if type$ = "proceedings" then +% editor.key.organization.label +% else if type$ = "manual" then +% author.key.organization.label +% else +% author.key.label +% fi fi fi +% label := label * substring$(purify$(field.or.null(year)), -1, 2) +% % assuming we will also sort, we calculate a sort.label +% sort.label := sortify(label), but use the last four, not two, digits +% END +% When sorting, we compute the sortkey by executing "presort" on each entry. +% The presort key contains a number of "sortify"ed strings, concatenated +% with multiple blanks between them. This makes things like "brinch per" +% come before "brinch hansen per". +% +% The fields used here are: the sort.label for alphabetic labels (as set by +% calc.label), followed by the author names (or editor names or organization +% (with a leading "The " removed) or key field, depending on entry type and on +% what's empty), followed by year, followed by the first bit of the title +% (chopping off a leading "The ", "A ", or "An "). +% Names are formatted: Von Last First Junior. +% The names within a part will be separated by a single blank +% (such as "brinch hansen"), two will separate the name parts themselves +% (except the von and last), three will separate the names, +% four will separate the names from year (and from label, if alphabetic), +% and four will separate year from title. +% +% The sort.format.names function takes an argument that should be in +% BibTeX name format, and returns a string containing " "-separated +% names in the format described above. The function is almost the same +% as format.names. +% This long comment applies only to alphabetic labels, when sorted +% +% Now comes the final computation for alphabetic labels, putting in the 'a's +% and 'b's and so forth if required. This involves two passes: a forward +% pass to put in the 'b's, 'c's and so on, and a backwards pass +% to put in the 'a's (we don't want to put in 'a's unless we know there +% are 'b's). +% We have to keep track of the longest (in width$ terms) label, for use +% by the "thebibliography" environment. +% +% VAR: longest.label, last.sort.label, next.extra: string +% longest.label.width, last.extra.num: integer +% +% initialize.longest.label == +% BEGIN +% longest.label := "" +% last.sort.label := int.to.chr$(0) +% next.extra := "" +% longest.label.width := 0 +% last.extra.num := 0 +% END +% +% forward.pass == +% BEGIN +% if last.sort.label = sort.label then +% last.extra.num := last.extra.num + 1 +% extra.label := int.to.chr$(last.extra.num) +% else +% last.extra.num := chr.to.int$("a") +% extra.label := "" +% last.sort.label := sort.label +% fi +% END +% +% reverse.pass == +% BEGIN +% if next.extra = "b" then +% extra.label := "a" +% fi +% label := label * extra.label +% if width$(label) > longest.label.width then +% longest.label := label +% longest.label.width := width$(label) +% fi +% next.extra := extra.label +% END +% Now comes the computation for numeric labels. +% We use either the sorted order or original order. +% We still have to keep track of the longest (in width$ terms) label, for use +% by the "thebibliography" environment. +STRINGS { longest.label } +INTEGERS { number.label longest.label.width } +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} +% Now we're ready to start writing the .BBL file. +% We begin, if necessary, with a LaTeX macro for unnamed names in an alphabetic +% label; next comes stuff from the `preamble' command in the database files. +% Then we give an incantation containing the command +% \begin{thebibliography}{...} +% where the `...' is the longest label. +% +% We also call init.state.consts, for use by the output routines. +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +% Now we produce the output for all the entries +ITERATE {call.type$} +% Finally, we finish up by writing the `\end{thebibliography}' command. +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/phiaea.bst b/Master/texmf-dist/bibtex/bst/beebe/phiaea.bst new file mode 100644 index 00000000000..90dbdedac18 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/phiaea.bst @@ -0,0 +1,1889 @@ +% BibTeX styles for various physics journals (27-Feb-1990). +% This file, physics.btx, is based on the file btxbst.doc. + % Please notify Charles Karney (Karney@Princeton.EDU) + % of any bugs, improvements, etc. +% Run this file through cpp to get specific versions. I have written +% a version of cpp within Emacs. To access it put +% (autoload 'cpp "tex$bibtex:cpp" ; Use cpp for BibTeX styles +% "C preprocessor" +% t) +% into your .emacs file. Read in this file with +% emacs tex$bibtex:physics.btx +% and run cpp with e.g., +% M-x cpp aip +% Save the resulting file to tex$latex:aip.bst. +% To accomodate the variations we need (in addition to the definitions below) +% ATIT_SUPPRESS: do not include the titles of journal articles +% NAME_INVERT: put the initials last +% NAME_UPPER: convert names to all caps. +% MONTH_SUPPRESS: do not include months in journal articles +% PAREN_DATE: dates go in parens in journal articles +% DATE_FIRST: dates go before page numbers +% VOLUME_SPACE: volume set off with space (not colon) +% NUM_SUPPRESS: do not include numbers in journal articles +% BOLD_VOL: volume numbers in bold face in journal articles +% BRACKET_NOTE: notes in brackets +% PAGE_START_J: include only starting page for journal articles +% PAGE_START_O: include only starting page for other entries +% PAGE_ABBREV: abbreviate page to p. and pages to pp. +% PHYSICS_JOUR: include abbreviations for Physics journals +% COMMA_DELIMIT: use comma (instead of period) to divide a citation +% NOTE_SUPPRESS: suppress the note +% MAX_NAMES: max number of authors before using et al (0 = infinity) +% MIN_NAMES: number of authors to list with et al. +% EDIT_VAR: use "edited by ..." instead of "..., editors" +% RMP_LABELS: create RMP-style labels +% KEY_CITE: use key as label +% NAMED_REFS: use (Smith, 1988) style of citations +% CSC_NAMES: names set in caps and small caps +% JOUR_DEEMPH: don't emphasize journal name +% ETAL_EMPH: emphasize et al. +% ALT_INCOLL alternate ordering of fields in incollections +% These are all boolean (0 or 1) except for MAX_NAMES and MIN_NAMES. +% These need to satisfy 0 <= MIN_NAMES <= MAX_NAMES. +% The rule here is that if all these are defined to be zero, we revert to +% the standard styles. For that reason we initialize them all to 0. +% These are the original macros + % For 1 Conferences +% same as NF except for 0 and 0 set to 1 +% This is the start of btxbst.doc +% BibTeX `plain' family + % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. +% Please notify Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU) of any bugs in +% these standard styles or in this documentation file. +% +% This is file btxbxt.doc; it helps document bibliography styles, +% and is also a template file that you can use to make +% several different style files, if you have access to a C preprocessor. +% For example, the standard styles were made by doing something like +% cpp -P -DPLAIN btxbst.doc plain.txt +% cpp -P -DUNSRT btxbst.doc unsrt.txt +% cpp -P -DALPHA btxbst.doc alpha.txt +% cpp -P -DABBRV btxbst.doc abbrv.txt +% and then renaming after removing unwanted comments and blank lines. +% If you don't have access, +% you can edit this file by hand to imitate the preprocessor, +% with the following explanation of the C preprocessor constructs used here. +% +% The output of the preprocessor is the same as the input, except that certain +% lines will be excluded (and some blank lines will be added). The sequence +% #if VAR +% lines to be included when VAR is not zero +% #else +% lines to be included when VAR is zero +% #endif +% (with the #-signs appearing in column 1) means that one set or the other of +% the lines are to be included depending on the value of VAR. +% The #else part is optional. Comments can be added after #else and #endif. +% Variables can be set by +% #define VAR value +% and one can also use #ifdef VAR to see if VAR has any value, and #ifndef +% to see if it has none. +% Another #if form used in this file is #if !VAR, which includes the lines +% after the #if only if VAR is zero. +% +% Convention: Use all uppercase identifiers for these preprocessor variables +% so you can spot them easily +% +% The command line to the preprocessor should define one of PLAIN, UNSRT, ALPHA +% or ABBRV (though PLAIN will be used by default if none is given), +% and the following lines will set various boolean variables to control the +% various lines that are chosen from the rest of the file. +% Each boolean variable should be set true (1) or false (0) in each style. +% Here are the current variables, and their meanings: +% 0: an alphabetic label is used (if false then a numeric +% label is used) +% 0: the entries should be sorted by label (if nonnumeric) +% and other info, like authors (if false, then +% entries remain in order of occurrence) +% 0: the authors, editors, etc., get the full names as +% given in the bibliography file (if false, the first +% names become initials) +% 1: titles of non-"books" (e.g., articles) should be +% converted to lower-case, except the first letter or +% first letter after a colon +% (if false then they appear as in the database) +% 0: months are spelled out in full (if false, then +% they're abbreviated) +% 0: macro journal names are spelled out in full +% (if false then they are abbreviated, currently +% as they appear in ACM publications) +%# define PLAIN 1 +% +% Entry formatting: Similar to that recommended by Mary-Claire van Leunen +% in "A Handbook for Scholars". Book-like titles are italicized +% (emphasized) and non-book titles are converted to sentence +% capitilization (and not enclosed in quotes). +% This file outputs a \newblock between major blocks of an entry +% (the name \newblock is analogous to the names \newline and \newpage) +% so that the user can obtain an "open" format, which has a line break +% before each block and lines after the first are indented within blocks, +% by giving the optional \documentstyle argument `openbib'; +% The default is the "closed" format---blocks runs together. +% +% Citation alphabetic label format: +% [Knu73] for single author (or editor or key) +% [AHU83] (first letters of last names) for multiple authors +% +% Citation label numberic format: +% [number] +% +% Reference list ordering for sorted, alphabetic lables: +% alphabetical by citation label, then by author(s) or whatever +% passes for author in the absence of one, then by year, +% then title +% +% Reference list ordering for sorted, numeric lables: +% alphabetical by author(s) or whatever passes +% for author in the absence of one, then by year, then title +% +% Reference list ordering for unsorted: +% by the order cited in the text +% +% History +% 12/16/84 (HWT) Original `plain' version, by Howard Trickey. +% 12/23/84 (LL) Some comments made by Leslie Lamport. +% 2/16/85 (OP) Changes based on LL's comments, Oren Patashnik. +% 2/17/85 (HWT) Template file and other standard styles made. +% 3/28/85 (OP) First release, version 0.98b for BibTeX 0.98f. +% 5/ 9/85 (OP) Version 0.98c for BibTeX 0.98i: +% fixed Theoretical Computer Science macro name; +% fixed the format.vol.num.pages function. +% 1/24/88 (OP) Version 0.99a for BibTeX 0.99a, main changes: +% assignment operator (:=) arguments reversed; +% the preamble$ function outputs the database PREAMBLE; +% entry.max$ and global.max$ (built-in) variables replace +% entry.string.max and global.string.max functions; +% alphabetizing by year then title, not just title; +% many unnecessary ties removed; \it ==> \em; +% the `alpha' style uses a superscripted `+' instead of a +% `*' for unnamed names in constructing the label; +% the `abbrv' style now uses "Mar." and "Sept."; +% the functions calc.label and presort now look at just +% the fields they're supposed to; +% BOOKLET, MASTERSTHESIS, TECHREPORT use nonbook titles; +% INBOOK and INCOLLECTION take an optional type (e.g. +% type = "Section"), overriding the default "chapter"; +% BOOK, INBOOK, INCOLLECTION, and PROCEEDINGS now allow +% either volume or number, not just volume; +% INCOLLECTION now allows an edition and series field; +% PROCEEDINGS and INPROCEEDINGS now use the address field +% to tell where a conference was held; +% INPROCEEDINGS and PROCEEDINGS now allow either volume +% or number, and also a series field; +% MASTERSTHESIS and PHDTHESIS accept types other than +% "Master's thesis" and "PhD thesis"; +% UNPUBLISHED now outputs, in one block, note then date; +% MANUAL now prints out the organization in +% the first block if the author field is empty; +% MISC can't be empty---it requires some optional field. +% 3/23/88 (OP) Version 0.99b for BibTeX 0.99c---changed the three +% erroneous occurrences of `cite ' to `cite$ '; this +% change didn't affect the four standard styles, so the +% 0.99a versions of those styles are still current. +% +% The ENTRY declaration +% Like Scribe's (according to pages 231-2 of the April '84 edition), +% but no fullauthor or editors fields because BibTeX does name handling. +% The annote field is commented out here because this family doesn't +% include an annotated bibliography style. And in addition to the fields +% listed here, BibTeX has a built-in crossref field, explained later. +ENTRY +% Fields: + { address +% Usually the address of a publisher or other type of organization. +% Put information in this field only if it helps the reader find the +% thing---for example you should omit the address of a major +% publisher entirely. For a PROCEEDINGS or an INPROCEEDINGS, +% however, it's the address of the conference; for those two entry +% types, include the publisher's or organization's address, if +% necessary, in the publisher or organization field. +% annote +% Long annotation---for annotated bibliographies (begins sentence). + author +% Name(s) of author(s), in BibTeX name format. + booktitle +% Book title when the thing being referenced isn't the whole book. +% For book entries, the title field should be used instead. + chapter +% Chapter (or section or whatever) number. + edition +% Edition of a book---should be an ordinal (e.g., "Second"). + editor +% Name(s) of editor(s), in BibTeX name format. +% If there is also an author field, then the editor field should be +% for the book or collection that the work appears in. + howpublished +% How something strange has been published (begins sentence). + institution +% Sponsoring institution of a technical report. + journal +% Journal name (macros are provided for many). + key +% Alphabetizing, labeling, and cross-referencing key +% (needed when an entry has no author or editor). + month +% Month (macros are provided). + note +% To help the reader find a reference (begins sentence). + number +% Number of a journal or technical report, or of a work in a series. + organization +% Organization sponsoring a conference (or publishing a manual); if +% the editor (or author) is empty, and if the organization produces +% an awkward label or cross reference, you should put appropriately +% condensed organization information in the key field as well. + pages +% Page number or numbers (use `--' to separate a range, use `+' +% to indicate pages following that don't form a simple range). + publisher +% Publisher name. + school +% School name (for theses). + series +% The name of a series or set of books. +% An individual book will will also have it's own title. + title +% The title of the thing you're referred to. + type +% Type of a Techreport (e.g., "Research Note") to be used instead of +% the default "Technical Report"; or, similarly, the type of a +% thesis; or of a part of a book. + volume +% The volume number of a journal or multivolume work. + year +% The year should contain only numerals (technically, it should end +% with four numerals, after purification; doesn't a begin sentence). + } +% There are no integer entry variables + {} +% These string entry variables are used to form the citation label. +% In a storage pinch, sort.label can be easily computed on the fly. + { label } +% Each entry function starts by calling output.bibitem, to write the +% \bibitem and its arguments to the .BBL file. Then the various fields +% are formatted and printed by output or output.check. Those functions +% handle the writing of separators (commas, periods, \newblock's), +% taking care not to do so when they are passed a null string. +% Finally, fin.entry is called to add the final period and finish the +% entry. +% +% A bibliographic reference is formatted into a number of `blocks': +% in the open format, a block begins on a new line and subsequent +% lines of the block are indented. A block may contain more than +% one sentence (well, not a grammatical sentence, but something to +% be ended with a sentence ending period). The entry functions should +% call new.block whenever a block other than the first is about to be +% started. They should call new.sentence whenever a new sentence is +% to be started. The output functions will ensure that if two +% new.sentence's occur without any non-null string being output between +% them then there won't be two periods output. Similarly for two +% successive new.block's. +% +% The output routines don't write their argument immediately. +% Instead, by convention, that argument is saved on the stack to be +% output next time (when we'll know what separator needs to come +% after it). Meanwhile, the output routine has to pop the pending +% output off the stack, append any needed separator, and write it. +% +% To tell which separator is needed, we maintain an output.state. +% It will be one of these values: +% before.all just after the \bibitem +% mid.sentence in the middle of a sentence: comma needed +% if more sentence is output +% after.sentence just after a sentence: period needed +% after.block just after a block (and sentence): +% period and \newblock needed. +% Note: These styles don't use after.sentence +% +% VAR: output.state : INTEGER -- state variable for output +% +% The output.nonnull function saves its argument (assumed to be nonnull) +% on the stack, and writes the old saved value followed by any needed +% separator. The ordering of the tests is decreasing frequency of +% occurrence. +% +% output.nonnull(s) == +% BEGIN +% s := argument on stack +% if output.state = mid.sentence then +% write$(pop() * ", ") +% -- "pop" isn't a function: just use stack top +% else +% if output.state = after.block then +% write$(add.period$(pop())) +% newline$ +% write$("\newblock ") +% else +% if output.state = before.all then +% write$(pop()) +% else -- output.state should be after.sentence +% write$(add.period$(pop()) * " ") +% fi +% fi +% output.state := mid.sentence +% fi +% push s on stack +% END +% +% The output function calls output.nonnull if its argument is non-empty; +% its argument may be a missing field (thus, not necessarily a string) +% +% output(s) == +% BEGIN +% if not empty$(s) then output.nonnull(s) +% fi +% END +% +% The output.check function is the same as the output function except that, if +% necessary, output.check warns the user that the t field shouldn't be empty +% (this is because it probably won't be a good reference without the field; +% the entry functions try to make the formatting look reasonable even when +% such fields are empty). +% +% output.check(s,t) == +% BEGIN +% if empty$(s) then +% warning$("empty " * t * " in " * cite$) +% else output.nonnull(s) +% fi +% END +% +% The output.bibitem function writes the \bibitem for the current entry +% (the label should already have been set up), and sets up the separator +% state for the output functions. And, it leaves a string on the stack +% as per the output convention. +% +% output.bibitem == +% BEGIN +% newline$ +% write$("\bibitem[") % for alphabetic labels, +% write$(label) % these three lines +% write$("]{") % are used +% write$("\bibitem{") % this line for numeric labels +% write$(cite$) +% write$("}") +% push "" on stack +% output.state := before.all +% END +% +% The fin.entry function finishes off an entry by adding a period to the +% string remaining on the stack. If the state is still before.all +% then nothing was produced for this entry, so the result will look bad, +% but the user deserves it. (We don't omit the whole entry because the +% entry was cited, and a bibitem is needed to define the citation label.) +% +% fin.entry == +% BEGIN +% write$(add.period$(pop())) +% newline$ +% END +% +% The new.block function prepares for a new block to be output, and +% new.sentence prepares for a new sentence. +% +% new.block == +% BEGIN +% if output.state <> before.all then +% output.state := after.block +% fi +% END +% +% new.sentence == +% BEGIN +% if output.state <> after.block then +% if output.state <> before.all then +% output.state := after.sentence +% fi +% fi +% END +% +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 := +} +% the variables s and t are temporary string holders +STRINGS { s t } +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { "," * 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} +% This function finishes all entries. +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} +FUNCTION {new.sentence} +{ skip$ +} +% These three functions pop one or two (integer) arguments from the stack +% and push a single one, either 0 or 1. +% The 'skip$ in the `and' and `or' functions are used because +% the corresponding if$ would be idempotent +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +% Sometimes we begin a new block only if the block will be big enough. The +% new.block.checka function issues a new.block if its argument is nonempty; +% new.block.checkb does the same if either of its TWO arguments is nonempty. +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +% The new.sentence.check functions are analogous. +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} +% Here are some functions for formatting chunks of an entry. +% By convention they either produce a string that can be followed by +% a comma or period (using add.period$, so it is OK to end in a period), +% or they produce the null string. +% +% A useful utility is the field.or.null function, which checks if the +% argument is the result of pushing a `missing' field (one for which no +% assignment was made when the current entry was read in from the database) +% or the result of pushing a string having no non-white-space characters. +% It returns the null string if so, otherwise it returns the field string. +% Its main (but not only) purpose is to guarantee that what's left on the +% stack is a string rather than a missing field. +% +% field.or.null(s) == +% BEGIN +% if empty$(s) then return "" +% else return s +% END +% +% Another helper function is emphasize, which returns the argument emphazised, +% if that is non-empty, otherwise it returns the null string. Italic +% corrections aren't used, so this function should be used when punctation +% will follow the result. +% +% emphasize(s) == +% BEGIN +% if empty$(s) then return "" +% else return "{\em " * s * "}" +% +% The format.names function formats the argument (which should be in +% BibTeX name format) into "First Von Last, Junior", separated by commas +% and with an "and" before the last (but ending with "et~al." if the last +% of multiple authors is "others"). This function's argument should always +% contain at least one name. +% +% VAR: nameptr, namesleft, numnames: INTEGER +% pseudoVAR: nameresult: STRING (it's what's accumulated on the stack) +% +% format.names(s) == +% BEGIN +% nameptr := 1 +% numnames := num.names$(s) +% namesleft := numnames +% while namesleft > 0 +% do +% % for full names: +% t := format.name$(s, nameptr, "{ff~}{vv~}{ll}{, jj}") +% % for abbreviated first names: +% t := format.name$(s, nameptr, "{f.~}{vv~}{ll}{, jj}") +% if nameptr > 1 then +% if namesleft > 1 then nameresult := nameresult * ", " * t +% else if numnames > 2 +% then nameresult := nameresult * "," +% fi +% if t = "others" +% then nameresult := nameresult * " et~al." +% else nameresult := nameresult * " and " * t +% fi +% fi +% else nameresult := t +% fi +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% return nameresult +% END +% +% The format.authors function returns the result of format.names(author) +% if the author is present, or else it returns the null string +% +% format.authors == +% BEGIN +% if empty$(author) then return "" +% else return format.names(author) +% fi +% END +% +% Format.editors is like format.authors, but it uses the editor field, +% and appends ", editor" or ", editors" +% +% format.editors == +% BEGIN +% if empty$(editor) then return "" +% else +% if num.names$(editor) > 1 then +% return format.names(editor) * ", editors" +% else +% return format.names(editor) * ", editor" +% fi +% fi +% END +% +% Other formatting functions are similar, so no "comment version" will be +% given for them. +% +% The `pop$' in this function gets rid of the duplicate `empty' value and +% the `skip$' returns the duplicate field value +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} +FUNCTION {embolden} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} +FUNCTION {paren} +{ duplicate$ empty$ + { pop$ "" } + { "(" swap$ * ")" * } + if$ +} +INTEGERS { nameptr namesleft numnames } +INTEGERS { etal } +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames #1 > + s numnames "{ll}" format.name$ "others" = numnames #1 > and + or 'etal := + etal + { #1 #1 + 'namesleft := } + { numnames 'namesleft := } + if$ + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first + t "others" = + 'skip$ + { t "u" change.case$ 't := } + if$ + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { nameptr #2 > + { "," * } + 'skip$ + if$ + t "others" = + etal or + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} +FUNCTION {format.edited} +{ editor empty$ + { "" } + { "edited by " editor format.names * } + if$ +} +% The format.title function is used for non-book-like titles. +% For most styles we convert to lowercase (except for the very first letter, +% and except for the first one after a colon (followed by whitespace)), +% and hope the user has brace-surrounded words that need to stay capitilized; +% for some styles, however, we leave it as it is in the database. +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} +% By default, BibTeX sets the global integer variable global.max$ to the BibTeX +% constant glob_str_size, the maximum length of a global string variable. +% Analogously, BibTeX sets the global integer variable entry.max$ to +% ent_str_size, the maximum length of an entry string variable. +% The style designer may change these if necessary (but this is unlikely) +% The n.dashify function makes each single `-' in a string a double `--' +% if it's not already +% +% pseudoVAR: pageresult: STRING (it's what's accumulated on the stack) +% +% n.dashify(s) == +% BEGIN +% t := s +% pageresult := "" +% while (not empty$(t)) +% do +% if (first character of t = "-") +% then +% if (next character isn't) +% then +% pageresult := pageresult * "--" +% t := t with the "-" removed +% else +% while (first character of t = "-") +% do +% pageresult := pageresult * "-" +% t := t with the "-" removed +% od +% fi +% else +% pageresult := pageresult * the first character +% t := t with the first character removed +% fi +% od +% return pageresult +% END +FUNCTION {n.dashify} +{ '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 {first.page} +{ 't := + "" + { t empty$ not t #1 #1 substring$ "-" = not and } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + while$ +} +% The format.date function is for the month and year, but we give a warning if +% there's an empty year but the month is there, and we return the empty string +% if they're both empty. +FUNCTION {format.date} +{ year empty$ + { "" } + 'year + if$ +} +% The format.btitle is for formatting the title field when it is a book-like +% entry---the style used here keeps it in uppers-and-lowers and emphasizes it. +FUNCTION {format.btitle} +{ title emphasize +} +% For several functions we'll need to connect two strings with a +% tie (~) if the second one isn't very long (fewer than 3 characters). +% The tie.or.space.connect function does that. It concatenates the two +% strings on top of the stack, along with either a tie or space between +% them, and puts this concatenation back onto the stack: +% +% tie.or.space.connect(str1,str2) == +% BEGIN +% if text.length$(str2) < 3 +% then return the concatenation of str1, "~", and str2 +% else return the concatenation of str1, " ", and str2 +% END +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} +% The either.or.check function complains if both fields or an either-or pair +% are nonempty. +% +% either.or.check(t,s) == +% BEGIN +% if empty$(s) then +% warning$(can't use both " * t * " fields in " * cite$) +% fi +% END +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +% The format.bvolume function is for formatting the volume and perhaps +% series name of a multivolume work. If both a volume and a series field +% are there, we assume the series field is the title of the whole multivolume +% work (the title field should be the title of the thing being referred to), +% and we add an "of ". This function is called in mid-sentence. +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +% The format.number.series function is for formatting the series name +% and perhaps number of a work in a series. This function is similar to +% format.bvolume, although for this one the series must exist (and the +% volume must not exist). If the number field is empty we output either +% the series field unchanged if it exists or else the null string. +% If both the number and series fields are there we assume the series field +% gives the name of the whole series (the title field should be the title +% of the work being one referred to), and we add an "in ". +% We capitilize Number when this function is used at the beginning of a block. +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} +% The format.edition function appends " edition" to the edition, if present. +% We lowercase the edition (it should be something like "Third"), because +% this doesn't start a sentence. +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + if$ +} +% The format.pages function is used for formatting a page range in a book +% (and in rare circumstances, an article). +% +% The multi.page.check function examines the page field for a "-" or "," or "+" +% so that format.pages can use "page" instead of "pages" if none exists. +% Note: global.max$ here means "take the rest of the string" +% +% VAR: multiresult: INTEGER (actually, a boolean) +% +% multi.page.check(s) == +% BEGIN +% t := s +% multiresult := false +% while ((not multiresult) and (not empty$(t))) +% do +% if (first character of t = "-" or "," or "+") +% then multiresult := true +% else t := t with the first character removed +% fi +% od +% return multiresult +% END +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 +} +% This function doesn't begin a sentence so "pages" isn't capitalized. +% Other functions that use this should keep that in mind. +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} +FUNCTION {format.pages.a} +{ pages empty$ + { "" } + { "page" pages first.page tie.or.space.connect } + if$ +} +% The format.vol.num.pages function is for the volume, number, and page range +% of a journal article. We use the format: vol(number):pages, with some +% variations for empty fields. This doesn't begin a sentence. +FUNCTION {format.vol.num.pages} +{ volume field.or.null embolden + " " swap$ * * + format.date empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.date paren } + { " " * format.date paren * } + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages.a } + { " " * pages first.page *} + if$ + } + if$ +} +% The format.chapter.pages, if the chapter is present, puts whatever is in the +% type field (or else "chapter" if type is empty) in front of a chapter number. +% It then appends the pages, if present. This doesn't begin a sentence. +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} +% The format.in.ed.booktitle function is used for starting out a sentence +% that begins "In ", putting an editor before the title if one +% exists. +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "in " booktitle emphasize * } + { "in " booktitle emphasize * ", " * format.edited * } + if$ + } + if$ +} +% The function empty.misc.check complains if all six fields are empty, and +% if there's been no sorting or alphabetic-label complaint. +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} +% The function format.thesis.type returns either the (case-changed) type field, +% if it is defined, or else the default string already on the stack +% (like "Master's thesis" or "PhD thesis"). +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} +% The function format.tr.number makes a string starting with "Technical Report" +% (or type, if that field is defined), followed by the number if there is one; +% it returns the starting part (with a case change) even if there is no number. +% This is used at the beginning of a sentence. +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} +% Now come the cross-referencing functions (these are invoked because +% one entry in the database file(s) cross-references another, by giving +% the other entry's database key in a `crossref' field). This feature +% allows one or more titled things that are part of a larger titled +% thing to cross-reference the larger thing. These styles allow for +% five posibilities: (1) an ARTICLE may cross-reference an ARTICLE; +% (2) a BOOK, (3) INBOOK, or (4) INCOLLECTION may cross-reference a BOOK; +% or (5) an INPROCEEDINGS may cross-reference a PROCEEDINGS. +% Each of these is explained in more detail later. +% +% An ARTICLE entry type may cross reference another ARTICLE (this is +% intended for when an entire journal is devoted to a single topic--- +% but since there is no JOURNAL entry type, the journal, too, should be +% classified as an ARTICLE but without the author and title fields). +% This will result in two warning messages for the journal's entry +% if it's included in the reference list, but such is life. +% +% format.article.crossref == +% BEGIN +% if empty$(key) then +% if empty$(journal) then +% warning$("need key or journal for " * cite$ * +% " to crossref " * crossref) +% return(" \cite{" * crossref * "}") +% else +% return("In " * emphazise.correct (journal) * +% " \cite{" * crossref * "}") +% fi +% else +% return("In " * key * " \cite{" * crossref * "}") +% fi +% END +% +% The other cross-referencing functions are similar, so no "comment version" +% will be given for them. +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In " journal * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} +% We use just the last names of editors for a cross reference: either +% "editor", or "editor1 and editor2", or "editor1 et~al." depending on +% whether there are one, or two, or more than two editors. +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} +% A BOOK (or INBOOK) entry type (assumed to be for a single volume in a +% multivolume work) may cross reference another BOOK (the entire multivolume). +% Usually there will be an editor, in which case we use that to construct the +% cross reference; otherwise we use a nonempty key field or else the series +% field (since the series gives the title of the multivolume work). +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} +% An INCOLLECTION entry type may cross reference a BOOK (assumed to be the +% collection), or an INPROCEEDINGS may cross reference a PROCEEDINGS. +% Often there will be an editor, in which case we use that to construct +% the cross reference; otherwise we use a nonempty key field or else +% the booktitle field (which gives the cross-referenced work's title). +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} +% Now we define the type functions for all entry types that may appear +% in the .BIB file---e.g., functions like `article' and `book'. These +% are the routines that actually generate the .BBL-file output for +% the entry. These must all precede the READ command. In addition, the +% style designer should have a function `default.type' for unknown types. +% Note: The fields (within each list) are listed in order of appearance, +% except as described for an `inbook' or a `proceedings'. +% +% The article function is for an article in a journal. An article may +% CROSSREF another article. +% Required fields: author, title, journal, year +% Optional fields: volume, number, pages, month, note +% +% article == +% BEGIN +% output.bibitem +% output.check(format.authors,"author") +% new.block +% output.check(format.title,"title") +% new.block +% if missing$(crossref) then +% output.check(emphasize(journal),"journal") +% output(format.vol.num.pages) +% output.check(format.date,"year") +% else +% output.nonnull(format.article.crossref) +% output(format.pages) +% fi +% new.block +% output(note) +% fin.entry +% END +% +% The book function is for a whole book. A book may CROSSREF another book. +% Required fields: author or editor, title, publisher, year +% Optional fields: volume or number, series, address, edition, month, +% note +% +% book == +% BEGIN +% if empty$(author) then output.check(format.editors,"author and editor") +% else output.check(format.authors,"author") +% if missing$(crossref) then +% either.or.check("author and editor",editor) +% fi +% fi +% new.block +% output.check(format.btitle,"title") +% if missing$(crossref) then +% output(format.bvolume) +% new.block +% output(format.number.series) +% new.sentence +% output.check(publisher,"publisher") +% output(address) +% else +% new.block +% output.nonnull(format.book.crossref) +% fi +% output(format.edition) +% output.check(format.date,"year") +% new.block +% output(note) +% fin.entry +% END +% +% The other entry functions are all quite similar, so no "comment version" +% will be given for them. +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + crossref missing$ + { journal field.or.null + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} +% A booklet is a bound thing without a publisher or sponsoring institution. +% Required: title +% Optional: author, howpublished, address, month, year, note +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} +% For the conference entry type, see inproceedings. +% An inbook is a piece of a book: either a chapter and/or a page range. +% It may CROSSREF a book. If there's no volume field, the type field +% will come before number and series. +% Required: author or editor, title, chapter and/or pages, publisher,year +% Optional: volume or number, series, type, address, edition, month, note +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} +% An incollection is like inbook, but where there is a separate title +% for the referenced thing (and perhaps an editor for the whole). +% An incollection may CROSSREF a book. +% Required: author, title, booktitle, publisher, year +% Optional: editor, volume or number, series, type, chapter, pages, +% address, edition, month, note +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} +% An inproceedings is an article in a conference proceedings, and it may +% CROSSREF a proceedings. If there's no address field, the month (& year) +% will appear just before note. +% Required: author, title, booktitle, year +% Optional: editor, volume or number, series, pages, address, month, +% organization, publisher, note +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} +% The conference function is included for Scribe compatibility. +FUNCTION {conference} { inproceedings } +% A manual is technical documentation. +% Required: title +% Optional: author, organization, address, edition, month, year, note +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} +% A mastersthesis is a Master's thesis. +% Required: author, title, school, year +% Optional: type, address, month, note +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% A misc is something that doesn't fit elsewhere. +% Required: at least one of the `optional' fields +% Optional: author, title, howpublished, month, year, note +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} +% A phdthesis is like a mastersthesis. +% Required: author, title, school, year +% Optional: type, address, month, note +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% A proceedings is a conference proceedings. +% If there is an organization but no editor field, the organization will +% appear as the first optional field (we try to make the first block nonempty); +% if there's no address field, the month (& year) will appear just before note. +% Required: title, year +% Optional: editor, volume or number, series, address, month, +% organization, publisher, note +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} +% A techreport is a technical report. +% Required: author, title, institution, year +% Optional: type, number, address, month, note +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% An unpublished is something that hasn't been published. +% Required: author, title, note +% Optional: month, year +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} +% We use entry type `misc' for an unknown type; BibTeX gives a warning. +FUNCTION {default.type} { misc } +% Here are macros for common things that may vary from style to style. +% Users are encouraged to use these macros. +% +% Months are either written out in full or abbreviated +MACRO {jan} {"Jan."} +MACRO {feb} {"Feb."} +MACRO {mar} {"Mar."} +MACRO {apr} {"Apr."} +MACRO {may} {"May"} +MACRO {jun} {"June"} +MACRO {jul} {"July"} +MACRO {aug} {"Aug."} +MACRO {sep} {"Sept."} +MACRO {oct} {"Oct."} +MACRO {nov} {"Nov."} +MACRO {dec} {"Dec."} +% Journals are either written out in full or abbreviated; +% the abbreviations are like those found in ACM publications. +% +% To get a completely different set of abbreviations, it may be best to make +% a separate .bib file with nothing but those abbreviations; users could then +% include that file name as the first argument to the \bibliography command +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. Softw. Eng."} +MACRO {ieeetc} {"IEEE Trans. Comput."} +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} +MACRO {ipl} {"Inf. Process. Lett."} +MACRO {jacm} {"J.~ACM"} +MACRO {jcss} {"J.~Comput. Syst. Sci."} +MACRO {scp} {"Sci. Comput. Programming"} +MACRO {sicomp} {"SIAM J. Comput."} +MACRO {tocs} {"ACM Trans. Comput. Syst."} +MACRO {tods} {"ACM Trans. Database Syst."} +MACRO {tog} {"ACM Trans. Gr."} +MACRO {toms} {"ACM Trans. Math. Softw."} +MACRO {toois} {"ACM Trans. Office Inf. Syst."} +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} +MACRO {tcs} {"Theoretical Comput. Sci."} +%% /usr/local/lib/tex/bibtex/phyjfull.btx, Tue Jun 30 08:37:48 1992 +%% Edit by Nelson H. F. Beebe +%% Change file names in leading comment +% Journal Title Abbreviations from the Physical Review Style and Notation +% Guide, July, 1983, in BAPS Vol. 28. +% Selected by Cris Barnes and Charles Karney, March 1988 +% IMPORTANT!! Don't make changes to this file without making the +% corresponding changes to +% phyjabb.bib +% phyjabb.btx +MACRO {advp} {"Advances in Physics"} +MACRO {ajp} {"American Journal of Physics"} +MACRO {ao} {"Applied Optics"} +MACRO {apl} {"Applied Physics Letters"} +MACRO {apj} {"Astrophysical Journal"} +MACRO {baps} {"Bulletin of the American Physical Society"} +MACRO {cpc} {"Computer Physics Communications"} +MACRO {cppcf} {"Comments on Plasma Physics and Controlled Fusion"} +MACRO {fed} {"Fusion Engineering and Design"} +MACRO {ft} {"Fusion Technology"} +MACRO {ieeens} {"IEEE Transactions on Nuclear Science"} +MACRO {ieeeps} {"IEEE Transactions on Plasma Science"} +MACRO {ijimw} {"International Journal of Infrared and Millimeter Waves"} +MACRO {ip} {"Infrared Physics"} +MACRO {jap} {"Journal of Applied Physics"} +MACRO {jcp} {"Journal of Computational Physics"} +MACRO {jetp} {"Soviet Physics-JETP"} +MACRO {jfe} {"Journal of Fusion Energy"} +MACRO {jfm} {"Journal of Fluid Mechanics"} +MACRO {jgr} {"Journal of Geophysical Research"} +MACRO {jmp} {"Journal of Mathematical Physics"} +MACRO {jne} {"Journal of Nuclear Energy"} +MACRO {jnec} {"Journal of Nuclear Energy, Part C: Plasma Physics, Accelerators, Thermonuclear Research"} +MACRO {jnm} {"Journal of Nuclear Materials"} +MACRO {josa} {"Journal of the Optical Society of America"} +MACRO {jpp} {"Journal of Plasma Physics"} +MACRO {jpsj} {"Journal of the Physical Society of Japan"} +MACRO {jvst} {"Journal of Vacuum Science and Technology"} +MACRO {nedf} {"Nuclear Engineering and Design/Fusion"} +MACRO {nf} {"Nuclear Fusion"} +MACRO {nim} {"Nuclear Instruments and Methods"} +MACRO {nimpr} {"Nuclear Instruments and Methods in Physics Research"} +MACRO {nt/f} {"Nuclear Technology/Fusion"} +MACRO {pf} {"Physics of Fluids"} +MACRO {pfa} {"Physics of Fluids A: Fluid Dynamics"} +MACRO {pfb} {"Physics of Fluids B: Plasma Physics"} +MACRO {pl} {"Physics Letters"} +MACRO {pla} {"Physics Letters A"} +MACRO {pnas} {"Proceedings of the National Academy of Sciences of the USA"} +MACRO {pp} {"Plasma Physics"} +MACRO {ppcf} {"Plasma Physics and Controlled Fusion"} +MACRO {prl} {"Physical Review Letters"} +MACRO {pr} {"Physical Review"} +MACRO {pra} {"Physical Review A: General Physics"} +MACRO {ps} {"Physica Scripta"} +MACRO {rmp} {"Reviews of Modern Physics"} +MACRO {rsi} {"Review of Scientific Instruments"} +MACRO {sjpp} {"Soviet Journal of Plasma Phys."} +MACRO {spd} {"Soviet Physics-Doklady"} +MACRO {sptp} {"Soviet Physics-Technical Physics"} +MACRO {spu} {"Soviet Physics-Uspeki"} +% Now we read in the .BIB entries. +READ +% The sortify function converts to lower case after purify$ing; it's +% used in sorting and in computing alphabetic labels after sorting +% +% The chop.word(w,len,s) function returns either s or, if the first len +% letters of s equals w (this comparison is done in the third line of the +% function's definition), it returns that part of s after w. +% This long comment applies only to alphabetic labels +% +% The format.lab.names function makes a short label by using the initials of +% the von and Last parts of the names (but if there are more than four names, +% (i.e., people) it truncates after three and adds a superscripted "+"; +% it also adds such a "+" if the last of multiple authors is "others"). +% If there is only one name, and its von and Last parts combined have just +% a single name-token ("Knuth" has a single token, "Brinch Hansen" has two), +% we take the first three letters of the last name. The boolean +% et.al.char.used tells whether we've used a superscripted "+", so that we +% know whether to include a LaTeX macro for it. +% +% format.lab.names(s) == +% BEGIN +% numnames := num.names$(s) +% if numnames > 1 then +% if numnames > 4 then +% namesleft := 3 +% else +% namesleft := numnames +% nameptr := 1 +% nameresult := "" +% while namesleft > 0 +% do +% if (name_ptr = numnames) and +% format.name$(s, nameptr, "{ff }{vv }{ll}{ jj}") = "others" +% then nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else nameresult := nameresult * +% format.name$(s, nameptr, "{v{}}{l{}}") +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% if numnames > 4 then +% nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else +% t := format.name$(s, 1, "{v{}}{l{}}") +% if text.length$(t) < 2 then % there's just one name-token +% nameresult := text.prefix$(format.name$(s,1,"{ll}"),3) +% else +% nameresult := t +% fi +% fi +% return nameresult +% END +% +% Exactly what fields we look at in constructing the primary part of the label +% depends on the entry type; this selectivity (as opposed to, say, always +% looking at author, then editor, then key) helps ensure that "ignored" fields, +% as described in the LaTeX book, really are ignored. Note that MISC is part +% of the deepest `else' clause in the nested part of calc.label; thus, any +% unrecognized entry type in the database is handled correctly. +% +% There is one auxiliary function for each of the four different sequences of +% fields we use. The first of these functions looks at the author field, and +% then, if necessary, the key field. The other three functions, which might +% look at two fields and the key field, are similar, except that the key field +% takes precedence over the organization field (for labels---not for sorting). +% +% The calc.label function calculates the preliminary label of an entry, which +% is formed by taking three letters of information from the author or editor or +% key or organization field (depending on the entry type and on what's empty, +% but ignoring a leading "The " in the organization), and appending the last +% two characters (digits) of the year. It is an error if the appropriate fields +% among author, editor, organization, and key are missing, and we use +% the first three letters of the cite$ in desperation when this happens. +% The resulting label has the year part, but not the name part, purify$ed +% (purify$ing the year allows some sorting shenanigans by the user). +% +% This function also calculates the version of the label to be used in sorting. +% +% The final label may need a trailing 'a', 'b', etc., to distinguish it from +% otherwise identical labels, but we can't calculated those "extra.label"s +% until after sorting. +% +% calc.label == +% BEGIN +% if type$ = "book" or "inbook" then +% author.editor.key.label +% else if type$ = "proceedings" then +% editor.key.organization.label +% else if type$ = "manual" then +% author.key.organization.label +% else +% author.key.label +% fi fi fi +% label := label * substring$(purify$(field.or.null(year)), -1, 2) +% % assuming we will also sort, we calculate a sort.label +% sort.label := sortify(label), but use the last four, not two, digits +% END +% When sorting, we compute the sortkey by executing "presort" on each entry. +% The presort key contains a number of "sortify"ed strings, concatenated +% with multiple blanks between them. This makes things like "brinch per" +% come before "brinch hansen per". +% +% The fields used here are: the sort.label for alphabetic labels (as set by +% calc.label), followed by the author names (or editor names or organization +% (with a leading "The " removed) or key field, depending on entry type and on +% what's empty), followed by year, followed by the first bit of the title +% (chopping off a leading "The ", "A ", or "An "). +% Names are formatted: Von Last First Junior. +% The names within a part will be separated by a single blank +% (such as "brinch hansen"), two will separate the name parts themselves +% (except the von and last), three will separate the names, +% four will separate the names from year (and from label, if alphabetic), +% and four will separate year from title. +% +% The sort.format.names function takes an argument that should be in +% BibTeX name format, and returns a string containing " "-separated +% names in the format described above. The function is almost the same +% as format.names. +% This long comment applies only to alphabetic labels, when sorted +% +% Now comes the final computation for alphabetic labels, putting in the 'a's +% and 'b's and so forth if required. This involves two passes: a forward +% pass to put in the 'b's, 'c's and so on, and a backwards pass +% to put in the 'a's (we don't want to put in 'a's unless we know there +% are 'b's). +% We have to keep track of the longest (in width$ terms) label, for use +% by the "thebibliography" environment. +% +% VAR: longest.label, last.sort.label, next.extra: string +% longest.label.width, last.extra.num: integer +% +% initialize.longest.label == +% BEGIN +% longest.label := "" +% last.sort.label := int.to.chr$(0) +% next.extra := "" +% longest.label.width := 0 +% last.extra.num := 0 +% END +% +% forward.pass == +% BEGIN +% if last.sort.label = sort.label then +% last.extra.num := last.extra.num + 1 +% extra.label := int.to.chr$(last.extra.num) +% else +% last.extra.num := chr.to.int$("a") +% extra.label := "" +% last.sort.label := sort.label +% fi +% END +% +% reverse.pass == +% BEGIN +% if next.extra = "b" then +% extra.label := "a" +% fi +% label := label * extra.label +% if width$(label) > longest.label.width then +% longest.label := label +% longest.label.width := width$(label) +% fi +% next.extra := extra.label +% END +% Now comes the computation for numeric labels. +% We use either the sorted order or original order. +% We still have to keep track of the longest (in width$ terms) label, for use +% by the "thebibliography" environment. +STRINGS { longest.label } +INTEGERS { number.label longest.label.width } +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} +% Now we're ready to start writing the .BBL file. +% We begin, if necessary, with a LaTeX macro for unnamed names in an alphabetic +% label; next comes stuff from the `preamble' command in the database files. +% Then we give an incantation containing the command +% \begin{thebibliography}{...} +% where the `...' is the longest label. +% +% We also call init.state.consts, for use by the output routines. +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +% Now we produce the output for all the entries +ITERATE {call.type$} +% Finally, we finish up by writing the `\end{thebibliography}' command. +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/phjcp.bst b/Master/texmf-dist/bibtex/bst/beebe/phjcp.bst new file mode 100644 index 00000000000..f3f804a6c7e --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/phjcp.bst @@ -0,0 +1,1888 @@ +% BibTeX styles for various physics journals (27-Feb-1990). +% This file, physics.btx, is based on the file btxbst.doc. + % Please notify Charles Karney (Karney@Princeton.EDU) + % of any bugs, improvements, etc. +% Run this file through cpp to get specific versions. I have written +% a version of cpp within Emacs. To access it put +% (autoload 'cpp "tex$bibtex:cpp" ; Use cpp for BibTeX styles +% "C preprocessor" +% t) +% into your .emacs file. Read in this file with +% emacs tex$bibtex:physics.btx +% and run cpp with e.g., +% M-x cpp aip +% Save the resulting file to tex$latex:aip.bst. +% To accomodate the variations we need (in addition to the definitions below) +% ATIT_SUPPRESS: do not include the titles of journal articles +% NAME_INVERT: put the initials last +% NAME_UPPER: convert names to all caps. +% MONTH_SUPPRESS: do not include months in journal articles +% PAREN_DATE: dates go in parens in journal articles +% DATE_FIRST: dates go before page numbers +% VOLUME_SPACE: volume set off with space (not colon) +% NUM_SUPPRESS: do not include numbers in journal articles +% BOLD_VOL: volume numbers in bold face in journal articles +% BRACKET_NOTE: notes in brackets +% PAGE_START_J: include only starting page for journal articles +% PAGE_START_O: include only starting page for other entries +% PAGE_ABBREV: abbreviate page to p. and pages to pp. +% PHYSICS_JOUR: include abbreviations for Physics journals +% COMMA_DELIMIT: use comma (instead of period) to divide a citation +% NOTE_SUPPRESS: suppress the note +% MAX_NAMES: max number of authors before using et al (0 = infinity) +% MIN_NAMES: number of authors to list with et al. +% EDIT_VAR: use "edited by ..." instead of "..., editors" +% RMP_LABELS: create RMP-style labels +% KEY_CITE: use key as label +% NAMED_REFS: use (Smith, 1988) style of citations +% CSC_NAMES: names set in caps and small caps +% JOUR_DEEMPH: don't emphasize journal name +% ETAL_EMPH: emphasize et al. +% ALT_INCOLL alternate ordering of fields in incollections +% These are all boolean (0 or 1) except for MAX_NAMES and MIN_NAMES. +% These need to satisfy 0 <= MIN_NAMES <= MAX_NAMES. +% The rule here is that if all these are defined to be zero, we revert to +% the standard styles. For that reason we initialize them all to 0. +% These are the original macros + % For Journal of Computational Physics + % Cris Barnes and Dave Mikkelson, 9/25/89 +% This is the start of btxbst.doc +% BibTeX `plain' family + % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. +% Please notify Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU) of any bugs in +% these standard styles or in this documentation file. +% +% This is file btxbxt.doc; it helps document bibliography styles, +% and is also a template file that you can use to make +% several different style files, if you have access to a C preprocessor. +% For example, the standard styles were made by doing something like +% cpp -P -DPLAIN btxbst.doc plain.txt +% cpp -P -DUNSRT btxbst.doc unsrt.txt +% cpp -P -DALPHA btxbst.doc alpha.txt +% cpp -P -DABBRV btxbst.doc abbrv.txt +% and then renaming after removing unwanted comments and blank lines. +% If you don't have access, +% you can edit this file by hand to imitate the preprocessor, +% with the following explanation of the C preprocessor constructs used here. +% +% The output of the preprocessor is the same as the input, except that certain +% lines will be excluded (and some blank lines will be added). The sequence +% #if VAR +% lines to be included when VAR is not zero +% #else +% lines to be included when VAR is zero +% #endif +% (with the #-signs appearing in column 1) means that one set or the other of +% the lines are to be included depending on the value of VAR. +% The #else part is optional. Comments can be added after #else and #endif. +% Variables can be set by +% #define VAR value +% and one can also use #ifdef VAR to see if VAR has any value, and #ifndef +% to see if it has none. +% Another #if form used in this file is #if !VAR, which includes the lines +% after the #if only if VAR is zero. +% +% Convention: Use all uppercase identifiers for these preprocessor variables +% so you can spot them easily +% +% The command line to the preprocessor should define one of PLAIN, UNSRT, ALPHA +% or ABBRV (though PLAIN will be used by default if none is given), +% and the following lines will set various boolean variables to control the +% various lines that are chosen from the rest of the file. +% Each boolean variable should be set true (1) or false (0) in each style. +% Here are the current variables, and their meanings: +% 0: an alphabetic label is used (if false then a numeric +% label is used) +% 0: the entries should be sorted by label (if nonnumeric) +% and other info, like authors (if false, then +% entries remain in order of occurrence) +% 0: the authors, editors, etc., get the full names as +% given in the bibliography file (if false, the first +% names become initials) +% 0: titles of non-"books" (e.g., articles) should be +% converted to lower-case, except the first letter or +% first letter after a colon +% (if false then they appear as in the database) +% 0: months are spelled out in full (if false, then +% they're abbreviated) +% 0: macro journal names are spelled out in full +% (if false then they are abbreviated, currently +% as they appear in ACM publications) +%# define PLAIN 1 +% +% Entry formatting: Similar to that recommended by Mary-Claire van Leunen +% in "A Handbook for Scholars". Book-like titles are italicized +% (emphasized) and non-book titles are converted to sentence +% capitilization (and not enclosed in quotes). +% This file outputs a \newblock between major blocks of an entry +% (the name \newblock is analogous to the names \newline and \newpage) +% so that the user can obtain an "open" format, which has a line break +% before each block and lines after the first are indented within blocks, +% by giving the optional \documentstyle argument `openbib'; +% The default is the "closed" format---blocks runs together. +% +% Citation alphabetic label format: +% [Knu73] for single author (or editor or key) +% [AHU83] (first letters of last names) for multiple authors +% +% Citation label numberic format: +% [number] +% +% Reference list ordering for sorted, alphabetic lables: +% alphabetical by citation label, then by author(s) or whatever +% passes for author in the absence of one, then by year, +% then title +% +% Reference list ordering for sorted, numeric lables: +% alphabetical by author(s) or whatever passes +% for author in the absence of one, then by year, then title +% +% Reference list ordering for unsorted: +% by the order cited in the text +% +% History +% 12/16/84 (HWT) Original `plain' version, by Howard Trickey. +% 12/23/84 (LL) Some comments made by Leslie Lamport. +% 2/16/85 (OP) Changes based on LL's comments, Oren Patashnik. +% 2/17/85 (HWT) Template file and other standard styles made. +% 3/28/85 (OP) First release, version 0.98b for BibTeX 0.98f. +% 5/ 9/85 (OP) Version 0.98c for BibTeX 0.98i: +% fixed Theoretical Computer Science macro name; +% fixed the format.vol.num.pages function. +% 1/24/88 (OP) Version 0.99a for BibTeX 0.99a, main changes: +% assignment operator (:=) arguments reversed; +% the preamble$ function outputs the database PREAMBLE; +% entry.max$ and global.max$ (built-in) variables replace +% entry.string.max and global.string.max functions; +% alphabetizing by year then title, not just title; +% many unnecessary ties removed; \it ==> \em; +% the `alpha' style uses a superscripted `+' instead of a +% `*' for unnamed names in constructing the label; +% the `abbrv' style now uses "Mar." and "Sept."; +% the functions calc.label and presort now look at just +% the fields they're supposed to; +% BOOKLET, MASTERSTHESIS, TECHREPORT use nonbook titles; +% INBOOK and INCOLLECTION take an optional type (e.g. +% type = "Section"), overriding the default "chapter"; +% BOOK, INBOOK, INCOLLECTION, and PROCEEDINGS now allow +% either volume or number, not just volume; +% INCOLLECTION now allows an edition and series field; +% PROCEEDINGS and INPROCEEDINGS now use the address field +% to tell where a conference was held; +% INPROCEEDINGS and PROCEEDINGS now allow either volume +% or number, and also a series field; +% MASTERSTHESIS and PHDTHESIS accept types other than +% "Master's thesis" and "PhD thesis"; +% UNPUBLISHED now outputs, in one block, note then date; +% MANUAL now prints out the organization in +% the first block if the author field is empty; +% MISC can't be empty---it requires some optional field. +% 3/23/88 (OP) Version 0.99b for BibTeX 0.99c---changed the three +% erroneous occurrences of `cite ' to `cite$ '; this +% change didn't affect the four standard styles, so the +% 0.99a versions of those styles are still current. +% +% The ENTRY declaration +% Like Scribe's (according to pages 231-2 of the April '84 edition), +% but no fullauthor or editors fields because BibTeX does name handling. +% The annote field is commented out here because this family doesn't +% include an annotated bibliography style. And in addition to the fields +% listed here, BibTeX has a built-in crossref field, explained later. +ENTRY +% Fields: + { address +% Usually the address of a publisher or other type of organization. +% Put information in this field only if it helps the reader find the +% thing---for example you should omit the address of a major +% publisher entirely. For a PROCEEDINGS or an INPROCEEDINGS, +% however, it's the address of the conference; for those two entry +% types, include the publisher's or organization's address, if +% necessary, in the publisher or organization field. +% annote +% Long annotation---for annotated bibliographies (begins sentence). + author +% Name(s) of author(s), in BibTeX name format. + booktitle +% Book title when the thing being referenced isn't the whole book. +% For book entries, the title field should be used instead. + chapter +% Chapter (or section or whatever) number. + edition +% Edition of a book---should be an ordinal (e.g., "Second"). + editor +% Name(s) of editor(s), in BibTeX name format. +% If there is also an author field, then the editor field should be +% for the book or collection that the work appears in. + howpublished +% How something strange has been published (begins sentence). + institution +% Sponsoring institution of a technical report. + journal +% Journal name (macros are provided for many). + key +% Alphabetizing, labeling, and cross-referencing key +% (needed when an entry has no author or editor). + month +% Month (macros are provided). + note +% To help the reader find a reference (begins sentence). + number +% Number of a journal or technical report, or of a work in a series. + organization +% Organization sponsoring a conference (or publishing a manual); if +% the editor (or author) is empty, and if the organization produces +% an awkward label or cross reference, you should put appropriately +% condensed organization information in the key field as well. + pages +% Page number or numbers (use `--' to separate a range, use `+' +% to indicate pages following that don't form a simple range). + publisher +% Publisher name. + school +% School name (for theses). + series +% The name of a series or set of books. +% An individual book will will also have it's own title. + title +% The title of the thing you're referred to. + type +% Type of a Techreport (e.g., "Research Note") to be used instead of +% the default "Technical Report"; or, similarly, the type of a +% thesis; or of a part of a book. + volume +% The volume number of a journal or multivolume work. + year +% The year should contain only numerals (technically, it should end +% with four numerals, after purification; doesn't a begin sentence). + } +% There are no integer entry variables + {} +% These string entry variables are used to form the citation label. +% In a storage pinch, sort.label can be easily computed on the fly. + { label } +% Each entry function starts by calling output.bibitem, to write the +% \bibitem and its arguments to the .BBL file. Then the various fields +% are formatted and printed by output or output.check. Those functions +% handle the writing of separators (commas, periods, \newblock's), +% taking care not to do so when they are passed a null string. +% Finally, fin.entry is called to add the final period and finish the +% entry. +% +% A bibliographic reference is formatted into a number of `blocks': +% in the open format, a block begins on a new line and subsequent +% lines of the block are indented. A block may contain more than +% one sentence (well, not a grammatical sentence, but something to +% be ended with a sentence ending period). The entry functions should +% call new.block whenever a block other than the first is about to be +% started. They should call new.sentence whenever a new sentence is +% to be started. The output functions will ensure that if two +% new.sentence's occur without any non-null string being output between +% them then there won't be two periods output. Similarly for two +% successive new.block's. +% +% The output routines don't write their argument immediately. +% Instead, by convention, that argument is saved on the stack to be +% output next time (when we'll know what separator needs to come +% after it). Meanwhile, the output routine has to pop the pending +% output off the stack, append any needed separator, and write it. +% +% To tell which separator is needed, we maintain an output.state. +% It will be one of these values: +% before.all just after the \bibitem +% mid.sentence in the middle of a sentence: comma needed +% if more sentence is output +% after.sentence just after a sentence: period needed +% after.block just after a block (and sentence): +% period and \newblock needed. +% Note: These styles don't use after.sentence +% +% VAR: output.state : INTEGER -- state variable for output +% +% The output.nonnull function saves its argument (assumed to be nonnull) +% on the stack, and writes the old saved value followed by any needed +% separator. The ordering of the tests is decreasing frequency of +% occurrence. +% +% output.nonnull(s) == +% BEGIN +% s := argument on stack +% if output.state = mid.sentence then +% write$(pop() * ", ") +% -- "pop" isn't a function: just use stack top +% else +% if output.state = after.block then +% write$(add.period$(pop())) +% newline$ +% write$("\newblock ") +% else +% if output.state = before.all then +% write$(pop()) +% else -- output.state should be after.sentence +% write$(add.period$(pop()) * " ") +% fi +% fi +% output.state := mid.sentence +% fi +% push s on stack +% END +% +% The output function calls output.nonnull if its argument is non-empty; +% its argument may be a missing field (thus, not necessarily a string) +% +% output(s) == +% BEGIN +% if not empty$(s) then output.nonnull(s) +% fi +% END +% +% The output.check function is the same as the output function except that, if +% necessary, output.check warns the user that the t field shouldn't be empty +% (this is because it probably won't be a good reference without the field; +% the entry functions try to make the formatting look reasonable even when +% such fields are empty). +% +% output.check(s,t) == +% BEGIN +% if empty$(s) then +% warning$("empty " * t * " in " * cite$) +% else output.nonnull(s) +% fi +% END +% +% The output.bibitem function writes the \bibitem for the current entry +% (the label should already have been set up), and sets up the separator +% state for the output functions. And, it leaves a string on the stack +% as per the output convention. +% +% output.bibitem == +% BEGIN +% newline$ +% write$("\bibitem[") % for alphabetic labels, +% write$(label) % these three lines +% write$("]{") % are used +% write$("\bibitem{") % this line for numeric labels +% write$(cite$) +% write$("}") +% push "" on stack +% output.state := before.all +% END +% +% The fin.entry function finishes off an entry by adding a period to the +% string remaining on the stack. If the state is still before.all +% then nothing was produced for this entry, so the result will look bad, +% but the user deserves it. (We don't omit the whole entry because the +% entry was cited, and a bibitem is needed to define the citation label.) +% +% fin.entry == +% BEGIN +% write$(add.period$(pop())) +% newline$ +% END +% +% The new.block function prepares for a new block to be output, and +% new.sentence prepares for a new sentence. +% +% new.block == +% BEGIN +% if output.state <> before.all then +% output.state := after.block +% fi +% END +% +% new.sentence == +% BEGIN +% if output.state <> after.block then +% if output.state <> before.all then +% output.state := after.sentence +% fi +% fi +% END +% +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 := +} +% the variables s and t are temporary string holders +STRINGS { s t } +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { "," * 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} +% This function finishes all entries. +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} +FUNCTION {new.sentence} +{ skip$ +} +% These three functions pop one or two (integer) arguments from the stack +% and push a single one, either 0 or 1. +% The 'skip$ in the `and' and `or' functions are used because +% the corresponding if$ would be idempotent +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +% Sometimes we begin a new block only if the block will be big enough. The +% new.block.checka function issues a new.block if its argument is nonempty; +% new.block.checkb does the same if either of its TWO arguments is nonempty. +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +% The new.sentence.check functions are analogous. +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} +% Here are some functions for formatting chunks of an entry. +% By convention they either produce a string that can be followed by +% a comma or period (using add.period$, so it is OK to end in a period), +% or they produce the null string. +% +% A useful utility is the field.or.null function, which checks if the +% argument is the result of pushing a `missing' field (one for which no +% assignment was made when the current entry was read in from the database) +% or the result of pushing a string having no non-white-space characters. +% It returns the null string if so, otherwise it returns the field string. +% Its main (but not only) purpose is to guarantee that what's left on the +% stack is a string rather than a missing field. +% +% field.or.null(s) == +% BEGIN +% if empty$(s) then return "" +% else return s +% END +% +% Another helper function is emphasize, which returns the argument emphazised, +% if that is non-empty, otherwise it returns the null string. Italic +% corrections aren't used, so this function should be used when punctation +% will follow the result. +% +% emphasize(s) == +% BEGIN +% if empty$(s) then return "" +% else return "{\em " * s * "}" +% +% The format.names function formats the argument (which should be in +% BibTeX name format) into "First Von Last, Junior", separated by commas +% and with an "and" before the last (but ending with "et~al." if the last +% of multiple authors is "others"). This function's argument should always +% contain at least one name. +% +% VAR: nameptr, namesleft, numnames: INTEGER +% pseudoVAR: nameresult: STRING (it's what's accumulated on the stack) +% +% format.names(s) == +% BEGIN +% nameptr := 1 +% numnames := num.names$(s) +% namesleft := numnames +% while namesleft > 0 +% do +% % for full names: +% t := format.name$(s, nameptr, "{ff~}{vv~}{ll}{, jj}") +% % for abbreviated first names: +% t := format.name$(s, nameptr, "{f.~}{vv~}{ll}{, jj}") +% if nameptr > 1 then +% if namesleft > 1 then nameresult := nameresult * ", " * t +% else if numnames > 2 +% then nameresult := nameresult * "," +% fi +% if t = "others" +% then nameresult := nameresult * " et~al." +% else nameresult := nameresult * " and " * t +% fi +% fi +% else nameresult := t +% fi +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% return nameresult +% END +% +% The format.authors function returns the result of format.names(author) +% if the author is present, or else it returns the null string +% +% format.authors == +% BEGIN +% if empty$(author) then return "" +% else return format.names(author) +% fi +% END +% +% Format.editors is like format.authors, but it uses the editor field, +% and appends ", editor" or ", editors" +% +% format.editors == +% BEGIN +% if empty$(editor) then return "" +% else +% if num.names$(editor) > 1 then +% return format.names(editor) * ", editors" +% else +% return format.names(editor) * ", editor" +% fi +% fi +% END +% +% Other formatting functions are similar, so no "comment version" will be +% given for them. +% +% The `pop$' in this function gets rid of the duplicate `empty' value and +% the `skip$' returns the duplicate field value +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} +FUNCTION {caps} +{ duplicate$ empty$ + { pop$ "" } + { "{\sc " swap$ * "}" * } + if$ +} +FUNCTION {embolden} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} +FUNCTION {paren} +{ duplicate$ empty$ + { pop$ "" } + { "(" swap$ * ")" * } + if$ +} +INTEGERS { nameptr namesleft numnames } +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + t "others" = + 'skip$ + { t caps 't := } + if$ + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} +FUNCTION {format.edited} +{ editor empty$ + { "" } + { "edited by " editor format.names * } + if$ +} +% The format.title function is used for non-book-like titles. +% For most styles we convert to lowercase (except for the very first letter, +% and except for the first one after a colon (followed by whitespace)), +% and hope the user has brace-surrounded words that need to stay capitilized; +% for some styles, however, we leave it as it is in the database. +FUNCTION {format.title} +{ title empty$ + { "" } + 'title + if$ +} +% By default, BibTeX sets the global integer variable global.max$ to the BibTeX +% constant glob_str_size, the maximum length of a global string variable. +% Analogously, BibTeX sets the global integer variable entry.max$ to +% ent_str_size, the maximum length of an entry string variable. +% The style designer may change these if necessary (but this is unlikely) +% The n.dashify function makes each single `-' in a string a double `--' +% if it's not already +% +% pseudoVAR: pageresult: STRING (it's what's accumulated on the stack) +% +% n.dashify(s) == +% BEGIN +% t := s +% pageresult := "" +% while (not empty$(t)) +% do +% if (first character of t = "-") +% then +% if (next character isn't) +% then +% pageresult := pageresult * "--" +% t := t with the "-" removed +% else +% while (first character of t = "-") +% do +% pageresult := pageresult * "-" +% t := t with the "-" removed +% od +% fi +% else +% pageresult := pageresult * the first character +% t := t with the first character removed +% fi +% od +% return pageresult +% END +FUNCTION {n.dashify} +{ '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 {first.page} +{ 't := + "" + { t empty$ not t #1 #1 substring$ "-" = not and } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + while$ +} +% The format.date function is for the month and year, but we give a warning if +% there's an empty year but the month is there, and we return the empty string +% if they're both empty. +FUNCTION {format.date} +{ year empty$ + { "" } + 'year + if$ +} +% The format.btitle is for formatting the title field when it is a book-like +% entry---the style used here keeps it in uppers-and-lowers and emphasizes it. +FUNCTION {format.btitle} +{ title emphasize +} +% For several functions we'll need to connect two strings with a +% tie (~) if the second one isn't very long (fewer than 3 characters). +% The tie.or.space.connect function does that. It concatenates the two +% strings on top of the stack, along with either a tie or space between +% them, and puts this concatenation back onto the stack: +% +% tie.or.space.connect(str1,str2) == +% BEGIN +% if text.length$(str2) < 3 +% then return the concatenation of str1, "~", and str2 +% else return the concatenation of str1, " ", and str2 +% END +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} +% The either.or.check function complains if both fields or an either-or pair +% are nonempty. +% +% either.or.check(t,s) == +% BEGIN +% if empty$(s) then +% warning$(can't use both " * t * " fields in " * cite$) +% fi +% END +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +% The format.bvolume function is for formatting the volume and perhaps +% series name of a multivolume work. If both a volume and a series field +% are there, we assume the series field is the title of the whole multivolume +% work (the title field should be the title of the thing being referred to), +% and we add an "of ". This function is called in mid-sentence. +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +% The format.number.series function is for formatting the series name +% and perhaps number of a work in a series. This function is similar to +% format.bvolume, although for this one the series must exist (and the +% volume must not exist). If the number field is empty we output either +% the series field unchanged if it exists or else the null string. +% If both the number and series fields are there we assume the series field +% gives the name of the whole series (the title field should be the title +% of the work being one referred to), and we add an "in ". +% We capitilize Number when this function is used at the beginning of a block. +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} +% The format.edition function appends " edition" to the edition, if present. +% We lowercase the edition (it should be something like "Third"), because +% this doesn't start a sentence. +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + if$ +} +% The format.pages function is used for formatting a page range in a book +% (and in rare circumstances, an article). +% +% The multi.page.check function examines the page field for a "-" or "," or "+" +% so that format.pages can use "page" instead of "pages" if none exists. +% Note: global.max$ here means "take the rest of the string" +% +% VAR: multiresult: INTEGER (actually, a boolean) +% +% multi.page.check(s) == +% BEGIN +% t := s +% multiresult := false +% while ((not multiresult) and (not empty$(t))) +% do +% if (first character of t = "-" or "," or "+") +% then multiresult := true +% else t := t with the first character removed +% fi +% od +% return multiresult +% END +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 +} +% This function doesn't begin a sentence so "pages" isn't capitalized. +% Other functions that use this should keep that in mind. +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp." pages n.dashify tie.or.space.connect } + { "p." pages tie.or.space.connect } + if$ + } + if$ +} +FUNCTION {format.pages.a} +{ pages empty$ + { "" } + { "p." pages first.page tie.or.space.connect } + if$ +} +% The format.vol.num.pages function is for the volume, number, and page range +% of a journal article. We use the format: vol(number):pages, with some +% variations for empty fields. This doesn't begin a sentence. +FUNCTION {format.vol.num.pages} +{ volume field.or.null embolden + " " swap$ * * + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages.a } + { ", " * pages first.page * } + if$ + } + if$ +} +% The format.chapter.pages, if the chapter is present, puts whatever is in the +% type field (or else "chapter" if type is empty) in front of a chapter number. +% It then appends the pages, if present. This doesn't begin a sentence. +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} +% The format.in.ed.booktitle function is used for starting out a sentence +% that begins "In ", putting an editor before the title if one +% exists. +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "in " booktitle emphasize * } + { "in " booktitle emphasize * ", " * format.edited * } + if$ + } + if$ +} +% The function empty.misc.check complains if all six fields are empty, and +% if there's been no sorting or alphabetic-label complaint. +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} +% The function format.thesis.type returns either the (case-changed) type field, +% if it is defined, or else the default string already on the stack +% (like "Master's thesis" or "PhD thesis"). +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} +% The function format.tr.number makes a string starting with "Technical Report" +% (or type, if that field is defined), followed by the number if there is one; +% it returns the starting part (with a case change) even if there is no number. +% This is used at the beginning of a sentence. +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} +% Now come the cross-referencing functions (these are invoked because +% one entry in the database file(s) cross-references another, by giving +% the other entry's database key in a `crossref' field). This feature +% allows one or more titled things that are part of a larger titled +% thing to cross-reference the larger thing. These styles allow for +% five posibilities: (1) an ARTICLE may cross-reference an ARTICLE; +% (2) a BOOK, (3) INBOOK, or (4) INCOLLECTION may cross-reference a BOOK; +% or (5) an INPROCEEDINGS may cross-reference a PROCEEDINGS. +% Each of these is explained in more detail later. +% +% An ARTICLE entry type may cross reference another ARTICLE (this is +% intended for when an entire journal is devoted to a single topic--- +% but since there is no JOURNAL entry type, the journal, too, should be +% classified as an ARTICLE but without the author and title fields). +% This will result in two warning messages for the journal's entry +% if it's included in the reference list, but such is life. +% +% format.article.crossref == +% BEGIN +% if empty$(key) then +% if empty$(journal) then +% warning$("need key or journal for " * cite$ * +% " to crossref " * crossref) +% return(" \cite{" * crossref * "}") +% else +% return("In " * emphazise.correct (journal) * +% " \cite{" * crossref * "}") +% fi +% else +% return("In " * key * " \cite{" * crossref * "}") +% fi +% END +% +% The other cross-referencing functions are similar, so no "comment version" +% will be given for them. +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} +% We use just the last names of editors for a cross reference: either +% "editor", or "editor1 and editor2", or "editor1 et~al." depending on +% whether there are one, or two, or more than two editors. +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ caps + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ caps * } + if$ + } + if$ + } + if$ +} +% A BOOK (or INBOOK) entry type (assumed to be for a single volume in a +% multivolume work) may cross reference another BOOK (the entire multivolume). +% Usually there will be an editor, in which case we use that to construct the +% cross reference; otherwise we use a nonempty key field or else the series +% field (since the series gives the title of the multivolume work). +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} +% An INCOLLECTION entry type may cross reference a BOOK (assumed to be the +% collection), or an INPROCEEDINGS may cross reference a PROCEEDINGS. +% Often there will be an editor, in which case we use that to construct +% the cross reference; otherwise we use a nonempty key field or else +% the booktitle field (which gives the cross-referenced work's title). +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} +% Now we define the type functions for all entry types that may appear +% in the .BIB file---e.g., functions like `article' and `book'. These +% are the routines that actually generate the .BBL-file output for +% the entry. These must all precede the READ command. In addition, the +% style designer should have a function `default.type' for unknown types. +% Note: The fields (within each list) are listed in order of appearance, +% except as described for an `inbook' or a `proceedings'. +% +% The article function is for an article in a journal. An article may +% CROSSREF another article. +% Required fields: author, title, journal, year +% Optional fields: volume, number, pages, month, note +% +% article == +% BEGIN +% output.bibitem +% output.check(format.authors,"author") +% new.block +% output.check(format.title,"title") +% new.block +% if missing$(crossref) then +% output.check(emphasize(journal),"journal") +% output(format.vol.num.pages) +% output.check(format.date,"year") +% else +% output.nonnull(format.article.crossref) +% output(format.pages) +% fi +% new.block +% output(note) +% fin.entry +% END +% +% The book function is for a whole book. A book may CROSSREF another book. +% Required fields: author or editor, title, publisher, year +% Optional fields: volume or number, series, address, edition, month, +% note +% +% book == +% BEGIN +% if empty$(author) then output.check(format.editors,"author and editor") +% else output.check(format.authors,"author") +% if missing$(crossref) then +% either.or.check("author and editor",editor) +% fi +% fi +% new.block +% output.check(format.btitle,"title") +% if missing$(crossref) then +% output(format.bvolume) +% new.block +% output(format.number.series) +% new.sentence +% output.check(publisher,"publisher") +% output(address) +% else +% new.block +% output.nonnull(format.book.crossref) +% fi +% output(format.edition) +% output.check(format.date,"year") +% new.block +% output(note) +% fin.entry +% END +% +% The other entry functions are all quite similar, so no "comment version" +% will be given for them. +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + crossref missing$ + { journal emphasize + format.vol.num.pages + format.date empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.date paren } + { " " * format.date paren * } + if$ + } + if$ + output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} +% A booklet is a bound thing without a publisher or sponsoring institution. +% Required: title +% Optional: author, howpublished, address, month, year, note +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} +% For the conference entry type, see inproceedings. +% An inbook is a piece of a book: either a chapter and/or a page range. +% It may CROSSREF a book. If there's no volume field, the type field +% will come before number and series. +% Required: author or editor, title, chapter and/or pages, publisher,year +% Optional: volume or number, series, type, address, edition, month, note +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} +% An incollection is like inbook, but where there is a separate title +% for the referenced thing (and perhaps an editor for the whole). +% An incollection may CROSSREF a book. +% Required: author, title, booktitle, publisher, year +% Optional: editor, volume or number, series, type, chapter, pages, +% address, edition, month, note +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} +% An inproceedings is an article in a conference proceedings, and it may +% CROSSREF a proceedings. If there's no address field, the month (& year) +% will appear just before note. +% Required: author, title, booktitle, year +% Optional: editor, volume or number, series, pages, address, month, +% organization, publisher, note +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} +% The conference function is included for Scribe compatibility. +FUNCTION {conference} { inproceedings } +% A manual is technical documentation. +% Required: title +% Optional: author, organization, address, edition, month, year, note +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} +% A mastersthesis is a Master's thesis. +% Required: author, title, school, year +% Optional: type, address, month, note +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% A misc is something that doesn't fit elsewhere. +% Required: at least one of the `optional' fields +% Optional: author, title, howpublished, month, year, note +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} +% A phdthesis is like a mastersthesis. +% Required: author, title, school, year +% Optional: type, address, month, note +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% A proceedings is a conference proceedings. +% If there is an organization but no editor field, the organization will +% appear as the first optional field (we try to make the first block nonempty); +% if there's no address field, the month (& year) will appear just before note. +% Required: title, year +% Optional: editor, volume or number, series, address, month, +% organization, publisher, note +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} +% A techreport is a technical report. +% Required: author, title, institution, year +% Optional: type, number, address, month, note +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% An unpublished is something that hasn't been published. +% Required: author, title, note +% Optional: month, year +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} +% We use entry type `misc' for an unknown type; BibTeX gives a warning. +FUNCTION {default.type} { misc } +% Here are macros for common things that may vary from style to style. +% Users are encouraged to use these macros. +% +% Months are either written out in full or abbreviated +MACRO {jan} {"Jan."} +MACRO {feb} {"Feb."} +MACRO {mar} {"Mar."} +MACRO {apr} {"Apr."} +MACRO {may} {"May"} +MACRO {jun} {"June"} +MACRO {jul} {"July"} +MACRO {aug} {"Aug."} +MACRO {sep} {"Sept."} +MACRO {oct} {"Oct."} +MACRO {nov} {"Nov."} +MACRO {dec} {"Dec."} +% Journals are either written out in full or abbreviated; +% the abbreviations are like those found in ACM publications. +% +% To get a completely different set of abbreviations, it may be best to make +% a separate .bib file with nothing but those abbreviations; users could then +% include that file name as the first argument to the \bibliography command +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. Softw. Eng."} +MACRO {ieeetc} {"IEEE Trans. Comput."} +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} +MACRO {ipl} {"Inf. Process. Lett."} +MACRO {jacm} {"J.~ACM"} +MACRO {jcss} {"J.~Comput. Syst. Sci."} +MACRO {scp} {"Sci. Comput. Programming"} +MACRO {sicomp} {"SIAM J. Comput."} +MACRO {tocs} {"ACM Trans. Comput. Syst."} +MACRO {tods} {"ACM Trans. Database Syst."} +MACRO {tog} {"ACM Trans. Gr."} +MACRO {toms} {"ACM Trans. Math. Softw."} +MACRO {toois} {"ACM Trans. Office Inf. Syst."} +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} +MACRO {tcs} {"Theoretical Comput. Sci."} +%% /usr/local/lib/tex/bibtex/phyjfull.btx, Tue Jun 30 08:37:48 1992 +%% Edit by Nelson H. F. Beebe +%% Change file names in leading comment +% Journal Title Abbreviations from the Physical Review Style and Notation +% Guide, July, 1983, in BAPS Vol. 28. +% Selected by Cris Barnes and Charles Karney, March 1988 +% IMPORTANT!! Don't make changes to this file without making the +% corresponding changes to +% phyjabb.bib +% phyjabb.btx +MACRO {advp} {"Advances in Physics"} +MACRO {ajp} {"American Journal of Physics"} +MACRO {ao} {"Applied Optics"} +MACRO {apl} {"Applied Physics Letters"} +MACRO {apj} {"Astrophysical Journal"} +MACRO {baps} {"Bulletin of the American Physical Society"} +MACRO {cpc} {"Computer Physics Communications"} +MACRO {cppcf} {"Comments on Plasma Physics and Controlled Fusion"} +MACRO {fed} {"Fusion Engineering and Design"} +MACRO {ft} {"Fusion Technology"} +MACRO {ieeens} {"IEEE Transactions on Nuclear Science"} +MACRO {ieeeps} {"IEEE Transactions on Plasma Science"} +MACRO {ijimw} {"International Journal of Infrared and Millimeter Waves"} +MACRO {ip} {"Infrared Physics"} +MACRO {jap} {"Journal of Applied Physics"} +MACRO {jcp} {"Journal of Computational Physics"} +MACRO {jetp} {"Soviet Physics-JETP"} +MACRO {jfe} {"Journal of Fusion Energy"} +MACRO {jfm} {"Journal of Fluid Mechanics"} +MACRO {jgr} {"Journal of Geophysical Research"} +MACRO {jmp} {"Journal of Mathematical Physics"} +MACRO {jne} {"Journal of Nuclear Energy"} +MACRO {jnec} {"Journal of Nuclear Energy, Part C: Plasma Physics, Accelerators, Thermonuclear Research"} +MACRO {jnm} {"Journal of Nuclear Materials"} +MACRO {josa} {"Journal of the Optical Society of America"} +MACRO {jpp} {"Journal of Plasma Physics"} +MACRO {jpsj} {"Journal of the Physical Society of Japan"} +MACRO {jvst} {"Journal of Vacuum Science and Technology"} +MACRO {nedf} {"Nuclear Engineering and Design/Fusion"} +MACRO {nf} {"Nuclear Fusion"} +MACRO {nim} {"Nuclear Instruments and Methods"} +MACRO {nimpr} {"Nuclear Instruments and Methods in Physics Research"} +MACRO {nt/f} {"Nuclear Technology/Fusion"} +MACRO {pf} {"Physics of Fluids"} +MACRO {pfa} {"Physics of Fluids A: Fluid Dynamics"} +MACRO {pfb} {"Physics of Fluids B: Plasma Physics"} +MACRO {pl} {"Physics Letters"} +MACRO {pla} {"Physics Letters A"} +MACRO {pnas} {"Proceedings of the National Academy of Sciences of the USA"} +MACRO {pp} {"Plasma Physics"} +MACRO {ppcf} {"Plasma Physics and Controlled Fusion"} +MACRO {prl} {"Physical Review Letters"} +MACRO {pr} {"Physical Review"} +MACRO {pra} {"Physical Review A: General Physics"} +MACRO {ps} {"Physica Scripta"} +MACRO {rmp} {"Reviews of Modern Physics"} +MACRO {rsi} {"Review of Scientific Instruments"} +MACRO {sjpp} {"Soviet Journal of Plasma Phys."} +MACRO {spd} {"Soviet Physics-Doklady"} +MACRO {sptp} {"Soviet Physics-Technical Physics"} +MACRO {spu} {"Soviet Physics-Uspeki"} +% Now we read in the .BIB entries. +READ +% The sortify function converts to lower case after purify$ing; it's +% used in sorting and in computing alphabetic labels after sorting +% +% The chop.word(w,len,s) function returns either s or, if the first len +% letters of s equals w (this comparison is done in the third line of the +% function's definition), it returns that part of s after w. +% This long comment applies only to alphabetic labels +% +% The format.lab.names function makes a short label by using the initials of +% the von and Last parts of the names (but if there are more than four names, +% (i.e., people) it truncates after three and adds a superscripted "+"; +% it also adds such a "+" if the last of multiple authors is "others"). +% If there is only one name, and its von and Last parts combined have just +% a single name-token ("Knuth" has a single token, "Brinch Hansen" has two), +% we take the first three letters of the last name. The boolean +% et.al.char.used tells whether we've used a superscripted "+", so that we +% know whether to include a LaTeX macro for it. +% +% format.lab.names(s) == +% BEGIN +% numnames := num.names$(s) +% if numnames > 1 then +% if numnames > 4 then +% namesleft := 3 +% else +% namesleft := numnames +% nameptr := 1 +% nameresult := "" +% while namesleft > 0 +% do +% if (name_ptr = numnames) and +% format.name$(s, nameptr, "{ff }{vv }{ll}{ jj}") = "others" +% then nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else nameresult := nameresult * +% format.name$(s, nameptr, "{v{}}{l{}}") +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% if numnames > 4 then +% nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else +% t := format.name$(s, 1, "{v{}}{l{}}") +% if text.length$(t) < 2 then % there's just one name-token +% nameresult := text.prefix$(format.name$(s,1,"{ll}"),3) +% else +% nameresult := t +% fi +% fi +% return nameresult +% END +% +% Exactly what fields we look at in constructing the primary part of the label +% depends on the entry type; this selectivity (as opposed to, say, always +% looking at author, then editor, then key) helps ensure that "ignored" fields, +% as described in the LaTeX book, really are ignored. Note that MISC is part +% of the deepest `else' clause in the nested part of calc.label; thus, any +% unrecognized entry type in the database is handled correctly. +% +% There is one auxiliary function for each of the four different sequences of +% fields we use. The first of these functions looks at the author field, and +% then, if necessary, the key field. The other three functions, which might +% look at two fields and the key field, are similar, except that the key field +% takes precedence over the organization field (for labels---not for sorting). +% +% The calc.label function calculates the preliminary label of an entry, which +% is formed by taking three letters of information from the author or editor or +% key or organization field (depending on the entry type and on what's empty, +% but ignoring a leading "The " in the organization), and appending the last +% two characters (digits) of the year. It is an error if the appropriate fields +% among author, editor, organization, and key are missing, and we use +% the first three letters of the cite$ in desperation when this happens. +% The resulting label has the year part, but not the name part, purify$ed +% (purify$ing the year allows some sorting shenanigans by the user). +% +% This function also calculates the version of the label to be used in sorting. +% +% The final label may need a trailing 'a', 'b', etc., to distinguish it from +% otherwise identical labels, but we can't calculated those "extra.label"s +% until after sorting. +% +% calc.label == +% BEGIN +% if type$ = "book" or "inbook" then +% author.editor.key.label +% else if type$ = "proceedings" then +% editor.key.organization.label +% else if type$ = "manual" then +% author.key.organization.label +% else +% author.key.label +% fi fi fi +% label := label * substring$(purify$(field.or.null(year)), -1, 2) +% % assuming we will also sort, we calculate a sort.label +% sort.label := sortify(label), but use the last four, not two, digits +% END +% When sorting, we compute the sortkey by executing "presort" on each entry. +% The presort key contains a number of "sortify"ed strings, concatenated +% with multiple blanks between them. This makes things like "brinch per" +% come before "brinch hansen per". +% +% The fields used here are: the sort.label for alphabetic labels (as set by +% calc.label), followed by the author names (or editor names or organization +% (with a leading "The " removed) or key field, depending on entry type and on +% what's empty), followed by year, followed by the first bit of the title +% (chopping off a leading "The ", "A ", or "An "). +% Names are formatted: Von Last First Junior. +% The names within a part will be separated by a single blank +% (such as "brinch hansen"), two will separate the name parts themselves +% (except the von and last), three will separate the names, +% four will separate the names from year (and from label, if alphabetic), +% and four will separate year from title. +% +% The sort.format.names function takes an argument that should be in +% BibTeX name format, and returns a string containing " "-separated +% names in the format described above. The function is almost the same +% as format.names. +% This long comment applies only to alphabetic labels, when sorted +% +% Now comes the final computation for alphabetic labels, putting in the 'a's +% and 'b's and so forth if required. This involves two passes: a forward +% pass to put in the 'b's, 'c's and so on, and a backwards pass +% to put in the 'a's (we don't want to put in 'a's unless we know there +% are 'b's). +% We have to keep track of the longest (in width$ terms) label, for use +% by the "thebibliography" environment. +% +% VAR: longest.label, last.sort.label, next.extra: string +% longest.label.width, last.extra.num: integer +% +% initialize.longest.label == +% BEGIN +% longest.label := "" +% last.sort.label := int.to.chr$(0) +% next.extra := "" +% longest.label.width := 0 +% last.extra.num := 0 +% END +% +% forward.pass == +% BEGIN +% if last.sort.label = sort.label then +% last.extra.num := last.extra.num + 1 +% extra.label := int.to.chr$(last.extra.num) +% else +% last.extra.num := chr.to.int$("a") +% extra.label := "" +% last.sort.label := sort.label +% fi +% END +% +% reverse.pass == +% BEGIN +% if next.extra = "b" then +% extra.label := "a" +% fi +% label := label * extra.label +% if width$(label) > longest.label.width then +% longest.label := label +% longest.label.width := width$(label) +% fi +% next.extra := extra.label +% END +% Now comes the computation for numeric labels. +% We use either the sorted order or original order. +% We still have to keep track of the longest (in width$ terms) label, for use +% by the "thebibliography" environment. +STRINGS { longest.label } +INTEGERS { number.label longest.label.width } +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} +% Now we're ready to start writing the .BBL file. +% We begin, if necessary, with a LaTeX macro for unnamed names in an alphabetic +% label; next comes stuff from the `preamble' command in the database files. +% Then we give an incantation containing the command +% \begin{thebibliography}{...} +% where the `...' is the longest label. +% +% We also call init.state.consts, for use by the output routines. +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +% Now we produce the output for all the entries +ITERATE {call.type$} +% Finally, we finish up by writing the `\end{thebibliography}' command. +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/phnf.bst b/Master/texmf-dist/bibtex/bst/beebe/phnf.bst new file mode 100644 index 00000000000..7c833bb8252 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/phnf.bst @@ -0,0 +1,1890 @@ +% BibTeX styles for various physics journals (27-Feb-1990). +% This file, physics.btx, is based on the file btxbst.doc. + % Please notify Charles Karney (Karney@Princeton.EDU) + % of any bugs, improvements, etc. +% Run this file through cpp to get specific versions. I have written +% a version of cpp within Emacs. To access it put +% (autoload 'cpp "tex$bibtex:cpp" ; Use cpp for BibTeX styles +% "C preprocessor" +% t) +% into your .emacs file. Read in this file with +% emacs tex$bibtex:physics.btx +% and run cpp with e.g., +% M-x cpp aip +% Save the resulting file to tex$latex:aip.bst. +% To accomodate the variations we need (in addition to the definitions below) +% ATIT_SUPPRESS: do not include the titles of journal articles +% NAME_INVERT: put the initials last +% NAME_UPPER: convert names to all caps. +% MONTH_SUPPRESS: do not include months in journal articles +% PAREN_DATE: dates go in parens in journal articles +% DATE_FIRST: dates go before page numbers +% VOLUME_SPACE: volume set off with space (not colon) +% NUM_SUPPRESS: do not include numbers in journal articles +% BOLD_VOL: volume numbers in bold face in journal articles +% BRACKET_NOTE: notes in brackets +% PAGE_START_J: include only starting page for journal articles +% PAGE_START_O: include only starting page for other entries +% PAGE_ABBREV: abbreviate page to p. and pages to pp. +% PHYSICS_JOUR: include abbreviations for Physics journals +% COMMA_DELIMIT: use comma (instead of period) to divide a citation +% NOTE_SUPPRESS: suppress the note +% MAX_NAMES: max number of authors before using et al (0 = infinity) +% MIN_NAMES: number of authors to list with et al. +% EDIT_VAR: use "edited by ..." instead of "..., editors" +% RMP_LABELS: create RMP-style labels +% KEY_CITE: use key as label +% NAMED_REFS: use (Smith, 1988) style of citations +% CSC_NAMES: names set in caps and small caps +% JOUR_DEEMPH: don't emphasize journal name +% ETAL_EMPH: emphasize et al. +% ALT_INCOLL alternate ordering of fields in incollections +% These are all boolean (0 or 1) except for MAX_NAMES and MIN_NAMES. +% These need to satisfy 0 <= MIN_NAMES <= MAX_NAMES. +% The rule here is that if all these are defined to be zero, we revert to +% the standard styles. For that reason we initialize them all to 0. +% These are the original macros + % For Nuclear Fusion + % see Nuclear Fusion Vol. 28, No. 2 (1988), + % "Announcement [of] Guidelines for Bibliographical Citations" +% same as AIP except for 0, 0, 0 and +% 0 and 0 set to use only three names if there are +% 6 or more. Also, no 0, and use 0 and 0. +% There are still some nits to be picked (years in parentheses for +% other than journals, volumes having Vol. before them and pages not +% having p.) +% This is the start of btxbst.doc +% BibTeX `plain' family + % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. +% Please notify Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU) of any bugs in +% these standard styles or in this documentation file. +% +% This is file btxbxt.doc; it helps document bibliography styles, +% and is also a template file that you can use to make +% several different style files, if you have access to a C preprocessor. +% For example, the standard styles were made by doing something like +% cpp -P -DPLAIN btxbst.doc plain.txt +% cpp -P -DUNSRT btxbst.doc unsrt.txt +% cpp -P -DALPHA btxbst.doc alpha.txt +% cpp -P -DABBRV btxbst.doc abbrv.txt +% and then renaming after removing unwanted comments and blank lines. +% If you don't have access, +% you can edit this file by hand to imitate the preprocessor, +% with the following explanation of the C preprocessor constructs used here. +% +% The output of the preprocessor is the same as the input, except that certain +% lines will be excluded (and some blank lines will be added). The sequence +% #if VAR +% lines to be included when VAR is not zero +% #else +% lines to be included when VAR is zero +% #endif +% (with the #-signs appearing in column 1) means that one set or the other of +% the lines are to be included depending on the value of VAR. +% The #else part is optional. Comments can be added after #else and #endif. +% Variables can be set by +% #define VAR value +% and one can also use #ifdef VAR to see if VAR has any value, and #ifndef +% to see if it has none. +% Another #if form used in this file is #if !VAR, which includes the lines +% after the #if only if VAR is zero. +% +% Convention: Use all uppercase identifiers for these preprocessor variables +% so you can spot them easily +% +% The command line to the preprocessor should define one of PLAIN, UNSRT, ALPHA +% or ABBRV (though PLAIN will be used by default if none is given), +% and the following lines will set various boolean variables to control the +% various lines that are chosen from the rest of the file. +% Each boolean variable should be set true (1) or false (0) in each style. +% Here are the current variables, and their meanings: +% 0: an alphabetic label is used (if false then a numeric +% label is used) +% 0: the entries should be sorted by label (if nonnumeric) +% and other info, like authors (if false, then +% entries remain in order of occurrence) +% 0: the authors, editors, etc., get the full names as +% given in the bibliography file (if false, the first +% names become initials) +% 1: titles of non-"books" (e.g., articles) should be +% converted to lower-case, except the first letter or +% first letter after a colon +% (if false then they appear as in the database) +% 0: months are spelled out in full (if false, then +% they're abbreviated) +% 0: macro journal names are spelled out in full +% (if false then they are abbreviated, currently +% as they appear in ACM publications) +%# define PLAIN 1 +% +% Entry formatting: Similar to that recommended by Mary-Claire van Leunen +% in "A Handbook for Scholars". Book-like titles are italicized +% (emphasized) and non-book titles are converted to sentence +% capitilization (and not enclosed in quotes). +% This file outputs a \newblock between major blocks of an entry +% (the name \newblock is analogous to the names \newline and \newpage) +% so that the user can obtain an "open" format, which has a line break +% before each block and lines after the first are indented within blocks, +% by giving the optional \documentstyle argument `openbib'; +% The default is the "closed" format---blocks runs together. +% +% Citation alphabetic label format: +% [Knu73] for single author (or editor or key) +% [AHU83] (first letters of last names) for multiple authors +% +% Citation label numberic format: +% [number] +% +% Reference list ordering for sorted, alphabetic lables: +% alphabetical by citation label, then by author(s) or whatever +% passes for author in the absence of one, then by year, +% then title +% +% Reference list ordering for sorted, numeric lables: +% alphabetical by author(s) or whatever passes +% for author in the absence of one, then by year, then title +% +% Reference list ordering for unsorted: +% by the order cited in the text +% +% History +% 12/16/84 (HWT) Original `plain' version, by Howard Trickey. +% 12/23/84 (LL) Some comments made by Leslie Lamport. +% 2/16/85 (OP) Changes based on LL's comments, Oren Patashnik. +% 2/17/85 (HWT) Template file and other standard styles made. +% 3/28/85 (OP) First release, version 0.98b for BibTeX 0.98f. +% 5/ 9/85 (OP) Version 0.98c for BibTeX 0.98i: +% fixed Theoretical Computer Science macro name; +% fixed the format.vol.num.pages function. +% 1/24/88 (OP) Version 0.99a for BibTeX 0.99a, main changes: +% assignment operator (:=) arguments reversed; +% the preamble$ function outputs the database PREAMBLE; +% entry.max$ and global.max$ (built-in) variables replace +% entry.string.max and global.string.max functions; +% alphabetizing by year then title, not just title; +% many unnecessary ties removed; \it ==> \em; +% the `alpha' style uses a superscripted `+' instead of a +% `*' for unnamed names in constructing the label; +% the `abbrv' style now uses "Mar." and "Sept."; +% the functions calc.label and presort now look at just +% the fields they're supposed to; +% BOOKLET, MASTERSTHESIS, TECHREPORT use nonbook titles; +% INBOOK and INCOLLECTION take an optional type (e.g. +% type = "Section"), overriding the default "chapter"; +% BOOK, INBOOK, INCOLLECTION, and PROCEEDINGS now allow +% either volume or number, not just volume; +% INCOLLECTION now allows an edition and series field; +% PROCEEDINGS and INPROCEEDINGS now use the address field +% to tell where a conference was held; +% INPROCEEDINGS and PROCEEDINGS now allow either volume +% or number, and also a series field; +% MASTERSTHESIS and PHDTHESIS accept types other than +% "Master's thesis" and "PhD thesis"; +% UNPUBLISHED now outputs, in one block, note then date; +% MANUAL now prints out the organization in +% the first block if the author field is empty; +% MISC can't be empty---it requires some optional field. +% 3/23/88 (OP) Version 0.99b for BibTeX 0.99c---changed the three +% erroneous occurrences of `cite ' to `cite$ '; this +% change didn't affect the four standard styles, so the +% 0.99a versions of those styles are still current. +% +% The ENTRY declaration +% Like Scribe's (according to pages 231-2 of the April '84 edition), +% but no fullauthor or editors fields because BibTeX does name handling. +% The annote field is commented out here because this family doesn't +% include an annotated bibliography style. And in addition to the fields +% listed here, BibTeX has a built-in crossref field, explained later. +ENTRY +% Fields: + { address +% Usually the address of a publisher or other type of organization. +% Put information in this field only if it helps the reader find the +% thing---for example you should omit the address of a major +% publisher entirely. For a PROCEEDINGS or an INPROCEEDINGS, +% however, it's the address of the conference; for those two entry +% types, include the publisher's or organization's address, if +% necessary, in the publisher or organization field. +% annote +% Long annotation---for annotated bibliographies (begins sentence). + author +% Name(s) of author(s), in BibTeX name format. + booktitle +% Book title when the thing being referenced isn't the whole book. +% For book entries, the title field should be used instead. + chapter +% Chapter (or section or whatever) number. + edition +% Edition of a book---should be an ordinal (e.g., "Second"). + editor +% Name(s) of editor(s), in BibTeX name format. +% If there is also an author field, then the editor field should be +% for the book or collection that the work appears in. + howpublished +% How something strange has been published (begins sentence). + institution +% Sponsoring institution of a technical report. + journal +% Journal name (macros are provided for many). + key +% Alphabetizing, labeling, and cross-referencing key +% (needed when an entry has no author or editor). + month +% Month (macros are provided). + note +% To help the reader find a reference (begins sentence). + number +% Number of a journal or technical report, or of a work in a series. + organization +% Organization sponsoring a conference (or publishing a manual); if +% the editor (or author) is empty, and if the organization produces +% an awkward label or cross reference, you should put appropriately +% condensed organization information in the key field as well. + pages +% Page number or numbers (use `--' to separate a range, use `+' +% to indicate pages following that don't form a simple range). + publisher +% Publisher name. + school +% School name (for theses). + series +% The name of a series or set of books. +% An individual book will will also have it's own title. + title +% The title of the thing you're referred to. + type +% Type of a Techreport (e.g., "Research Note") to be used instead of +% the default "Technical Report"; or, similarly, the type of a +% thesis; or of a part of a book. + volume +% The volume number of a journal or multivolume work. + year +% The year should contain only numerals (technically, it should end +% with four numerals, after purification; doesn't a begin sentence). + } +% There are no integer entry variables + {} +% These string entry variables are used to form the citation label. +% In a storage pinch, sort.label can be easily computed on the fly. + { label } +% Each entry function starts by calling output.bibitem, to write the +% \bibitem and its arguments to the .BBL file. Then the various fields +% are formatted and printed by output or output.check. Those functions +% handle the writing of separators (commas, periods, \newblock's), +% taking care not to do so when they are passed a null string. +% Finally, fin.entry is called to add the final period and finish the +% entry. +% +% A bibliographic reference is formatted into a number of `blocks': +% in the open format, a block begins on a new line and subsequent +% lines of the block are indented. A block may contain more than +% one sentence (well, not a grammatical sentence, but something to +% be ended with a sentence ending period). The entry functions should +% call new.block whenever a block other than the first is about to be +% started. They should call new.sentence whenever a new sentence is +% to be started. The output functions will ensure that if two +% new.sentence's occur without any non-null string being output between +% them then there won't be two periods output. Similarly for two +% successive new.block's. +% +% The output routines don't write their argument immediately. +% Instead, by convention, that argument is saved on the stack to be +% output next time (when we'll know what separator needs to come +% after it). Meanwhile, the output routine has to pop the pending +% output off the stack, append any needed separator, and write it. +% +% To tell which separator is needed, we maintain an output.state. +% It will be one of these values: +% before.all just after the \bibitem +% mid.sentence in the middle of a sentence: comma needed +% if more sentence is output +% after.sentence just after a sentence: period needed +% after.block just after a block (and sentence): +% period and \newblock needed. +% Note: These styles don't use after.sentence +% +% VAR: output.state : INTEGER -- state variable for output +% +% The output.nonnull function saves its argument (assumed to be nonnull) +% on the stack, and writes the old saved value followed by any needed +% separator. The ordering of the tests is decreasing frequency of +% occurrence. +% +% output.nonnull(s) == +% BEGIN +% s := argument on stack +% if output.state = mid.sentence then +% write$(pop() * ", ") +% -- "pop" isn't a function: just use stack top +% else +% if output.state = after.block then +% write$(add.period$(pop())) +% newline$ +% write$("\newblock ") +% else +% if output.state = before.all then +% write$(pop()) +% else -- output.state should be after.sentence +% write$(add.period$(pop()) * " ") +% fi +% fi +% output.state := mid.sentence +% fi +% push s on stack +% END +% +% The output function calls output.nonnull if its argument is non-empty; +% its argument may be a missing field (thus, not necessarily a string) +% +% output(s) == +% BEGIN +% if not empty$(s) then output.nonnull(s) +% fi +% END +% +% The output.check function is the same as the output function except that, if +% necessary, output.check warns the user that the t field shouldn't be empty +% (this is because it probably won't be a good reference without the field; +% the entry functions try to make the formatting look reasonable even when +% such fields are empty). +% +% output.check(s,t) == +% BEGIN +% if empty$(s) then +% warning$("empty " * t * " in " * cite$) +% else output.nonnull(s) +% fi +% END +% +% The output.bibitem function writes the \bibitem for the current entry +% (the label should already have been set up), and sets up the separator +% state for the output functions. And, it leaves a string on the stack +% as per the output convention. +% +% output.bibitem == +% BEGIN +% newline$ +% write$("\bibitem[") % for alphabetic labels, +% write$(label) % these three lines +% write$("]{") % are used +% write$("\bibitem{") % this line for numeric labels +% write$(cite$) +% write$("}") +% push "" on stack +% output.state := before.all +% END +% +% The fin.entry function finishes off an entry by adding a period to the +% string remaining on the stack. If the state is still before.all +% then nothing was produced for this entry, so the result will look bad, +% but the user deserves it. (We don't omit the whole entry because the +% entry was cited, and a bibitem is needed to define the citation label.) +% +% fin.entry == +% BEGIN +% write$(add.period$(pop())) +% newline$ +% END +% +% The new.block function prepares for a new block to be output, and +% new.sentence prepares for a new sentence. +% +% new.block == +% BEGIN +% if output.state <> before.all then +% output.state := after.block +% fi +% END +% +% new.sentence == +% BEGIN +% if output.state <> after.block then +% if output.state <> before.all then +% output.state := after.sentence +% fi +% fi +% END +% +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 := +} +% the variables s and t are temporary string holders +STRINGS { s t } +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { "," * 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} +% This function finishes all entries. +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} +FUNCTION {new.sentence} +{ skip$ +} +% These three functions pop one or two (integer) arguments from the stack +% and push a single one, either 0 or 1. +% The 'skip$ in the `and' and `or' functions are used because +% the corresponding if$ would be idempotent +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +% Sometimes we begin a new block only if the block will be big enough. The +% new.block.checka function issues a new.block if its argument is nonempty; +% new.block.checkb does the same if either of its TWO arguments is nonempty. +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +% The new.sentence.check functions are analogous. +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} +% Here are some functions for formatting chunks of an entry. +% By convention they either produce a string that can be followed by +% a comma or period (using add.period$, so it is OK to end in a period), +% or they produce the null string. +% +% A useful utility is the field.or.null function, which checks if the +% argument is the result of pushing a `missing' field (one for which no +% assignment was made when the current entry was read in from the database) +% or the result of pushing a string having no non-white-space characters. +% It returns the null string if so, otherwise it returns the field string. +% Its main (but not only) purpose is to guarantee that what's left on the +% stack is a string rather than a missing field. +% +% field.or.null(s) == +% BEGIN +% if empty$(s) then return "" +% else return s +% END +% +% Another helper function is emphasize, which returns the argument emphazised, +% if that is non-empty, otherwise it returns the null string. Italic +% corrections aren't used, so this function should be used when punctation +% will follow the result. +% +% emphasize(s) == +% BEGIN +% if empty$(s) then return "" +% else return "{\em " * s * "}" +% +% The format.names function formats the argument (which should be in +% BibTeX name format) into "First Von Last, Junior", separated by commas +% and with an "and" before the last (but ending with "et~al." if the last +% of multiple authors is "others"). This function's argument should always +% contain at least one name. +% +% VAR: nameptr, namesleft, numnames: INTEGER +% pseudoVAR: nameresult: STRING (it's what's accumulated on the stack) +% +% format.names(s) == +% BEGIN +% nameptr := 1 +% numnames := num.names$(s) +% namesleft := numnames +% while namesleft > 0 +% do +% % for full names: +% t := format.name$(s, nameptr, "{ff~}{vv~}{ll}{, jj}") +% % for abbreviated first names: +% t := format.name$(s, nameptr, "{f.~}{vv~}{ll}{, jj}") +% if nameptr > 1 then +% if namesleft > 1 then nameresult := nameresult * ", " * t +% else if numnames > 2 +% then nameresult := nameresult * "," +% fi +% if t = "others" +% then nameresult := nameresult * " et~al." +% else nameresult := nameresult * " and " * t +% fi +% fi +% else nameresult := t +% fi +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% return nameresult +% END +% +% The format.authors function returns the result of format.names(author) +% if the author is present, or else it returns the null string +% +% format.authors == +% BEGIN +% if empty$(author) then return "" +% else return format.names(author) +% fi +% END +% +% Format.editors is like format.authors, but it uses the editor field, +% and appends ", editor" or ", editors" +% +% format.editors == +% BEGIN +% if empty$(editor) then return "" +% else +% if num.names$(editor) > 1 then +% return format.names(editor) * ", editors" +% else +% return format.names(editor) * ", editor" +% fi +% fi +% END +% +% Other formatting functions are similar, so no "comment version" will be +% given for them. +% +% The `pop$' in this function gets rid of the duplicate `empty' value and +% the `skip$' returns the duplicate field value +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} +FUNCTION {embolden} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} +FUNCTION {paren} +{ duplicate$ empty$ + { pop$ "" } + { "(" swap$ * ")" * } + if$ +} +INTEGERS { nameptr namesleft numnames } +INTEGERS { etal } +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames #5 > + s numnames "{ll}" format.name$ "others" = numnames #3 > and + or 'etal := + etal + { #3 #1 + 'namesleft := } + { numnames 'namesleft := } + if$ + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first + t "others" = + 'skip$ + { t "u" change.case$ 't := } + if$ + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { nameptr #2 > + { "," * } + 'skip$ + if$ + t "others" = + etal or + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} +% The format.title function is used for non-book-like titles. +% For most styles we convert to lowercase (except for the very first letter, +% and except for the first one after a colon (followed by whitespace)), +% and hope the user has brace-surrounded words that need to stay capitilized; +% for some styles, however, we leave it as it is in the database. +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} +% By default, BibTeX sets the global integer variable global.max$ to the BibTeX +% constant glob_str_size, the maximum length of a global string variable. +% Analogously, BibTeX sets the global integer variable entry.max$ to +% ent_str_size, the maximum length of an entry string variable. +% The style designer may change these if necessary (but this is unlikely) +% The n.dashify function makes each single `-' in a string a double `--' +% if it's not already +% +% pseudoVAR: pageresult: STRING (it's what's accumulated on the stack) +% +% n.dashify(s) == +% BEGIN +% t := s +% pageresult := "" +% while (not empty$(t)) +% do +% if (first character of t = "-") +% then +% if (next character isn't) +% then +% pageresult := pageresult * "--" +% t := t with the "-" removed +% else +% while (first character of t = "-") +% do +% pageresult := pageresult * "-" +% t := t with the "-" removed +% od +% fi +% else +% pageresult := pageresult * the first character +% t := t with the first character removed +% fi +% od +% return pageresult +% END +FUNCTION {n.dashify} +{ '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 {first.page} +{ 't := + "" + { t empty$ not t #1 #1 substring$ "-" = not and } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + while$ +} +% The format.date function is for the month and year, but we give a warning if +% there's an empty year but the month is there, and we return the empty string +% if they're both empty. +FUNCTION {format.date} +{ year empty$ + { "" } + 'year + if$ +} +% The format.btitle is for formatting the title field when it is a book-like +% entry---the style used here keeps it in uppers-and-lowers and emphasizes it. +FUNCTION {format.btitle} +{ title emphasize +} +% For several functions we'll need to connect two strings with a +% tie (~) if the second one isn't very long (fewer than 3 characters). +% The tie.or.space.connect function does that. It concatenates the two +% strings on top of the stack, along with either a tie or space between +% them, and puts this concatenation back onto the stack: +% +% tie.or.space.connect(str1,str2) == +% BEGIN +% if text.length$(str2) < 3 +% then return the concatenation of str1, "~", and str2 +% else return the concatenation of str1, " ", and str2 +% END +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} +% The either.or.check function complains if both fields or an either-or pair +% are nonempty. +% +% either.or.check(t,s) == +% BEGIN +% if empty$(s) then +% warning$(can't use both " * t * " fields in " * cite$) +% fi +% END +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +% The format.bvolume function is for formatting the volume and perhaps +% series name of a multivolume work. If both a volume and a series field +% are there, we assume the series field is the title of the whole multivolume +% work (the title field should be the title of the thing being referred to), +% and we add an "of ". This function is called in mid-sentence. +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +% The format.number.series function is for formatting the series name +% and perhaps number of a work in a series. This function is similar to +% format.bvolume, although for this one the series must exist (and the +% volume must not exist). If the number field is empty we output either +% the series field unchanged if it exists or else the null string. +% If both the number and series fields are there we assume the series field +% gives the name of the whole series (the title field should be the title +% of the work being one referred to), and we add an "in ". +% We capitilize Number when this function is used at the beginning of a block. +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} +% The format.edition function appends " edition" to the edition, if present. +% We lowercase the edition (it should be something like "Third"), because +% this doesn't start a sentence. +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + if$ +} +% The format.pages function is used for formatting a page range in a book +% (and in rare circumstances, an article). +% +% The multi.page.check function examines the page field for a "-" or "," or "+" +% so that format.pages can use "page" instead of "pages" if none exists. +% Note: global.max$ here means "take the rest of the string" +% +% VAR: multiresult: INTEGER (actually, a boolean) +% +% multi.page.check(s) == +% BEGIN +% t := s +% multiresult := false +% while ((not multiresult) and (not empty$(t))) +% do +% if (first character of t = "-" or "," or "+") +% then multiresult := true +% else t := t with the first character removed +% fi +% od +% return multiresult +% END +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 +} +% This function doesn't begin a sentence so "pages" isn't capitalized. +% Other functions that use this should keep that in mind. +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp." pages n.dashify tie.or.space.connect } + { "p." pages tie.or.space.connect } + if$ + } + if$ +} +FUNCTION {format.pages.a} +{ pages empty$ + { "" } + { "p." pages first.page tie.or.space.connect } + if$ +} +% The format.vol.num.pages function is for the volume, number, and page range +% of a journal article. We use the format: vol(number):pages, with some +% variations for empty fields. This doesn't begin a sentence. +FUNCTION {format.vol.num.pages} +{ volume field.or.null embolden + " " swap$ * * + format.date empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.date paren } + { " " * format.date paren * } + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages.a } + { " " * pages first.page *} + if$ + } + if$ +} +% The format.chapter.pages, if the chapter is present, puts whatever is in the +% type field (or else "chapter" if type is empty) in front of a chapter number. +% It then appends the pages, if present. This doesn't begin a sentence. +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} +% The format.in.ed.booktitle function is used for starting out a sentence +% that begins "In ", putting an editor before the title if one +% exists. +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "in " booktitle emphasize * } + { "in " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} +% The function empty.misc.check complains if all six fields are empty, and +% if there's been no sorting or alphabetic-label complaint. +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} +% The function format.thesis.type returns either the (case-changed) type field, +% if it is defined, or else the default string already on the stack +% (like "Master's thesis" or "PhD thesis"). +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} +% The function format.tr.number makes a string starting with "Technical Report" +% (or type, if that field is defined), followed by the number if there is one; +% it returns the starting part (with a case change) even if there is no number. +% This is used at the beginning of a sentence. +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} +% Now come the cross-referencing functions (these are invoked because +% one entry in the database file(s) cross-references another, by giving +% the other entry's database key in a `crossref' field). This feature +% allows one or more titled things that are part of a larger titled +% thing to cross-reference the larger thing. These styles allow for +% five posibilities: (1) an ARTICLE may cross-reference an ARTICLE; +% (2) a BOOK, (3) INBOOK, or (4) INCOLLECTION may cross-reference a BOOK; +% or (5) an INPROCEEDINGS may cross-reference a PROCEEDINGS. +% Each of these is explained in more detail later. +% +% An ARTICLE entry type may cross reference another ARTICLE (this is +% intended for when an entire journal is devoted to a single topic--- +% but since there is no JOURNAL entry type, the journal, too, should be +% classified as an ARTICLE but without the author and title fields). +% This will result in two warning messages for the journal's entry +% if it's included in the reference list, but such is life. +% +% format.article.crossref == +% BEGIN +% if empty$(key) then +% if empty$(journal) then +% warning$("need key or journal for " * cite$ * +% " to crossref " * crossref) +% return(" \cite{" * crossref * "}") +% else +% return("In " * emphazise.correct (journal) * +% " \cite{" * crossref * "}") +% fi +% else +% return("In " * key * " \cite{" * crossref * "}") +% fi +% END +% +% The other cross-referencing functions are similar, so no "comment version" +% will be given for them. +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In " journal * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} +% We use just the last names of editors for a cross reference: either +% "editor", or "editor1 and editor2", or "editor1 et~al." depending on +% whether there are one, or two, or more than two editors. +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} +% A BOOK (or INBOOK) entry type (assumed to be for a single volume in a +% multivolume work) may cross reference another BOOK (the entire multivolume). +% Usually there will be an editor, in which case we use that to construct the +% cross reference; otherwise we use a nonempty key field or else the series +% field (since the series gives the title of the multivolume work). +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} +% An INCOLLECTION entry type may cross reference a BOOK (assumed to be the +% collection), or an INPROCEEDINGS may cross reference a PROCEEDINGS. +% Often there will be an editor, in which case we use that to construct +% the cross reference; otherwise we use a nonempty key field or else +% the booktitle field (which gives the cross-referenced work's title). +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} +% Now we define the type functions for all entry types that may appear +% in the .BIB file---e.g., functions like `article' and `book'. These +% are the routines that actually generate the .BBL-file output for +% the entry. These must all precede the READ command. In addition, the +% style designer should have a function `default.type' for unknown types. +% Note: The fields (within each list) are listed in order of appearance, +% except as described for an `inbook' or a `proceedings'. +% +% The article function is for an article in a journal. An article may +% CROSSREF another article. +% Required fields: author, title, journal, year +% Optional fields: volume, number, pages, month, note +% +% article == +% BEGIN +% output.bibitem +% output.check(format.authors,"author") +% new.block +% output.check(format.title,"title") +% new.block +% if missing$(crossref) then +% output.check(emphasize(journal),"journal") +% output(format.vol.num.pages) +% output.check(format.date,"year") +% else +% output.nonnull(format.article.crossref) +% output(format.pages) +% fi +% new.block +% output(note) +% fin.entry +% END +% +% The book function is for a whole book. A book may CROSSREF another book. +% Required fields: author or editor, title, publisher, year +% Optional fields: volume or number, series, address, edition, month, +% note +% +% book == +% BEGIN +% if empty$(author) then output.check(format.editors,"author and editor") +% else output.check(format.authors,"author") +% if missing$(crossref) then +% either.or.check("author and editor",editor) +% fi +% fi +% new.block +% output.check(format.btitle,"title") +% if missing$(crossref) then +% output(format.bvolume) +% new.block +% output(format.number.series) +% new.sentence +% output.check(publisher,"publisher") +% output(address) +% else +% new.block +% output.nonnull(format.book.crossref) +% fi +% output(format.edition) +% output.check(format.date,"year") +% new.block +% output(note) +% fin.entry +% END +% +% The other entry functions are all quite similar, so no "comment version" +% will be given for them. +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + crossref missing$ + { journal field.or.null + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} +% A booklet is a bound thing without a publisher or sponsoring institution. +% Required: title +% Optional: author, howpublished, address, month, year, note +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} +% For the conference entry type, see inproceedings. +% An inbook is a piece of a book: either a chapter and/or a page range. +% It may CROSSREF a book. If there's no volume field, the type field +% will come before number and series. +% Required: author or editor, title, chapter and/or pages, publisher,year +% Optional: volume or number, series, type, address, edition, month, note +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} +% An incollection is like inbook, but where there is a separate title +% for the referenced thing (and perhaps an editor for the whole). +% An incollection may CROSSREF a book. +% Required: author, title, booktitle, publisher, year +% Optional: editor, volume or number, series, type, chapter, pages, +% address, edition, month, note +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} +% An inproceedings is an article in a conference proceedings, and it may +% CROSSREF a proceedings. If there's no address field, the month (& year) +% will appear just before note. +% Required: author, title, booktitle, year +% Optional: editor, volume or number, series, pages, address, month, +% organization, publisher, note +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} +% The conference function is included for Scribe compatibility. +FUNCTION {conference} { inproceedings } +% A manual is technical documentation. +% Required: title +% Optional: author, organization, address, edition, month, year, note +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} +% A mastersthesis is a Master's thesis. +% Required: author, title, school, year +% Optional: type, address, month, note +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% A misc is something that doesn't fit elsewhere. +% Required: at least one of the `optional' fields +% Optional: author, title, howpublished, month, year, note +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} +% A phdthesis is like a mastersthesis. +% Required: author, title, school, year +% Optional: type, address, month, note +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% A proceedings is a conference proceedings. +% If there is an organization but no editor field, the organization will +% appear as the first optional field (we try to make the first block nonempty); +% if there's no address field, the month (& year) will appear just before note. +% Required: title, year +% Optional: editor, volume or number, series, address, month, +% organization, publisher, note +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} +% A techreport is a technical report. +% Required: author, title, institution, year +% Optional: type, number, address, month, note +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% An unpublished is something that hasn't been published. +% Required: author, title, note +% Optional: month, year +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} +% We use entry type `misc' for an unknown type; BibTeX gives a warning. +FUNCTION {default.type} { misc } +% Here are macros for common things that may vary from style to style. +% Users are encouraged to use these macros. +% +% Months are either written out in full or abbreviated +MACRO {jan} {"Jan."} +MACRO {feb} {"Feb."} +MACRO {mar} {"Mar."} +MACRO {apr} {"Apr."} +MACRO {may} {"May"} +MACRO {jun} {"June"} +MACRO {jul} {"July"} +MACRO {aug} {"Aug."} +MACRO {sep} {"Sept."} +MACRO {oct} {"Oct."} +MACRO {nov} {"Nov."} +MACRO {dec} {"Dec."} +% Journals are either written out in full or abbreviated; +% the abbreviations are like those found in ACM publications. +% +% To get a completely different set of abbreviations, it may be best to make +% a separate .bib file with nothing but those abbreviations; users could then +% include that file name as the first argument to the \bibliography command +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. Softw. Eng."} +MACRO {ieeetc} {"IEEE Trans. Comput."} +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} +MACRO {ipl} {"Inf. Process. Lett."} +MACRO {jacm} {"J.~ACM"} +MACRO {jcss} {"J.~Comput. Syst. Sci."} +MACRO {scp} {"Sci. Comput. Programming"} +MACRO {sicomp} {"SIAM J. Comput."} +MACRO {tocs} {"ACM Trans. Comput. Syst."} +MACRO {tods} {"ACM Trans. Database Syst."} +MACRO {tog} {"ACM Trans. Gr."} +MACRO {toms} {"ACM Trans. Math. Softw."} +MACRO {toois} {"ACM Trans. Office Inf. Syst."} +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} +MACRO {tcs} {"Theoretical Comput. Sci."} +%% /usr/local/lib/tex/bibtex/phyjfull.btx, Tue Jun 30 08:37:48 1992 +%% Edit by Nelson H. F. Beebe +%% Change file names in leading comment +% Journal Title Abbreviations from the Physical Review Style and Notation +% Guide, July, 1983, in BAPS Vol. 28. +% Selected by Cris Barnes and Charles Karney, March 1988 +% IMPORTANT!! Don't make changes to this file without making the +% corresponding changes to +% phyjabb.bib +% phyjabb.btx +MACRO {advp} {"Advances in Physics"} +MACRO {ajp} {"American Journal of Physics"} +MACRO {ao} {"Applied Optics"} +MACRO {apl} {"Applied Physics Letters"} +MACRO {apj} {"Astrophysical Journal"} +MACRO {baps} {"Bulletin of the American Physical Society"} +MACRO {cpc} {"Computer Physics Communications"} +MACRO {cppcf} {"Comments on Plasma Physics and Controlled Fusion"} +MACRO {fed} {"Fusion Engineering and Design"} +MACRO {ft} {"Fusion Technology"} +MACRO {ieeens} {"IEEE Transactions on Nuclear Science"} +MACRO {ieeeps} {"IEEE Transactions on Plasma Science"} +MACRO {ijimw} {"International Journal of Infrared and Millimeter Waves"} +MACRO {ip} {"Infrared Physics"} +MACRO {jap} {"Journal of Applied Physics"} +MACRO {jcp} {"Journal of Computational Physics"} +MACRO {jetp} {"Soviet Physics-JETP"} +MACRO {jfe} {"Journal of Fusion Energy"} +MACRO {jfm} {"Journal of Fluid Mechanics"} +MACRO {jgr} {"Journal of Geophysical Research"} +MACRO {jmp} {"Journal of Mathematical Physics"} +MACRO {jne} {"Journal of Nuclear Energy"} +MACRO {jnec} {"Journal of Nuclear Energy, Part C: Plasma Physics, Accelerators, Thermonuclear Research"} +MACRO {jnm} {"Journal of Nuclear Materials"} +MACRO {josa} {"Journal of the Optical Society of America"} +MACRO {jpp} {"Journal of Plasma Physics"} +MACRO {jpsj} {"Journal of the Physical Society of Japan"} +MACRO {jvst} {"Journal of Vacuum Science and Technology"} +MACRO {nedf} {"Nuclear Engineering and Design/Fusion"} +MACRO {nf} {"Nuclear Fusion"} +MACRO {nim} {"Nuclear Instruments and Methods"} +MACRO {nimpr} {"Nuclear Instruments and Methods in Physics Research"} +MACRO {nt/f} {"Nuclear Technology/Fusion"} +MACRO {pf} {"Physics of Fluids"} +MACRO {pfa} {"Physics of Fluids A: Fluid Dynamics"} +MACRO {pfb} {"Physics of Fluids B: Plasma Physics"} +MACRO {pl} {"Physics Letters"} +MACRO {pla} {"Physics Letters A"} +MACRO {pnas} {"Proceedings of the National Academy of Sciences of the USA"} +MACRO {pp} {"Plasma Physics"} +MACRO {ppcf} {"Plasma Physics and Controlled Fusion"} +MACRO {prl} {"Physical Review Letters"} +MACRO {pr} {"Physical Review"} +MACRO {pra} {"Physical Review A: General Physics"} +MACRO {ps} {"Physica Scripta"} +MACRO {rmp} {"Reviews of Modern Physics"} +MACRO {rsi} {"Review of Scientific Instruments"} +MACRO {sjpp} {"Soviet Journal of Plasma Phys."} +MACRO {spd} {"Soviet Physics-Doklady"} +MACRO {sptp} {"Soviet Physics-Technical Physics"} +MACRO {spu} {"Soviet Physics-Uspeki"} +% Now we read in the .BIB entries. +READ +% The sortify function converts to lower case after purify$ing; it's +% used in sorting and in computing alphabetic labels after sorting +% +% The chop.word(w,len,s) function returns either s or, if the first len +% letters of s equals w (this comparison is done in the third line of the +% function's definition), it returns that part of s after w. +% This long comment applies only to alphabetic labels +% +% The format.lab.names function makes a short label by using the initials of +% the von and Last parts of the names (but if there are more than four names, +% (i.e., people) it truncates after three and adds a superscripted "+"; +% it also adds such a "+" if the last of multiple authors is "others"). +% If there is only one name, and its von and Last parts combined have just +% a single name-token ("Knuth" has a single token, "Brinch Hansen" has two), +% we take the first three letters of the last name. The boolean +% et.al.char.used tells whether we've used a superscripted "+", so that we +% know whether to include a LaTeX macro for it. +% +% format.lab.names(s) == +% BEGIN +% numnames := num.names$(s) +% if numnames > 1 then +% if numnames > 4 then +% namesleft := 3 +% else +% namesleft := numnames +% nameptr := 1 +% nameresult := "" +% while namesleft > 0 +% do +% if (name_ptr = numnames) and +% format.name$(s, nameptr, "{ff }{vv }{ll}{ jj}") = "others" +% then nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else nameresult := nameresult * +% format.name$(s, nameptr, "{v{}}{l{}}") +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% if numnames > 4 then +% nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else +% t := format.name$(s, 1, "{v{}}{l{}}") +% if text.length$(t) < 2 then % there's just one name-token +% nameresult := text.prefix$(format.name$(s,1,"{ll}"),3) +% else +% nameresult := t +% fi +% fi +% return nameresult +% END +% +% Exactly what fields we look at in constructing the primary part of the label +% depends on the entry type; this selectivity (as opposed to, say, always +% looking at author, then editor, then key) helps ensure that "ignored" fields, +% as described in the LaTeX book, really are ignored. Note that MISC is part +% of the deepest `else' clause in the nested part of calc.label; thus, any +% unrecognized entry type in the database is handled correctly. +% +% There is one auxiliary function for each of the four different sequences of +% fields we use. The first of these functions looks at the author field, and +% then, if necessary, the key field. The other three functions, which might +% look at two fields and the key field, are similar, except that the key field +% takes precedence over the organization field (for labels---not for sorting). +% +% The calc.label function calculates the preliminary label of an entry, which +% is formed by taking three letters of information from the author or editor or +% key or organization field (depending on the entry type and on what's empty, +% but ignoring a leading "The " in the organization), and appending the last +% two characters (digits) of the year. It is an error if the appropriate fields +% among author, editor, organization, and key are missing, and we use +% the first three letters of the cite$ in desperation when this happens. +% The resulting label has the year part, but not the name part, purify$ed +% (purify$ing the year allows some sorting shenanigans by the user). +% +% This function also calculates the version of the label to be used in sorting. +% +% The final label may need a trailing 'a', 'b', etc., to distinguish it from +% otherwise identical labels, but we can't calculated those "extra.label"s +% until after sorting. +% +% calc.label == +% BEGIN +% if type$ = "book" or "inbook" then +% author.editor.key.label +% else if type$ = "proceedings" then +% editor.key.organization.label +% else if type$ = "manual" then +% author.key.organization.label +% else +% author.key.label +% fi fi fi +% label := label * substring$(purify$(field.or.null(year)), -1, 2) +% % assuming we will also sort, we calculate a sort.label +% sort.label := sortify(label), but use the last four, not two, digits +% END +% When sorting, we compute the sortkey by executing "presort" on each entry. +% The presort key contains a number of "sortify"ed strings, concatenated +% with multiple blanks between them. This makes things like "brinch per" +% come before "brinch hansen per". +% +% The fields used here are: the sort.label for alphabetic labels (as set by +% calc.label), followed by the author names (or editor names or organization +% (with a leading "The " removed) or key field, depending on entry type and on +% what's empty), followed by year, followed by the first bit of the title +% (chopping off a leading "The ", "A ", or "An "). +% Names are formatted: Von Last First Junior. +% The names within a part will be separated by a single blank +% (such as "brinch hansen"), two will separate the name parts themselves +% (except the von and last), three will separate the names, +% four will separate the names from year (and from label, if alphabetic), +% and four will separate year from title. +% +% The sort.format.names function takes an argument that should be in +% BibTeX name format, and returns a string containing " "-separated +% names in the format described above. The function is almost the same +% as format.names. +% This long comment applies only to alphabetic labels, when sorted +% +% Now comes the final computation for alphabetic labels, putting in the 'a's +% and 'b's and so forth if required. This involves two passes: a forward +% pass to put in the 'b's, 'c's and so on, and a backwards pass +% to put in the 'a's (we don't want to put in 'a's unless we know there +% are 'b's). +% We have to keep track of the longest (in width$ terms) label, for use +% by the "thebibliography" environment. +% +% VAR: longest.label, last.sort.label, next.extra: string +% longest.label.width, last.extra.num: integer +% +% initialize.longest.label == +% BEGIN +% longest.label := "" +% last.sort.label := int.to.chr$(0) +% next.extra := "" +% longest.label.width := 0 +% last.extra.num := 0 +% END +% +% forward.pass == +% BEGIN +% if last.sort.label = sort.label then +% last.extra.num := last.extra.num + 1 +% extra.label := int.to.chr$(last.extra.num) +% else +% last.extra.num := chr.to.int$("a") +% extra.label := "" +% last.sort.label := sort.label +% fi +% END +% +% reverse.pass == +% BEGIN +% if next.extra = "b" then +% extra.label := "a" +% fi +% label := label * extra.label +% if width$(label) > longest.label.width then +% longest.label := label +% longest.label.width := width$(label) +% fi +% next.extra := extra.label +% END +% Now comes the computation for numeric labels. +% We use either the sorted order or original order. +% We still have to keep track of the longest (in width$ terms) label, for use +% by the "thebibliography" environment. +STRINGS { longest.label } +INTEGERS { number.label longest.label.width } +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} +% Now we're ready to start writing the .BBL file. +% We begin, if necessary, with a LaTeX macro for unnamed names in an alphabetic +% label; next comes stuff from the `preamble' command in the database files. +% Then we give an incantation containing the command +% \begin{thebibliography}{...} +% where the `...' is the longest label. +% +% We also call init.state.consts, for use by the output routines. +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +% Now we produce the output for all the entries +ITERATE {call.type$} +% Finally, we finish up by writing the `\end{thebibliography}' command. +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/phnflet.bst b/Master/texmf-dist/bibtex/bst/beebe/phnflet.bst new file mode 100644 index 00000000000..4c7fc077908 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/phnflet.bst @@ -0,0 +1,1883 @@ +% BibTeX styles for various physics journals (27-Feb-1990). +% This file, physics.btx, is based on the file btxbst.doc. + % Please notify Charles Karney (Karney@Princeton.EDU) + % of any bugs, improvements, etc. +% Run this file through cpp to get specific versions. I have written +% a version of cpp within Emacs. To access it put +% (autoload 'cpp "tex$bibtex:cpp" ; Use cpp for BibTeX styles +% "C preprocessor" +% t) +% into your .emacs file. Read in this file with +% emacs tex$bibtex:physics.btx +% and run cpp with e.g., +% M-x cpp aip +% Save the resulting file to tex$latex:aip.bst. +% To accomodate the variations we need (in addition to the definitions below) +% ATIT_SUPPRESS: do not include the titles of journal articles +% NAME_INVERT: put the initials last +% NAME_UPPER: convert names to all caps. +% MONTH_SUPPRESS: do not include months in journal articles +% PAREN_DATE: dates go in parens in journal articles +% DATE_FIRST: dates go before page numbers +% VOLUME_SPACE: volume set off with space (not colon) +% NUM_SUPPRESS: do not include numbers in journal articles +% BOLD_VOL: volume numbers in bold face in journal articles +% BRACKET_NOTE: notes in brackets +% PAGE_START_J: include only starting page for journal articles +% PAGE_START_O: include only starting page for other entries +% PAGE_ABBREV: abbreviate page to p. and pages to pp. +% PHYSICS_JOUR: include abbreviations for Physics journals +% COMMA_DELIMIT: use comma (instead of period) to divide a citation +% NOTE_SUPPRESS: suppress the note +% MAX_NAMES: max number of authors before using et al (0 = infinity) +% MIN_NAMES: number of authors to list with et al. +% EDIT_VAR: use "edited by ..." instead of "..., editors" +% RMP_LABELS: create RMP-style labels +% KEY_CITE: use key as label +% NAMED_REFS: use (Smith, 1988) style of citations +% CSC_NAMES: names set in caps and small caps +% JOUR_DEEMPH: don't emphasize journal name +% ETAL_EMPH: emphasize et al. +% ALT_INCOLL alternate ordering of fields in incollections +% These are all boolean (0 or 1) except for MAX_NAMES and MIN_NAMES. +% These need to satisfy 0 <= MIN_NAMES <= MAX_NAMES. +% The rule here is that if all these are defined to be zero, we revert to +% the standard styles. For that reason we initialize them all to 0. +% These are the original macros + % For Nuclear Fusion Letters +% same as NF except for 0 and 0 set to 5 +% This is the start of btxbst.doc +% BibTeX `plain' family + % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. +% Please notify Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU) of any bugs in +% these standard styles or in this documentation file. +% +% This is file btxbxt.doc; it helps document bibliography styles, +% and is also a template file that you can use to make +% several different style files, if you have access to a C preprocessor. +% For example, the standard styles were made by doing something like +% cpp -P -DPLAIN btxbst.doc plain.txt +% cpp -P -DUNSRT btxbst.doc unsrt.txt +% cpp -P -DALPHA btxbst.doc alpha.txt +% cpp -P -DABBRV btxbst.doc abbrv.txt +% and then renaming after removing unwanted comments and blank lines. +% If you don't have access, +% you can edit this file by hand to imitate the preprocessor, +% with the following explanation of the C preprocessor constructs used here. +% +% The output of the preprocessor is the same as the input, except that certain +% lines will be excluded (and some blank lines will be added). The sequence +% #if VAR +% lines to be included when VAR is not zero +% #else +% lines to be included when VAR is zero +% #endif +% (with the #-signs appearing in column 1) means that one set or the other of +% the lines are to be included depending on the value of VAR. +% The #else part is optional. Comments can be added after #else and #endif. +% Variables can be set by +% #define VAR value +% and one can also use #ifdef VAR to see if VAR has any value, and #ifndef +% to see if it has none. +% Another #if form used in this file is #if !VAR, which includes the lines +% after the #if only if VAR is zero. +% +% Convention: Use all uppercase identifiers for these preprocessor variables +% so you can spot them easily +% +% The command line to the preprocessor should define one of PLAIN, UNSRT, ALPHA +% or ABBRV (though PLAIN will be used by default if none is given), +% and the following lines will set various boolean variables to control the +% various lines that are chosen from the rest of the file. +% Each boolean variable should be set true (1) or false (0) in each style. +% Here are the current variables, and their meanings: +% 0: an alphabetic label is used (if false then a numeric +% label is used) +% 0: the entries should be sorted by label (if nonnumeric) +% and other info, like authors (if false, then +% entries remain in order of occurrence) +% 0: the authors, editors, etc., get the full names as +% given in the bibliography file (if false, the first +% names become initials) +% 1: titles of non-"books" (e.g., articles) should be +% converted to lower-case, except the first letter or +% first letter after a colon +% (if false then they appear as in the database) +% 0: months are spelled out in full (if false, then +% they're abbreviated) +% 0: macro journal names are spelled out in full +% (if false then they are abbreviated, currently +% as they appear in ACM publications) +%# define PLAIN 1 +% +% Entry formatting: Similar to that recommended by Mary-Claire van Leunen +% in "A Handbook for Scholars". Book-like titles are italicized +% (emphasized) and non-book titles are converted to sentence +% capitilization (and not enclosed in quotes). +% This file outputs a \newblock between major blocks of an entry +% (the name \newblock is analogous to the names \newline and \newpage) +% so that the user can obtain an "open" format, which has a line break +% before each block and lines after the first are indented within blocks, +% by giving the optional \documentstyle argument `openbib'; +% The default is the "closed" format---blocks runs together. +% +% Citation alphabetic label format: +% [Knu73] for single author (or editor or key) +% [AHU83] (first letters of last names) for multiple authors +% +% Citation label numberic format: +% [number] +% +% Reference list ordering for sorted, alphabetic lables: +% alphabetical by citation label, then by author(s) or whatever +% passes for author in the absence of one, then by year, +% then title +% +% Reference list ordering for sorted, numeric lables: +% alphabetical by author(s) or whatever passes +% for author in the absence of one, then by year, then title +% +% Reference list ordering for unsorted: +% by the order cited in the text +% +% History +% 12/16/84 (HWT) Original `plain' version, by Howard Trickey. +% 12/23/84 (LL) Some comments made by Leslie Lamport. +% 2/16/85 (OP) Changes based on LL's comments, Oren Patashnik. +% 2/17/85 (HWT) Template file and other standard styles made. +% 3/28/85 (OP) First release, version 0.98b for BibTeX 0.98f. +% 5/ 9/85 (OP) Version 0.98c for BibTeX 0.98i: +% fixed Theoretical Computer Science macro name; +% fixed the format.vol.num.pages function. +% 1/24/88 (OP) Version 0.99a for BibTeX 0.99a, main changes: +% assignment operator (:=) arguments reversed; +% the preamble$ function outputs the database PREAMBLE; +% entry.max$ and global.max$ (built-in) variables replace +% entry.string.max and global.string.max functions; +% alphabetizing by year then title, not just title; +% many unnecessary ties removed; \it ==> \em; +% the `alpha' style uses a superscripted `+' instead of a +% `*' for unnamed names in constructing the label; +% the `abbrv' style now uses "Mar." and "Sept."; +% the functions calc.label and presort now look at just +% the fields they're supposed to; +% BOOKLET, MASTERSTHESIS, TECHREPORT use nonbook titles; +% INBOOK and INCOLLECTION take an optional type (e.g. +% type = "Section"), overriding the default "chapter"; +% BOOK, INBOOK, INCOLLECTION, and PROCEEDINGS now allow +% either volume or number, not just volume; +% INCOLLECTION now allows an edition and series field; +% PROCEEDINGS and INPROCEEDINGS now use the address field +% to tell where a conference was held; +% INPROCEEDINGS and PROCEEDINGS now allow either volume +% or number, and also a series field; +% MASTERSTHESIS and PHDTHESIS accept types other than +% "Master's thesis" and "PhD thesis"; +% UNPUBLISHED now outputs, in one block, note then date; +% MANUAL now prints out the organization in +% the first block if the author field is empty; +% MISC can't be empty---it requires some optional field. +% 3/23/88 (OP) Version 0.99b for BibTeX 0.99c---changed the three +% erroneous occurrences of `cite ' to `cite$ '; this +% change didn't affect the four standard styles, so the +% 0.99a versions of those styles are still current. +% +% The ENTRY declaration +% Like Scribe's (according to pages 231-2 of the April '84 edition), +% but no fullauthor or editors fields because BibTeX does name handling. +% The annote field is commented out here because this family doesn't +% include an annotated bibliography style. And in addition to the fields +% listed here, BibTeX has a built-in crossref field, explained later. +ENTRY +% Fields: + { address +% Usually the address of a publisher or other type of organization. +% Put information in this field only if it helps the reader find the +% thing---for example you should omit the address of a major +% publisher entirely. For a PROCEEDINGS or an INPROCEEDINGS, +% however, it's the address of the conference; for those two entry +% types, include the publisher's or organization's address, if +% necessary, in the publisher or organization field. +% annote +% Long annotation---for annotated bibliographies (begins sentence). + author +% Name(s) of author(s), in BibTeX name format. + booktitle +% Book title when the thing being referenced isn't the whole book. +% For book entries, the title field should be used instead. + chapter +% Chapter (or section or whatever) number. + edition +% Edition of a book---should be an ordinal (e.g., "Second"). + editor +% Name(s) of editor(s), in BibTeX name format. +% If there is also an author field, then the editor field should be +% for the book or collection that the work appears in. + howpublished +% How something strange has been published (begins sentence). + institution +% Sponsoring institution of a technical report. + journal +% Journal name (macros are provided for many). + key +% Alphabetizing, labeling, and cross-referencing key +% (needed when an entry has no author or editor). + month +% Month (macros are provided). + note +% To help the reader find a reference (begins sentence). + number +% Number of a journal or technical report, or of a work in a series. + organization +% Organization sponsoring a conference (or publishing a manual); if +% the editor (or author) is empty, and if the organization produces +% an awkward label or cross reference, you should put appropriately +% condensed organization information in the key field as well. + pages +% Page number or numbers (use `--' to separate a range, use `+' +% to indicate pages following that don't form a simple range). + publisher +% Publisher name. + school +% School name (for theses). + series +% The name of a series or set of books. +% An individual book will will also have it's own title. + title +% The title of the thing you're referred to. + type +% Type of a Techreport (e.g., "Research Note") to be used instead of +% the default "Technical Report"; or, similarly, the type of a +% thesis; or of a part of a book. + volume +% The volume number of a journal or multivolume work. + year +% The year should contain only numerals (technically, it should end +% with four numerals, after purification; doesn't a begin sentence). + } +% There are no integer entry variables + {} +% These string entry variables are used to form the citation label. +% In a storage pinch, sort.label can be easily computed on the fly. + { label } +% Each entry function starts by calling output.bibitem, to write the +% \bibitem and its arguments to the .BBL file. Then the various fields +% are formatted and printed by output or output.check. Those functions +% handle the writing of separators (commas, periods, \newblock's), +% taking care not to do so when they are passed a null string. +% Finally, fin.entry is called to add the final period and finish the +% entry. +% +% A bibliographic reference is formatted into a number of `blocks': +% in the open format, a block begins on a new line and subsequent +% lines of the block are indented. A block may contain more than +% one sentence (well, not a grammatical sentence, but something to +% be ended with a sentence ending period). The entry functions should +% call new.block whenever a block other than the first is about to be +% started. They should call new.sentence whenever a new sentence is +% to be started. The output functions will ensure that if two +% new.sentence's occur without any non-null string being output between +% them then there won't be two periods output. Similarly for two +% successive new.block's. +% +% The output routines don't write their argument immediately. +% Instead, by convention, that argument is saved on the stack to be +% output next time (when we'll know what separator needs to come +% after it). Meanwhile, the output routine has to pop the pending +% output off the stack, append any needed separator, and write it. +% +% To tell which separator is needed, we maintain an output.state. +% It will be one of these values: +% before.all just after the \bibitem +% mid.sentence in the middle of a sentence: comma needed +% if more sentence is output +% after.sentence just after a sentence: period needed +% after.block just after a block (and sentence): +% period and \newblock needed. +% Note: These styles don't use after.sentence +% +% VAR: output.state : INTEGER -- state variable for output +% +% The output.nonnull function saves its argument (assumed to be nonnull) +% on the stack, and writes the old saved value followed by any needed +% separator. The ordering of the tests is decreasing frequency of +% occurrence. +% +% output.nonnull(s) == +% BEGIN +% s := argument on stack +% if output.state = mid.sentence then +% write$(pop() * ", ") +% -- "pop" isn't a function: just use stack top +% else +% if output.state = after.block then +% write$(add.period$(pop())) +% newline$ +% write$("\newblock ") +% else +% if output.state = before.all then +% write$(pop()) +% else -- output.state should be after.sentence +% write$(add.period$(pop()) * " ") +% fi +% fi +% output.state := mid.sentence +% fi +% push s on stack +% END +% +% The output function calls output.nonnull if its argument is non-empty; +% its argument may be a missing field (thus, not necessarily a string) +% +% output(s) == +% BEGIN +% if not empty$(s) then output.nonnull(s) +% fi +% END +% +% The output.check function is the same as the output function except that, if +% necessary, output.check warns the user that the t field shouldn't be empty +% (this is because it probably won't be a good reference without the field; +% the entry functions try to make the formatting look reasonable even when +% such fields are empty). +% +% output.check(s,t) == +% BEGIN +% if empty$(s) then +% warning$("empty " * t * " in " * cite$) +% else output.nonnull(s) +% fi +% END +% +% The output.bibitem function writes the \bibitem for the current entry +% (the label should already have been set up), and sets up the separator +% state for the output functions. And, it leaves a string on the stack +% as per the output convention. +% +% output.bibitem == +% BEGIN +% newline$ +% write$("\bibitem[") % for alphabetic labels, +% write$(label) % these three lines +% write$("]{") % are used +% write$("\bibitem{") % this line for numeric labels +% write$(cite$) +% write$("}") +% push "" on stack +% output.state := before.all +% END +% +% The fin.entry function finishes off an entry by adding a period to the +% string remaining on the stack. If the state is still before.all +% then nothing was produced for this entry, so the result will look bad, +% but the user deserves it. (We don't omit the whole entry because the +% entry was cited, and a bibitem is needed to define the citation label.) +% +% fin.entry == +% BEGIN +% write$(add.period$(pop())) +% newline$ +% END +% +% The new.block function prepares for a new block to be output, and +% new.sentence prepares for a new sentence. +% +% new.block == +% BEGIN +% if output.state <> before.all then +% output.state := after.block +% fi +% END +% +% new.sentence == +% BEGIN +% if output.state <> after.block then +% if output.state <> before.all then +% output.state := after.sentence +% fi +% fi +% END +% +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 := +} +% the variables s and t are temporary string holders +STRINGS { s t } +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { "," * 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} +% This function finishes all entries. +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} +FUNCTION {new.sentence} +{ skip$ +} +% These three functions pop one or two (integer) arguments from the stack +% and push a single one, either 0 or 1. +% The 'skip$ in the `and' and `or' functions are used because +% the corresponding if$ would be idempotent +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +% Sometimes we begin a new block only if the block will be big enough. The +% new.block.checka function issues a new.block if its argument is nonempty; +% new.block.checkb does the same if either of its TWO arguments is nonempty. +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +% The new.sentence.check functions are analogous. +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} +% Here are some functions for formatting chunks of an entry. +% By convention they either produce a string that can be followed by +% a comma or period (using add.period$, so it is OK to end in a period), +% or they produce the null string. +% +% A useful utility is the field.or.null function, which checks if the +% argument is the result of pushing a `missing' field (one for which no +% assignment was made when the current entry was read in from the database) +% or the result of pushing a string having no non-white-space characters. +% It returns the null string if so, otherwise it returns the field string. +% Its main (but not only) purpose is to guarantee that what's left on the +% stack is a string rather than a missing field. +% +% field.or.null(s) == +% BEGIN +% if empty$(s) then return "" +% else return s +% END +% +% Another helper function is emphasize, which returns the argument emphazised, +% if that is non-empty, otherwise it returns the null string. Italic +% corrections aren't used, so this function should be used when punctation +% will follow the result. +% +% emphasize(s) == +% BEGIN +% if empty$(s) then return "" +% else return "{\em " * s * "}" +% +% The format.names function formats the argument (which should be in +% BibTeX name format) into "First Von Last, Junior", separated by commas +% and with an "and" before the last (but ending with "et~al." if the last +% of multiple authors is "others"). This function's argument should always +% contain at least one name. +% +% VAR: nameptr, namesleft, numnames: INTEGER +% pseudoVAR: nameresult: STRING (it's what's accumulated on the stack) +% +% format.names(s) == +% BEGIN +% nameptr := 1 +% numnames := num.names$(s) +% namesleft := numnames +% while namesleft > 0 +% do +% % for full names: +% t := format.name$(s, nameptr, "{ff~}{vv~}{ll}{, jj}") +% % for abbreviated first names: +% t := format.name$(s, nameptr, "{f.~}{vv~}{ll}{, jj}") +% if nameptr > 1 then +% if namesleft > 1 then nameresult := nameresult * ", " * t +% else if numnames > 2 +% then nameresult := nameresult * "," +% fi +% if t = "others" +% then nameresult := nameresult * " et~al." +% else nameresult := nameresult * " and " * t +% fi +% fi +% else nameresult := t +% fi +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% return nameresult +% END +% +% The format.authors function returns the result of format.names(author) +% if the author is present, or else it returns the null string +% +% format.authors == +% BEGIN +% if empty$(author) then return "" +% else return format.names(author) +% fi +% END +% +% Format.editors is like format.authors, but it uses the editor field, +% and appends ", editor" or ", editors" +% +% format.editors == +% BEGIN +% if empty$(editor) then return "" +% else +% if num.names$(editor) > 1 then +% return format.names(editor) * ", editors" +% else +% return format.names(editor) * ", editor" +% fi +% fi +% END +% +% Other formatting functions are similar, so no "comment version" will be +% given for them. +% +% The `pop$' in this function gets rid of the duplicate `empty' value and +% the `skip$' returns the duplicate field value +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} +FUNCTION {embolden} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} +FUNCTION {paren} +{ duplicate$ empty$ + { pop$ "" } + { "(" swap$ * ")" * } + if$ +} +INTEGERS { nameptr namesleft numnames } +INTEGERS { etal } +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames #5 > + s numnames "{ll}" format.name$ "others" = numnames #5 > and + or 'etal := + etal + { #5 #1 + 'namesleft := } + { numnames 'namesleft := } + if$ + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first + t "others" = + 'skip$ + { t "u" change.case$ 't := } + if$ + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { nameptr #2 > + { "," * } + 'skip$ + if$ + t "others" = + etal or + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} +% The format.title function is used for non-book-like titles. +% For most styles we convert to lowercase (except for the very first letter, +% and except for the first one after a colon (followed by whitespace)), +% and hope the user has brace-surrounded words that need to stay capitilized; +% for some styles, however, we leave it as it is in the database. +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} +% By default, BibTeX sets the global integer variable global.max$ to the BibTeX +% constant glob_str_size, the maximum length of a global string variable. +% Analogously, BibTeX sets the global integer variable entry.max$ to +% ent_str_size, the maximum length of an entry string variable. +% The style designer may change these if necessary (but this is unlikely) +% The n.dashify function makes each single `-' in a string a double `--' +% if it's not already +% +% pseudoVAR: pageresult: STRING (it's what's accumulated on the stack) +% +% n.dashify(s) == +% BEGIN +% t := s +% pageresult := "" +% while (not empty$(t)) +% do +% if (first character of t = "-") +% then +% if (next character isn't) +% then +% pageresult := pageresult * "--" +% t := t with the "-" removed +% else +% while (first character of t = "-") +% do +% pageresult := pageresult * "-" +% t := t with the "-" removed +% od +% fi +% else +% pageresult := pageresult * the first character +% t := t with the first character removed +% fi +% od +% return pageresult +% END +FUNCTION {n.dashify} +{ '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 {first.page} +{ 't := + "" + { t empty$ not t #1 #1 substring$ "-" = not and } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + while$ +} +% The format.date function is for the month and year, but we give a warning if +% there's an empty year but the month is there, and we return the empty string +% if they're both empty. +FUNCTION {format.date} +{ year empty$ + { "" } + 'year + if$ +} +% The format.btitle is for formatting the title field when it is a book-like +% entry---the style used here keeps it in uppers-and-lowers and emphasizes it. +FUNCTION {format.btitle} +{ title emphasize +} +% For several functions we'll need to connect two strings with a +% tie (~) if the second one isn't very long (fewer than 3 characters). +% The tie.or.space.connect function does that. It concatenates the two +% strings on top of the stack, along with either a tie or space between +% them, and puts this concatenation back onto the stack: +% +% tie.or.space.connect(str1,str2) == +% BEGIN +% if text.length$(str2) < 3 +% then return the concatenation of str1, "~", and str2 +% else return the concatenation of str1, " ", and str2 +% END +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} +% The either.or.check function complains if both fields or an either-or pair +% are nonempty. +% +% either.or.check(t,s) == +% BEGIN +% if empty$(s) then +% warning$(can't use both " * t * " fields in " * cite$) +% fi +% END +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +% The format.bvolume function is for formatting the volume and perhaps +% series name of a multivolume work. If both a volume and a series field +% are there, we assume the series field is the title of the whole multivolume +% work (the title field should be the title of the thing being referred to), +% and we add an "of ". This function is called in mid-sentence. +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +% The format.number.series function is for formatting the series name +% and perhaps number of a work in a series. This function is similar to +% format.bvolume, although for this one the series must exist (and the +% volume must not exist). If the number field is empty we output either +% the series field unchanged if it exists or else the null string. +% If both the number and series fields are there we assume the series field +% gives the name of the whole series (the title field should be the title +% of the work being one referred to), and we add an "in ". +% We capitilize Number when this function is used at the beginning of a block. +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} +% The format.edition function appends " edition" to the edition, if present. +% We lowercase the edition (it should be something like "Third"), because +% this doesn't start a sentence. +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + if$ +} +% The format.pages function is used for formatting a page range in a book +% (and in rare circumstances, an article). +% +% The multi.page.check function examines the page field for a "-" or "," or "+" +% so that format.pages can use "page" instead of "pages" if none exists. +% Note: global.max$ here means "take the rest of the string" +% +% VAR: multiresult: INTEGER (actually, a boolean) +% +% multi.page.check(s) == +% BEGIN +% t := s +% multiresult := false +% while ((not multiresult) and (not empty$(t))) +% do +% if (first character of t = "-" or "," or "+") +% then multiresult := true +% else t := t with the first character removed +% fi +% od +% return multiresult +% END +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 +} +% This function doesn't begin a sentence so "pages" isn't capitalized. +% Other functions that use this should keep that in mind. +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp." pages n.dashify tie.or.space.connect } + { "p." pages tie.or.space.connect } + if$ + } + if$ +} +FUNCTION {format.pages.a} +{ pages empty$ + { "" } + { "p." pages first.page tie.or.space.connect } + if$ +} +% The format.vol.num.pages function is for the volume, number, and page range +% of a journal article. We use the format: vol(number):pages, with some +% variations for empty fields. This doesn't begin a sentence. +FUNCTION {format.vol.num.pages} +{ volume field.or.null embolden + " " swap$ * * + format.date empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.date paren } + { " " * format.date paren * } + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages.a } + { " " * pages first.page *} + if$ + } + if$ +} +% The format.chapter.pages, if the chapter is present, puts whatever is in the +% type field (or else "chapter" if type is empty) in front of a chapter number. +% It then appends the pages, if present. This doesn't begin a sentence. +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} +% The format.in.ed.booktitle function is used for starting out a sentence +% that begins "In ", putting an editor before the title if one +% exists. +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "in " booktitle emphasize * } + { "in " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} +% The function empty.misc.check complains if all six fields are empty, and +% if there's been no sorting or alphabetic-label complaint. +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} +% The function format.thesis.type returns either the (case-changed) type field, +% if it is defined, or else the default string already on the stack +% (like "Master's thesis" or "PhD thesis"). +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} +% The function format.tr.number makes a string starting with "Technical Report" +% (or type, if that field is defined), followed by the number if there is one; +% it returns the starting part (with a case change) even if there is no number. +% This is used at the beginning of a sentence. +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} +% Now come the cross-referencing functions (these are invoked because +% one entry in the database file(s) cross-references another, by giving +% the other entry's database key in a `crossref' field). This feature +% allows one or more titled things that are part of a larger titled +% thing to cross-reference the larger thing. These styles allow for +% five posibilities: (1) an ARTICLE may cross-reference an ARTICLE; +% (2) a BOOK, (3) INBOOK, or (4) INCOLLECTION may cross-reference a BOOK; +% or (5) an INPROCEEDINGS may cross-reference a PROCEEDINGS. +% Each of these is explained in more detail later. +% +% An ARTICLE entry type may cross reference another ARTICLE (this is +% intended for when an entire journal is devoted to a single topic--- +% but since there is no JOURNAL entry type, the journal, too, should be +% classified as an ARTICLE but without the author and title fields). +% This will result in two warning messages for the journal's entry +% if it's included in the reference list, but such is life. +% +% format.article.crossref == +% BEGIN +% if empty$(key) then +% if empty$(journal) then +% warning$("need key or journal for " * cite$ * +% " to crossref " * crossref) +% return(" \cite{" * crossref * "}") +% else +% return("In " * emphazise.correct (journal) * +% " \cite{" * crossref * "}") +% fi +% else +% return("In " * key * " \cite{" * crossref * "}") +% fi +% END +% +% The other cross-referencing functions are similar, so no "comment version" +% will be given for them. +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In " journal * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} +% We use just the last names of editors for a cross reference: either +% "editor", or "editor1 and editor2", or "editor1 et~al." depending on +% whether there are one, or two, or more than two editors. +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} +% A BOOK (or INBOOK) entry type (assumed to be for a single volume in a +% multivolume work) may cross reference another BOOK (the entire multivolume). +% Usually there will be an editor, in which case we use that to construct the +% cross reference; otherwise we use a nonempty key field or else the series +% field (since the series gives the title of the multivolume work). +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} +% An INCOLLECTION entry type may cross reference a BOOK (assumed to be the +% collection), or an INPROCEEDINGS may cross reference a PROCEEDINGS. +% Often there will be an editor, in which case we use that to construct +% the cross reference; otherwise we use a nonempty key field or else +% the booktitle field (which gives the cross-referenced work's title). +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} +% Now we define the type functions for all entry types that may appear +% in the .BIB file---e.g., functions like `article' and `book'. These +% are the routines that actually generate the .BBL-file output for +% the entry. These must all precede the READ command. In addition, the +% style designer should have a function `default.type' for unknown types. +% Note: The fields (within each list) are listed in order of appearance, +% except as described for an `inbook' or a `proceedings'. +% +% The article function is for an article in a journal. An article may +% CROSSREF another article. +% Required fields: author, title, journal, year +% Optional fields: volume, number, pages, month, note +% +% article == +% BEGIN +% output.bibitem +% output.check(format.authors,"author") +% new.block +% output.check(format.title,"title") +% new.block +% if missing$(crossref) then +% output.check(emphasize(journal),"journal") +% output(format.vol.num.pages) +% output.check(format.date,"year") +% else +% output.nonnull(format.article.crossref) +% output(format.pages) +% fi +% new.block +% output(note) +% fin.entry +% END +% +% The book function is for a whole book. A book may CROSSREF another book. +% Required fields: author or editor, title, publisher, year +% Optional fields: volume or number, series, address, edition, month, +% note +% +% book == +% BEGIN +% if empty$(author) then output.check(format.editors,"author and editor") +% else output.check(format.authors,"author") +% if missing$(crossref) then +% either.or.check("author and editor",editor) +% fi +% fi +% new.block +% output.check(format.btitle,"title") +% if missing$(crossref) then +% output(format.bvolume) +% new.block +% output(format.number.series) +% new.sentence +% output.check(publisher,"publisher") +% output(address) +% else +% new.block +% output.nonnull(format.book.crossref) +% fi +% output(format.edition) +% output.check(format.date,"year") +% new.block +% output(note) +% fin.entry +% END +% +% The other entry functions are all quite similar, so no "comment version" +% will be given for them. +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + crossref missing$ + { journal field.or.null + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} +% A booklet is a bound thing without a publisher or sponsoring institution. +% Required: title +% Optional: author, howpublished, address, month, year, note +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} +% For the conference entry type, see inproceedings. +% An inbook is a piece of a book: either a chapter and/or a page range. +% It may CROSSREF a book. If there's no volume field, the type field +% will come before number and series. +% Required: author or editor, title, chapter and/or pages, publisher,year +% Optional: volume or number, series, type, address, edition, month, note +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} +% An incollection is like inbook, but where there is a separate title +% for the referenced thing (and perhaps an editor for the whole). +% An incollection may CROSSREF a book. +% Required: author, title, booktitle, publisher, year +% Optional: editor, volume or number, series, type, chapter, pages, +% address, edition, month, note +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} +% An inproceedings is an article in a conference proceedings, and it may +% CROSSREF a proceedings. If there's no address field, the month (& year) +% will appear just before note. +% Required: author, title, booktitle, year +% Optional: editor, volume or number, series, pages, address, month, +% organization, publisher, note +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} +% The conference function is included for Scribe compatibility. +FUNCTION {conference} { inproceedings } +% A manual is technical documentation. +% Required: title +% Optional: author, organization, address, edition, month, year, note +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} +% A mastersthesis is a Master's thesis. +% Required: author, title, school, year +% Optional: type, address, month, note +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% A misc is something that doesn't fit elsewhere. +% Required: at least one of the `optional' fields +% Optional: author, title, howpublished, month, year, note +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} +% A phdthesis is like a mastersthesis. +% Required: author, title, school, year +% Optional: type, address, month, note +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% A proceedings is a conference proceedings. +% If there is an organization but no editor field, the organization will +% appear as the first optional field (we try to make the first block nonempty); +% if there's no address field, the month (& year) will appear just before note. +% Required: title, year +% Optional: editor, volume or number, series, address, month, +% organization, publisher, note +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} +% A techreport is a technical report. +% Required: author, title, institution, year +% Optional: type, number, address, month, note +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% An unpublished is something that hasn't been published. +% Required: author, title, note +% Optional: month, year +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} +% We use entry type `misc' for an unknown type; BibTeX gives a warning. +FUNCTION {default.type} { misc } +% Here are macros for common things that may vary from style to style. +% Users are encouraged to use these macros. +% +% Months are either written out in full or abbreviated +MACRO {jan} {"Jan."} +MACRO {feb} {"Feb."} +MACRO {mar} {"Mar."} +MACRO {apr} {"Apr."} +MACRO {may} {"May"} +MACRO {jun} {"June"} +MACRO {jul} {"July"} +MACRO {aug} {"Aug."} +MACRO {sep} {"Sept."} +MACRO {oct} {"Oct."} +MACRO {nov} {"Nov."} +MACRO {dec} {"Dec."} +% Journals are either written out in full or abbreviated; +% the abbreviations are like those found in ACM publications. +% +% To get a completely different set of abbreviations, it may be best to make +% a separate .bib file with nothing but those abbreviations; users could then +% include that file name as the first argument to the \bibliography command +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. Softw. Eng."} +MACRO {ieeetc} {"IEEE Trans. Comput."} +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} +MACRO {ipl} {"Inf. Process. Lett."} +MACRO {jacm} {"J.~ACM"} +MACRO {jcss} {"J.~Comput. Syst. Sci."} +MACRO {scp} {"Sci. Comput. Programming"} +MACRO {sicomp} {"SIAM J. Comput."} +MACRO {tocs} {"ACM Trans. Comput. Syst."} +MACRO {tods} {"ACM Trans. Database Syst."} +MACRO {tog} {"ACM Trans. Gr."} +MACRO {toms} {"ACM Trans. Math. Softw."} +MACRO {toois} {"ACM Trans. Office Inf. Syst."} +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} +MACRO {tcs} {"Theoretical Comput. Sci."} +%% /usr/local/lib/tex/bibtex/phyjfull.btx, Tue Jun 30 08:37:48 1992 +%% Edit by Nelson H. F. Beebe +%% Change file names in leading comment +% Journal Title Abbreviations from the Physical Review Style and Notation +% Guide, July, 1983, in BAPS Vol. 28. +% Selected by Cris Barnes and Charles Karney, March 1988 +% IMPORTANT!! Don't make changes to this file without making the +% corresponding changes to +% phyjabb.bib +% phyjabb.btx +MACRO {advp} {"Advances in Physics"} +MACRO {ajp} {"American Journal of Physics"} +MACRO {ao} {"Applied Optics"} +MACRO {apl} {"Applied Physics Letters"} +MACRO {apj} {"Astrophysical Journal"} +MACRO {baps} {"Bulletin of the American Physical Society"} +MACRO {cpc} {"Computer Physics Communications"} +MACRO {cppcf} {"Comments on Plasma Physics and Controlled Fusion"} +MACRO {fed} {"Fusion Engineering and Design"} +MACRO {ft} {"Fusion Technology"} +MACRO {ieeens} {"IEEE Transactions on Nuclear Science"} +MACRO {ieeeps} {"IEEE Transactions on Plasma Science"} +MACRO {ijimw} {"International Journal of Infrared and Millimeter Waves"} +MACRO {ip} {"Infrared Physics"} +MACRO {jap} {"Journal of Applied Physics"} +MACRO {jcp} {"Journal of Computational Physics"} +MACRO {jetp} {"Soviet Physics-JETP"} +MACRO {jfe} {"Journal of Fusion Energy"} +MACRO {jfm} {"Journal of Fluid Mechanics"} +MACRO {jgr} {"Journal of Geophysical Research"} +MACRO {jmp} {"Journal of Mathematical Physics"} +MACRO {jne} {"Journal of Nuclear Energy"} +MACRO {jnec} {"Journal of Nuclear Energy, Part C: Plasma Physics, Accelerators, Thermonuclear Research"} +MACRO {jnm} {"Journal of Nuclear Materials"} +MACRO {josa} {"Journal of the Optical Society of America"} +MACRO {jpp} {"Journal of Plasma Physics"} +MACRO {jpsj} {"Journal of the Physical Society of Japan"} +MACRO {jvst} {"Journal of Vacuum Science and Technology"} +MACRO {nedf} {"Nuclear Engineering and Design/Fusion"} +MACRO {nf} {"Nuclear Fusion"} +MACRO {nim} {"Nuclear Instruments and Methods"} +MACRO {nimpr} {"Nuclear Instruments and Methods in Physics Research"} +MACRO {nt/f} {"Nuclear Technology/Fusion"} +MACRO {pf} {"Physics of Fluids"} +MACRO {pfa} {"Physics of Fluids A: Fluid Dynamics"} +MACRO {pfb} {"Physics of Fluids B: Plasma Physics"} +MACRO {pl} {"Physics Letters"} +MACRO {pla} {"Physics Letters A"} +MACRO {pnas} {"Proceedings of the National Academy of Sciences of the USA"} +MACRO {pp} {"Plasma Physics"} +MACRO {ppcf} {"Plasma Physics and Controlled Fusion"} +MACRO {prl} {"Physical Review Letters"} +MACRO {pr} {"Physical Review"} +MACRO {pra} {"Physical Review A: General Physics"} +MACRO {ps} {"Physica Scripta"} +MACRO {rmp} {"Reviews of Modern Physics"} +MACRO {rsi} {"Review of Scientific Instruments"} +MACRO {sjpp} {"Soviet Journal of Plasma Phys."} +MACRO {spd} {"Soviet Physics-Doklady"} +MACRO {sptp} {"Soviet Physics-Technical Physics"} +MACRO {spu} {"Soviet Physics-Uspeki"} +% Now we read in the .BIB entries. +READ +% The sortify function converts to lower case after purify$ing; it's +% used in sorting and in computing alphabetic labels after sorting +% +% The chop.word(w,len,s) function returns either s or, if the first len +% letters of s equals w (this comparison is done in the third line of the +% function's definition), it returns that part of s after w. +% This long comment applies only to alphabetic labels +% +% The format.lab.names function makes a short label by using the initials of +% the von and Last parts of the names (but if there are more than four names, +% (i.e., people) it truncates after three and adds a superscripted "+"; +% it also adds such a "+" if the last of multiple authors is "others"). +% If there is only one name, and its von and Last parts combined have just +% a single name-token ("Knuth" has a single token, "Brinch Hansen" has two), +% we take the first three letters of the last name. The boolean +% et.al.char.used tells whether we've used a superscripted "+", so that we +% know whether to include a LaTeX macro for it. +% +% format.lab.names(s) == +% BEGIN +% numnames := num.names$(s) +% if numnames > 1 then +% if numnames > 4 then +% namesleft := 3 +% else +% namesleft := numnames +% nameptr := 1 +% nameresult := "" +% while namesleft > 0 +% do +% if (name_ptr = numnames) and +% format.name$(s, nameptr, "{ff }{vv }{ll}{ jj}") = "others" +% then nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else nameresult := nameresult * +% format.name$(s, nameptr, "{v{}}{l{}}") +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% if numnames > 4 then +% nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else +% t := format.name$(s, 1, "{v{}}{l{}}") +% if text.length$(t) < 2 then % there's just one name-token +% nameresult := text.prefix$(format.name$(s,1,"{ll}"),3) +% else +% nameresult := t +% fi +% fi +% return nameresult +% END +% +% Exactly what fields we look at in constructing the primary part of the label +% depends on the entry type; this selectivity (as opposed to, say, always +% looking at author, then editor, then key) helps ensure that "ignored" fields, +% as described in the LaTeX book, really are ignored. Note that MISC is part +% of the deepest `else' clause in the nested part of calc.label; thus, any +% unrecognized entry type in the database is handled correctly. +% +% There is one auxiliary function for each of the four different sequences of +% fields we use. The first of these functions looks at the author field, and +% then, if necessary, the key field. The other three functions, which might +% look at two fields and the key field, are similar, except that the key field +% takes precedence over the organization field (for labels---not for sorting). +% +% The calc.label function calculates the preliminary label of an entry, which +% is formed by taking three letters of information from the author or editor or +% key or organization field (depending on the entry type and on what's empty, +% but ignoring a leading "The " in the organization), and appending the last +% two characters (digits) of the year. It is an error if the appropriate fields +% among author, editor, organization, and key are missing, and we use +% the first three letters of the cite$ in desperation when this happens. +% The resulting label has the year part, but not the name part, purify$ed +% (purify$ing the year allows some sorting shenanigans by the user). +% +% This function also calculates the version of the label to be used in sorting. +% +% The final label may need a trailing 'a', 'b', etc., to distinguish it from +% otherwise identical labels, but we can't calculated those "extra.label"s +% until after sorting. +% +% calc.label == +% BEGIN +% if type$ = "book" or "inbook" then +% author.editor.key.label +% else if type$ = "proceedings" then +% editor.key.organization.label +% else if type$ = "manual" then +% author.key.organization.label +% else +% author.key.label +% fi fi fi +% label := label * substring$(purify$(field.or.null(year)), -1, 2) +% % assuming we will also sort, we calculate a sort.label +% sort.label := sortify(label), but use the last four, not two, digits +% END +% When sorting, we compute the sortkey by executing "presort" on each entry. +% The presort key contains a number of "sortify"ed strings, concatenated +% with multiple blanks between them. This makes things like "brinch per" +% come before "brinch hansen per". +% +% The fields used here are: the sort.label for alphabetic labels (as set by +% calc.label), followed by the author names (or editor names or organization +% (with a leading "The " removed) or key field, depending on entry type and on +% what's empty), followed by year, followed by the first bit of the title +% (chopping off a leading "The ", "A ", or "An "). +% Names are formatted: Von Last First Junior. +% The names within a part will be separated by a single blank +% (such as "brinch hansen"), two will separate the name parts themselves +% (except the von and last), three will separate the names, +% four will separate the names from year (and from label, if alphabetic), +% and four will separate year from title. +% +% The sort.format.names function takes an argument that should be in +% BibTeX name format, and returns a string containing " "-separated +% names in the format described above. The function is almost the same +% as format.names. +% This long comment applies only to alphabetic labels, when sorted +% +% Now comes the final computation for alphabetic labels, putting in the 'a's +% and 'b's and so forth if required. This involves two passes: a forward +% pass to put in the 'b's, 'c's and so on, and a backwards pass +% to put in the 'a's (we don't want to put in 'a's unless we know there +% are 'b's). +% We have to keep track of the longest (in width$ terms) label, for use +% by the "thebibliography" environment. +% +% VAR: longest.label, last.sort.label, next.extra: string +% longest.label.width, last.extra.num: integer +% +% initialize.longest.label == +% BEGIN +% longest.label := "" +% last.sort.label := int.to.chr$(0) +% next.extra := "" +% longest.label.width := 0 +% last.extra.num := 0 +% END +% +% forward.pass == +% BEGIN +% if last.sort.label = sort.label then +% last.extra.num := last.extra.num + 1 +% extra.label := int.to.chr$(last.extra.num) +% else +% last.extra.num := chr.to.int$("a") +% extra.label := "" +% last.sort.label := sort.label +% fi +% END +% +% reverse.pass == +% BEGIN +% if next.extra = "b" then +% extra.label := "a" +% fi +% label := label * extra.label +% if width$(label) > longest.label.width then +% longest.label := label +% longest.label.width := width$(label) +% fi +% next.extra := extra.label +% END +% Now comes the computation for numeric labels. +% We use either the sorted order or original order. +% We still have to keep track of the longest (in width$ terms) label, for use +% by the "thebibliography" environment. +STRINGS { longest.label } +INTEGERS { number.label longest.label.width } +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} +% Now we're ready to start writing the .BBL file. +% We begin, if necessary, with a LaTeX macro for unnamed names in an alphabetic +% label; next comes stuff from the `preamble' command in the database files. +% Then we give an incantation containing the command +% \begin{thebibliography}{...} +% where the `...' is the longest label. +% +% We also call init.state.consts, for use by the output routines. +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +% Now we produce the output for all the entries +ITERATE {call.type$} +% Finally, we finish up by writing the `\end{thebibliography}' command. +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/phpf.bst b/Master/texmf-dist/bibtex/bst/beebe/phpf.bst new file mode 100644 index 00000000000..a55d62d9e35 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/phpf.bst @@ -0,0 +1,1877 @@ +% BibTeX styles for various physics journals (27-Feb-1990). +% This file, physics.btx, is based on the file btxbst.doc. + % Please notify Charles Karney (Karney@Princeton.EDU) + % of any bugs, improvements, etc. +% Run this file through cpp to get specific versions. I have written +% a version of cpp within Emacs. To access it put +% (autoload 'cpp "tex$bibtex:cpp" ; Use cpp for BibTeX styles +% "C preprocessor" +% t) +% into your .emacs file. Read in this file with +% emacs tex$bibtex:physics.btx +% and run cpp with e.g., +% M-x cpp aip +% Save the resulting file to tex$latex:aip.bst. +% To accomodate the variations we need (in addition to the definitions below) +% ATIT_SUPPRESS: do not include the titles of journal articles +% NAME_INVERT: put the initials last +% NAME_UPPER: convert names to all caps. +% MONTH_SUPPRESS: do not include months in journal articles +% PAREN_DATE: dates go in parens in journal articles +% DATE_FIRST: dates go before page numbers +% VOLUME_SPACE: volume set off with space (not colon) +% NUM_SUPPRESS: do not include numbers in journal articles +% BOLD_VOL: volume numbers in bold face in journal articles +% BRACKET_NOTE: notes in brackets +% PAGE_START_J: include only starting page for journal articles +% PAGE_START_O: include only starting page for other entries +% PAGE_ABBREV: abbreviate page to p. and pages to pp. +% PHYSICS_JOUR: include abbreviations for Physics journals +% COMMA_DELIMIT: use comma (instead of period) to divide a citation +% NOTE_SUPPRESS: suppress the note +% MAX_NAMES: max number of authors before using et al (0 = infinity) +% MIN_NAMES: number of authors to list with et al. +% EDIT_VAR: use "edited by ..." instead of "..., editors" +% RMP_LABELS: create RMP-style labels +% KEY_CITE: use key as label +% NAMED_REFS: use (Smith, 1988) style of citations +% CSC_NAMES: names set in caps and small caps +% JOUR_DEEMPH: don't emphasize journal name +% ETAL_EMPH: emphasize et al. +% ALT_INCOLL alternate ordering of fields in incollections +% These are all boolean (0 or 1) except for MAX_NAMES and MIN_NAMES. +% These need to satisfy 0 <= MIN_NAMES <= MAX_NAMES. +% The rule here is that if all these are defined to be zero, we revert to +% the standard styles. For that reason we initialize them all to 0. +% These are the original macros + % For Physics of Fluids, which now wants ALL the authors + % (Same as AIP but infinite names, abbreviate pages, and + % alternate incollection) +% This is the start of btxbst.doc +% BibTeX `plain' family + % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. +% Please notify Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU) of any bugs in +% these standard styles or in this documentation file. +% +% This is file btxbxt.doc; it helps document bibliography styles, +% and is also a template file that you can use to make +% several different style files, if you have access to a C preprocessor. +% For example, the standard styles were made by doing something like +% cpp -P -DPLAIN btxbst.doc plain.txt +% cpp -P -DUNSRT btxbst.doc unsrt.txt +% cpp -P -DALPHA btxbst.doc alpha.txt +% cpp -P -DABBRV btxbst.doc abbrv.txt +% and then renaming after removing unwanted comments and blank lines. +% If you don't have access, +% you can edit this file by hand to imitate the preprocessor, +% with the following explanation of the C preprocessor constructs used here. +% +% The output of the preprocessor is the same as the input, except that certain +% lines will be excluded (and some blank lines will be added). The sequence +% #if VAR +% lines to be included when VAR is not zero +% #else +% lines to be included when VAR is zero +% #endif +% (with the #-signs appearing in column 1) means that one set or the other of +% the lines are to be included depending on the value of VAR. +% The #else part is optional. Comments can be added after #else and #endif. +% Variables can be set by +% #define VAR value +% and one can also use #ifdef VAR to see if VAR has any value, and #ifndef +% to see if it has none. +% Another #if form used in this file is #if !VAR, which includes the lines +% after the #if only if VAR is zero. +% +% Convention: Use all uppercase identifiers for these preprocessor variables +% so you can spot them easily +% +% The command line to the preprocessor should define one of PLAIN, UNSRT, ALPHA +% or ABBRV (though PLAIN will be used by default if none is given), +% and the following lines will set various boolean variables to control the +% various lines that are chosen from the rest of the file. +% Each boolean variable should be set true (1) or false (0) in each style. +% Here are the current variables, and their meanings: +% 0: an alphabetic label is used (if false then a numeric +% label is used) +% 0: the entries should be sorted by label (if nonnumeric) +% and other info, like authors (if false, then +% entries remain in order of occurrence) +% 0: the authors, editors, etc., get the full names as +% given in the bibliography file (if false, the first +% names become initials) +% 1: titles of non-"books" (e.g., articles) should be +% converted to lower-case, except the first letter or +% first letter after a colon +% (if false then they appear as in the database) +% 0: months are spelled out in full (if false, then +% they're abbreviated) +% 0: macro journal names are spelled out in full +% (if false then they are abbreviated, currently +% as they appear in ACM publications) +%# define PLAIN 1 +% +% Entry formatting: Similar to that recommended by Mary-Claire van Leunen +% in "A Handbook for Scholars". Book-like titles are italicized +% (emphasized) and non-book titles are converted to sentence +% capitilization (and not enclosed in quotes). +% This file outputs a \newblock between major blocks of an entry +% (the name \newblock is analogous to the names \newline and \newpage) +% so that the user can obtain an "open" format, which has a line break +% before each block and lines after the first are indented within blocks, +% by giving the optional \documentstyle argument `openbib'; +% The default is the "closed" format---blocks runs together. +% +% Citation alphabetic label format: +% [Knu73] for single author (or editor or key) +% [AHU83] (first letters of last names) for multiple authors +% +% Citation label numberic format: +% [number] +% +% Reference list ordering for sorted, alphabetic lables: +% alphabetical by citation label, then by author(s) or whatever +% passes for author in the absence of one, then by year, +% then title +% +% Reference list ordering for sorted, numeric lables: +% alphabetical by author(s) or whatever passes +% for author in the absence of one, then by year, then title +% +% Reference list ordering for unsorted: +% by the order cited in the text +% +% History +% 12/16/84 (HWT) Original `plain' version, by Howard Trickey. +% 12/23/84 (LL) Some comments made by Leslie Lamport. +% 2/16/85 (OP) Changes based on LL's comments, Oren Patashnik. +% 2/17/85 (HWT) Template file and other standard styles made. +% 3/28/85 (OP) First release, version 0.98b for BibTeX 0.98f. +% 5/ 9/85 (OP) Version 0.98c for BibTeX 0.98i: +% fixed Theoretical Computer Science macro name; +% fixed the format.vol.num.pages function. +% 1/24/88 (OP) Version 0.99a for BibTeX 0.99a, main changes: +% assignment operator (:=) arguments reversed; +% the preamble$ function outputs the database PREAMBLE; +% entry.max$ and global.max$ (built-in) variables replace +% entry.string.max and global.string.max functions; +% alphabetizing by year then title, not just title; +% many unnecessary ties removed; \it ==> \em; +% the `alpha' style uses a superscripted `+' instead of a +% `*' for unnamed names in constructing the label; +% the `abbrv' style now uses "Mar." and "Sept."; +% the functions calc.label and presort now look at just +% the fields they're supposed to; +% BOOKLET, MASTERSTHESIS, TECHREPORT use nonbook titles; +% INBOOK and INCOLLECTION take an optional type (e.g. +% type = "Section"), overriding the default "chapter"; +% BOOK, INBOOK, INCOLLECTION, and PROCEEDINGS now allow +% either volume or number, not just volume; +% INCOLLECTION now allows an edition and series field; +% PROCEEDINGS and INPROCEEDINGS now use the address field +% to tell where a conference was held; +% INPROCEEDINGS and PROCEEDINGS now allow either volume +% or number, and also a series field; +% MASTERSTHESIS and PHDTHESIS accept types other than +% "Master's thesis" and "PhD thesis"; +% UNPUBLISHED now outputs, in one block, note then date; +% MANUAL now prints out the organization in +% the first block if the author field is empty; +% MISC can't be empty---it requires some optional field. +% 3/23/88 (OP) Version 0.99b for BibTeX 0.99c---changed the three +% erroneous occurrences of `cite ' to `cite$ '; this +% change didn't affect the four standard styles, so the +% 0.99a versions of those styles are still current. +% +% The ENTRY declaration +% Like Scribe's (according to pages 231-2 of the April '84 edition), +% but no fullauthor or editors fields because BibTeX does name handling. +% The annote field is commented out here because this family doesn't +% include an annotated bibliography style. And in addition to the fields +% listed here, BibTeX has a built-in crossref field, explained later. +ENTRY +% Fields: + { address +% Usually the address of a publisher or other type of organization. +% Put information in this field only if it helps the reader find the +% thing---for example you should omit the address of a major +% publisher entirely. For a PROCEEDINGS or an INPROCEEDINGS, +% however, it's the address of the conference; for those two entry +% types, include the publisher's or organization's address, if +% necessary, in the publisher or organization field. +% annote +% Long annotation---for annotated bibliographies (begins sentence). + author +% Name(s) of author(s), in BibTeX name format. + booktitle +% Book title when the thing being referenced isn't the whole book. +% For book entries, the title field should be used instead. + chapter +% Chapter (or section or whatever) number. + edition +% Edition of a book---should be an ordinal (e.g., "Second"). + editor +% Name(s) of editor(s), in BibTeX name format. +% If there is also an author field, then the editor field should be +% for the book or collection that the work appears in. + howpublished +% How something strange has been published (begins sentence). + institution +% Sponsoring institution of a technical report. + journal +% Journal name (macros are provided for many). + key +% Alphabetizing, labeling, and cross-referencing key +% (needed when an entry has no author or editor). + month +% Month (macros are provided). + note +% To help the reader find a reference (begins sentence). + number +% Number of a journal or technical report, or of a work in a series. + organization +% Organization sponsoring a conference (or publishing a manual); if +% the editor (or author) is empty, and if the organization produces +% an awkward label or cross reference, you should put appropriately +% condensed organization information in the key field as well. + pages +% Page number or numbers (use `--' to separate a range, use `+' +% to indicate pages following that don't form a simple range). + publisher +% Publisher name. + school +% School name (for theses). + series +% The name of a series or set of books. +% An individual book will will also have it's own title. + title +% The title of the thing you're referred to. + type +% Type of a Techreport (e.g., "Research Note") to be used instead of +% the default "Technical Report"; or, similarly, the type of a +% thesis; or of a part of a book. + volume +% The volume number of a journal or multivolume work. + year +% The year should contain only numerals (technically, it should end +% with four numerals, after purification; doesn't a begin sentence). + } +% There are no integer entry variables + {} +% These string entry variables are used to form the citation label. +% In a storage pinch, sort.label can be easily computed on the fly. + { label } +% Each entry function starts by calling output.bibitem, to write the +% \bibitem and its arguments to the .BBL file. Then the various fields +% are formatted and printed by output or output.check. Those functions +% handle the writing of separators (commas, periods, \newblock's), +% taking care not to do so when they are passed a null string. +% Finally, fin.entry is called to add the final period and finish the +% entry. +% +% A bibliographic reference is formatted into a number of `blocks': +% in the open format, a block begins on a new line and subsequent +% lines of the block are indented. A block may contain more than +% one sentence (well, not a grammatical sentence, but something to +% be ended with a sentence ending period). The entry functions should +% call new.block whenever a block other than the first is about to be +% started. They should call new.sentence whenever a new sentence is +% to be started. The output functions will ensure that if two +% new.sentence's occur without any non-null string being output between +% them then there won't be two periods output. Similarly for two +% successive new.block's. +% +% The output routines don't write their argument immediately. +% Instead, by convention, that argument is saved on the stack to be +% output next time (when we'll know what separator needs to come +% after it). Meanwhile, the output routine has to pop the pending +% output off the stack, append any needed separator, and write it. +% +% To tell which separator is needed, we maintain an output.state. +% It will be one of these values: +% before.all just after the \bibitem +% mid.sentence in the middle of a sentence: comma needed +% if more sentence is output +% after.sentence just after a sentence: period needed +% after.block just after a block (and sentence): +% period and \newblock needed. +% Note: These styles don't use after.sentence +% +% VAR: output.state : INTEGER -- state variable for output +% +% The output.nonnull function saves its argument (assumed to be nonnull) +% on the stack, and writes the old saved value followed by any needed +% separator. The ordering of the tests is decreasing frequency of +% occurrence. +% +% output.nonnull(s) == +% BEGIN +% s := argument on stack +% if output.state = mid.sentence then +% write$(pop() * ", ") +% -- "pop" isn't a function: just use stack top +% else +% if output.state = after.block then +% write$(add.period$(pop())) +% newline$ +% write$("\newblock ") +% else +% if output.state = before.all then +% write$(pop()) +% else -- output.state should be after.sentence +% write$(add.period$(pop()) * " ") +% fi +% fi +% output.state := mid.sentence +% fi +% push s on stack +% END +% +% The output function calls output.nonnull if its argument is non-empty; +% its argument may be a missing field (thus, not necessarily a string) +% +% output(s) == +% BEGIN +% if not empty$(s) then output.nonnull(s) +% fi +% END +% +% The output.check function is the same as the output function except that, if +% necessary, output.check warns the user that the t field shouldn't be empty +% (this is because it probably won't be a good reference without the field; +% the entry functions try to make the formatting look reasonable even when +% such fields are empty). +% +% output.check(s,t) == +% BEGIN +% if empty$(s) then +% warning$("empty " * t * " in " * cite$) +% else output.nonnull(s) +% fi +% END +% +% The output.bibitem function writes the \bibitem for the current entry +% (the label should already have been set up), and sets up the separator +% state for the output functions. And, it leaves a string on the stack +% as per the output convention. +% +% output.bibitem == +% BEGIN +% newline$ +% write$("\bibitem[") % for alphabetic labels, +% write$(label) % these three lines +% write$("]{") % are used +% write$("\bibitem{") % this line for numeric labels +% write$(cite$) +% write$("}") +% push "" on stack +% output.state := before.all +% END +% +% The fin.entry function finishes off an entry by adding a period to the +% string remaining on the stack. If the state is still before.all +% then nothing was produced for this entry, so the result will look bad, +% but the user deserves it. (We don't omit the whole entry because the +% entry was cited, and a bibitem is needed to define the citation label.) +% +% fin.entry == +% BEGIN +% write$(add.period$(pop())) +% newline$ +% END +% +% The new.block function prepares for a new block to be output, and +% new.sentence prepares for a new sentence. +% +% new.block == +% BEGIN +% if output.state <> before.all then +% output.state := after.block +% fi +% END +% +% new.sentence == +% BEGIN +% if output.state <> after.block then +% if output.state <> before.all then +% output.state := after.sentence +% fi +% fi +% END +% +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 := +} +% the variables s and t are temporary string holders +STRINGS { s t } +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { "," * 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} +% This function finishes all entries. +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} +FUNCTION {new.sentence} +{ skip$ +} +% These three functions pop one or two (integer) arguments from the stack +% and push a single one, either 0 or 1. +% The 'skip$ in the `and' and `or' functions are used because +% the corresponding if$ would be idempotent +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +% Sometimes we begin a new block only if the block will be big enough. The +% new.block.checka function issues a new.block if its argument is nonempty; +% new.block.checkb does the same if either of its TWO arguments is nonempty. +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +% The new.sentence.check functions are analogous. +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} +% Here are some functions for formatting chunks of an entry. +% By convention they either produce a string that can be followed by +% a comma or period (using add.period$, so it is OK to end in a period), +% or they produce the null string. +% +% A useful utility is the field.or.null function, which checks if the +% argument is the result of pushing a `missing' field (one for which no +% assignment was made when the current entry was read in from the database) +% or the result of pushing a string having no non-white-space characters. +% It returns the null string if so, otherwise it returns the field string. +% Its main (but not only) purpose is to guarantee that what's left on the +% stack is a string rather than a missing field. +% +% field.or.null(s) == +% BEGIN +% if empty$(s) then return "" +% else return s +% END +% +% Another helper function is emphasize, which returns the argument emphazised, +% if that is non-empty, otherwise it returns the null string. Italic +% corrections aren't used, so this function should be used when punctation +% will follow the result. +% +% emphasize(s) == +% BEGIN +% if empty$(s) then return "" +% else return "{\em " * s * "}" +% +% The format.names function formats the argument (which should be in +% BibTeX name format) into "First Von Last, Junior", separated by commas +% and with an "and" before the last (but ending with "et~al." if the last +% of multiple authors is "others"). This function's argument should always +% contain at least one name. +% +% VAR: nameptr, namesleft, numnames: INTEGER +% pseudoVAR: nameresult: STRING (it's what's accumulated on the stack) +% +% format.names(s) == +% BEGIN +% nameptr := 1 +% numnames := num.names$(s) +% namesleft := numnames +% while namesleft > 0 +% do +% % for full names: +% t := format.name$(s, nameptr, "{ff~}{vv~}{ll}{, jj}") +% % for abbreviated first names: +% t := format.name$(s, nameptr, "{f.~}{vv~}{ll}{, jj}") +% if nameptr > 1 then +% if namesleft > 1 then nameresult := nameresult * ", " * t +% else if numnames > 2 +% then nameresult := nameresult * "," +% fi +% if t = "others" +% then nameresult := nameresult * " et~al." +% else nameresult := nameresult * " and " * t +% fi +% fi +% else nameresult := t +% fi +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% return nameresult +% END +% +% The format.authors function returns the result of format.names(author) +% if the author is present, or else it returns the null string +% +% format.authors == +% BEGIN +% if empty$(author) then return "" +% else return format.names(author) +% fi +% END +% +% Format.editors is like format.authors, but it uses the editor field, +% and appends ", editor" or ", editors" +% +% format.editors == +% BEGIN +% if empty$(editor) then return "" +% else +% if num.names$(editor) > 1 then +% return format.names(editor) * ", editors" +% else +% return format.names(editor) * ", editor" +% fi +% fi +% END +% +% Other formatting functions are similar, so no "comment version" will be +% given for them. +% +% The `pop$' in this function gets rid of the duplicate `empty' value and +% the `skip$' returns the duplicate field value +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} +FUNCTION {embolden} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} +FUNCTION {paren} +{ duplicate$ empty$ + { pop$ "" } + { "(" swap$ * ")" * } + if$ +} +INTEGERS { nameptr namesleft numnames } +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} +FUNCTION {format.edited} +{ editor empty$ + { "" } + { "edited by " editor format.names * } + if$ +} +% The format.title function is used for non-book-like titles. +% For most styles we convert to lowercase (except for the very first letter, +% and except for the first one after a colon (followed by whitespace)), +% and hope the user has brace-surrounded words that need to stay capitilized; +% for some styles, however, we leave it as it is in the database. +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} +% By default, BibTeX sets the global integer variable global.max$ to the BibTeX +% constant glob_str_size, the maximum length of a global string variable. +% Analogously, BibTeX sets the global integer variable entry.max$ to +% ent_str_size, the maximum length of an entry string variable. +% The style designer may change these if necessary (but this is unlikely) +% The n.dashify function makes each single `-' in a string a double `--' +% if it's not already +% +% pseudoVAR: pageresult: STRING (it's what's accumulated on the stack) +% +% n.dashify(s) == +% BEGIN +% t := s +% pageresult := "" +% while (not empty$(t)) +% do +% if (first character of t = "-") +% then +% if (next character isn't) +% then +% pageresult := pageresult * "--" +% t := t with the "-" removed +% else +% while (first character of t = "-") +% do +% pageresult := pageresult * "-" +% t := t with the "-" removed +% od +% fi +% else +% pageresult := pageresult * the first character +% t := t with the first character removed +% fi +% od +% return pageresult +% END +FUNCTION {n.dashify} +{ '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 {first.page} +{ 't := + "" + { t empty$ not t #1 #1 substring$ "-" = not and } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + while$ +} +% The format.date function is for the month and year, but we give a warning if +% there's an empty year but the month is there, and we return the empty string +% if they're both empty. +FUNCTION {format.date} +{ year empty$ + { "" } + 'year + if$ +} +% The format.btitle is for formatting the title field when it is a book-like +% entry---the style used here keeps it in uppers-and-lowers and emphasizes it. +FUNCTION {format.btitle} +{ title emphasize +} +% For several functions we'll need to connect two strings with a +% tie (~) if the second one isn't very long (fewer than 3 characters). +% The tie.or.space.connect function does that. It concatenates the two +% strings on top of the stack, along with either a tie or space between +% them, and puts this concatenation back onto the stack: +% +% tie.or.space.connect(str1,str2) == +% BEGIN +% if text.length$(str2) < 3 +% then return the concatenation of str1, "~", and str2 +% else return the concatenation of str1, " ", and str2 +% END +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} +% The either.or.check function complains if both fields or an either-or pair +% are nonempty. +% +% either.or.check(t,s) == +% BEGIN +% if empty$(s) then +% warning$(can't use both " * t * " fields in " * cite$) +% fi +% END +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +% The format.bvolume function is for formatting the volume and perhaps +% series name of a multivolume work. If both a volume and a series field +% are there, we assume the series field is the title of the whole multivolume +% work (the title field should be the title of the thing being referred to), +% and we add an "of ". This function is called in mid-sentence. +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +% The format.number.series function is for formatting the series name +% and perhaps number of a work in a series. This function is similar to +% format.bvolume, although for this one the series must exist (and the +% volume must not exist). If the number field is empty we output either +% the series field unchanged if it exists or else the null string. +% If both the number and series fields are there we assume the series field +% gives the name of the whole series (the title field should be the title +% of the work being one referred to), and we add an "in ". +% We capitilize Number when this function is used at the beginning of a block. +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} +% The format.edition function appends " edition" to the edition, if present. +% We lowercase the edition (it should be something like "Third"), because +% this doesn't start a sentence. +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + if$ +} +% The format.pages function is used for formatting a page range in a book +% (and in rare circumstances, an article). +% +% The multi.page.check function examines the page field for a "-" or "," or "+" +% so that format.pages can use "page" instead of "pages" if none exists. +% Note: global.max$ here means "take the rest of the string" +% +% VAR: multiresult: INTEGER (actually, a boolean) +% +% multi.page.check(s) == +% BEGIN +% t := s +% multiresult := false +% while ((not multiresult) and (not empty$(t))) +% do +% if (first character of t = "-" or "," or "+") +% then multiresult := true +% else t := t with the first character removed +% fi +% od +% return multiresult +% END +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 +} +% This function doesn't begin a sentence so "pages" isn't capitalized. +% Other functions that use this should keep that in mind. +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp." pages n.dashify tie.or.space.connect } + { "p." pages tie.or.space.connect } + if$ + } + if$ +} +FUNCTION {format.pages.a} +{ pages empty$ + { "" } + { "p." pages first.page tie.or.space.connect } + if$ +} +% The format.vol.num.pages function is for the volume, number, and page range +% of a journal article. We use the format: vol(number):pages, with some +% variations for empty fields. This doesn't begin a sentence. +FUNCTION {format.vol.num.pages} +{ volume field.or.null embolden + " " swap$ * * + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages.a } + { ", " * pages first.page * } + if$ + } + if$ +} +% The format.chapter.pages, if the chapter is present, puts whatever is in the +% type field (or else "chapter" if type is empty) in front of a chapter number. +% It then appends the pages, if present. This doesn't begin a sentence. +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} +% The format.in.ed.booktitle function is used for starting out a sentence +% that begins "In ", putting an editor before the title if one +% exists. +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "in " booktitle emphasize * } + { "in " booktitle emphasize * ", " * format.edited * } + if$ + } + if$ +} +% The function empty.misc.check complains if all six fields are empty, and +% if there's been no sorting or alphabetic-label complaint. +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} +% The function format.thesis.type returns either the (case-changed) type field, +% if it is defined, or else the default string already on the stack +% (like "Master's thesis" or "PhD thesis"). +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} +% The function format.tr.number makes a string starting with "Technical Report" +% (or type, if that field is defined), followed by the number if there is one; +% it returns the starting part (with a case change) even if there is no number. +% This is used at the beginning of a sentence. +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} +% Now come the cross-referencing functions (these are invoked because +% one entry in the database file(s) cross-references another, by giving +% the other entry's database key in a `crossref' field). This feature +% allows one or more titled things that are part of a larger titled +% thing to cross-reference the larger thing. These styles allow for +% five posibilities: (1) an ARTICLE may cross-reference an ARTICLE; +% (2) a BOOK, (3) INBOOK, or (4) INCOLLECTION may cross-reference a BOOK; +% or (5) an INPROCEEDINGS may cross-reference a PROCEEDINGS. +% Each of these is explained in more detail later. +% +% An ARTICLE entry type may cross reference another ARTICLE (this is +% intended for when an entire journal is devoted to a single topic--- +% but since there is no JOURNAL entry type, the journal, too, should be +% classified as an ARTICLE but without the author and title fields). +% This will result in two warning messages for the journal's entry +% if it's included in the reference list, but such is life. +% +% format.article.crossref == +% BEGIN +% if empty$(key) then +% if empty$(journal) then +% warning$("need key or journal for " * cite$ * +% " to crossref " * crossref) +% return(" \cite{" * crossref * "}") +% else +% return("In " * emphazise.correct (journal) * +% " \cite{" * crossref * "}") +% fi +% else +% return("In " * key * " \cite{" * crossref * "}") +% fi +% END +% +% The other cross-referencing functions are similar, so no "comment version" +% will be given for them. +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In " journal * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} +% We use just the last names of editors for a cross reference: either +% "editor", or "editor1 and editor2", or "editor1 et~al." depending on +% whether there are one, or two, or more than two editors. +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} +% A BOOK (or INBOOK) entry type (assumed to be for a single volume in a +% multivolume work) may cross reference another BOOK (the entire multivolume). +% Usually there will be an editor, in which case we use that to construct the +% cross reference; otherwise we use a nonempty key field or else the series +% field (since the series gives the title of the multivolume work). +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} +% An INCOLLECTION entry type may cross reference a BOOK (assumed to be the +% collection), or an INPROCEEDINGS may cross reference a PROCEEDINGS. +% Often there will be an editor, in which case we use that to construct +% the cross reference; otherwise we use a nonempty key field or else +% the booktitle field (which gives the cross-referenced work's title). +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} +% Now we define the type functions for all entry types that may appear +% in the .BIB file---e.g., functions like `article' and `book'. These +% are the routines that actually generate the .BBL-file output for +% the entry. These must all precede the READ command. In addition, the +% style designer should have a function `default.type' for unknown types. +% Note: The fields (within each list) are listed in order of appearance, +% except as described for an `inbook' or a `proceedings'. +% +% The article function is for an article in a journal. An article may +% CROSSREF another article. +% Required fields: author, title, journal, year +% Optional fields: volume, number, pages, month, note +% +% article == +% BEGIN +% output.bibitem +% output.check(format.authors,"author") +% new.block +% output.check(format.title,"title") +% new.block +% if missing$(crossref) then +% output.check(emphasize(journal),"journal") +% output(format.vol.num.pages) +% output.check(format.date,"year") +% else +% output.nonnull(format.article.crossref) +% output(format.pages) +% fi +% new.block +% output(note) +% fin.entry +% END +% +% The book function is for a whole book. A book may CROSSREF another book. +% Required fields: author or editor, title, publisher, year +% Optional fields: volume or number, series, address, edition, month, +% note +% +% book == +% BEGIN +% if empty$(author) then output.check(format.editors,"author and editor") +% else output.check(format.authors,"author") +% if missing$(crossref) then +% either.or.check("author and editor",editor) +% fi +% fi +% new.block +% output.check(format.btitle,"title") +% if missing$(crossref) then +% output(format.bvolume) +% new.block +% output(format.number.series) +% new.sentence +% output.check(publisher,"publisher") +% output(address) +% else +% new.block +% output.nonnull(format.book.crossref) +% fi +% output(format.edition) +% output.check(format.date,"year") +% new.block +% output(note) +% fin.entry +% END +% +% The other entry functions are all quite similar, so no "comment version" +% will be given for them. +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + crossref missing$ + { journal field.or.null + format.vol.num.pages + format.date empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.date paren } + { " " * format.date paren * } + if$ + } + if$ + output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} +% A booklet is a bound thing without a publisher or sponsoring institution. +% Required: title +% Optional: author, howpublished, address, month, year, note +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} +% For the conference entry type, see inproceedings. +% An inbook is a piece of a book: either a chapter and/or a page range. +% It may CROSSREF a book. If there's no volume field, the type field +% will come before number and series. +% Required: author or editor, title, chapter and/or pages, publisher,year +% Optional: volume or number, series, type, address, edition, month, note +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} +% An incollection is like inbook, but where there is a separate title +% for the referenced thing (and perhaps an editor for the whole). +% An incollection may CROSSREF a book. +% Required: author, title, booktitle, publisher, year +% Optional: editor, volume or number, series, type, chapter, pages, +% address, edition, month, note +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} +% An inproceedings is an article in a conference proceedings, and it may +% CROSSREF a proceedings. If there's no address field, the month (& year) +% will appear just before note. +% Required: author, title, booktitle, year +% Optional: editor, volume or number, series, pages, address, month, +% organization, publisher, note +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} +% The conference function is included for Scribe compatibility. +FUNCTION {conference} { inproceedings } +% A manual is technical documentation. +% Required: title +% Optional: author, organization, address, edition, month, year, note +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} +% A mastersthesis is a Master's thesis. +% Required: author, title, school, year +% Optional: type, address, month, note +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% A misc is something that doesn't fit elsewhere. +% Required: at least one of the `optional' fields +% Optional: author, title, howpublished, month, year, note +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} +% A phdthesis is like a mastersthesis. +% Required: author, title, school, year +% Optional: type, address, month, note +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% A proceedings is a conference proceedings. +% If there is an organization but no editor field, the organization will +% appear as the first optional field (we try to make the first block nonempty); +% if there's no address field, the month (& year) will appear just before note. +% Required: title, year +% Optional: editor, volume or number, series, address, month, +% organization, publisher, note +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} +% A techreport is a technical report. +% Required: author, title, institution, year +% Optional: type, number, address, month, note +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% An unpublished is something that hasn't been published. +% Required: author, title, note +% Optional: month, year +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} +% We use entry type `misc' for an unknown type; BibTeX gives a warning. +FUNCTION {default.type} { misc } +% Here are macros for common things that may vary from style to style. +% Users are encouraged to use these macros. +% +% Months are either written out in full or abbreviated +MACRO {jan} {"Jan."} +MACRO {feb} {"Feb."} +MACRO {mar} {"Mar."} +MACRO {apr} {"Apr."} +MACRO {may} {"May"} +MACRO {jun} {"June"} +MACRO {jul} {"July"} +MACRO {aug} {"Aug."} +MACRO {sep} {"Sept."} +MACRO {oct} {"Oct."} +MACRO {nov} {"Nov."} +MACRO {dec} {"Dec."} +% Journals are either written out in full or abbreviated; +% the abbreviations are like those found in ACM publications. +% +% To get a completely different set of abbreviations, it may be best to make +% a separate .bib file with nothing but those abbreviations; users could then +% include that file name as the first argument to the \bibliography command +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. Softw. Eng."} +MACRO {ieeetc} {"IEEE Trans. Comput."} +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} +MACRO {ipl} {"Inf. Process. Lett."} +MACRO {jacm} {"J.~ACM"} +MACRO {jcss} {"J.~Comput. Syst. Sci."} +MACRO {scp} {"Sci. Comput. Programming"} +MACRO {sicomp} {"SIAM J. Comput."} +MACRO {tocs} {"ACM Trans. Comput. Syst."} +MACRO {tods} {"ACM Trans. Database Syst."} +MACRO {tog} {"ACM Trans. Gr."} +MACRO {toms} {"ACM Trans. Math. Softw."} +MACRO {toois} {"ACM Trans. Office Inf. Syst."} +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} +MACRO {tcs} {"Theoretical Comput. Sci."} +%% /usr/local/lib/tex/bibtex/phyjfull.btx, Tue Jun 30 08:37:48 1992 +%% Edit by Nelson H. F. Beebe +%% Change file names in leading comment +% Journal Title Abbreviations from the Physical Review Style and Notation +% Guide, July, 1983, in BAPS Vol. 28. +% Selected by Cris Barnes and Charles Karney, March 1988 +% IMPORTANT!! Don't make changes to this file without making the +% corresponding changes to +% phyjabb.bib +% phyjabb.btx +MACRO {advp} {"Advances in Physics"} +MACRO {ajp} {"American Journal of Physics"} +MACRO {ao} {"Applied Optics"} +MACRO {apl} {"Applied Physics Letters"} +MACRO {apj} {"Astrophysical Journal"} +MACRO {baps} {"Bulletin of the American Physical Society"} +MACRO {cpc} {"Computer Physics Communications"} +MACRO {cppcf} {"Comments on Plasma Physics and Controlled Fusion"} +MACRO {fed} {"Fusion Engineering and Design"} +MACRO {ft} {"Fusion Technology"} +MACRO {ieeens} {"IEEE Transactions on Nuclear Science"} +MACRO {ieeeps} {"IEEE Transactions on Plasma Science"} +MACRO {ijimw} {"International Journal of Infrared and Millimeter Waves"} +MACRO {ip} {"Infrared Physics"} +MACRO {jap} {"Journal of Applied Physics"} +MACRO {jcp} {"Journal of Computational Physics"} +MACRO {jetp} {"Soviet Physics-JETP"} +MACRO {jfe} {"Journal of Fusion Energy"} +MACRO {jfm} {"Journal of Fluid Mechanics"} +MACRO {jgr} {"Journal of Geophysical Research"} +MACRO {jmp} {"Journal of Mathematical Physics"} +MACRO {jne} {"Journal of Nuclear Energy"} +MACRO {jnec} {"Journal of Nuclear Energy, Part C: Plasma Physics, Accelerators, Thermonuclear Research"} +MACRO {jnm} {"Journal of Nuclear Materials"} +MACRO {josa} {"Journal of the Optical Society of America"} +MACRO {jpp} {"Journal of Plasma Physics"} +MACRO {jpsj} {"Journal of the Physical Society of Japan"} +MACRO {jvst} {"Journal of Vacuum Science and Technology"} +MACRO {nedf} {"Nuclear Engineering and Design/Fusion"} +MACRO {nf} {"Nuclear Fusion"} +MACRO {nim} {"Nuclear Instruments and Methods"} +MACRO {nimpr} {"Nuclear Instruments and Methods in Physics Research"} +MACRO {nt/f} {"Nuclear Technology/Fusion"} +MACRO {pf} {"Physics of Fluids"} +MACRO {pfa} {"Physics of Fluids A: Fluid Dynamics"} +MACRO {pfb} {"Physics of Fluids B: Plasma Physics"} +MACRO {pl} {"Physics Letters"} +MACRO {pla} {"Physics Letters A"} +MACRO {pnas} {"Proceedings of the National Academy of Sciences of the USA"} +MACRO {pp} {"Plasma Physics"} +MACRO {ppcf} {"Plasma Physics and Controlled Fusion"} +MACRO {prl} {"Physical Review Letters"} +MACRO {pr} {"Physical Review"} +MACRO {pra} {"Physical Review A: General Physics"} +MACRO {ps} {"Physica Scripta"} +MACRO {rmp} {"Reviews of Modern Physics"} +MACRO {rsi} {"Review of Scientific Instruments"} +MACRO {sjpp} {"Soviet Journal of Plasma Phys."} +MACRO {spd} {"Soviet Physics-Doklady"} +MACRO {sptp} {"Soviet Physics-Technical Physics"} +MACRO {spu} {"Soviet Physics-Uspeki"} +% Now we read in the .BIB entries. +READ +% The sortify function converts to lower case after purify$ing; it's +% used in sorting and in computing alphabetic labels after sorting +% +% The chop.word(w,len,s) function returns either s or, if the first len +% letters of s equals w (this comparison is done in the third line of the +% function's definition), it returns that part of s after w. +% This long comment applies only to alphabetic labels +% +% The format.lab.names function makes a short label by using the initials of +% the von and Last parts of the names (but if there are more than four names, +% (i.e., people) it truncates after three and adds a superscripted "+"; +% it also adds such a "+" if the last of multiple authors is "others"). +% If there is only one name, and its von and Last parts combined have just +% a single name-token ("Knuth" has a single token, "Brinch Hansen" has two), +% we take the first three letters of the last name. The boolean +% et.al.char.used tells whether we've used a superscripted "+", so that we +% know whether to include a LaTeX macro for it. +% +% format.lab.names(s) == +% BEGIN +% numnames := num.names$(s) +% if numnames > 1 then +% if numnames > 4 then +% namesleft := 3 +% else +% namesleft := numnames +% nameptr := 1 +% nameresult := "" +% while namesleft > 0 +% do +% if (name_ptr = numnames) and +% format.name$(s, nameptr, "{ff }{vv }{ll}{ jj}") = "others" +% then nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else nameresult := nameresult * +% format.name$(s, nameptr, "{v{}}{l{}}") +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% if numnames > 4 then +% nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else +% t := format.name$(s, 1, "{v{}}{l{}}") +% if text.length$(t) < 2 then % there's just one name-token +% nameresult := text.prefix$(format.name$(s,1,"{ll}"),3) +% else +% nameresult := t +% fi +% fi +% return nameresult +% END +% +% Exactly what fields we look at in constructing the primary part of the label +% depends on the entry type; this selectivity (as opposed to, say, always +% looking at author, then editor, then key) helps ensure that "ignored" fields, +% as described in the LaTeX book, really are ignored. Note that MISC is part +% of the deepest `else' clause in the nested part of calc.label; thus, any +% unrecognized entry type in the database is handled correctly. +% +% There is one auxiliary function for each of the four different sequences of +% fields we use. The first of these functions looks at the author field, and +% then, if necessary, the key field. The other three functions, which might +% look at two fields and the key field, are similar, except that the key field +% takes precedence over the organization field (for labels---not for sorting). +% +% The calc.label function calculates the preliminary label of an entry, which +% is formed by taking three letters of information from the author or editor or +% key or organization field (depending on the entry type and on what's empty, +% but ignoring a leading "The " in the organization), and appending the last +% two characters (digits) of the year. It is an error if the appropriate fields +% among author, editor, organization, and key are missing, and we use +% the first three letters of the cite$ in desperation when this happens. +% The resulting label has the year part, but not the name part, purify$ed +% (purify$ing the year allows some sorting shenanigans by the user). +% +% This function also calculates the version of the label to be used in sorting. +% +% The final label may need a trailing 'a', 'b', etc., to distinguish it from +% otherwise identical labels, but we can't calculated those "extra.label"s +% until after sorting. +% +% calc.label == +% BEGIN +% if type$ = "book" or "inbook" then +% author.editor.key.label +% else if type$ = "proceedings" then +% editor.key.organization.label +% else if type$ = "manual" then +% author.key.organization.label +% else +% author.key.label +% fi fi fi +% label := label * substring$(purify$(field.or.null(year)), -1, 2) +% % assuming we will also sort, we calculate a sort.label +% sort.label := sortify(label), but use the last four, not two, digits +% END +% When sorting, we compute the sortkey by executing "presort" on each entry. +% The presort key contains a number of "sortify"ed strings, concatenated +% with multiple blanks between them. This makes things like "brinch per" +% come before "brinch hansen per". +% +% The fields used here are: the sort.label for alphabetic labels (as set by +% calc.label), followed by the author names (or editor names or organization +% (with a leading "The " removed) or key field, depending on entry type and on +% what's empty), followed by year, followed by the first bit of the title +% (chopping off a leading "The ", "A ", or "An "). +% Names are formatted: Von Last First Junior. +% The names within a part will be separated by a single blank +% (such as "brinch hansen"), two will separate the name parts themselves +% (except the von and last), three will separate the names, +% four will separate the names from year (and from label, if alphabetic), +% and four will separate year from title. +% +% The sort.format.names function takes an argument that should be in +% BibTeX name format, and returns a string containing " "-separated +% names in the format described above. The function is almost the same +% as format.names. +% This long comment applies only to alphabetic labels, when sorted +% +% Now comes the final computation for alphabetic labels, putting in the 'a's +% and 'b's and so forth if required. This involves two passes: a forward +% pass to put in the 'b's, 'c's and so on, and a backwards pass +% to put in the 'a's (we don't want to put in 'a's unless we know there +% are 'b's). +% We have to keep track of the longest (in width$ terms) label, for use +% by the "thebibliography" environment. +% +% VAR: longest.label, last.sort.label, next.extra: string +% longest.label.width, last.extra.num: integer +% +% initialize.longest.label == +% BEGIN +% longest.label := "" +% last.sort.label := int.to.chr$(0) +% next.extra := "" +% longest.label.width := 0 +% last.extra.num := 0 +% END +% +% forward.pass == +% BEGIN +% if last.sort.label = sort.label then +% last.extra.num := last.extra.num + 1 +% extra.label := int.to.chr$(last.extra.num) +% else +% last.extra.num := chr.to.int$("a") +% extra.label := "" +% last.sort.label := sort.label +% fi +% END +% +% reverse.pass == +% BEGIN +% if next.extra = "b" then +% extra.label := "a" +% fi +% label := label * extra.label +% if width$(label) > longest.label.width then +% longest.label := label +% longest.label.width := width$(label) +% fi +% next.extra := extra.label +% END +% Now comes the computation for numeric labels. +% We use either the sorted order or original order. +% We still have to keep track of the longest (in width$ terms) label, for use +% by the "thebibliography" environment. +STRINGS { longest.label } +INTEGERS { number.label longest.label.width } +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} +% Now we're ready to start writing the .BBL file. +% We begin, if necessary, with a LaTeX macro for unnamed names in an alphabetic +% label; next comes stuff from the `preamble' command in the database files. +% Then we give an incantation containing the command +% \begin{thebibliography}{...} +% where the `...' is the longest label. +% +% We also call init.state.consts, for use by the output routines. +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +% Now we produce the output for all the entries +ITERATE {call.type$} +% Finally, we finish up by writing the `\end{thebibliography}' command. +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/phppcf.bst b/Master/texmf-dist/bibtex/bst/beebe/phppcf.bst new file mode 100644 index 00000000000..2ca7056ef6e --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/phppcf.bst @@ -0,0 +1,2009 @@ +% BibTeX styles for various physics journals (27-Feb-1990). +% This file, physics.btx, is based on the file btxbst.doc. + % Please notify Charles Karney (Karney@Princeton.EDU) + % of any bugs, improvements, etc. +% Run this file through cpp to get specific versions. I have written +% a version of cpp within Emacs. To access it put +% (autoload 'cpp "tex$bibtex:cpp" ; Use cpp for BibTeX styles +% "C preprocessor" +% t) +% into your .emacs file. Read in this file with +% emacs tex$bibtex:physics.btx +% and run cpp with e.g., +% M-x cpp aip +% Save the resulting file to tex$latex:aip.bst. +% To accomodate the variations we need (in addition to the definitions below) +% ATIT_SUPPRESS: do not include the titles of journal articles +% NAME_INVERT: put the initials last +% NAME_UPPER: convert names to all caps. +% MONTH_SUPPRESS: do not include months in journal articles +% PAREN_DATE: dates go in parens in journal articles +% DATE_FIRST: dates go before page numbers +% VOLUME_SPACE: volume set off with space (not colon) +% NUM_SUPPRESS: do not include numbers in journal articles +% BOLD_VOL: volume numbers in bold face in journal articles +% BRACKET_NOTE: notes in brackets +% PAGE_START_J: include only starting page for journal articles +% PAGE_START_O: include only starting page for other entries +% PAGE_ABBREV: abbreviate page to p. and pages to pp. +% PHYSICS_JOUR: include abbreviations for Physics journals +% COMMA_DELIMIT: use comma (instead of period) to divide a citation +% NOTE_SUPPRESS: suppress the note +% MAX_NAMES: max number of authors before using et al (0 = infinity) +% MIN_NAMES: number of authors to list with et al. +% EDIT_VAR: use "edited by ..." instead of "..., editors" +% RMP_LABELS: create RMP-style labels +% KEY_CITE: use key as label +% NAMED_REFS: use (Smith, 1988) style of citations +% CSC_NAMES: names set in caps and small caps +% JOUR_DEEMPH: don't emphasize journal name +% ETAL_EMPH: emphasize et al. +% ALT_INCOLL alternate ordering of fields in incollections +% These are all boolean (0 or 1) except for MAX_NAMES and MIN_NAMES. +% These need to satisfy 0 <= MIN_NAMES <= MAX_NAMES. +% The rule here is that if all these are defined to be zero, we revert to +% the standard styles. For that reason we initialize them all to 0. +% These are the original macros + % A physics version of APALIKE +% This is the start of btxbst.doc +% BibTeX `plain' family + % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. +% BibTeX `apalike' bibliography style (24-Jan-88 version) +% Adapted from the `alpha' style, version 0.99a; for BibTeX version 0.99a. +% Copyright (C) 1988, all rights reserved. +% Copying of this file is allowed, provided that if you make any changes at all +% you name it something other than `apalike.bst'. +% This restriction helps ensure that all copies are identical. +% Differences between this style and `alpha' are generally heralded by a `%'. +% The file btxbst.doc has the documentation for alpha.bst. +% +% This style should be used with the `apalike' LaTeX style (apalike.sty). +% \cite's come out like "(Jones, 1986)" in the text but there are no labels +% in the bibliography, and something like "(1986)" comes out immediately +% after the author. Author (and editor) names appear as last name, comma, +% initials. A `year' field is required for every entry, and so is either +% an author (or in some cases, an editor) field or a key field. +% +% Editorial note: +% Many journals require a style like `apalike', but I strongly, strongly, +% strongly recommend that you not use it if you have a choice---use something +% like `plain' instead. Mary-Claire van Leunen (A Handbook for Scholars, +% Knopf, 1979) argues convincingly that a style like `plain' encourages better +% writing than one like `apalike'. Furthermore the strongest arguments for +% using an author-date style like `apalike'---that it's "the most practical" +% (The Chicago Manual of Style, University of Chicago Press, thirteenth +% edition, 1982, pages 400--401)---fall flat on their face with the new +% computer-typesetting technology. For instance page 401 anachronistically +% states "The chief disadvantage of [a style like `plain'] is that additions +% or deletions cannot be made after the manuscript is typed without changing +% numbers in both text references and list." LaTeX sidesteps the disadvantage. +% +% History: +% 15-sep-86 (SK,OP) Original version, by Susan King and Oren Patashnik. +% 10-nov-86 (OP) Truncated the sort.key$ string to the correct length +% in bib.sort.order to eliminate error message. +% 24-jan-88 (OP) Updated for BibTeX version 0.99a, from alpha.bst 0.99a; +% apalike now sorts by author, then year, then title; +% THIS `apalike' VERSION DOES NOT WORK WITH BIBTEX 0.98i. +% Please notify Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU) of any bugs in +% these standard styles or in this documentation file. +% +% This is file btxbxt.doc; it helps document bibliography styles, +% and is also a template file that you can use to make +% several different style files, if you have access to a C preprocessor. +% For example, the standard styles were made by doing something like +% cpp -P -DPLAIN btxbst.doc plain.txt +% cpp -P -DUNSRT btxbst.doc unsrt.txt +% cpp -P -DALPHA btxbst.doc alpha.txt +% cpp -P -DABBRV btxbst.doc abbrv.txt +% and then renaming after removing unwanted comments and blank lines. +% If you don't have access, +% you can edit this file by hand to imitate the preprocessor, +% with the following explanation of the C preprocessor constructs used here. +% +% The output of the preprocessor is the same as the input, except that certain +% lines will be excluded (and some blank lines will be added). The sequence +% #if VAR +% lines to be included when VAR is not zero +% #else +% lines to be included when VAR is zero +% #endif +% (with the #-signs appearing in column 1) means that one set or the other of +% the lines are to be included depending on the value of VAR. +% The #else part is optional. Comments can be added after #else and #endif. +% Variables can be set by +% #define VAR value +% and one can also use #ifdef VAR to see if VAR has any value, and #ifndef +% to see if it has none. +% Another #if form used in this file is #if !VAR, which includes the lines +% after the #if only if VAR is zero. +% +% Convention: Use all uppercase identifiers for these preprocessor variables +% so you can spot them easily +% +% The command line to the preprocessor should define one of PLAIN, UNSRT, ALPHA +% or ABBRV (though PLAIN will be used by default if none is given), +% and the following lines will set various boolean variables to control the +% various lines that are chosen from the rest of the file. +% Each boolean variable should be set true (1) or false (0) in each style. +% Here are the current variables, and their meanings: +% 1: an alphabetic label is used (if false then a numeric +% label is used) +% 1: the entries should be sorted by label (if nonnumeric) +% and other info, like authors (if false, then +% entries remain in order of occurrence) +% 0: the authors, editors, etc., get the full names as +% given in the bibliography file (if false, the first +% names become initials) +% 0: titles of non-"books" (e.g., articles) should be +% converted to lower-case, except the first letter or +% first letter after a colon +% (if false then they appear as in the database) +% 1: months are spelled out in full (if false, then +% they're abbreviated) +% 0: macro journal names are spelled out in full +% (if false then they are abbreviated, currently +% as they appear in ACM publications) +%# define PLAIN 1 +% +% Entry formatting: Similar to that recommended by Mary-Claire van Leunen +% in "A Handbook for Scholars". Book-like titles are italicized +% (emphasized) and non-book titles are converted to sentence +% capitilization (and not enclosed in quotes). +% This file outputs a \newblock between major blocks of an entry +% (the name \newblock is analogous to the names \newline and \newpage) +% so that the user can obtain an "open" format, which has a line break +% before each block and lines after the first are indented within blocks, +% by giving the optional \documentstyle argument `openbib'; +% The default is the "closed" format---blocks runs together. +% +% Citation alphabetic label format: +% [Knu73] for single author (or editor or key) +% [AHU83] (first letters of last names) for multiple authors +% +% Citation label numberic format: +% [number] +% +% Reference list ordering for sorted, alphabetic lables: +% alphabetical by citation label, then by author(s) or whatever +% passes for author in the absence of one, then by year, +% then title +% +% Reference list ordering for sorted, numeric lables: +% alphabetical by author(s) or whatever passes +% for author in the absence of one, then by year, then title +% +% Reference list ordering for unsorted: +% by the order cited in the text +% +% History +% 12/16/84 (HWT) Original `plain' version, by Howard Trickey. +% 12/23/84 (LL) Some comments made by Leslie Lamport. +% 2/16/85 (OP) Changes based on LL's comments, Oren Patashnik. +% 2/17/85 (HWT) Template file and other standard styles made. +% 3/28/85 (OP) First release, version 0.98b for BibTeX 0.98f. +% 5/ 9/85 (OP) Version 0.98c for BibTeX 0.98i: +% fixed Theoretical Computer Science macro name; +% fixed the format.vol.num.pages function. +% 1/24/88 (OP) Version 0.99a for BibTeX 0.99a, main changes: +% assignment operator (:=) arguments reversed; +% the preamble$ function outputs the database PREAMBLE; +% entry.max$ and global.max$ (built-in) variables replace +% entry.string.max and global.string.max functions; +% alphabetizing by year then title, not just title; +% many unnecessary ties removed; \it ==> \em; +% the `alpha' style uses a superscripted `+' instead of a +% `*' for unnamed names in constructing the label; +% the `abbrv' style now uses "Mar." and "Sept."; +% the functions calc.label and presort now look at just +% the fields they're supposed to; +% BOOKLET, MASTERSTHESIS, TECHREPORT use nonbook titles; +% INBOOK and INCOLLECTION take an optional type (e.g. +% type = "Section"), overriding the default "chapter"; +% BOOK, INBOOK, INCOLLECTION, and PROCEEDINGS now allow +% either volume or number, not just volume; +% INCOLLECTION now allows an edition and series field; +% PROCEEDINGS and INPROCEEDINGS now use the address field +% to tell where a conference was held; +% INPROCEEDINGS and PROCEEDINGS now allow either volume +% or number, and also a series field; +% MASTERSTHESIS and PHDTHESIS accept types other than +% "Master's thesis" and "PhD thesis"; +% UNPUBLISHED now outputs, in one block, note then date; +% MANUAL now prints out the organization in +% the first block if the author field is empty; +% MISC can't be empty---it requires some optional field. +% 3/23/88 (OP) Version 0.99b for BibTeX 0.99c---changed the three +% erroneous occurrences of `cite ' to `cite$ '; this +% change didn't affect the four standard styles, so the +% 0.99a versions of those styles are still current. +% +% The ENTRY declaration +% Like Scribe's (according to pages 231-2 of the April '84 edition), +% but no fullauthor or editors fields because BibTeX does name handling. +% The annote field is commented out here because this family doesn't +% include an annotated bibliography style. And in addition to the fields +% listed here, BibTeX has a built-in crossref field, explained later. +ENTRY +% Fields: + { address +% Usually the address of a publisher or other type of organization. +% Put information in this field only if it helps the reader find the +% thing---for example you should omit the address of a major +% publisher entirely. For a PROCEEDINGS or an INPROCEEDINGS, +% however, it's the address of the conference; for those two entry +% types, include the publisher's or organization's address, if +% necessary, in the publisher or organization field. +% annote +% Long annotation---for annotated bibliographies (begins sentence). + author +% Name(s) of author(s), in BibTeX name format. + booktitle +% Book title when the thing being referenced isn't the whole book. +% For book entries, the title field should be used instead. + chapter +% Chapter (or section or whatever) number. + edition +% Edition of a book---should be an ordinal (e.g., "Second"). + editor +% Name(s) of editor(s), in BibTeX name format. +% If there is also an author field, then the editor field should be +% for the book or collection that the work appears in. + howpublished +% How something strange has been published (begins sentence). + institution +% Sponsoring institution of a technical report. + journal +% Journal name (macros are provided for many). + key +% Alphabetizing, labeling, and cross-referencing key +% (needed when an entry has no author or editor). +% month not used in apalike +% Month (macros are provided). + note +% To help the reader find a reference (begins sentence). + number +% Number of a journal or technical report, or of a work in a series. + organization +% Organization sponsoring a conference (or publishing a manual); if +% the editor (or author) is empty, and if the organization produces +% an awkward label or cross reference, you should put appropriately +% condensed organization information in the key field as well. + pages +% Page number or numbers (use `--' to separate a range, use `+' +% to indicate pages following that don't form a simple range). + publisher +% Publisher name. + school +% School name (for theses). + series +% The name of a series or set of books. +% An individual book will will also have it's own title. + title +% The title of the thing you're referred to. + type +% Type of a Techreport (e.g., "Research Note") to be used instead of +% the default "Technical Report"; or, similarly, the type of a +% thesis; or of a part of a book. + volume +% The volume number of a journal or multivolume work. + year +% The year should contain only numerals (technically, it should end +% with four numerals, after purification; doesn't a begin sentence). + } +% There are no integer entry variables + {} +% These string entry variables are used to form the citation label. +% In a storage pinch, sort.label can be easily computed on the fly. + { label extra.label sort.label } +% Each entry function starts by calling output.bibitem, to write the +% \bibitem and its arguments to the .BBL file. Then the various fields +% are formatted and printed by output or output.check. Those functions +% handle the writing of separators (commas, periods, \newblock's), +% taking care not to do so when they are passed a null string. +% Finally, fin.entry is called to add the final period and finish the +% entry. +% +% A bibliographic reference is formatted into a number of `blocks': +% in the open format, a block begins on a new line and subsequent +% lines of the block are indented. A block may contain more than +% one sentence (well, not a grammatical sentence, but something to +% be ended with a sentence ending period). The entry functions should +% call new.block whenever a block other than the first is about to be +% started. They should call new.sentence whenever a new sentence is +% to be started. The output functions will ensure that if two +% new.sentence's occur without any non-null string being output between +% them then there won't be two periods output. Similarly for two +% successive new.block's. +% +% The output routines don't write their argument immediately. +% Instead, by convention, that argument is saved on the stack to be +% output next time (when we'll know what separator needs to come +% after it). Meanwhile, the output routine has to pop the pending +% output off the stack, append any needed separator, and write it. +% +% To tell which separator is needed, we maintain an output.state. +% It will be one of these values: +% before.all just after the \bibitem +% mid.sentence in the middle of a sentence: comma needed +% if more sentence is output +% after.sentence just after a sentence: period needed +% after.block just after a block (and sentence): +% period and \newblock needed. +% Note: These styles don't use after.sentence +% +% VAR: output.state : INTEGER -- state variable for output +% +% The output.nonnull function saves its argument (assumed to be nonnull) +% on the stack, and writes the old saved value followed by any needed +% separator. The ordering of the tests is decreasing frequency of +% occurrence. +% +% output.nonnull(s) == +% BEGIN +% s := argument on stack +% if output.state = mid.sentence then +% write$(pop() * ", ") +% -- "pop" isn't a function: just use stack top +% else +% if output.state = after.block then +% write$(add.period$(pop())) +% newline$ +% write$("\newblock ") +% else +% if output.state = before.all then +% write$(pop()) +% else -- output.state should be after.sentence +% write$(add.period$(pop()) * " ") +% fi +% fi +% output.state := mid.sentence +% fi +% push s on stack +% END +% +% The output function calls output.nonnull if its argument is non-empty; +% its argument may be a missing field (thus, not necessarily a string) +% +% output(s) == +% BEGIN +% if not empty$(s) then output.nonnull(s) +% fi +% END +% +% The output.check function is the same as the output function except that, if +% necessary, output.check warns the user that the t field shouldn't be empty +% (this is because it probably won't be a good reference without the field; +% the entry functions try to make the formatting look reasonable even when +% such fields are empty). +% +% output.check(s,t) == +% BEGIN +% if empty$(s) then +% warning$("empty " * t * " in " * cite$) +% else output.nonnull(s) +% fi +% END +% +% The output.bibitem function writes the \bibitem for the current entry +% (the label should already have been set up), and sets up the separator +% state for the output functions. And, it leaves a string on the stack +% as per the output convention. +% +% output.bibitem == +% BEGIN +% newline$ +% write$("\bibitem[") % for alphabetic labels, +% write$(label) % these three lines +% write$("]{") % are used +% write$("\bibitem{") % this line for numeric labels +% write$(cite$) +% write$("}") +% push "" on stack +% output.state := before.all +% END +% +% The fin.entry function finishes off an entry by adding a period to the +% string remaining on the stack. If the state is still before.all +% then nothing was produced for this entry, so the result will look bad, +% but the user deserves it. (We don't omit the whole entry because the +% entry was cited, and a bibitem is needed to define the citation label.) +% +% fin.entry == +% BEGIN +% write$(add.period$(pop())) +% newline$ +% END +% +% The new.block function prepares for a new block to be output, and +% new.sentence prepares for a new sentence. +% +% new.block == +% BEGIN +% if output.state <> before.all then +% output.state := after.block +% fi +% END +% +% new.sentence == +% BEGIN +% if output.state <> after.block then +% if output.state <> before.all then +% output.state := after.sentence +% fi +% fi +% END +% +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 := +} +% the variables s and t are temporary string holders +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$ +} +% apalike needs this function because +% the year has special punctuation; +% apalike ignores the month +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ + " (" year * extra.label * ")" * + mid.sentence 'output.state := + } + if$ +} +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} +% This function finishes all entries. +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$ +} +% These three functions pop one or two (integer) arguments from the stack +% and push a single one, either 0 or 1. +% The 'skip$ in the `and' and `or' functions are used because +% the corresponding if$ would be idempotent +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +% Sometimes we begin a new block only if the block will be big enough. The +% new.block.checka function issues a new.block if its argument is nonempty; +% new.block.checkb does the same if either of its TWO arguments is nonempty. +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +% Here are some functions for formatting chunks of an entry. +% By convention they either produce a string that can be followed by +% a comma or period (using add.period$, so it is OK to end in a period), +% or they produce the null string. +% +% A useful utility is the field.or.null function, which checks if the +% argument is the result of pushing a `missing' field (one for which no +% assignment was made when the current entry was read in from the database) +% or the result of pushing a string having no non-white-space characters. +% It returns the null string if so, otherwise it returns the field string. +% Its main (but not only) purpose is to guarantee that what's left on the +% stack is a string rather than a missing field. +% +% field.or.null(s) == +% BEGIN +% if empty$(s) then return "" +% else return s +% END +% +% Another helper function is emphasize, which returns the argument emphazised, +% if that is non-empty, otherwise it returns the null string. Italic +% corrections aren't used, so this function should be used when punctation +% will follow the result. +% +% emphasize(s) == +% BEGIN +% if empty$(s) then return "" +% else return "{\em " * s * "}" +% +% The format.names function formats the argument (which should be in +% BibTeX name format) into "First Von Last, Junior", separated by commas +% and with an "and" before the last (but ending with "et~al." if the last +% of multiple authors is "others"). This function's argument should always +% contain at least one name. +% +% VAR: nameptr, namesleft, numnames: INTEGER +% pseudoVAR: nameresult: STRING (it's what's accumulated on the stack) +% +% format.names(s) == +% BEGIN +% nameptr := 1 +% numnames := num.names$(s) +% namesleft := numnames +% while namesleft > 0 +% do +% % for full names: +% t := format.name$(s, nameptr, "{ff~}{vv~}{ll}{, jj}") +% % for abbreviated first names: +% t := format.name$(s, nameptr, "{f.~}{vv~}{ll}{, jj}") +% if nameptr > 1 then +% if namesleft > 1 then nameresult := nameresult * ", " * t +% else if numnames > 2 +% then nameresult := nameresult * "," +% fi +% if t = "others" +% then nameresult := nameresult * " et~al." +% else nameresult := nameresult * " and " * t +% fi +% fi +% else nameresult := t +% fi +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% return nameresult +% END +% +% The format.authors function returns the result of format.names(author) +% if the author is present, or else it returns the null string +% +% format.authors == +% BEGIN +% if empty$(author) then return "" +% else return format.names(author) +% fi +% END +% +% Format.editors is like format.authors, but it uses the editor field, +% and appends ", editor" or ", editors" +% +% format.editors == +% BEGIN +% if empty$(editor) then return "" +% else +% if num.names$(editor) > 1 then +% return format.names(editor) * ", editors" +% else +% return format.names(editor) * ", editor" +% fi +% fi +% END +% +% Other formatting functions are similar, so no "comment version" will be +% given for them. +% +% The `pop$' in this function gets rid of the duplicate `empty' value and +% the `skip$' returns the duplicate field value +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} +FUNCTION {caps} +{ duplicate$ empty$ + { pop$ "" } + { "{\sc " swap$ * "}" * } + if$ +} +FUNCTION {embolden} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} +INTEGERS { nameptr namesleft numnames } +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first + t "others" = + 'skip$ + { t caps 't := } + if$ + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " {\em et~al.}" * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} +FUNCTION {format.key} % this function is just for apalike +{ empty$ + { key field.or.null } + { "" } + if$ +} +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} +% The format.title function is used for non-book-like titles. +% For most styles we convert to lowercase (except for the very first letter, +% and except for the first one after a colon (followed by whitespace)), +% and hope the user has brace-surrounded words that need to stay capitilized; +% for some styles, however, we leave it as it is in the database. +FUNCTION {format.title} +{ title empty$ + { "" } + 'title + if$ +} +% By default, BibTeX sets the global integer variable global.max$ to the BibTeX +% constant glob_str_size, the maximum length of a global string variable. +% Analogously, BibTeX sets the global integer variable entry.max$ to +% ent_str_size, the maximum length of an entry string variable. +% The style designer may change these if necessary (but this is unlikely) +% The n.dashify function makes each single `-' in a string a double `--' +% if it's not already +% +% pseudoVAR: pageresult: STRING (it's what's accumulated on the stack) +% +% n.dashify(s) == +% BEGIN +% t := s +% pageresult := "" +% while (not empty$(t)) +% do +% if (first character of t = "-") +% then +% if (next character isn't) +% then +% pageresult := pageresult * "--" +% t := t with the "-" removed +% else +% while (first character of t = "-") +% do +% pageresult := pageresult * "-" +% t := t with the "-" removed +% od +% fi +% else +% pageresult := pageresult * the first character +% t := t with the first character removed +% fi +% od +% return pageresult +% END +FUNCTION {n.dashify} +{ '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$ +} +% The format.btitle is for formatting the title field when it is a book-like +% entry---the style used here keeps it in uppers-and-lowers and emphasizes it. +FUNCTION {format.btitle} +{ title emphasize +} +% For several functions we'll need to connect two strings with a +% tie (~) if the second one isn't very long (fewer than 3 characters). +% The tie.or.space.connect function does that. It concatenates the two +% strings on top of the stack, along with either a tie or space between +% them, and puts this concatenation back onto the stack: +% +% tie.or.space.connect(str1,str2) == +% BEGIN +% if text.length$(str2) < 3 +% then return the concatenation of str1, "~", and str2 +% else return the concatenation of str1, " ", and str2 +% END +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} +% The either.or.check function complains if both fields or an either-or pair +% are nonempty. +% +% either.or.check(t,s) == +% BEGIN +% if empty$(s) then +% warning$(can't use both " * t * " fields in " * cite$) +% fi +% END +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +% The format.bvolume function is for formatting the volume and perhaps +% series name of a multivolume work. If both a volume and a series field +% are there, we assume the series field is the title of the whole multivolume +% work (the title field should be the title of the thing being referred to), +% and we add an "of ". This function is called in mid-sentence. +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +% The format.number.series function is for formatting the series name +% and perhaps number of a work in a series. This function is similar to +% format.bvolume, although for this one the series must exist (and the +% volume must not exist). If the number field is empty we output either +% the series field unchanged if it exists or else the null string. +% If both the number and series fields are there we assume the series field +% gives the name of the whole series (the title field should be the title +% of the work being one referred to), and we add an "in ". +% We capitilize Number when this function is used at the beginning of a block. +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} +% The format.edition function appends " edition" to the edition, if present. +% We lowercase the edition (it should be something like "Third"), because +% this doesn't start a sentence. +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + if$ +} +% The format.pages function is used for formatting a page range in a book +% (and in rare circumstances, an article). +% +% The multi.page.check function examines the page field for a "-" or "," or "+" +% so that format.pages can use "page" instead of "pages" if none exists. +% Note: global.max$ here means "take the rest of the string" +% +% VAR: multiresult: INTEGER (actually, a boolean) +% +% multi.page.check(s) == +% BEGIN +% t := s +% multiresult := false +% while ((not multiresult) and (not empty$(t))) +% do +% if (first character of t = "-" or "," or "+") +% then multiresult := true +% else t := t with the first character removed +% fi +% od +% return multiresult +% END +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 +} +% This function doesn't begin a sentence so "pages" isn't capitalized. +% Other functions that use this should keep that in mind. +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} +% The format.vol.num.pages function is for the volume, number, and page range +% of a journal article. We use the format: vol(number):pages, with some +% variations for empty fields. This doesn't begin a sentence. +FUNCTION {format.vol.num.pages} +{ volume field.or.null embolden + " " swap$ * * + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} +% The format.chapter.pages, if the chapter is present, puts whatever is in the +% type field (or else "chapter" if type is empty) in front of a chapter number. +% It then appends the pages, if present. This doesn't begin a sentence. +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} +% The format.in.ed.booktitle function is used for starting out a sentence +% that begins "In ", putting an editor before the title if one +% exists. +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} +% The function format.thesis.type returns either the (case-changed) type field, +% if it is defined, or else the default string already on the stack +% (like "Master's thesis" or "PhD thesis"). +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} +% The function format.tr.number makes a string starting with "Technical Report" +% (or type, if that field is defined), followed by the number if there is one; +% it returns the starting part (with a case change) even if there is no number. +% This is used at the beginning of a sentence. +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} +% Now come the cross-referencing functions (these are invoked because +% one entry in the database file(s) cross-references another, by giving +% the other entry's database key in a `crossref' field). This feature +% allows one or more titled things that are part of a larger titled +% thing to cross-reference the larger thing. These styles allow for +% five posibilities: (1) an ARTICLE may cross-reference an ARTICLE; +% (2) a BOOK, (3) INBOOK, or (4) INCOLLECTION may cross-reference a BOOK; +% or (5) an INPROCEEDINGS may cross-reference a PROCEEDINGS. +% Each of these is explained in more detail later. +% +% An ARTICLE entry type may cross reference another ARTICLE (this is +% intended for when an entire journal is devoted to a single topic--- +% but since there is no JOURNAL entry type, the journal, too, should be +% classified as an ARTICLE but without the author and title fields). +% This will result in two warning messages for the journal's entry +% if it's included in the reference list, but such is life. +% +% format.article.crossref == +% BEGIN +% if empty$(key) then +% if empty$(journal) then +% warning$("need key or journal for " * cite$ * +% " to crossref " * crossref) +% return(" \cite{" * crossref * "}") +% else +% return("In " * emphazise.correct (journal) * +% " \cite{" * crossref * "}") +% fi +% else +% return("In " * key * " \cite{" * crossref * "}") +% fi +% END +% +% The other cross-referencing functions are similar, so no "comment version" +% will be given for them. +FUNCTION {format.article.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} +% A BOOK (or INBOOK) entry type (assumed to be for a single volume in a +% multivolume work) may cross reference another BOOK (the entire multivolume). +% Usually there will be an editor, in which case we use that to construct the +% cross reference; otherwise we use a nonempty key field or else the series +% field (since the series gives the title of the multivolume work). +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * % this is for apalike +} +% An INCOLLECTION entry type may cross reference a BOOK (assumed to be the +% collection), or an INPROCEEDINGS may cross reference a PROCEEDINGS. +% Often there will be an editor, in which case we use that to construct +% the cross reference; otherwise we use a nonempty key field or else +% the booktitle field (which gives the cross-referenced work's title). +FUNCTION {format.incoll.inproc.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} +% Now we define the type functions for all entry types that may appear +% in the .BIB file---e.g., functions like `article' and `book'. These +% are the routines that actually generate the .BBL-file output for +% the entry. These must all precede the READ command. In addition, the +% style designer should have a function `default.type' for unknown types. +% Note: The fields (within each list) are listed in order of appearance, +% except as described for an `inbook' or a `proceedings'. +% +% The article function is for an article in a journal. An article may +% CROSSREF another article. +% Required fields: author, title, journal, year +% Optional fields: volume, number, pages, month, note +% +% article == +% BEGIN +% output.bibitem +% output.check(format.authors,"author") +% new.block +% output.check(format.title,"title") +% new.block +% if missing$(crossref) then +% output.check(emphasize(journal),"journal") +% output(format.vol.num.pages) +% output.check(format.date,"year") +% else +% output.nonnull(format.article.crossref) +% output(format.pages) +% fi +% new.block +% output(note) +% fin.entry +% END +% +% The book function is for a whole book. A book may CROSSREF another book. +% Required fields: author or editor, title, publisher, year +% Optional fields: volume or number, series, address, edition, month, +% note +% +% book == +% BEGIN +% if empty$(author) then output.check(format.editors,"author and editor") +% else output.check(format.authors,"author") +% if missing$(crossref) then +% either.or.check("author and editor",editor) +% fi +% fi +% new.block +% output.check(format.btitle,"title") +% if missing$(crossref) then +% output(format.bvolume) +% new.block +% output(format.number.series) +% new.sentence +% output.check(publisher,"publisher") +% output(address) +% else +% new.block +% output.nonnull(format.book.crossref) +% fi +% output(format.edition) +% output.check(format.date,"year") +% new.block +% output(note) +% fin.entry +% END +% +% The other entry functions are all quite similar, so no "comment version" +% will be given for them. +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + crossref missing$ + { journal emphasize + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} +% A booklet is a bound thing without a publisher or sponsoring institution. +% Required: title +% Optional: author, howpublished, address, month, year, note +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + howpublished output + address output + new.block + note output + fin.entry +} +% For the conference entry type, see inproceedings. +% An inbook is a piece of a book: either a chapter and/or a page range. +% It may CROSSREF a book. If there's no volume field, the type field +% will come before number and series. +% Required: author or editor, title, chapter and/or pages, publisher,year +% Optional: volume or number, series, type, address, edition, month, note +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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} +% An incollection is like inbook, but where there is a separate title +% for the referenced thing (and perhaps an editor for the whole). +% An incollection may CROSSREF a book. +% Required: author, title, booktitle, publisher, year +% Optional: editor, volume or number, series, type, chapter, pages, +% address, edition, month, note +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} +% An inproceedings is an article in a conference proceedings, and it may +% CROSSREF a proceedings. If there's no address field, the month (& year) +% will appear just before note. +% Required: author, title, booktitle, year +% Optional: editor, volume or number, series, pages, address, month, +% organization, publisher, note +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address output % for apalike + new.sentence % there's no year + organization output % here so things + publisher output % are simpler + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} +% The conference function is included for Scribe compatibility. +FUNCTION {conference} { inproceedings } +% A manual is technical documentation. +% Required: title +% Optional: author, organization, address, edition, month, year, note +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + new.block + note output + fin.entry +} +% A mastersthesis is a Master's thesis. +% Required: author, title, school, year +% Optional: type, address, month, note +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} +% A misc is something that doesn't fit elsewhere. +% Required: at least one of the `optional' fields +% Optional: author, title, howpublished, month, year, note +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title output + new.block + howpublished output + new.block + note output + fin.entry +} +% A phdthesis is like a mastersthesis. +% Required: author, title, school, year +% Optional: type, address, month, note +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} +% A proceedings is a conference proceedings. +% If there is an organization but no editor field, the organization will +% appear as the first optional field (we try to make the first block nonempty); +% if there's no address field, the month (& year) will appear just before note. +% Required: title, year +% Optional: editor, volume or number, series, address, month, +% organization, publisher, note +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output % for apalike + new.sentence % we always output + organization output % a nonempty organization + publisher output % here + new.block + note output + fin.entry +} +% A techreport is a technical report. +% Required: author, title, institution, year +% Optional: type, number, address, month, note +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry +} +% An unpublished is something that hasn't been published. +% Required: author, title, note +% Optional: month, year +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + note "note" output.check + fin.entry +} +% We use entry type `misc' for an unknown type; BibTeX gives a warning. +FUNCTION {default.type} { misc } +% Here are macros for common things that may vary from style to style. +% Users are encouraged to use these macros. +% +% Months are either written out in full or abbreviated +MACRO {jan} {"January"} +MACRO {feb} {"February"} +MACRO {mar} {"March"} +MACRO {apr} {"April"} +MACRO {may} {"May"} +MACRO {jun} {"June"} +MACRO {jul} {"July"} +MACRO {aug} {"August"} +MACRO {sep} {"September"} +MACRO {oct} {"October"} +MACRO {nov} {"November"} +MACRO {dec} {"December"} +% Journals are either written out in full or abbreviated; +% the abbreviations are like those found in ACM publications. +% +% To get a completely different set of abbreviations, it may be best to make +% a separate .bib file with nothing but those abbreviations; users could then +% include that file name as the first argument to the \bibliography command +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. Softw. Eng."} +MACRO {ieeetc} {"IEEE Trans. Comput."} +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} +MACRO {ipl} {"Inf. Process. Lett."} +MACRO {jacm} {"J.~ACM"} +MACRO {jcss} {"J.~Comput. Syst. Sci."} +MACRO {scp} {"Sci. Comput. Programming"} +MACRO {sicomp} {"SIAM J. Comput."} +MACRO {tocs} {"ACM Trans. Comput. Syst."} +MACRO {tods} {"ACM Trans. Database Syst."} +MACRO {tog} {"ACM Trans. Gr."} +MACRO {toms} {"ACM Trans. Math. Softw."} +MACRO {toois} {"ACM Trans. Office Inf. Syst."} +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} +MACRO {tcs} {"Theoretical Comput. Sci."} +%% /usr/local/lib/tex/bibtex/phyjfull.btx, Tue Jun 30 08:37:48 1992 +%% Edit by Nelson H. F. Beebe +%% Change file names in leading comment +% Journal Title Abbreviations from the Physical Review Style and Notation +% Guide, July, 1983, in BAPS Vol. 28. +% Selected by Cris Barnes and Charles Karney, March 1988 +% IMPORTANT!! Don't make changes to this file without making the +% corresponding changes to +% phyjabb.bib +% phyjabb.btx +MACRO {advp} {"Advances in Physics"} +MACRO {ajp} {"American Journal of Physics"} +MACRO {ao} {"Applied Optics"} +MACRO {apl} {"Applied Physics Letters"} +MACRO {apj} {"Astrophysical Journal"} +MACRO {baps} {"Bulletin of the American Physical Society"} +MACRO {cpc} {"Computer Physics Communications"} +MACRO {cppcf} {"Comments on Plasma Physics and Controlled Fusion"} +MACRO {fed} {"Fusion Engineering and Design"} +MACRO {ft} {"Fusion Technology"} +MACRO {ieeens} {"IEEE Transactions on Nuclear Science"} +MACRO {ieeeps} {"IEEE Transactions on Plasma Science"} +MACRO {ijimw} {"International Journal of Infrared and Millimeter Waves"} +MACRO {ip} {"Infrared Physics"} +MACRO {jap} {"Journal of Applied Physics"} +MACRO {jcp} {"Journal of Computational Physics"} +MACRO {jetp} {"Soviet Physics-JETP"} +MACRO {jfe} {"Journal of Fusion Energy"} +MACRO {jfm} {"Journal of Fluid Mechanics"} +MACRO {jgr} {"Journal of Geophysical Research"} +MACRO {jmp} {"Journal of Mathematical Physics"} +MACRO {jne} {"Journal of Nuclear Energy"} +MACRO {jnec} {"Journal of Nuclear Energy, Part C: Plasma Physics, Accelerators, Thermonuclear Research"} +MACRO {jnm} {"Journal of Nuclear Materials"} +MACRO {josa} {"Journal of the Optical Society of America"} +MACRO {jpp} {"Journal of Plasma Physics"} +MACRO {jpsj} {"Journal of the Physical Society of Japan"} +MACRO {jvst} {"Journal of Vacuum Science and Technology"} +MACRO {nedf} {"Nuclear Engineering and Design/Fusion"} +MACRO {nf} {"Nuclear Fusion"} +MACRO {nim} {"Nuclear Instruments and Methods"} +MACRO {nimpr} {"Nuclear Instruments and Methods in Physics Research"} +MACRO {nt/f} {"Nuclear Technology/Fusion"} +MACRO {pf} {"Physics of Fluids"} +MACRO {pfa} {"Physics of Fluids A: Fluid Dynamics"} +MACRO {pfb} {"Physics of Fluids B: Plasma Physics"} +MACRO {pl} {"Physics Letters"} +MACRO {pla} {"Physics Letters A"} +MACRO {pnas} {"Proceedings of the National Academy of Sciences of the USA"} +MACRO {pp} {"Plasma Physics"} +MACRO {ppcf} {"Plasma Physics and Controlled Fusion"} +MACRO {prl} {"Physical Review Letters"} +MACRO {pr} {"Physical Review"} +MACRO {pra} {"Physical Review A: General Physics"} +MACRO {ps} {"Physica Scripta"} +MACRO {rmp} {"Reviews of Modern Physics"} +MACRO {rsi} {"Review of Scientific Instruments"} +MACRO {sjpp} {"Soviet Journal of Plasma Phys."} +MACRO {spd} {"Soviet Physics-Doklady"} +MACRO {sptp} {"Soviet Physics-Technical Physics"} +MACRO {spu} {"Soviet Physics-Uspeki"} +% Now we read in the .BIB entries. +READ +% The sortify function converts to lower case after purify$ing; it's +% used in sorting and in computing alphabetic labels after sorting +% +% The chop.word(w,len,s) function returns either s or, if the first len +% letters of s equals w (this comparison is done in the third line of the +% function's definition), it returns that part of s after w. +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$ +} +% This long comment applies only to alphabetic labels +% +% The format.lab.names function makes a short label by using the initials of +% the von and Last parts of the names (but if there are more than four names, +% (i.e., people) it truncates after three and adds a superscripted "+"; +% it also adds such a "+" if the last of multiple authors is "others"). +% If there is only one name, and its von and Last parts combined have just +% a single name-token ("Knuth" has a single token, "Brinch Hansen" has two), +% we take the first three letters of the last name. The boolean +% et.al.char.used tells whether we've used a superscripted "+", so that we +% know whether to include a LaTeX macro for it. +% +% format.lab.names(s) == +% BEGIN +% numnames := num.names$(s) +% if numnames > 1 then +% if numnames > 4 then +% namesleft := 3 +% else +% namesleft := numnames +% nameptr := 1 +% nameresult := "" +% while namesleft > 0 +% do +% if (name_ptr = numnames) and +% format.name$(s, nameptr, "{ff }{vv }{ll}{ jj}") = "others" +% then nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else nameresult := nameresult * +% format.name$(s, nameptr, "{v{}}{l{}}") +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% if numnames > 4 then +% nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else +% t := format.name$(s, 1, "{v{}}{l{}}") +% if text.length$(t) < 2 then % there's just one name-token +% nameresult := text.prefix$(format.name$(s,1,"{ll}"),3) +% else +% nameresult := t +% fi +% fi +% return nameresult +% END +% +% Exactly what fields we look at in constructing the primary part of the label +% depends on the entry type; this selectivity (as opposed to, say, always +% looking at author, then editor, then key) helps ensure that "ignored" fields, +% as described in the LaTeX book, really are ignored. Note that MISC is part +% of the deepest `else' clause in the nested part of calc.label; thus, any +% unrecognized entry type in the database is handled correctly. +% +% There is one auxiliary function for each of the four different sequences of +% fields we use. The first of these functions looks at the author field, and +% then, if necessary, the key field. The other three functions, which might +% look at two fields and the key field, are similar, except that the key field +% takes precedence over the organization field (for labels---not for sorting). +% +% The calc.label function calculates the preliminary label of an entry, which +% is formed by taking three letters of information from the author or editor or +% key or organization field (depending on the entry type and on what's empty, +% but ignoring a leading "The " in the organization), and appending the last +% two characters (digits) of the year. It is an error if the appropriate fields +% among author, editor, organization, and key are missing, and we use +% the first three letters of the cite$ in desperation when this happens. +% The resulting label has the year part, but not the name part, purify$ed +% (purify$ing the year allows some sorting shenanigans by the user). +% +% This function also calculates the version of the label to be used in sorting. +% +% The final label may need a trailing 'a', 'b', etc., to distinguish it from +% otherwise identical labels, but we can't calculated those "extra.label"s +% until after sorting. +% +% calc.label == +% BEGIN +% if type$ = "book" or "inbook" then +% author.editor.key.label +% else if type$ = "proceedings" then +% editor.key.organization.label +% else if type$ = "manual" then +% author.key.organization.label +% else +% author.key.label +% fi fi fi +% label := label * substring$(purify$(field.or.null(year)), -1, 2) +% % assuming we will also sort, we calculate a sort.label +% sort.label := sortify(label), but use the last four, not two, digits +% END +% There are three apalike cases: one person (Jones), +% two (Jones and de~Bruijn), and more (Jones et~al.). +% This function is much like format.crossref.editors. +% +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ caps + s num.names$ duplicate$ + #2 > + { pop$ " {\em et~al.}" * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " {\em et~al.}" * } + { " and " * s #2 "{vv~}{ll}" format.name$ caps * } + if$ + } + if$ + } + if$ +} +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole key + if$ + } + { author format.lab.names } + if$ +} +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole 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 % apalike uses the whole key, no organization + if$ + } + { editor format.lab.names } + if$ +} +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label % apalike ignores organization + 'author.key.label % for labeling and sorting + if$ + } + if$ + ", " % these three lines are + * % for apalike, which + year field.or.null purify$ #-1 #4 substring$ % uses all four digits + * + 'label := +} +% It doesn't seem like a particularly good idea to use an order-of-citation +% reference list when using alphabetic labels, but we need to have a +% special pass to calculate labels when this happens. +% When sorting, we compute the sortkey by executing "presort" on each entry. +% The presort key contains a number of "sortify"ed strings, concatenated +% with multiple blanks between them. This makes things like "brinch per" +% come before "brinch hansen per". +% +% The fields used here are: the sort.label for alphabetic labels (as set by +% calc.label), followed by the author names (or editor names or organization +% (with a leading "The " removed) or key field, depending on entry type and on +% what's empty), followed by year, followed by the first bit of the title +% (chopping off a leading "The ", "A ", or "An "). +% Names are formatted: Von Last First Junior. +% The names within a part will be separated by a single blank +% (such as "brinch hansen"), two will separate the name parts themselves +% (except the von and last), three will separate the names, +% four will separate the names from year (and from label, if alphabetic), +% and four will separate year from title. +% +% The sort.format.names function takes an argument that should be in +% BibTeX name format, and returns a string containing " "-separated +% names in the format described above. The function is almost the same +% as format.names. +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ % apalike uses initials + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := % <= here + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +% The sort.format.title function returns the argument, +% but first any leading "A "'s, "An "'s, or "The "'s are removed. +% The chop.word function uses s, so we need another string variable, t +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +% The auxiliary functions here, for the presort function, are analogous to +% the ones for calc.label; the same comments apply, except that the +% organization field takes precedence here over the key field. For sorting +% purposes, we still remove a leading "The " from the organization field. +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$ +} +% apalike uses two sorting passes; the first one sets the +% labels so that the `a's, `b's, etc. can be computed; +% the second pass puts the references in "correct" order. +% The presort function is for the first pass. It computes +% label, sort.label, and title, and then concatenates. +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$ % for + 'sort.label := % apalike + sort.label % style + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {presort} +% And now we can sort +SORT % by label, sort.label, title---for final label calculation +% This long comment applies only to alphabetic labels, when sorted +% +% Now comes the final computation for alphabetic labels, putting in the 'a's +% and 'b's and so forth if required. This involves two passes: a forward +% pass to put in the 'b's, 'c's and so on, and a backwards pass +% to put in the 'a's (we don't want to put in 'a's unless we know there +% are 'b's). +% We have to keep track of the longest (in width$ terms) label, for use +% by the "thebibliography" environment. +% +% VAR: longest.label, last.sort.label, next.extra: string +% longest.label.width, last.extra.num: integer +% +% initialize.longest.label == +% BEGIN +% longest.label := "" +% last.sort.label := int.to.chr$(0) +% next.extra := "" +% longest.label.width := 0 +% last.extra.num := 0 +% END +% +% forward.pass == +% BEGIN +% if last.sort.label = sort.label then +% last.extra.num := last.extra.num + 1 +% extra.label := int.to.chr$(last.extra.num) +% else +% last.extra.num := chr.to.int$("a") +% extra.label := "" +% last.sort.label := sort.label +% fi +% END +% +% reverse.pass == +% BEGIN +% if next.extra = "b" then +% extra.label := "a" +% fi +% label := label * extra.label +% if width$(label) > longest.label.width then +% longest.label := label +% longest.label.width := width$(label) +% fi +% next.extra := extra.label +% END +STRINGS { last.label next.extra } % apalike labels are only for the text; +INTEGERS { last.extra.num } % there are none in the bibliography +FUNCTION {initialize.extra.label.stuff} % and hence there is no `longest.label' +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} +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$ +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + extra.label 'next.extra := +} +EXECUTE {initialize.extra.label.stuff} +ITERATE {forward.pass} +REVERSE {reverse.pass} +% Now that the label is right we sort for real, +% on sort.label then year then title. This is +% for the second sorting 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 % by sort.label, year, title---giving final bibliography order +% Now we're ready to start writing the .BBL file. +% We begin, if necessary, with a LaTeX macro for unnamed names in an alphabetic +% label; next comes stuff from the `preamble' command in the database files. +% Then we give an incantation containing the command +% \begin{thebibliography}{...} +% where the `...' is the longest label. +% +% We also call init.state.consts, for use by the output routines. +FUNCTION {begin.bib} +{ preamble$ empty$ % no \etalchar in apalike + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ % no labels in apalike +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +% Now we produce the output for all the entries +ITERATE {call.type$} +% Finally, we finish up by writing the `\end{thebibliography}' command. +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/phreport.bst b/Master/texmf-dist/bibtex/bst/beebe/phreport.bst new file mode 100644 index 00000000000..919ab181cb6 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/phreport.bst @@ -0,0 +1,1885 @@ +% BibTeX styles for various physics journals (27-Feb-1990). +% This file, physics.btx, is based on the file btxbst.doc. + % Please notify Charles Karney (Karney@Princeton.EDU) + % of any bugs, improvements, etc. +% Run this file through cpp to get specific versions. I have written +% a version of cpp within Emacs. To access it put +% (autoload 'cpp "tex$bibtex:cpp" ; Use cpp for BibTeX styles +% "C preprocessor" +% t) +% into your .emacs file. Read in this file with +% emacs tex$bibtex:physics.btx +% and run cpp with e.g., +% M-x cpp aip +% Save the resulting file to tex$latex:aip.bst. +% To accomodate the variations we need (in addition to the definitions below) +% ATIT_SUPPRESS: do not include the titles of journal articles +% NAME_INVERT: put the initials last +% NAME_UPPER: convert names to all caps. +% MONTH_SUPPRESS: do not include months in journal articles +% PAREN_DATE: dates go in parens in journal articles +% DATE_FIRST: dates go before page numbers +% VOLUME_SPACE: volume set off with space (not colon) +% NUM_SUPPRESS: do not include numbers in journal articles +% BOLD_VOL: volume numbers in bold face in journal articles +% BRACKET_NOTE: notes in brackets +% PAGE_START_J: include only starting page for journal articles +% PAGE_START_O: include only starting page for other entries +% PAGE_ABBREV: abbreviate page to p. and pages to pp. +% PHYSICS_JOUR: include abbreviations for Physics journals +% COMMA_DELIMIT: use comma (instead of period) to divide a citation +% NOTE_SUPPRESS: suppress the note +% MAX_NAMES: max number of authors before using et al (0 = infinity) +% MIN_NAMES: number of authors to list with et al. +% EDIT_VAR: use "edited by ..." instead of "..., editors" +% RMP_LABELS: create RMP-style labels +% KEY_CITE: use key as label +% NAMED_REFS: use (Smith, 1988) style of citations +% CSC_NAMES: names set in caps and small caps +% JOUR_DEEMPH: don't emphasize journal name +% ETAL_EMPH: emphasize et al. +% ALT_INCOLL alternate ordering of fields in incollections +% These are all boolean (0 or 1) except for MAX_NAMES and MIN_NAMES. +% These need to satisfy 0 <= MIN_NAMES <= MAX_NAMES. +% The rule here is that if all these are defined to be zero, we revert to +% the standard styles. For that reason we initialize them all to 0. +% These are the original macros + % For internal reports +% same as AIP except for 0, 0, 0, +% 0, 0, 0 +% This is the start of btxbst.doc +% BibTeX `plain' family + % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. +% Please notify Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU) of any bugs in +% these standard styles or in this documentation file. +% +% This is file btxbxt.doc; it helps document bibliography styles, +% and is also a template file that you can use to make +% several different style files, if you have access to a C preprocessor. +% For example, the standard styles were made by doing something like +% cpp -P -DPLAIN btxbst.doc plain.txt +% cpp -P -DUNSRT btxbst.doc unsrt.txt +% cpp -P -DALPHA btxbst.doc alpha.txt +% cpp -P -DABBRV btxbst.doc abbrv.txt +% and then renaming after removing unwanted comments and blank lines. +% If you don't have access, +% you can edit this file by hand to imitate the preprocessor, +% with the following explanation of the C preprocessor constructs used here. +% +% The output of the preprocessor is the same as the input, except that certain +% lines will be excluded (and some blank lines will be added). The sequence +% #if VAR +% lines to be included when VAR is not zero +% #else +% lines to be included when VAR is zero +% #endif +% (with the #-signs appearing in column 1) means that one set or the other of +% the lines are to be included depending on the value of VAR. +% The #else part is optional. Comments can be added after #else and #endif. +% Variables can be set by +% #define VAR value +% and one can also use #ifdef VAR to see if VAR has any value, and #ifndef +% to see if it has none. +% Another #if form used in this file is #if !VAR, which includes the lines +% after the #if only if VAR is zero. +% +% Convention: Use all uppercase identifiers for these preprocessor variables +% so you can spot them easily +% +% The command line to the preprocessor should define one of PLAIN, UNSRT, ALPHA +% or ABBRV (though PLAIN will be used by default if none is given), +% and the following lines will set various boolean variables to control the +% various lines that are chosen from the rest of the file. +% Each boolean variable should be set true (1) or false (0) in each style. +% Here are the current variables, and their meanings: +% 0: an alphabetic label is used (if false then a numeric +% label is used) +% 0: the entries should be sorted by label (if nonnumeric) +% and other info, like authors (if false, then +% entries remain in order of occurrence) +% 0: the authors, editors, etc., get the full names as +% given in the bibliography file (if false, the first +% names become initials) +% 0: titles of non-"books" (e.g., articles) should be +% converted to lower-case, except the first letter or +% first letter after a colon +% (if false then they appear as in the database) +% 0: months are spelled out in full (if false, then +% they're abbreviated) +% 0: macro journal names are spelled out in full +% (if false then they are abbreviated, currently +% as they appear in ACM publications) +%# define PLAIN 1 +% +% Entry formatting: Similar to that recommended by Mary-Claire van Leunen +% in "A Handbook for Scholars". Book-like titles are italicized +% (emphasized) and non-book titles are converted to sentence +% capitilization (and not enclosed in quotes). +% This file outputs a \newblock between major blocks of an entry +% (the name \newblock is analogous to the names \newline and \newpage) +% so that the user can obtain an "open" format, which has a line break +% before each block and lines after the first are indented within blocks, +% by giving the optional \documentstyle argument `openbib'; +% The default is the "closed" format---blocks runs together. +% +% Citation alphabetic label format: +% [Knu73] for single author (or editor or key) +% [AHU83] (first letters of last names) for multiple authors +% +% Citation label numberic format: +% [number] +% +% Reference list ordering for sorted, alphabetic lables: +% alphabetical by citation label, then by author(s) or whatever +% passes for author in the absence of one, then by year, +% then title +% +% Reference list ordering for sorted, numeric lables: +% alphabetical by author(s) or whatever passes +% for author in the absence of one, then by year, then title +% +% Reference list ordering for unsorted: +% by the order cited in the text +% +% History +% 12/16/84 (HWT) Original `plain' version, by Howard Trickey. +% 12/23/84 (LL) Some comments made by Leslie Lamport. +% 2/16/85 (OP) Changes based on LL's comments, Oren Patashnik. +% 2/17/85 (HWT) Template file and other standard styles made. +% 3/28/85 (OP) First release, version 0.98b for BibTeX 0.98f. +% 5/ 9/85 (OP) Version 0.98c for BibTeX 0.98i: +% fixed Theoretical Computer Science macro name; +% fixed the format.vol.num.pages function. +% 1/24/88 (OP) Version 0.99a for BibTeX 0.99a, main changes: +% assignment operator (:=) arguments reversed; +% the preamble$ function outputs the database PREAMBLE; +% entry.max$ and global.max$ (built-in) variables replace +% entry.string.max and global.string.max functions; +% alphabetizing by year then title, not just title; +% many unnecessary ties removed; \it ==> \em; +% the `alpha' style uses a superscripted `+' instead of a +% `*' for unnamed names in constructing the label; +% the `abbrv' style now uses "Mar." and "Sept."; +% the functions calc.label and presort now look at just +% the fields they're supposed to; +% BOOKLET, MASTERSTHESIS, TECHREPORT use nonbook titles; +% INBOOK and INCOLLECTION take an optional type (e.g. +% type = "Section"), overriding the default "chapter"; +% BOOK, INBOOK, INCOLLECTION, and PROCEEDINGS now allow +% either volume or number, not just volume; +% INCOLLECTION now allows an edition and series field; +% PROCEEDINGS and INPROCEEDINGS now use the address field +% to tell where a conference was held; +% INPROCEEDINGS and PROCEEDINGS now allow either volume +% or number, and also a series field; +% MASTERSTHESIS and PHDTHESIS accept types other than +% "Master's thesis" and "PhD thesis"; +% UNPUBLISHED now outputs, in one block, note then date; +% MANUAL now prints out the organization in +% the first block if the author field is empty; +% MISC can't be empty---it requires some optional field. +% 3/23/88 (OP) Version 0.99b for BibTeX 0.99c---changed the three +% erroneous occurrences of `cite ' to `cite$ '; this +% change didn't affect the four standard styles, so the +% 0.99a versions of those styles are still current. +% +% The ENTRY declaration +% Like Scribe's (according to pages 231-2 of the April '84 edition), +% but no fullauthor or editors fields because BibTeX does name handling. +% The annote field is commented out here because this family doesn't +% include an annotated bibliography style. And in addition to the fields +% listed here, BibTeX has a built-in crossref field, explained later. +ENTRY +% Fields: + { address +% Usually the address of a publisher or other type of organization. +% Put information in this field only if it helps the reader find the +% thing---for example you should omit the address of a major +% publisher entirely. For a PROCEEDINGS or an INPROCEEDINGS, +% however, it's the address of the conference; for those two entry +% types, include the publisher's or organization's address, if +% necessary, in the publisher or organization field. +% annote +% Long annotation---for annotated bibliographies (begins sentence). + author +% Name(s) of author(s), in BibTeX name format. + booktitle +% Book title when the thing being referenced isn't the whole book. +% For book entries, the title field should be used instead. + chapter +% Chapter (or section or whatever) number. + edition +% Edition of a book---should be an ordinal (e.g., "Second"). + editor +% Name(s) of editor(s), in BibTeX name format. +% If there is also an author field, then the editor field should be +% for the book or collection that the work appears in. + howpublished +% How something strange has been published (begins sentence). + institution +% Sponsoring institution of a technical report. + journal +% Journal name (macros are provided for many). + key +% Alphabetizing, labeling, and cross-referencing key +% (needed when an entry has no author or editor). + month +% Month (macros are provided). + note +% To help the reader find a reference (begins sentence). + number +% Number of a journal or technical report, or of a work in a series. + organization +% Organization sponsoring a conference (or publishing a manual); if +% the editor (or author) is empty, and if the organization produces +% an awkward label or cross reference, you should put appropriately +% condensed organization information in the key field as well. + pages +% Page number or numbers (use `--' to separate a range, use `+' +% to indicate pages following that don't form a simple range). + publisher +% Publisher name. + school +% School name (for theses). + series +% The name of a series or set of books. +% An individual book will will also have it's own title. + title +% The title of the thing you're referred to. + type +% Type of a Techreport (e.g., "Research Note") to be used instead of +% the default "Technical Report"; or, similarly, the type of a +% thesis; or of a part of a book. + volume +% The volume number of a journal or multivolume work. + year +% The year should contain only numerals (technically, it should end +% with four numerals, after purification; doesn't a begin sentence). + } +% There are no integer entry variables + {} +% These string entry variables are used to form the citation label. +% In a storage pinch, sort.label can be easily computed on the fly. + { label } +% Each entry function starts by calling output.bibitem, to write the +% \bibitem and its arguments to the .BBL file. Then the various fields +% are formatted and printed by output or output.check. Those functions +% handle the writing of separators (commas, periods, \newblock's), +% taking care not to do so when they are passed a null string. +% Finally, fin.entry is called to add the final period and finish the +% entry. +% +% A bibliographic reference is formatted into a number of `blocks': +% in the open format, a block begins on a new line and subsequent +% lines of the block are indented. A block may contain more than +% one sentence (well, not a grammatical sentence, but something to +% be ended with a sentence ending period). The entry functions should +% call new.block whenever a block other than the first is about to be +% started. They should call new.sentence whenever a new sentence is +% to be started. The output functions will ensure that if two +% new.sentence's occur without any non-null string being output between +% them then there won't be two periods output. Similarly for two +% successive new.block's. +% +% The output routines don't write their argument immediately. +% Instead, by convention, that argument is saved on the stack to be +% output next time (when we'll know what separator needs to come +% after it). Meanwhile, the output routine has to pop the pending +% output off the stack, append any needed separator, and write it. +% +% To tell which separator is needed, we maintain an output.state. +% It will be one of these values: +% before.all just after the \bibitem +% mid.sentence in the middle of a sentence: comma needed +% if more sentence is output +% after.sentence just after a sentence: period needed +% after.block just after a block (and sentence): +% period and \newblock needed. +% Note: These styles don't use after.sentence +% +% VAR: output.state : INTEGER -- state variable for output +% +% The output.nonnull function saves its argument (assumed to be nonnull) +% on the stack, and writes the old saved value followed by any needed +% separator. The ordering of the tests is decreasing frequency of +% occurrence. +% +% output.nonnull(s) == +% BEGIN +% s := argument on stack +% if output.state = mid.sentence then +% write$(pop() * ", ") +% -- "pop" isn't a function: just use stack top +% else +% if output.state = after.block then +% write$(add.period$(pop())) +% newline$ +% write$("\newblock ") +% else +% if output.state = before.all then +% write$(pop()) +% else -- output.state should be after.sentence +% write$(add.period$(pop()) * " ") +% fi +% fi +% output.state := mid.sentence +% fi +% push s on stack +% END +% +% The output function calls output.nonnull if its argument is non-empty; +% its argument may be a missing field (thus, not necessarily a string) +% +% output(s) == +% BEGIN +% if not empty$(s) then output.nonnull(s) +% fi +% END +% +% The output.check function is the same as the output function except that, if +% necessary, output.check warns the user that the t field shouldn't be empty +% (this is because it probably won't be a good reference without the field; +% the entry functions try to make the formatting look reasonable even when +% such fields are empty). +% +% output.check(s,t) == +% BEGIN +% if empty$(s) then +% warning$("empty " * t * " in " * cite$) +% else output.nonnull(s) +% fi +% END +% +% The output.bibitem function writes the \bibitem for the current entry +% (the label should already have been set up), and sets up the separator +% state for the output functions. And, it leaves a string on the stack +% as per the output convention. +% +% output.bibitem == +% BEGIN +% newline$ +% write$("\bibitem[") % for alphabetic labels, +% write$(label) % these three lines +% write$("]{") % are used +% write$("\bibitem{") % this line for numeric labels +% write$(cite$) +% write$("}") +% push "" on stack +% output.state := before.all +% END +% +% The fin.entry function finishes off an entry by adding a period to the +% string remaining on the stack. If the state is still before.all +% then nothing was produced for this entry, so the result will look bad, +% but the user deserves it. (We don't omit the whole entry because the +% entry was cited, and a bibitem is needed to define the citation label.) +% +% fin.entry == +% BEGIN +% write$(add.period$(pop())) +% newline$ +% END +% +% The new.block function prepares for a new block to be output, and +% new.sentence prepares for a new sentence. +% +% new.block == +% BEGIN +% if output.state <> before.all then +% output.state := after.block +% fi +% END +% +% new.sentence == +% BEGIN +% if output.state <> after.block then +% if output.state <> before.all then +% output.state := after.sentence +% fi +% fi +% END +% +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 := +} +% the variables s and t are temporary string holders +STRINGS { s t } +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { "," * 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} +% This function finishes all entries. +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} +FUNCTION {new.sentence} +{ skip$ +} +% These three functions pop one or two (integer) arguments from the stack +% and push a single one, either 0 or 1. +% The 'skip$ in the `and' and `or' functions are used because +% the corresponding if$ would be idempotent +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +% Sometimes we begin a new block only if the block will be big enough. The +% new.block.checka function issues a new.block if its argument is nonempty; +% new.block.checkb does the same if either of its TWO arguments is nonempty. +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +% The new.sentence.check functions are analogous. +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} +% Here are some functions for formatting chunks of an entry. +% By convention they either produce a string that can be followed by +% a comma or period (using add.period$, so it is OK to end in a period), +% or they produce the null string. +% +% A useful utility is the field.or.null function, which checks if the +% argument is the result of pushing a `missing' field (one for which no +% assignment was made when the current entry was read in from the database) +% or the result of pushing a string having no non-white-space characters. +% It returns the null string if so, otherwise it returns the field string. +% Its main (but not only) purpose is to guarantee that what's left on the +% stack is a string rather than a missing field. +% +% field.or.null(s) == +% BEGIN +% if empty$(s) then return "" +% else return s +% END +% +% Another helper function is emphasize, which returns the argument emphazised, +% if that is non-empty, otherwise it returns the null string. Italic +% corrections aren't used, so this function should be used when punctation +% will follow the result. +% +% emphasize(s) == +% BEGIN +% if empty$(s) then return "" +% else return "{\em " * s * "}" +% +% The format.names function formats the argument (which should be in +% BibTeX name format) into "First Von Last, Junior", separated by commas +% and with an "and" before the last (but ending with "et~al." if the last +% of multiple authors is "others"). This function's argument should always +% contain at least one name. +% +% VAR: nameptr, namesleft, numnames: INTEGER +% pseudoVAR: nameresult: STRING (it's what's accumulated on the stack) +% +% format.names(s) == +% BEGIN +% nameptr := 1 +% numnames := num.names$(s) +% namesleft := numnames +% while namesleft > 0 +% do +% % for full names: +% t := format.name$(s, nameptr, "{ff~}{vv~}{ll}{, jj}") +% % for abbreviated first names: +% t := format.name$(s, nameptr, "{f.~}{vv~}{ll}{, jj}") +% if nameptr > 1 then +% if namesleft > 1 then nameresult := nameresult * ", " * t +% else if numnames > 2 +% then nameresult := nameresult * "," +% fi +% if t = "others" +% then nameresult := nameresult * " et~al." +% else nameresult := nameresult * " and " * t +% fi +% fi +% else nameresult := t +% fi +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% return nameresult +% END +% +% The format.authors function returns the result of format.names(author) +% if the author is present, or else it returns the null string +% +% format.authors == +% BEGIN +% if empty$(author) then return "" +% else return format.names(author) +% fi +% END +% +% Format.editors is like format.authors, but it uses the editor field, +% and appends ", editor" or ", editors" +% +% format.editors == +% BEGIN +% if empty$(editor) then return "" +% else +% if num.names$(editor) > 1 then +% return format.names(editor) * ", editors" +% else +% return format.names(editor) * ", editor" +% fi +% fi +% END +% +% Other formatting functions are similar, so no "comment version" will be +% given for them. +% +% The `pop$' in this function gets rid of the duplicate `empty' value and +% the `skip$' returns the duplicate field value +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} +FUNCTION {embolden} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} +FUNCTION {paren} +{ duplicate$ empty$ + { pop$ "" } + { "(" swap$ * ")" * } + if$ +} +INTEGERS { nameptr namesleft numnames } +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} +FUNCTION {format.edited} +{ editor empty$ + { "" } + { "edited by " editor format.names * } + if$ +} +% The format.title function is used for non-book-like titles. +% For most styles we convert to lowercase (except for the very first letter, +% and except for the first one after a colon (followed by whitespace)), +% and hope the user has brace-surrounded words that need to stay capitilized; +% for some styles, however, we leave it as it is in the database. +FUNCTION {format.title} +{ title empty$ + { "" } + 'title + if$ +} +% By default, BibTeX sets the global integer variable global.max$ to the BibTeX +% constant glob_str_size, the maximum length of a global string variable. +% Analogously, BibTeX sets the global integer variable entry.max$ to +% ent_str_size, the maximum length of an entry string variable. +% The style designer may change these if necessary (but this is unlikely) +% The n.dashify function makes each single `-' in a string a double `--' +% if it's not already +% +% pseudoVAR: pageresult: STRING (it's what's accumulated on the stack) +% +% n.dashify(s) == +% BEGIN +% t := s +% pageresult := "" +% while (not empty$(t)) +% do +% if (first character of t = "-") +% then +% if (next character isn't) +% then +% pageresult := pageresult * "--" +% t := t with the "-" removed +% else +% while (first character of t = "-") +% do +% pageresult := pageresult * "-" +% t := t with the "-" removed +% od +% fi +% else +% pageresult := pageresult * the first character +% t := t with the first character removed +% fi +% od +% return pageresult +% END +FUNCTION {n.dashify} +{ '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$ +} +% The format.date function is for the month and year, but we give a warning if +% there's an empty year but the month is there, and we return the empty string +% if they're both empty. +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} +% The format.btitle is for formatting the title field when it is a book-like +% entry---the style used here keeps it in uppers-and-lowers and emphasizes it. +FUNCTION {format.btitle} +{ title emphasize +} +% For several functions we'll need to connect two strings with a +% tie (~) if the second one isn't very long (fewer than 3 characters). +% The tie.or.space.connect function does that. It concatenates the two +% strings on top of the stack, along with either a tie or space between +% them, and puts this concatenation back onto the stack: +% +% tie.or.space.connect(str1,str2) == +% BEGIN +% if text.length$(str2) < 3 +% then return the concatenation of str1, "~", and str2 +% else return the concatenation of str1, " ", and str2 +% END +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} +% The either.or.check function complains if both fields or an either-or pair +% are nonempty. +% +% either.or.check(t,s) == +% BEGIN +% if empty$(s) then +% warning$(can't use both " * t * " fields in " * cite$) +% fi +% END +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +% The format.bvolume function is for formatting the volume and perhaps +% series name of a multivolume work. If both a volume and a series field +% are there, we assume the series field is the title of the whole multivolume +% work (the title field should be the title of the thing being referred to), +% and we add an "of ". This function is called in mid-sentence. +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +% The format.number.series function is for formatting the series name +% and perhaps number of a work in a series. This function is similar to +% format.bvolume, although for this one the series must exist (and the +% volume must not exist). If the number field is empty we output either +% the series field unchanged if it exists or else the null string. +% If both the number and series fields are there we assume the series field +% gives the name of the whole series (the title field should be the title +% of the work being one referred to), and we add an "in ". +% We capitilize Number when this function is used at the beginning of a block. +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} +% The format.edition function appends " edition" to the edition, if present. +% We lowercase the edition (it should be something like "Third"), because +% this doesn't start a sentence. +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + if$ +} +% The format.pages function is used for formatting a page range in a book +% (and in rare circumstances, an article). +% +% The multi.page.check function examines the page field for a "-" or "," or "+" +% so that format.pages can use "page" instead of "pages" if none exists. +% Note: global.max$ here means "take the rest of the string" +% +% VAR: multiresult: INTEGER (actually, a boolean) +% +% multi.page.check(s) == +% BEGIN +% t := s +% multiresult := false +% while ((not multiresult) and (not empty$(t))) +% do +% if (first character of t = "-" or "," or "+") +% then multiresult := true +% else t := t with the first character removed +% fi +% od +% return multiresult +% END +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 +} +% This function doesn't begin a sentence so "pages" isn't capitalized. +% Other functions that use this should keep that in mind. +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} +% The format.vol.num.pages function is for the volume, number, and page range +% of a journal article. We use the format: vol(number):pages, with some +% variations for empty fields. This doesn't begin a sentence. +FUNCTION {format.vol.num.pages} +{ volume field.or.null embolden + " " swap$ * * + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} +% The format.chapter.pages, if the chapter is present, puts whatever is in the +% type field (or else "chapter" if type is empty) in front of a chapter number. +% It then appends the pages, if present. This doesn't begin a sentence. +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} +% The format.in.ed.booktitle function is used for starting out a sentence +% that begins "In ", putting an editor before the title if one +% exists. +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "in " booktitle emphasize * } + { "in " booktitle emphasize * ", " * format.edited * } + if$ + } + if$ +} +% The function empty.misc.check complains if all six fields are empty, and +% if there's been no sorting or alphabetic-label complaint. +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} +% The function format.thesis.type returns either the (case-changed) type field, +% if it is defined, or else the default string already on the stack +% (like "Master's thesis" or "PhD thesis"). +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} +% The function format.tr.number makes a string starting with "Technical Report" +% (or type, if that field is defined), followed by the number if there is one; +% it returns the starting part (with a case change) even if there is no number. +% This is used at the beginning of a sentence. +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} +% Now come the cross-referencing functions (these are invoked because +% one entry in the database file(s) cross-references another, by giving +% the other entry's database key in a `crossref' field). This feature +% allows one or more titled things that are part of a larger titled +% thing to cross-reference the larger thing. These styles allow for +% five posibilities: (1) an ARTICLE may cross-reference an ARTICLE; +% (2) a BOOK, (3) INBOOK, or (4) INCOLLECTION may cross-reference a BOOK; +% or (5) an INPROCEEDINGS may cross-reference a PROCEEDINGS. +% Each of these is explained in more detail later. +% +% An ARTICLE entry type may cross reference another ARTICLE (this is +% intended for when an entire journal is devoted to a single topic--- +% but since there is no JOURNAL entry type, the journal, too, should be +% classified as an ARTICLE but without the author and title fields). +% This will result in two warning messages for the journal's entry +% if it's included in the reference list, but such is life. +% +% format.article.crossref == +% BEGIN +% if empty$(key) then +% if empty$(journal) then +% warning$("need key or journal for " * cite$ * +% " to crossref " * crossref) +% return(" \cite{" * crossref * "}") +% else +% return("In " * emphazise.correct (journal) * +% " \cite{" * crossref * "}") +% fi +% else +% return("In " * key * " \cite{" * crossref * "}") +% fi +% END +% +% The other cross-referencing functions are similar, so no "comment version" +% will be given for them. +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In " journal * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} +% We use just the last names of editors for a cross reference: either +% "editor", or "editor1 and editor2", or "editor1 et~al." depending on +% whether there are one, or two, or more than two editors. +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} +% A BOOK (or INBOOK) entry type (assumed to be for a single volume in a +% multivolume work) may cross reference another BOOK (the entire multivolume). +% Usually there will be an editor, in which case we use that to construct the +% cross reference; otherwise we use a nonempty key field or else the series +% field (since the series gives the title of the multivolume work). +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} +% An INCOLLECTION entry type may cross reference a BOOK (assumed to be the +% collection), or an INPROCEEDINGS may cross reference a PROCEEDINGS. +% Often there will be an editor, in which case we use that to construct +% the cross reference; otherwise we use a nonempty key field or else +% the booktitle field (which gives the cross-referenced work's title). +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} +% Now we define the type functions for all entry types that may appear +% in the .BIB file---e.g., functions like `article' and `book'. These +% are the routines that actually generate the .BBL-file output for +% the entry. These must all precede the READ command. In addition, the +% style designer should have a function `default.type' for unknown types. +% Note: The fields (within each list) are listed in order of appearance, +% except as described for an `inbook' or a `proceedings'. +% +% The article function is for an article in a journal. An article may +% CROSSREF another article. +% Required fields: author, title, journal, year +% Optional fields: volume, number, pages, month, note +% +% article == +% BEGIN +% output.bibitem +% output.check(format.authors,"author") +% new.block +% output.check(format.title,"title") +% new.block +% if missing$(crossref) then +% output.check(emphasize(journal),"journal") +% output(format.vol.num.pages) +% output.check(format.date,"year") +% else +% output.nonnull(format.article.crossref) +% output(format.pages) +% fi +% new.block +% output(note) +% fin.entry +% END +% +% The book function is for a whole book. A book may CROSSREF another book. +% Required fields: author or editor, title, publisher, year +% Optional fields: volume or number, series, address, edition, month, +% note +% +% book == +% BEGIN +% if empty$(author) then output.check(format.editors,"author and editor") +% else output.check(format.authors,"author") +% if missing$(crossref) then +% either.or.check("author and editor",editor) +% fi +% fi +% new.block +% output.check(format.btitle,"title") +% if missing$(crossref) then +% output(format.bvolume) +% new.block +% output(format.number.series) +% new.sentence +% output.check(publisher,"publisher") +% output(address) +% else +% new.block +% output.nonnull(format.book.crossref) +% fi +% output(format.edition) +% output.check(format.date,"year") +% new.block +% output(note) +% fin.entry +% END +% +% The other entry functions are all quite similar, so no "comment version" +% will be given for them. +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal field.or.null + format.vol.num.pages + format.date empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.date paren } + { " " * format.date paren * } + if$ + } + if$ + output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} +% A booklet is a bound thing without a publisher or sponsoring institution. +% Required: title +% Optional: author, howpublished, address, month, year, note +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} +% For the conference entry type, see inproceedings. +% An inbook is a piece of a book: either a chapter and/or a page range. +% It may CROSSREF a book. If there's no volume field, the type field +% will come before number and series. +% Required: author or editor, title, chapter and/or pages, publisher,year +% Optional: volume or number, series, type, address, edition, month, note +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} +% An incollection is like inbook, but where there is a separate title +% for the referenced thing (and perhaps an editor for the whole). +% An incollection may CROSSREF a book. +% Required: author, title, booktitle, publisher, year +% Optional: editor, volume or number, series, type, chapter, pages, +% address, edition, month, note +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} +% An inproceedings is an article in a conference proceedings, and it may +% CROSSREF a proceedings. If there's no address field, the month (& year) +% will appear just before note. +% Required: author, title, booktitle, year +% Optional: editor, volume or number, series, pages, address, month, +% organization, publisher, note +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} +% The conference function is included for Scribe compatibility. +FUNCTION {conference} { inproceedings } +% A manual is technical documentation. +% Required: title +% Optional: author, organization, address, edition, month, year, note +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} +% A mastersthesis is a Master's thesis. +% Required: author, title, school, year +% Optional: type, address, month, note +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% A misc is something that doesn't fit elsewhere. +% Required: at least one of the `optional' fields +% Optional: author, title, howpublished, month, year, note +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} +% A phdthesis is like a mastersthesis. +% Required: author, title, school, year +% Optional: type, address, month, note +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% A proceedings is a conference proceedings. +% If there is an organization but no editor field, the organization will +% appear as the first optional field (we try to make the first block nonempty); +% if there's no address field, the month (& year) will appear just before note. +% Required: title, year +% Optional: editor, volume or number, series, address, month, +% organization, publisher, note +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} +% A techreport is a technical report. +% Required: author, title, institution, year +% Optional: type, number, address, month, note +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% An unpublished is something that hasn't been published. +% Required: author, title, note +% Optional: month, year +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} +% We use entry type `misc' for an unknown type; BibTeX gives a warning. +FUNCTION {default.type} { misc } +% Here are macros for common things that may vary from style to style. +% Users are encouraged to use these macros. +% +% Months are either written out in full or abbreviated +MACRO {jan} {"Jan."} +MACRO {feb} {"Feb."} +MACRO {mar} {"Mar."} +MACRO {apr} {"Apr."} +MACRO {may} {"May"} +MACRO {jun} {"June"} +MACRO {jul} {"July"} +MACRO {aug} {"Aug."} +MACRO {sep} {"Sept."} +MACRO {oct} {"Oct."} +MACRO {nov} {"Nov."} +MACRO {dec} {"Dec."} +% Journals are either written out in full or abbreviated; +% the abbreviations are like those found in ACM publications. +% +% To get a completely different set of abbreviations, it may be best to make +% a separate .bib file with nothing but those abbreviations; users could then +% include that file name as the first argument to the \bibliography command +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. Softw. Eng."} +MACRO {ieeetc} {"IEEE Trans. Comput."} +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} +MACRO {ipl} {"Inf. Process. Lett."} +MACRO {jacm} {"J.~ACM"} +MACRO {jcss} {"J.~Comput. Syst. Sci."} +MACRO {scp} {"Sci. Comput. Programming"} +MACRO {sicomp} {"SIAM J. Comput."} +MACRO {tocs} {"ACM Trans. Comput. Syst."} +MACRO {tods} {"ACM Trans. Database Syst."} +MACRO {tog} {"ACM Trans. Gr."} +MACRO {toms} {"ACM Trans. Math. Softw."} +MACRO {toois} {"ACM Trans. Office Inf. Syst."} +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} +MACRO {tcs} {"Theoretical Comput. Sci."} +%% /usr/local/lib/tex/bibtex/phyjfull.btx, Tue Jun 30 08:37:48 1992 +%% Edit by Nelson H. F. Beebe +%% Change file names in leading comment +% Journal Title Abbreviations from the Physical Review Style and Notation +% Guide, July, 1983, in BAPS Vol. 28. +% Selected by Cris Barnes and Charles Karney, March 1988 +% IMPORTANT!! Don't make changes to this file without making the +% corresponding changes to +% phyjabb.bib +% phyjabb.btx +MACRO {advp} {"Advances in Physics"} +MACRO {ajp} {"American Journal of Physics"} +MACRO {ao} {"Applied Optics"} +MACRO {apl} {"Applied Physics Letters"} +MACRO {apj} {"Astrophysical Journal"} +MACRO {baps} {"Bulletin of the American Physical Society"} +MACRO {cpc} {"Computer Physics Communications"} +MACRO {cppcf} {"Comments on Plasma Physics and Controlled Fusion"} +MACRO {fed} {"Fusion Engineering and Design"} +MACRO {ft} {"Fusion Technology"} +MACRO {ieeens} {"IEEE Transactions on Nuclear Science"} +MACRO {ieeeps} {"IEEE Transactions on Plasma Science"} +MACRO {ijimw} {"International Journal of Infrared and Millimeter Waves"} +MACRO {ip} {"Infrared Physics"} +MACRO {jap} {"Journal of Applied Physics"} +MACRO {jcp} {"Journal of Computational Physics"} +MACRO {jetp} {"Soviet Physics-JETP"} +MACRO {jfe} {"Journal of Fusion Energy"} +MACRO {jfm} {"Journal of Fluid Mechanics"} +MACRO {jgr} {"Journal of Geophysical Research"} +MACRO {jmp} {"Journal of Mathematical Physics"} +MACRO {jne} {"Journal of Nuclear Energy"} +MACRO {jnec} {"Journal of Nuclear Energy, Part C: Plasma Physics, Accelerators, Thermonuclear Research"} +MACRO {jnm} {"Journal of Nuclear Materials"} +MACRO {josa} {"Journal of the Optical Society of America"} +MACRO {jpp} {"Journal of Plasma Physics"} +MACRO {jpsj} {"Journal of the Physical Society of Japan"} +MACRO {jvst} {"Journal of Vacuum Science and Technology"} +MACRO {nedf} {"Nuclear Engineering and Design/Fusion"} +MACRO {nf} {"Nuclear Fusion"} +MACRO {nim} {"Nuclear Instruments and Methods"} +MACRO {nimpr} {"Nuclear Instruments and Methods in Physics Research"} +MACRO {nt/f} {"Nuclear Technology/Fusion"} +MACRO {pf} {"Physics of Fluids"} +MACRO {pfa} {"Physics of Fluids A: Fluid Dynamics"} +MACRO {pfb} {"Physics of Fluids B: Plasma Physics"} +MACRO {pl} {"Physics Letters"} +MACRO {pla} {"Physics Letters A"} +MACRO {pnas} {"Proceedings of the National Academy of Sciences of the USA"} +MACRO {pp} {"Plasma Physics"} +MACRO {ppcf} {"Plasma Physics and Controlled Fusion"} +MACRO {prl} {"Physical Review Letters"} +MACRO {pr} {"Physical Review"} +MACRO {pra} {"Physical Review A: General Physics"} +MACRO {ps} {"Physica Scripta"} +MACRO {rmp} {"Reviews of Modern Physics"} +MACRO {rsi} {"Review of Scientific Instruments"} +MACRO {sjpp} {"Soviet Journal of Plasma Phys."} +MACRO {spd} {"Soviet Physics-Doklady"} +MACRO {sptp} {"Soviet Physics-Technical Physics"} +MACRO {spu} {"Soviet Physics-Uspeki"} +% Now we read in the .BIB entries. +READ +% The sortify function converts to lower case after purify$ing; it's +% used in sorting and in computing alphabetic labels after sorting +% +% The chop.word(w,len,s) function returns either s or, if the first len +% letters of s equals w (this comparison is done in the third line of the +% function's definition), it returns that part of s after w. +% This long comment applies only to alphabetic labels +% +% The format.lab.names function makes a short label by using the initials of +% the von and Last parts of the names (but if there are more than four names, +% (i.e., people) it truncates after three and adds a superscripted "+"; +% it also adds such a "+" if the last of multiple authors is "others"). +% If there is only one name, and its von and Last parts combined have just +% a single name-token ("Knuth" has a single token, "Brinch Hansen" has two), +% we take the first three letters of the last name. The boolean +% et.al.char.used tells whether we've used a superscripted "+", so that we +% know whether to include a LaTeX macro for it. +% +% format.lab.names(s) == +% BEGIN +% numnames := num.names$(s) +% if numnames > 1 then +% if numnames > 4 then +% namesleft := 3 +% else +% namesleft := numnames +% nameptr := 1 +% nameresult := "" +% while namesleft > 0 +% do +% if (name_ptr = numnames) and +% format.name$(s, nameptr, "{ff }{vv }{ll}{ jj}") = "others" +% then nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else nameresult := nameresult * +% format.name$(s, nameptr, "{v{}}{l{}}") +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% if numnames > 4 then +% nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else +% t := format.name$(s, 1, "{v{}}{l{}}") +% if text.length$(t) < 2 then % there's just one name-token +% nameresult := text.prefix$(format.name$(s,1,"{ll}"),3) +% else +% nameresult := t +% fi +% fi +% return nameresult +% END +% +% Exactly what fields we look at in constructing the primary part of the label +% depends on the entry type; this selectivity (as opposed to, say, always +% looking at author, then editor, then key) helps ensure that "ignored" fields, +% as described in the LaTeX book, really are ignored. Note that MISC is part +% of the deepest `else' clause in the nested part of calc.label; thus, any +% unrecognized entry type in the database is handled correctly. +% +% There is one auxiliary function for each of the four different sequences of +% fields we use. The first of these functions looks at the author field, and +% then, if necessary, the key field. The other three functions, which might +% look at two fields and the key field, are similar, except that the key field +% takes precedence over the organization field (for labels---not for sorting). +% +% The calc.label function calculates the preliminary label of an entry, which +% is formed by taking three letters of information from the author or editor or +% key or organization field (depending on the entry type and on what's empty, +% but ignoring a leading "The " in the organization), and appending the last +% two characters (digits) of the year. It is an error if the appropriate fields +% among author, editor, organization, and key are missing, and we use +% the first three letters of the cite$ in desperation when this happens. +% The resulting label has the year part, but not the name part, purify$ed +% (purify$ing the year allows some sorting shenanigans by the user). +% +% This function also calculates the version of the label to be used in sorting. +% +% The final label may need a trailing 'a', 'b', etc., to distinguish it from +% otherwise identical labels, but we can't calculated those "extra.label"s +% until after sorting. +% +% calc.label == +% BEGIN +% if type$ = "book" or "inbook" then +% author.editor.key.label +% else if type$ = "proceedings" then +% editor.key.organization.label +% else if type$ = "manual" then +% author.key.organization.label +% else +% author.key.label +% fi fi fi +% label := label * substring$(purify$(field.or.null(year)), -1, 2) +% % assuming we will also sort, we calculate a sort.label +% sort.label := sortify(label), but use the last four, not two, digits +% END +% When sorting, we compute the sortkey by executing "presort" on each entry. +% The presort key contains a number of "sortify"ed strings, concatenated +% with multiple blanks between them. This makes things like "brinch per" +% come before "brinch hansen per". +% +% The fields used here are: the sort.label for alphabetic labels (as set by +% calc.label), followed by the author names (or editor names or organization +% (with a leading "The " removed) or key field, depending on entry type and on +% what's empty), followed by year, followed by the first bit of the title +% (chopping off a leading "The ", "A ", or "An "). +% Names are formatted: Von Last First Junior. +% The names within a part will be separated by a single blank +% (such as "brinch hansen"), two will separate the name parts themselves +% (except the von and last), three will separate the names, +% four will separate the names from year (and from label, if alphabetic), +% and four will separate year from title. +% +% The sort.format.names function takes an argument that should be in +% BibTeX name format, and returns a string containing " "-separated +% names in the format described above. The function is almost the same +% as format.names. +% This long comment applies only to alphabetic labels, when sorted +% +% Now comes the final computation for alphabetic labels, putting in the 'a's +% and 'b's and so forth if required. This involves two passes: a forward +% pass to put in the 'b's, 'c's and so on, and a backwards pass +% to put in the 'a's (we don't want to put in 'a's unless we know there +% are 'b's). +% We have to keep track of the longest (in width$ terms) label, for use +% by the "thebibliography" environment. +% +% VAR: longest.label, last.sort.label, next.extra: string +% longest.label.width, last.extra.num: integer +% +% initialize.longest.label == +% BEGIN +% longest.label := "" +% last.sort.label := int.to.chr$(0) +% next.extra := "" +% longest.label.width := 0 +% last.extra.num := 0 +% END +% +% forward.pass == +% BEGIN +% if last.sort.label = sort.label then +% last.extra.num := last.extra.num + 1 +% extra.label := int.to.chr$(last.extra.num) +% else +% last.extra.num := chr.to.int$("a") +% extra.label := "" +% last.sort.label := sort.label +% fi +% END +% +% reverse.pass == +% BEGIN +% if next.extra = "b" then +% extra.label := "a" +% fi +% label := label * extra.label +% if width$(label) > longest.label.width then +% longest.label := label +% longest.label.width := width$(label) +% fi +% next.extra := extra.label +% END +% Now comes the computation for numeric labels. +% We use either the sorted order or original order. +% We still have to keep track of the longest (in width$ terms) label, for use +% by the "thebibliography" environment. +STRINGS { longest.label } +INTEGERS { number.label longest.label.width } +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} +% Now we're ready to start writing the .BBL file. +% We begin, if necessary, with a LaTeX macro for unnamed names in an alphabetic +% label; next comes stuff from the `preamble' command in the database files. +% Then we give an incantation containing the command +% \begin{thebibliography}{...} +% where the `...' is the longest label. +% +% We also call init.state.consts, for use by the output routines. +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +% Now we produce the output for all the entries +ITERATE {call.type$} +% Finally, we finish up by writing the `\end{thebibliography}' command. +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/phrmp.bst b/Master/texmf-dist/bibtex/bst/beebe/phrmp.bst new file mode 100644 index 00000000000..b6dd3b0d620 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/phrmp.bst @@ -0,0 +1,2150 @@ +% BibTeX styles for various physics journals (27-Feb-1990). +% This file, physics.btx, is based on the file btxbst.doc. + % Please notify Charles Karney (Karney@Princeton.EDU) + % of any bugs, improvements, etc. +% Run this file through cpp to get specific versions. I have written +% a version of cpp within Emacs. To access it put +% (autoload 'cpp "tex$bibtex:cpp" ; Use cpp for BibTeX styles +% "C preprocessor" +% t) +% into your .emacs file. Read in this file with +% emacs tex$bibtex:physics.btx +% and run cpp with e.g., +% M-x cpp aip +% Save the resulting file to tex$latex:aip.bst. +% To accomodate the variations we need (in addition to the definitions below) +% ATIT_SUPPRESS: do not include the titles of journal articles +% NAME_INVERT: put the initials last +% NAME_UPPER: convert names to all caps. +% MONTH_SUPPRESS: do not include months in journal articles +% PAREN_DATE: dates go in parens in journal articles +% DATE_FIRST: dates go before page numbers +% VOLUME_SPACE: volume set off with space (not colon) +% NUM_SUPPRESS: do not include numbers in journal articles +% BOLD_VOL: volume numbers in bold face in journal articles +% BRACKET_NOTE: notes in brackets +% PAGE_START_J: include only starting page for journal articles +% PAGE_START_O: include only starting page for other entries +% PAGE_ABBREV: abbreviate page to p. and pages to pp. +% PHYSICS_JOUR: include abbreviations for Physics journals +% COMMA_DELIMIT: use comma (instead of period) to divide a citation +% NOTE_SUPPRESS: suppress the note +% MAX_NAMES: max number of authors before using et al (0 = infinity) +% MIN_NAMES: number of authors to list with et al. +% EDIT_VAR: use "edited by ..." instead of "..., editors" +% RMP_LABELS: create 1-style labels +% KEY_CITE: use key as label +% NAMED_REFS: use (Smith, 1988) style of citations +% CSC_NAMES: names set in caps and small caps +% JOUR_DEEMPH: don't emphasize journal name +% ETAL_EMPH: emphasize et al. +% ALT_INCOLL alternate ordering of fields in incollections +% These are all boolean (0 or 1) except for MAX_NAMES and MIN_NAMES. +% These need to satisfy 0 <= MIN_NAMES <= MAX_NAMES. +% The rule here is that if all these are defined to be zero, we revert to +% the standard styles. For that reason we initialize them all to 0. +% These are the original macros + % For Reviews of Modern Physics, +% except first name not inverted yet and order of fields not hacked +% This is the start of btxbst.doc +% BibTeX `plain' family + % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. +% Please notify Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU) of any bugs in +% these standard styles or in this documentation file. +% +% This is file btxbxt.doc; it helps document bibliography styles, +% and is also a template file that you can use to make +% several different style files, if you have access to a C preprocessor. +% For example, the standard styles were made by doing something like +% cpp -P -DPLAIN btxbst.doc plain.txt +% cpp -P -DUNSRT btxbst.doc unsrt.txt +% cpp -P -DALPHA btxbst.doc alpha.txt +% cpp -P -DABBRV btxbst.doc abbrv.txt +% and then renaming after removing unwanted comments and blank lines. +% If you don't have access, +% you can edit this file by hand to imitate the preprocessor, +% with the following explanation of the C preprocessor constructs used here. +% +% The output of the preprocessor is the same as the input, except that certain +% lines will be excluded (and some blank lines will be added). The sequence +% #if VAR +% lines to be included when VAR is not zero +% #else +% lines to be included when VAR is zero +% #endif +% (with the #-signs appearing in column 1) means that one set or the other of +% the lines are to be included depending on the value of VAR. +% The #else part is optional. Comments can be added after #else and #endif. +% Variables can be set by +% #define VAR value +% and one can also use #ifdef VAR to see if VAR has any value, and #ifndef +% to see if it has none. +% Another #if form used in this file is #if !VAR, which includes the lines +% after the #if only if VAR is zero. +% +% Convention: Use all uppercase identifiers for these preprocessor variables +% so you can spot them easily +% +% The command line to the preprocessor should define one of PLAIN, UNSRT, ALPHA +% or ABBRV (though PLAIN will be used by default if none is given), +% and the following lines will set various boolean variables to control the +% various lines that are chosen from the rest of the file. +% Each boolean variable should be set true (1) or false (0) in each style. +% Here are the current variables, and their meanings: +% 1: an alphabetic label is used (if false then a numeric +% label is used) +% 1: the entries should be sorted by label (if nonnumeric) +% and other info, like authors (if false, then +% entries remain in order of occurrence) +% 0: the authors, editors, etc., get the full names as +% given in the bibliography file (if false, the first +% names become initials) +% 1: titles of non-"books" (e.g., articles) should be +% converted to lower-case, except the first letter or +% first letter after a colon +% (if false then they appear as in the database) +% 0: months are spelled out in full (if false, then +% they're abbreviated) +% 0: macro journal names are spelled out in full +% (if false then they are abbreviated, currently +% as they appear in ACM publications) +%# define PLAIN 1 +% +% Entry formatting: Similar to that recommended by Mary-Claire van Leunen +% in "A Handbook for Scholars". Book-like titles are italicized +% (emphasized) and non-book titles are converted to sentence +% capitilization (and not enclosed in quotes). +% This file outputs a \newblock between major blocks of an entry +% (the name \newblock is analogous to the names \newline and \newpage) +% so that the user can obtain an "open" format, which has a line break +% before each block and lines after the first are indented within blocks, +% by giving the optional \documentstyle argument `openbib'; +% The default is the "closed" format---blocks runs together. +% +% Citation alphabetic label format: +% [Knu73] for single author (or editor or key) +% [AHU83] (first letters of last names) for multiple authors +% +% Citation label numberic format: +% [number] +% +% Reference list ordering for sorted, alphabetic lables: +% alphabetical by citation label, then by author(s) or whatever +% passes for author in the absence of one, then by year, +% then title +% +% Reference list ordering for sorted, numeric lables: +% alphabetical by author(s) or whatever passes +% for author in the absence of one, then by year, then title +% +% Reference list ordering for unsorted: +% by the order cited in the text +% +% History +% 12/16/84 (HWT) Original `plain' version, by Howard Trickey. +% 12/23/84 (LL) Some comments made by Leslie Lamport. +% 2/16/85 (OP) Changes based on LL's comments, Oren Patashnik. +% 2/17/85 (HWT) Template file and other standard styles made. +% 3/28/85 (OP) First release, version 0.98b for BibTeX 0.98f. +% 5/ 9/85 (OP) Version 0.98c for BibTeX 0.98i: +% fixed Theoretical Computer Science macro name; +% fixed the format.vol.num.pages function. +% 1/24/88 (OP) Version 0.99a for BibTeX 0.99a, main changes: +% assignment operator (:=) arguments reversed; +% the preamble$ function outputs the database PREAMBLE; +% entry.max$ and global.max$ (built-in) variables replace +% entry.string.max and global.string.max functions; +% alphabetizing by year then title, not just title; +% many unnecessary ties removed; \it ==> \em; +% the `alpha' style uses a superscripted `+' instead of a +% `*' for unnamed names in constructing the label; +% the `abbrv' style now uses "Mar." and "Sept."; +% the functions calc.label and presort now look at just +% the fields they're supposed to; +% BOOKLET, MASTERSTHESIS, TECHREPORT use nonbook titles; +% INBOOK and INCOLLECTION take an optional type (e.g. +% type = "Section"), overriding the default "chapter"; +% BOOK, INBOOK, INCOLLECTION, and PROCEEDINGS now allow +% either volume or number, not just volume; +% INCOLLECTION now allows an edition and series field; +% PROCEEDINGS and INPROCEEDINGS now use the address field +% to tell where a conference was held; +% INPROCEEDINGS and PROCEEDINGS now allow either volume +% or number, and also a series field; +% MASTERSTHESIS and PHDTHESIS accept types other than +% "Master's thesis" and "PhD thesis"; +% UNPUBLISHED now outputs, in one block, note then date; +% MANUAL now prints out the organization in +% the first block if the author field is empty; +% MISC can't be empty---it requires some optional field. +% 3/23/88 (OP) Version 0.99b for BibTeX 0.99c---changed the three +% erroneous occurrences of `cite ' to `cite$ '; this +% change didn't affect the four standard styles, so the +% 0.99a versions of those styles are still current. +% +% The ENTRY declaration +% Like Scribe's (according to pages 231-2 of the April '84 edition), +% but no fullauthor or editors fields because BibTeX does name handling. +% The annote field is commented out here because this family doesn't +% include an annotated bibliography style. And in addition to the fields +% listed here, BibTeX has a built-in crossref field, explained later. +ENTRY +% Fields: + { address +% Usually the address of a publisher or other type of organization. +% Put information in this field only if it helps the reader find the +% thing---for example you should omit the address of a major +% publisher entirely. For a PROCEEDINGS or an INPROCEEDINGS, +% however, it's the address of the conference; for those two entry +% types, include the publisher's or organization's address, if +% necessary, in the publisher or organization field. +% annote +% Long annotation---for annotated bibliographies (begins sentence). + author +% Name(s) of author(s), in BibTeX name format. + booktitle +% Book title when the thing being referenced isn't the whole book. +% For book entries, the title field should be used instead. + chapter +% Chapter (or section or whatever) number. + edition +% Edition of a book---should be an ordinal (e.g., "Second"). + editor +% Name(s) of editor(s), in BibTeX name format. +% If there is also an author field, then the editor field should be +% for the book or collection that the work appears in. + howpublished +% How something strange has been published (begins sentence). + institution +% Sponsoring institution of a technical report. + journal +% Journal name (macros are provided for many). + key +% Alphabetizing, labeling, and cross-referencing key +% (needed when an entry has no author or editor). + month +% Month (macros are provided). + note +% To help the reader find a reference (begins sentence). + number +% Number of a journal or technical report, or of a work in a series. + organization +% Organization sponsoring a conference (or publishing a manual); if +% the editor (or author) is empty, and if the organization produces +% an awkward label or cross reference, you should put appropriately +% condensed organization information in the key field as well. + pages +% Page number or numbers (use `--' to separate a range, use `+' +% to indicate pages following that don't form a simple range). + publisher +% Publisher name. + school +% School name (for theses). + series +% The name of a series or set of books. +% An individual book will will also have it's own title. + title +% The title of the thing you're referred to. + type +% Type of a Techreport (e.g., "Research Note") to be used instead of +% the default "Technical Report"; or, similarly, the type of a +% thesis; or of a part of a book. + volume +% The volume number of a journal or multivolume work. + year +% The year should contain only numerals (technically, it should end +% with four numerals, after purification; doesn't a begin sentence). + } +% There are no integer entry variables + {} +% These string entry variables are used to form the citation label. +% In a storage pinch, sort.label can be easily computed on the fly. + { label extra.label sort.label } +% Each entry function starts by calling output.bibitem, to write the +% \bibitem and its arguments to the .BBL file. Then the various fields +% are formatted and printed by output or output.check. Those functions +% handle the writing of separators (commas, periods, \newblock's), +% taking care not to do so when they are passed a null string. +% Finally, fin.entry is called to add the final period and finish the +% entry. +% +% A bibliographic reference is formatted into a number of `blocks': +% in the open format, a block begins on a new line and subsequent +% lines of the block are indented. A block may contain more than +% one sentence (well, not a grammatical sentence, but something to +% be ended with a sentence ending period). The entry functions should +% call new.block whenever a block other than the first is about to be +% started. They should call new.sentence whenever a new sentence is +% to be started. The output functions will ensure that if two +% new.sentence's occur without any non-null string being output between +% them then there won't be two periods output. Similarly for two +% successive new.block's. +% +% The output routines don't write their argument immediately. +% Instead, by convention, that argument is saved on the stack to be +% output next time (when we'll know what separator needs to come +% after it). Meanwhile, the output routine has to pop the pending +% output off the stack, append any needed separator, and write it. +% +% To tell which separator is needed, we maintain an output.state. +% It will be one of these values: +% before.all just after the \bibitem +% mid.sentence in the middle of a sentence: comma needed +% if more sentence is output +% after.sentence just after a sentence: period needed +% after.block just after a block (and sentence): +% period and \newblock needed. +% Note: These styles don't use after.sentence +% +% VAR: output.state : INTEGER -- state variable for output +% +% The output.nonnull function saves its argument (assumed to be nonnull) +% on the stack, and writes the old saved value followed by any needed +% separator. The ordering of the tests is decreasing frequency of +% occurrence. +% +% output.nonnull(s) == +% BEGIN +% s := argument on stack +% if output.state = mid.sentence then +% write$(pop() * ", ") +% -- "pop" isn't a function: just use stack top +% else +% if output.state = after.block then +% write$(add.period$(pop())) +% newline$ +% write$("\newblock ") +% else +% if output.state = before.all then +% write$(pop()) +% else -- output.state should be after.sentence +% write$(add.period$(pop()) * " ") +% fi +% fi +% output.state := mid.sentence +% fi +% push s on stack +% END +% +% The output function calls output.nonnull if its argument is non-empty; +% its argument may be a missing field (thus, not necessarily a string) +% +% output(s) == +% BEGIN +% if not empty$(s) then output.nonnull(s) +% fi +% END +% +% The output.check function is the same as the output function except that, if +% necessary, output.check warns the user that the t field shouldn't be empty +% (this is because it probably won't be a good reference without the field; +% the entry functions try to make the formatting look reasonable even when +% such fields are empty). +% +% output.check(s,t) == +% BEGIN +% if empty$(s) then +% warning$("empty " * t * " in " * cite$) +% else output.nonnull(s) +% fi +% END +% +% The output.bibitem function writes the \bibitem for the current entry +% (the label should already have been set up), and sets up the separator +% state for the output functions. And, it leaves a string on the stack +% as per the output convention. +% +% output.bibitem == +% BEGIN +% newline$ +% write$("\bibitem[") % for alphabetic labels, +% write$(label) % these three lines +% write$("]{") % are used +% write$("\bibitem{") % this line for numeric labels +% write$(cite$) +% write$("}") +% push "" on stack +% output.state := before.all +% END +% +% The fin.entry function finishes off an entry by adding a period to the +% string remaining on the stack. If the state is still before.all +% then nothing was produced for this entry, so the result will look bad, +% but the user deserves it. (We don't omit the whole entry because the +% entry was cited, and a bibitem is needed to define the citation label.) +% +% fin.entry == +% BEGIN +% write$(add.period$(pop())) +% newline$ +% END +% +% The new.block function prepares for a new block to be output, and +% new.sentence prepares for a new sentence. +% +% new.block == +% BEGIN +% if output.state <> before.all then +% output.state := after.block +% fi +% END +% +% new.sentence == +% BEGIN +% if output.state <> after.block then +% if output.state <> before.all then +% output.state := after.sentence +% fi +% fi +% END +% +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 := +} +% the variables s and t are temporary string holders +STRINGS { s t } +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { "," * 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 {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} +% This function finishes all entries. +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} +FUNCTION {new.sentence} +{ skip$ +} +% These three functions pop one or two (integer) arguments from the stack +% and push a single one, either 0 or 1. +% The 'skip$ in the `and' and `or' functions are used because +% the corresponding if$ would be idempotent +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +% Sometimes we begin a new block only if the block will be big enough. The +% new.block.checka function issues a new.block if its argument is nonempty; +% new.block.checkb does the same if either of its TWO arguments is nonempty. +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +% The new.sentence.check functions are analogous. +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} +% Here are some functions for formatting chunks of an entry. +% By convention they either produce a string that can be followed by +% a comma or period (using add.period$, so it is OK to end in a period), +% or they produce the null string. +% +% A useful utility is the field.or.null function, which checks if the +% argument is the result of pushing a `missing' field (one for which no +% assignment was made when the current entry was read in from the database) +% or the result of pushing a string having no non-white-space characters. +% It returns the null string if so, otherwise it returns the field string. +% Its main (but not only) purpose is to guarantee that what's left on the +% stack is a string rather than a missing field. +% +% field.or.null(s) == +% BEGIN +% if empty$(s) then return "" +% else return s +% END +% +% Another helper function is emphasize, which returns the argument emphazised, +% if that is non-empty, otherwise it returns the null string. Italic +% corrections aren't used, so this function should be used when punctation +% will follow the result. +% +% emphasize(s) == +% BEGIN +% if empty$(s) then return "" +% else return "{\em " * s * "}" +% +% The format.names function formats the argument (which should be in +% BibTeX name format) into "First Von Last, Junior", separated by commas +% and with an "and" before the last (but ending with "et~al." if the last +% of multiple authors is "others"). This function's argument should always +% contain at least one name. +% +% VAR: nameptr, namesleft, numnames: INTEGER +% pseudoVAR: nameresult: STRING (it's what's accumulated on the stack) +% +% format.names(s) == +% BEGIN +% nameptr := 1 +% numnames := num.names$(s) +% namesleft := numnames +% while namesleft > 0 +% do +% % for full names: +% t := format.name$(s, nameptr, "{ff~}{vv~}{ll}{, jj}") +% % for abbreviated first names: +% t := format.name$(s, nameptr, "{f.~}{vv~}{ll}{, jj}") +% if nameptr > 1 then +% if namesleft > 1 then nameresult := nameresult * ", " * t +% else if numnames > 2 +% then nameresult := nameresult * "," +% fi +% if t = "others" +% then nameresult := nameresult * " et~al." +% else nameresult := nameresult * " and " * t +% fi +% fi +% else nameresult := t +% fi +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% return nameresult +% END +% +% The format.authors function returns the result of format.names(author) +% if the author is present, or else it returns the null string +% +% format.authors == +% BEGIN +% if empty$(author) then return "" +% else return format.names(author) +% fi +% END +% +% Format.editors is like format.authors, but it uses the editor field, +% and appends ", editor" or ", editors" +% +% format.editors == +% BEGIN +% if empty$(editor) then return "" +% else +% if num.names$(editor) > 1 then +% return format.names(editor) * ", editors" +% else +% return format.names(editor) * ", editor" +% fi +% fi +% END +% +% Other formatting functions are similar, so no "comment version" will be +% given for them. +% +% The `pop$' in this function gets rid of the duplicate `empty' value and +% the `skip$' returns the duplicate field value +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} +FUNCTION {embolden} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} +FUNCTION {bracket} +{ duplicate$ empty$ + { pop$ "" } + { "[" swap$ * "]" * } + if$ +} +INTEGERS { nameptr namesleft numnames } +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} +FUNCTION {format.edited} +{ editor empty$ + { "" } + { "edited by " editor format.names * } + if$ +} +% The format.title function is used for non-book-like titles. +% For most styles we convert to lowercase (except for the very first letter, +% and except for the first one after a colon (followed by whitespace)), +% and hope the user has brace-surrounded words that need to stay capitilized; +% for some styles, however, we leave it as it is in the database. +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} +% By default, BibTeX sets the global integer variable global.max$ to the BibTeX +% constant glob_str_size, the maximum length of a global string variable. +% Analogously, BibTeX sets the global integer variable entry.max$ to +% ent_str_size, the maximum length of an entry string variable. +% The style designer may change these if necessary (but this is unlikely) +% The n.dashify function makes each single `-' in a string a double `--' +% if it's not already +% +% pseudoVAR: pageresult: STRING (it's what's accumulated on the stack) +% +% n.dashify(s) == +% BEGIN +% t := s +% pageresult := "" +% while (not empty$(t)) +% do +% if (first character of t = "-") +% then +% if (next character isn't) +% then +% pageresult := pageresult * "--" +% t := t with the "-" removed +% else +% while (first character of t = "-") +% do +% pageresult := pageresult * "-" +% t := t with the "-" removed +% od +% fi +% else +% pageresult := pageresult * the first character +% t := t with the first character removed +% fi +% od +% return pageresult +% END +FUNCTION {n.dashify} +{ '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 {first.page} +{ 't := + "" + { t empty$ not t #1 #1 substring$ "-" = not and } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + while$ +} +% The format.date function is for the month and year, but we give a warning if +% there's an empty year but the month is there, and we return the empty string +% if they're both empty. +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} +% The format.btitle is for formatting the title field when it is a book-like +% entry---the style used here keeps it in uppers-and-lowers and emphasizes it. +FUNCTION {format.btitle} +{ title emphasize +} +% For several functions we'll need to connect two strings with a +% tie (~) if the second one isn't very long (fewer than 3 characters). +% The tie.or.space.connect function does that. It concatenates the two +% strings on top of the stack, along with either a tie or space between +% them, and puts this concatenation back onto the stack: +% +% tie.or.space.connect(str1,str2) == +% BEGIN +% if text.length$(str2) < 3 +% then return the concatenation of str1, "~", and str2 +% else return the concatenation of str1, " ", and str2 +% END +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} +% The either.or.check function complains if both fields or an either-or pair +% are nonempty. +% +% either.or.check(t,s) == +% BEGIN +% if empty$(s) then +% warning$(can't use both " * t * " fields in " * cite$) +% fi +% END +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +% The format.bvolume function is for formatting the volume and perhaps +% series name of a multivolume work. If both a volume and a series field +% are there, we assume the series field is the title of the whole multivolume +% work (the title field should be the title of the thing being referred to), +% and we add an "of ". This function is called in mid-sentence. +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +% The format.number.series function is for formatting the series name +% and perhaps number of a work in a series. This function is similar to +% format.bvolume, although for this one the series must exist (and the +% volume must not exist). If the number field is empty we output either +% the series field unchanged if it exists or else the null string. +% If both the number and series fields are there we assume the series field +% gives the name of the whole series (the title field should be the title +% of the work being one referred to), and we add an "in ". +% We capitilize Number when this function is used at the beginning of a block. +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} +% The format.edition function appends " edition" to the edition, if present. +% We lowercase the edition (it should be something like "Third"), because +% this doesn't start a sentence. +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + if$ +} +% The format.pages function is used for formatting a page range in a book +% (and in rare circumstances, an article). +% +% The multi.page.check function examines the page field for a "-" or "," or "+" +% so that format.pages can use "page" instead of "pages" if none exists. +% Note: global.max$ here means "take the rest of the string" +% +% VAR: multiresult: INTEGER (actually, a boolean) +% +% multi.page.check(s) == +% BEGIN +% t := s +% multiresult := false +% while ((not multiresult) and (not empty$(t))) +% do +% if (first character of t = "-" or "," or "+") +% then multiresult := true +% else t := t with the first character removed +% fi +% od +% return multiresult +% END +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 +} +% This function doesn't begin a sentence so "pages" isn't capitalized. +% Other functions that use this should keep that in mind. +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pp." pages n.dashify tie.or.space.connect } + { "p." pages tie.or.space.connect } + if$ + } + if$ +} +FUNCTION {format.pages.a} +{ pages empty$ + { "" } + { "p." pages first.page tie.or.space.connect } + if$ +} +% The format.vol.num.pages function is for the volume, number, and page range +% of a journal article. We use the format: vol(number):pages, with some +% variations for empty fields. This doesn't begin a sentence. +FUNCTION {format.vol.num.pages} +{ volume field.or.null embolden + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages.a } + { ":" * pages first.page * } + if$ + } + if$ +} +% The format.chapter.pages, if the chapter is present, puts whatever is in the +% type field (or else "chapter" if type is empty) in front of a chapter number. +% It then appends the pages, if present. This doesn't begin a sentence. +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} +% The format.in.ed.booktitle function is used for starting out a sentence +% that begins "In ", putting an editor before the title if one +% exists. +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "in " booktitle emphasize * } + { "in " booktitle emphasize * ", " * format.edited * } + if$ + } + if$ +} +% The function empty.misc.check complains if all six fields are empty, and +% if there's been no sorting or alphabetic-label complaint. +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} +% The function format.thesis.type returns either the (case-changed) type field, +% if it is defined, or else the default string already on the stack +% (like "Master's thesis" or "PhD thesis"). +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} +% The function format.tr.number makes a string starting with "Technical Report" +% (or type, if that field is defined), followed by the number if there is one; +% it returns the starting part (with a case change) even if there is no number. +% This is used at the beginning of a sentence. +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} +% Now come the cross-referencing functions (these are invoked because +% one entry in the database file(s) cross-references another, by giving +% the other entry's database key in a `crossref' field). This feature +% allows one or more titled things that are part of a larger titled +% thing to cross-reference the larger thing. These styles allow for +% five posibilities: (1) an ARTICLE may cross-reference an ARTICLE; +% (2) a BOOK, (3) INBOOK, or (4) INCOLLECTION may cross-reference a BOOK; +% or (5) an INPROCEEDINGS may cross-reference a PROCEEDINGS. +% Each of these is explained in more detail later. +% +% An ARTICLE entry type may cross reference another ARTICLE (this is +% intended for when an entire journal is devoted to a single topic--- +% but since there is no JOURNAL entry type, the journal, too, should be +% classified as an ARTICLE but without the author and title fields). +% This will result in two warning messages for the journal's entry +% if it's included in the reference list, but such is life. +% +% format.article.crossref == +% BEGIN +% if empty$(key) then +% if empty$(journal) then +% warning$("need key or journal for " * cite$ * +% " to crossref " * crossref) +% return(" \cite{" * crossref * "}") +% else +% return("In " * emphazise.correct (journal) * +% " \cite{" * crossref * "}") +% fi +% else +% return("In " * key * " \cite{" * crossref * "}") +% fi +% END +% +% The other cross-referencing functions are similar, so no "comment version" +% will be given for them. +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In " journal * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} +% We use just the last names of editors for a cross reference: either +% "editor", or "editor1 and editor2", or "editor1 et~al." depending on +% whether there are one, or two, or more than two editors. +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} +% A BOOK (or INBOOK) entry type (assumed to be for a single volume in a +% multivolume work) may cross reference another BOOK (the entire multivolume). +% Usually there will be an editor, in which case we use that to construct the +% cross reference; otherwise we use a nonempty key field or else the series +% field (since the series gives the title of the multivolume work). +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} +% An INCOLLECTION entry type may cross reference a BOOK (assumed to be the +% collection), or an INPROCEEDINGS may cross reference a PROCEEDINGS. +% Often there will be an editor, in which case we use that to construct +% the cross reference; otherwise we use a nonempty key field or else +% the booktitle field (which gives the cross-referenced work's title). +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} +% Now we define the type functions for all entry types that may appear +% in the .BIB file---e.g., functions like `article' and `book'. These +% are the routines that actually generate the .BBL-file output for +% the entry. These must all precede the READ command. In addition, the +% style designer should have a function `default.type' for unknown types. +% Note: The fields (within each list) are listed in order of appearance, +% except as described for an `inbook' or a `proceedings'. +% +% The article function is for an article in a journal. An article may +% CROSSREF another article. +% Required fields: author, title, journal, year +% Optional fields: volume, number, pages, month, note +% +% article == +% BEGIN +% output.bibitem +% output.check(format.authors,"author") +% new.block +% output.check(format.title,"title") +% new.block +% if missing$(crossref) then +% output.check(emphasize(journal),"journal") +% output(format.vol.num.pages) +% output.check(format.date,"year") +% else +% output.nonnull(format.article.crossref) +% output(format.pages) +% fi +% new.block +% output(note) +% fin.entry +% END +% +% The book function is for a whole book. A book may CROSSREF another book. +% Required fields: author or editor, title, publisher, year +% Optional fields: volume or number, series, address, edition, month, +% note +% +% book == +% BEGIN +% if empty$(author) then output.check(format.editors,"author and editor") +% else output.check(format.authors,"author") +% if missing$(crossref) then +% either.or.check("author and editor",editor) +% fi +% fi +% new.block +% output.check(format.btitle,"title") +% if missing$(crossref) then +% output(format.bvolume) +% new.block +% output(format.number.series) +% new.sentence +% output.check(publisher,"publisher") +% output(address) +% else +% new.block +% output.nonnull(format.book.crossref) +% fi +% output(format.edition) +% output.check(format.date,"year") +% new.block +% output(note) +% fin.entry +% END +% +% The other entry functions are all quite similar, so no "comment version" +% will be given for them. +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + crossref missing$ + { journal "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} +% A booklet is a bound thing without a publisher or sponsoring institution. +% Required: title +% Optional: author, howpublished, address, month, year, note +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} +% For the conference entry type, see inproceedings. +% An inbook is a piece of a book: either a chapter and/or a page range. +% It may CROSSREF a book. If there's no volume field, the type field +% will come before number and series. +% Required: author or editor, title, chapter and/or pages, publisher,year +% Optional: volume or number, series, type, address, edition, month, note +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} +% An incollection is like inbook, but where there is a separate title +% for the referenced thing (and perhaps an editor for the whole). +% An incollection may CROSSREF a book. +% Required: author, title, booktitle, publisher, year +% Optional: editor, volume or number, series, type, chapter, pages, +% address, edition, month, note +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} +% An inproceedings is an article in a conference proceedings, and it may +% CROSSREF a proceedings. If there's no address field, the month (& year) +% will appear just before note. +% Required: author, title, booktitle, year +% Optional: editor, volume or number, series, pages, address, month, +% organization, publisher, note +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} +% The conference function is included for Scribe compatibility. +FUNCTION {conference} { inproceedings } +% A manual is technical documentation. +% Required: title +% Optional: author, organization, address, edition, month, year, note +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} +% A mastersthesis is a Master's thesis. +% Required: author, title, school, year +% Optional: type, address, month, note +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% A misc is something that doesn't fit elsewhere. +% Required: at least one of the `optional' fields +% Optional: author, title, howpublished, month, year, note +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} +% A phdthesis is like a mastersthesis. +% Required: author, title, school, year +% Optional: type, address, month, note +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% A proceedings is a conference proceedings. +% If there is an organization but no editor field, the organization will +% appear as the first optional field (we try to make the first block nonempty); +% if there's no address field, the month (& year) will appear just before note. +% Required: title, year +% Optional: editor, volume or number, series, address, month, +% organization, publisher, note +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} +% A techreport is a technical report. +% Required: author, title, institution, year +% Optional: type, number, address, month, note +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +% An unpublished is something that hasn't been published. +% Required: author, title, note +% Optional: month, year +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} +% We use entry type `misc' for an unknown type; BibTeX gives a warning. +FUNCTION {default.type} { misc } +% Here are macros for common things that may vary from style to style. +% Users are encouraged to use these macros. +% +% Months are either written out in full or abbreviated +MACRO {jan} {"Jan."} +MACRO {feb} {"Feb."} +MACRO {mar} {"Mar."} +MACRO {apr} {"Apr."} +MACRO {may} {"May"} +MACRO {jun} {"June"} +MACRO {jul} {"July"} +MACRO {aug} {"Aug."} +MACRO {sep} {"Sept."} +MACRO {oct} {"Oct."} +MACRO {nov} {"Nov."} +MACRO {dec} {"Dec."} +% Journals are either written out in full or abbreviated; +% the abbreviations are like those found in ACM publications. +% +% To get a completely different set of abbreviations, it may be best to make +% a separate .bib file with nothing but those abbreviations; users could then +% include that file name as the first argument to the \bibliography command +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. Softw. Eng."} +MACRO {ieeetc} {"IEEE Trans. Comput."} +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} +MACRO {ipl} {"Inf. Process. Lett."} +MACRO {jacm} {"J.~ACM"} +MACRO {jcss} {"J.~Comput. Syst. Sci."} +MACRO {scp} {"Sci. Comput. Programming"} +MACRO {sicomp} {"SIAM J. Comput."} +MACRO {tocs} {"ACM Trans. Comput. Syst."} +MACRO {tods} {"ACM Trans. Database Syst."} +MACRO {tog} {"ACM Trans. Gr."} +MACRO {toms} {"ACM Trans. Math. Softw."} +MACRO {toois} {"ACM Trans. Office Inf. Syst."} +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} +MACRO {tcs} {"Theoretical Comput. Sci."} +%% /usr/local/lib/tex/bibtex/phyjfull.btx, Tue Jun 30 08:37:48 1992 +%% Edit by Nelson H. F. Beebe +%% Change file names in leading comment +% Journal Title Abbreviations from the Physical Review Style and Notation +% Guide, July, 1983, in BAPS Vol. 28. +% Selected by Cris Barnes and Charles Karney, March 1988 +% IMPORTANT!! Don't make changes to this file without making the +% corresponding changes to +% phyjabb.bib +% phyjabb.btx +MACRO {advp} {"Advances in Physics"} +MACRO {ajp} {"American Journal of Physics"} +MACRO {ao} {"Applied Optics"} +MACRO {apl} {"Applied Physics Letters"} +MACRO {apj} {"Astrophysical Journal"} +MACRO {baps} {"Bulletin of the American Physical Society"} +MACRO {cpc} {"Computer Physics Communications"} +MACRO {cppcf} {"Comments on Plasma Physics and Controlled Fusion"} +MACRO {fed} {"Fusion Engineering and Design"} +MACRO {ft} {"Fusion Technology"} +MACRO {ieeens} {"IEEE Transactions on Nuclear Science"} +MACRO {ieeeps} {"IEEE Transactions on Plasma Science"} +MACRO {ijimw} {"International Journal of Infrared and Millimeter Waves"} +MACRO {ip} {"Infrared Physics"} +MACRO {jap} {"Journal of Applied Physics"} +MACRO {jcp} {"Journal of Computational Physics"} +MACRO {jetp} {"Soviet Physics-JETP"} +MACRO {jfe} {"Journal of Fusion Energy"} +MACRO {jfm} {"Journal of Fluid Mechanics"} +MACRO {jgr} {"Journal of Geophysical Research"} +MACRO {jmp} {"Journal of Mathematical Physics"} +MACRO {jne} {"Journal of Nuclear Energy"} +MACRO {jnec} {"Journal of Nuclear Energy, Part C: Plasma Physics, Accelerators, Thermonuclear Research"} +MACRO {jnm} {"Journal of Nuclear Materials"} +MACRO {josa} {"Journal of the Optical Society of America"} +MACRO {jpp} {"Journal of Plasma Physics"} +MACRO {jpsj} {"Journal of the Physical Society of Japan"} +MACRO {jvst} {"Journal of Vacuum Science and Technology"} +MACRO {nedf} {"Nuclear Engineering and Design/Fusion"} +MACRO {nf} {"Nuclear Fusion"} +MACRO {nim} {"Nuclear Instruments and Methods"} +MACRO {nimpr} {"Nuclear Instruments and Methods in Physics Research"} +MACRO {nt/f} {"Nuclear Technology/Fusion"} +MACRO {pf} {"Physics of Fluids"} +MACRO {pfa} {"Physics of Fluids A: Fluid Dynamics"} +MACRO {pfb} {"Physics of Fluids B: Plasma Physics"} +MACRO {pl} {"Physics Letters"} +MACRO {pla} {"Physics Letters A"} +MACRO {pnas} {"Proceedings of the National Academy of Sciences of the USA"} +MACRO {pp} {"Plasma Physics"} +MACRO {ppcf} {"Plasma Physics and Controlled Fusion"} +MACRO {prl} {"Physical Review Letters"} +MACRO {pr} {"Physical Review"} +MACRO {pra} {"Physical Review A: General Physics"} +MACRO {ps} {"Physica Scripta"} +MACRO {rmp} {"Reviews of Modern Physics"} +MACRO {rsi} {"Review of Scientific Instruments"} +MACRO {sjpp} {"Soviet Journal of Plasma Phys."} +MACRO {spd} {"Soviet Physics-Doklady"} +MACRO {sptp} {"Soviet Physics-Technical Physics"} +MACRO {spu} {"Soviet Physics-Uspeki"} +% Now we read in the .BIB entries. +READ +% The sortify function converts to lower case after purify$ing; it's +% used in sorting and in computing alphabetic labels after sorting +% +% The chop.word(w,len,s) function returns either s or, if the first len +% letters of s equals w (this comparison is done in the third line of the +% function's definition), it returns that part of s after w. +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$ +} +% This long comment applies only to alphabetic labels +% +% The format.lab.names function makes a short label by using the initials of +% the von and Last parts of the names (but if there are more than four names, +% (i.e., people) it truncates after three and adds a superscripted "+"; +% it also adds such a "+" if the last of multiple authors is "others"). +% If there is only one name, and its von and Last parts combined have just +% a single name-token ("Knuth" has a single token, "Brinch Hansen" has two), +% we take the first three letters of the last name. The boolean +% et.al.char.used tells whether we've used a superscripted "+", so that we +% know whether to include a LaTeX macro for it. +% +% format.lab.names(s) == +% BEGIN +% numnames := num.names$(s) +% if numnames > 1 then +% if numnames > 4 then +% namesleft := 3 +% else +% namesleft := numnames +% nameptr := 1 +% nameresult := "" +% while namesleft > 0 +% do +% if (name_ptr = numnames) and +% format.name$(s, nameptr, "{ff }{vv }{ll}{ jj}") = "others" +% then nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else nameresult := nameresult * +% format.name$(s, nameptr, "{v{}}{l{}}") +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% if numnames > 4 then +% nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else +% t := format.name$(s, 1, "{v{}}{l{}}") +% if text.length$(t) < 2 then % there's just one name-token +% nameresult := text.prefix$(format.name$(s,1,"{ll}"),3) +% else +% nameresult := t +% fi +% fi +% return nameresult +% END +% +% Exactly what fields we look at in constructing the primary part of the label +% depends on the entry type; this selectivity (as opposed to, say, always +% looking at author, then editor, then key) helps ensure that "ignored" fields, +% as described in the LaTeX book, really are ignored. Note that MISC is part +% of the deepest `else' clause in the nested part of calc.label; thus, any +% unrecognized entry type in the database is handled correctly. +% +% There is one auxiliary function for each of the four different sequences of +% fields we use. The first of these functions looks at the author field, and +% then, if necessary, the key field. The other three functions, which might +% look at two fields and the key field, are similar, except that the key field +% takes precedence over the organization field (for labels---not for sorting). +% +% The calc.label function calculates the preliminary label of an entry, which +% is formed by taking three letters of information from the author or editor or +% key or organization field (depending on the entry type and on what's empty, +% but ignoring a leading "The " in the organization), and appending the last +% two characters (digits) of the year. It is an error if the appropriate fields +% among author, editor, organization, and key are missing, and we use +% the first three letters of the cite$ in desperation when this happens. +% The resulting label has the year part, but not the name part, purify$ed +% (purify$ing the year allows some sorting shenanigans by the user). +% +% This function also calculates the version of the label to be used in sorting. +% +% The final label may need a trailing 'a', 'b', etc., to distinguish it from +% otherwise identical labels, but we can't calculated those "extra.label"s +% until after sorting. +% +% calc.label == +% BEGIN +% if type$ = "book" or "inbook" then +% author.editor.key.label +% else if type$ = "proceedings" then +% editor.key.organization.label +% else if type$ = "manual" then +% author.key.organization.label +% else +% author.key.label +% fi fi fi +% label := label * substring$(purify$(field.or.null(year)), -1, 2) +% % assuming we will also sort, we calculate a sort.label +% sort.label := sortify(label), but use the last four, not two, digits +% END +INTEGERS { et.al.char.used } +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} +EXECUTE {initialize.et.al.char.used} +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #2 > + { s #1 "{vv }{ll}" format.name$ " et~al." * } + { s #1 "{vv }{ll}" format.name$ + s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * s #2 "{vv }{ll}" format.name$ * } + if$ + } + if$ + } + { s #1 "{vv }{ll}" format.name$ } + if$ +} +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #9 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #9 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + " " * year field.or.null purify$ #-1 #4 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} +% It doesn't seem like a particularly good idea to use an order-of-citation +% reference list when using alphabetic labels, but we need to have a +% special pass to calculate labels when this happens. +% When sorting, we compute the sortkey by executing "presort" on each entry. +% The presort key contains a number of "sortify"ed strings, concatenated +% with multiple blanks between them. This makes things like "brinch per" +% come before "brinch hansen per". +% +% The fields used here are: the sort.label for alphabetic labels (as set by +% calc.label), followed by the author names (or editor names or organization +% (with a leading "The " removed) or key field, depending on entry type and on +% what's empty), followed by year, followed by the first bit of the title +% (chopping off a leading "The ", "A ", or "An "). +% Names are formatted: Von Last First Junior. +% The names within a part will be separated by a single blank +% (such as "brinch hansen"), two will separate the name parts themselves +% (except the von and last), three will separate the names, +% four will separate the names from year (and from label, if alphabetic), +% and four will separate year from title. +% +% The sort.format.names function takes an argument that should be in +% BibTeX name format, and returns a string containing " "-separated +% names in the format described above. The function is almost the same +% as format.names. +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ % apalike uses initials + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := % <= here + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +% The sort.format.title function returns the argument, +% but first any leading "A "'s, "An "'s, or "The "'s are removed. +% The chop.word function uses s, so we need another string variable, t +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} +% The auxiliary functions here, for the presort function, are analogous to +% the ones for calc.label; the same comments apply, except that the +% organization field takes precedence here over the key field. For sorting +% purposes, we still remove a leading "The " from the organization field. +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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} +% There is a limit, entry.max$, on the length of an entry string variable +% (which is what its sort.key$ is), so we take at most that many characters +% of the constructed key, and hope there aren't many references that match +% to that many characters! +FUNCTION {presort} +{ calc.label + sort.label + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {presort} +% And now we can sort +SORT +% This long comment applies only to alphabetic labels, when sorted +% +% Now comes the final computation for alphabetic labels, putting in the 'a's +% and 'b's and so forth if required. This involves two passes: a forward +% pass to put in the 'b's, 'c's and so on, and a backwards pass +% to put in the 'a's (we don't want to put in 'a's unless we know there +% are 'b's). +% We have to keep track of the longest (in width$ terms) label, for use +% by the "thebibliography" environment. +% +% VAR: longest.label, last.sort.label, next.extra: string +% longest.label.width, last.extra.num: integer +% +% initialize.longest.label == +% BEGIN +% longest.label := "" +% last.sort.label := int.to.chr$(0) +% next.extra := "" +% longest.label.width := 0 +% last.extra.num := 0 +% END +% +% forward.pass == +% BEGIN +% if last.sort.label = sort.label then +% last.extra.num := last.extra.num + 1 +% extra.label := int.to.chr$(last.extra.num) +% else +% last.extra.num := chr.to.int$("a") +% extra.label := "" +% last.sort.label := sort.label +% fi +% END +% +% reverse.pass == +% BEGIN +% if next.extra = "b" then +% extra.label := "a" +% fi +% label := label * extra.label +% if width$(label) > longest.label.width then +% longest.label := label +% longest.label.width := width$(label) +% fi +% next.extra := extra.label +% END +STRINGS { longest.label last.sort.label next.extra } +INTEGERS { longest.label.width last.extra.num } +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} +EXECUTE {initialize.longest.label} +ITERATE {forward.pass} +REVERSE {reverse.pass} +% Now we're ready to start writing the .BBL file. +% We begin, if necessary, with a LaTeX macro for unnamed names in an alphabetic +% label; next comes stuff from the `preamble' command in the database files. +% Then we give an incantation containing the command +% \begin{thebibliography}{...} +% where the `...' is the longest label. +% +% We also call init.state.consts, for use by the output routines. +FUNCTION {begin.bib} +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +% Now we produce the output for all the entries +ITERATE {call.type$} +% Finally, we finish up by writing the `\end{thebibliography}' command. +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/plainyr.bst b/Master/texmf-dist/bibtex/bst/beebe/plainyr.bst new file mode 100644 index 00000000000..f3afc319c2a --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/plainyr.bst @@ -0,0 +1,1144 @@ +%% /usr/local/lib/tex/bibtex/plainyr.bst, Mon Jun 29 08:06:48 1992 +%% Edit by Nelson H. F. Beebe +%% I've called this posting plainyr instead of the author's datasort +%% because the latter is uninformative. + +% Newsgroups: comp.text.tex +% Path: math.utah.edu!hellgate.utah.edu!cs.utexas.edu!uunet!brunix!cs.brown.edu!mpp +% From: mpp@cns.brown.edu (Michael P. Perrone) +% Subject: Re: bibtex sorting by year +% Message-ID: <1992Jun26.075302.21206@cs.brown.edu> +% Sender: mpp@cs.brown.edu (Michael P. Perrone) +% Organization: Center for Neural Science, Brown University +% References: <1992Jun26.065942.20721@cs.brown.edu> +% Date: Fri, 26 Jun 1992 07:53:02 GMT +% Lines: 1128 +% +% i figured out the bibtex problem. +% the following bibstyle file will sort by year, author, title (in that order) +% with the usual editor, organization (etc.) substitutions +% +% % ----- cut here ------------------------------- +% +%------------------------------------------------------------------------- +% DATASORT.BST --- created: 92.6.26 (Michael P. Perrone, Brown University) +% +% this is a simple hack of the plain.bst bibtex style file +% which processes bibliography entries in chronological order +% by year. within a year things are sort by author, title, etc. +% +% DISCLAIMER: if this doesn't work - sorry! +%------------------------------------------------------------------------- +% +% +% [MODIFIED] BibTeX standard bibliography style `plain' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {year.sort} +{ year empty$ + { key empty$ + { "to sort, need year or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { year sort.format.names } + if$ +} + +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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'year.sort + if$ + } + if$ + } + if$ + " " + * + author field.or.null + sort.format.names + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/beebe/refer.bst b/Master/texmf-dist/bibtex/bst/beebe/refer.bst new file mode 100644 index 00000000000..33498d9e167 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/refer.bst @@ -0,0 +1,163 @@ +% +% 8/4/'90 +%Ciaran McHale +%Department of Computer Science, Trinity College, Dublin 2, Ireland. +%Telephone: +353-1-772941 ext 1538 FAX: +353-1-772204 Telex: 93782 TCD EI +%email: cjmchale@cs.tcd.ie or cjmchale%cs.tcd.ie@cunyvm.cuny.edu +% Hacked together by Ciaran McHale (cjmchale@cs.tcd.ie) to translate +% BibTeX bibliographies into refer format +% Based on a bib style file by Kannan Varadhan +% + + +ENTRY + { % entry fields + abstract % non standard + address + annote % non standard + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + keywords % non standard + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} % no integer entry variables + { label extra.label sort.label } % label entry variables + + +STRINGS { s t a.name } + + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {handle.names} +{ 't := % type e.g. "A" for authors, "E" for editors + 's := % the string containing the names + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 'a.name := + + a.name "others" = + 'skip$ % don't print out "%A others" + { "%" t * " " * a.name * write$ newline$ } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {handle.maybe.empty} +{ + 't := + duplicate$ + empty$ + 'pop$ + { "%" t * " " * swap$ * write$ newline$ } + if$ +} + +FUNCTION {translate} +{ + newline$ % get a blank line between each entry + + title "T" handle.maybe.empty + booktitle "B" handle.maybe.empty + + % there may be multiple authors so handle it differently + author empty$ + { " empty author in " cite$ * warning$ } + { author "A" handle.names } + if$ + editor "E" handle.maybe.empty + journal "J" handle.maybe.empty + keywords "K" handle.maybe.empty + cite$ "L" handle.maybe.empty + volume "V" handle.maybe.empty + abstract "X" handle.maybe.empty + + % The date, if present may be just the year or both the month and year + % or might even be just the month + month empty$ year empty$ and + 'skip$ % no date of publication so nothing to do + { + month empty$ % I'm using the if statement because I'm not + { "" } % sure that--- month " " year * --- would work. + { month " " * } % (The manual doesn't mention anything about + if$ % this so I'm playing safe) + year empty$ + { "" } + { year } + if$ + * + "D" handle.maybe.empty + } + if$ + pages "P" handle.maybe.empty + note "O" handle.maybe.empty + number "N" handle.maybe.empty + series "S" handle.maybe.empty + annote "Y" handle.maybe.empty + address "C" handle.maybe.empty + +} + + +FUNCTION {article} { translate } +FUNCTION {book} { translate } +FUNCTION {booklet} { translate } +FUNCTION {inbook} { translate } +FUNCTION {incollection} { translate } +FUNCTION {inproceedings} { translate } +FUNCTION {manual} { translate } +FUNCTION {mastersthesis} { translate } +FUNCTION {misc} { translate } +FUNCTION {phdthesis} { translate } +FUNCTION {proceedings} { translate } +FUNCTION {techreport} { translate } +FUNCTION {unpublished} { translate } +FUNCTION {default.type} { translate } + + +READ + +ITERATE {call.type$} + diff --git a/Master/texmf-dist/bibtex/bst/beebe/xbtxbst.doc b/Master/texmf-dist/bibtex/bst/beebe/xbtxbst.doc new file mode 100644 index 00000000000..05b733c0995 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/beebe/xbtxbst.doc @@ -0,0 +1,2665 @@ +% /u/sy/beebe/tex/bib/merge/xbtxbst.doc, Thu Sep 12 10:19:13 1991 +% Edit by Nelson H. F. Beebe +% /u/sy/beebe/tex/bib/merge/xbtxbst.doc, Wed Oct 17 08:27:24 1990 +% Edit by Nelson H.F. Beebe + +% NB: Important convention: comment lines beginning with 2 (or +% more) percents are to be preserved in the derived style +% files. Comment lines beginning with only 1 percent can be +% discarded (and are, if the derived files are produced with +% the UNIX Makefile that accompanies this file.) + +%% ===================================================================== +%% @BibTeX-style-file{ +%% author = "Nelson H. F. Beebe", +%% version = "1.02", +%% date = "12 September 1991", +%% filename = "xbtxbst.doc", +%% address = "Center for Scientific Computing +%% Department of Mathematics +%% South Physics Building +%% University of Utah +%% Salt Lake City, UT 84112 +%% USA +%% Tel: (801) 581-5254", +%% checksum = "50938 2665 11236 78415", +%% email = "beebe@math.utah.edu (Internet)", +%% codetable = "ISO/ASCII", +%% keywords = "BibTeX, style, bibliography", +%% supported = "yes", +%% docstring = "This file is a modification of the standard +%% BibTeX btxbst.doc file, or is a .bst file +%% derived from that modification. It contains +%% added support for ISBN and ISSN fields, as +%% well as for the PERIODICAL entry. The UNIX C +%% preprocessor can be used to extract the +%% extensions of the standard styles, as +%% follows: +%% +%% cpp -P -DPLAIN xbtxbst.doc is-plain.txt +%% cpp -P -DUNSRT xbtxbst.doc is-unsrt.txt +%% cpp -P -DALPHA xbtxbst.doc is-alpha.txt +%% cpp -P -DABBRV xbtxbst.doc is-abbrv.txt +%% +%% If desired, a sed script can be used to +%% eliminate non-essential comments (this +%% reduces the file size by 2/3); a command +%% filter step like +%% sed -e '/^%$/d' -e '/^%[^%].*$/d' +%% will accomplish that job. +%% +%% The checksum field above contains a CRC-16 +%% checksum as the first value, followed by the +%% equivalent of the standard UNIX wc (word +%% count) utility output of lines, words, and +%% characters. This is produced by Robert +%% Solovay's checksum utility." +%% } +%% ===================================================================== +%% Revision history (reverse time order): +%% 1.02 [12-Sep-1991] +%% Merge in Barbara N. Beeton's suggestion for hyphen-less +%% line breaks around volume(number):page. +%% 1.01 [10-Sep-1991] +%% Update file comment header and use Solovay checksum program. +%% 1.00 [17-Oct-1990] +%% Original version merging hand-edits of is-xxx.bst files into +%% this master file, xbtxbst.doc. + +% In the following, only essential changes have been applied; the +% documentation immediately below referring to the use of cpp on +% btxbst.doc has not been altered. See the docstring entry above +% for current information. + +%% BibTeX `plain' family +%% version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09. +%% Copyright (C) 1985, all rights reserved. +%% Copying of this file is authorized only if either +%% (1) you make absolutely no changes to your copy, including name, or +%% (2) if you do make changes, you name it something other than +%% btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. +%% This restriction helps ensure that all standard styles are identical. +%% The file btxbst.doc has the documentation for this style. +% +% Please notify Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU) of any bugs in +% these standard styles or in this documentation file. +% +% This is file btxbxt.doc; it helps document bibliography styles, +% and is also a template file that you can use to make +% several different style files, if you have access to a C preprocessor. +% For example, the standard styles were made by doing something like +% cpp -P -DPLAIN btxbst.doc plain.txt +% cpp -P -DUNSRT btxbst.doc unsrt.txt +% cpp -P -DALPHA btxbst.doc alpha.txt +% cpp -P -DABBRV btxbst.doc abbrv.txt +% and then renaming after removing unwanted comments and blank lines. +% If you don't have access, +% you can edit this file by hand to imitate the preprocessor, +% with the following explanation of the C preprocessor constructs used here. +% +% The output of the preprocessor is the same as the input, except that certain +% lines will be excluded (and some blank lines will be added). The sequence +% #if VAR +% lines to be included when VAR is not zero +% #else +% lines to be included when VAR is zero +% #endif +% (with the #-signs appearing in column 1) means that one set or the other of +% the lines are to be included depending on the value of VAR. +% The #else part is optional. Comments can be added after #else and #endif. +% Variables can be set by +% #define VAR value +% and one can also use #ifdef VAR to see if VAR has any value, and #ifndef +% to see if it has none. +% Another #if form used in this file is #if !VAR, which includes the lines +% after the #if only if VAR is zero. +% +% Convention: Use all uppercase identifiers for these preprocessor variables +% so you can spot them easily +% +% The command line to the preprocessor should define one of PLAIN, UNSRT, ALPHA +% or ABBRV (though PLAIN will be used by default if none is given), +% and the following lines will set various boolean variables to control the +% various lines that are chosen from the rest of the file. +% Each boolean variable should be set true (1) or false (0) in each style. +% Here are the current variables, and their meanings: +% LAB_ALPH: an alphabetic label is used (if false then a numeric +% label is used) +% SORTED: the entries should be sorted by label (if nonnumeric) +% and other info, like authors (if false, then +% entries remain in order of occurrence) +% NAME_FULL: the authors, editors, etc., get the full names as +% given in the bibliography file (if false, the first +% names become initials) +% ATIT_LOWER: titles of non-"books" (e.g., articles) should be +% converted to lower-case, except the first letter or +% first letter after a colon +% (if false then they appear as in the database) +% MONTH_FULL: months are spelled out in full (if false, then +% they're abbreviated) +% JOUR_FULL: macro journal names are spelled out in full +% (if false then they are abbreviated, currently +% as they appear in ACM publications) +#ifndef UNSRT +# ifndef ALPHA +# ifndef ABBRV +# define PLAIN 1 +# endif +# endif +#endif +#ifdef PLAIN +% plain style (sorted numbers) +# define LAB_ALPH 0 +# define SORTED 1 +# define NAME_FULL 1 +# define ATIT_LOWER 1 +# define MONTH_FULL 1 +# define JOUR_FULL 1 +#endif +#ifdef UNSRT +% unsrt style (unsorted numbers) +# define LAB_ALPH 0 +# define SORTED 0 +# define NAME_FULL 1 +# define ATIT_LOWER 1 +# define MONTH_FULL 1 +# define JOUR_FULL 1 +#endif +#ifdef ALPHA +% alpha style (sorted short alphabetics) +# define LAB_ALPH 1 +# define SORTED 1 +# define NAME_FULL 1 +# define ATIT_LOWER 1 +# define MONTH_FULL 1 +# define JOUR_FULL 1 +#endif +#ifdef ABBRV +% abbrv style (sorted numbers, with abbreviations) +# define LAB_ALPH 0 +# define SORTED 1 +# define NAME_FULL 0 +# define ATIT_LOWER 1 +# define MONTH_FULL 0 +# define JOUR_FULL 0 +#endif +% +% Entry formatting: Similar to that recommended by Mary-Claire van Leunen +% in "A Handbook for Scholars". Book-like titles are italicized +% (emphasized) and non-book titles are converted to sentence +% capitilization (and not enclosed in quotes). +% This file outputs a \newblock between major blocks of an entry +% (the name \newblock is analogous to the names \newline and \newpage) +% so that the user can obtain an "open" format, which has a line break +% before each block and lines after the first are indented within blocks, +% by giving the optional \documentstyle argument `openbib'; +% The default is the "closed" format---blocks runs together. +% +% Citation alphabetic label format: +% [Knu73] for single author (or editor or key) +% [AHU83] (first letters of last names) for multiple authors +% +% Citation label numberic format: +% [number] +% +% Reference list ordering for sorted, alphabetic lables: +% alphabetical by citation label, then by author(s) or whatever +% passes for author in the absence of one, then by year, +% then title +% +% Reference list ordering for sorted, numeric lables: +% alphabetical by author(s) or whatever passes +% for author in the absence of one, then by year, then title +% +% Reference list ordering for unsorted: +% by the order cited in the text +% +% History +% 12/16/84 (HWT) Original `plain' version, by Howard Trickey. +% 12/23/84 (LL) Some comments made by Leslie Lamport. +% 2/16/85 (OP) Changes based on LL's comments, Oren Patashnik. +% 2/17/85 (HWT) Template file and other standard styles made. +% 3/28/85 (OP) First release, version 0.98b for BibTeX 0.98f. +% 5/ 9/85 (OP) Version 0.98c for BibTeX 0.98i: +% fixed Theoretical Computer Science macro name; +% fixed the format.vol.num.pages function. +% 1/24/88 (OP) Version 0.99a for BibTeX 0.99a, main changes: +% assignment operator (:=) arguments reversed; +% the preamble$ function outputs the database PREAMBLE; +% entry.max$ and global.max$ (built-in) variables replace +% entry.string.max and global.string.max functions; +% alphabetizing by year then title, not just title; +% many unnecessary ties removed; \it ==> \em; +% the `alpha' style uses a superscripted `+' instead of a +% `*' for unnamed names in constructing the label; +% the `abbrv' style now uses "Mar." and "Sept."; +% the functions calc.label and presort now look at just +% the fields they're supposed to; +% BOOKLET, MASTERSTHESIS, TECHREPORT use nonbook titles; +% INBOOK and INCOLLECTION take an optional type (e.g. +% type = "Section"), overriding the default "chapter"; +% BOOK, INBOOK, INCOLLECTION, and PROCEEDINGS now allow +% either volume or number, not just volume; +% INCOLLECTION now allows an edition and series field; +% PROCEEDINGS and INPROCEEDINGS now use the address field +% to tell where a conference was held; +% INPROCEEDINGS and PROCEEDINGS now allow either volume +% or number, and also a series field; +% MASTERSTHESIS and PHDTHESIS accept types other than +% "Master's thesis" and "PhD thesis"; +% UNPUBLISHED now outputs, in one block, note then date; +% MANUAL now prints out the organization in +% the first block if the author field is empty; +% MISC can't be empty---it requires some optional field. +% 3/23/88 (OP) Version 0.99b for BibTeX 0.99c---changed the three +% erroneous occurrences of `cite ' to `cite$ '; this +% change didn't affect the four standard styles, so the +% 0.99a versions of those styles are still current. +% +% The ENTRY declaration +% Like Scribe's (according to pages 231-2 of the April '84 edition), +% but no fullauthor or editors fields because BibTeX does name handling. +% The annote field is commented out here because this family doesn't +% include an annotated bibliography style. And in addition to the fields +% listed here, BibTeX has a built-in crossref field, explained later. + +ENTRY +% Fields: + { address +% Usually the address of a publisher or other type of organization. +% Put information in this field only if it helps the reader find the +% thing---for example you should omit the address of a major +% publisher entirely. For a PROCEEDINGS or an INPROCEEDINGS, +% however, it's the address of the conference; for those two entry +% types, include the publisher's or organization's address, if +% necessary, in the publisher or organization field. +% annote +% Long annotation---for annotated bibliographies (begins sentence). + author +% Name(s) of author(s), in BibTeX name format. + booktitle +% Book title when the thing being referenced isn't the whole book. +% For book entries, the title field should be used instead. + chapter +% Chapter (or section or whatever) number. + edition +% Edition of a book---should be an ordinal (e.g., "Second"). + editor +% Name(s) of editor(s), in BibTeX name format. +% If there is also an author field, then the editor field should be +% for the book or collection that the work appears in. + howpublished +% How something strange has been published (begins sentence). + institution +% Sponsoring institution of a technical report. + isbn +% ISBN book number (a 10-digit number with optional +% embedded spaces or hyphens, where a `digit' is one of +% 0123456789X). + issn +% ISSN serial publication number (an 8-digit number with optional +% embedded spaces or hyphens, where a `digit' is one of +% 0123456789X). + journal +% Journal name (macros are provided for many). + key +% Alphabetizing, labeling, and cross-referencing key +% (needed when an entry has no author or editor). + month +% Month (macros are provided). + note +% To help the reader find a reference (begins sentence). + number +% Number of a journal or technical report, or of a work in a series. + organization +% Organization sponsoring a conference (or publishing a manual); if +% the editor (or author) is empty, and if the organization produces +% an awkward label or cross reference, you should put appropriately +% condensed organization information in the key field as well. + pages +% Page number or numbers (use `--' to separate a range, use `+' +% to indicate pages following that don't form a simple range). + publisher +% Publisher name. + school +% School name (for theses). + series +% The name of a series or set of books. +% An individual book will will also have it's own title. + title +% The title of the thing you're referred to. + type +% Type of a Techreport (e.g., "Research Note") to be used instead of +% the default "Technical Report"; or, similarly, the type of a +% thesis; or of a part of a book. + volume +% The volume number of a journal or multivolume work. + year +% The year should contain only numerals (technically, it should end +% with four numerals, after purification; doesn't a begin sentence). + } +% There are no integer entry variables + {} +% These string entry variables are used to form the citation label. +% In a storage pinch, sort.label can be easily computed on the fly. +#if LAB_ALPH +#if SORTED + { label extra.label sort.label } +#else !SORTED +% It doesn't seem like a good idea to use an order-of-citation +% reference list when using alphabetic labels, but when this happens +% we do things a little differently + { label } +#endif SORTED +#else !LAB_ALPH + { label } +#endif LAB_ALPH + +% Each entry function starts by calling output.bibitem, to write the +% \bibitem and its arguments to the .BBL file. Then the various fields +% are formatted and printed by output or output.check. Those functions +% handle the writing of separators (commas, periods, \newblock's), +% taking care not to do so when they are passed a null string. +% Finally, fin.entry is called to add the final period and finish the +% entry. +% +% A bibliographic reference is formatted into a number of `blocks': +% in the open format, a block begins on a new line and subsequent +% lines of the block are indented. A block may contain more than +% one sentence (well, not a grammatical sentence, but something to +% be ended with a sentence ending period). The entry functions should +% call new.block whenever a block other than the first is about to be +% started. They should call new.sentence whenever a new sentence is +% to be started. The output functions will ensure that if two +% new.sentence's occur without any non-null string being output between +% them then there won't be two periods output. Similarly for two +% successive new.block's. +% +% The output routines don't write their argument immediately. +% Instead, by convention, that argument is saved on the stack to be +% output next time (when we'll know what separator needs to come +% after it). Meanwhile, the output routine has to pop the pending +% output off the stack, append any needed separator, and write it. +% +% To tell which separator is needed, we maintain an output.state. +% It will be one of these values: +% before.all just after the \bibitem +% mid.sentence in the middle of a sentence: comma needed +% if more sentence is output +% after.sentence just after a sentence: period needed +% after.block just after a block (and sentence): +% period and \newblock needed. +% Note: These styles don't use after.sentence +% +% VAR: output.state : INTEGER -- state variable for output +% +% The output.nonnull function saves its argument (assumed to be nonnull) +% on the stack, and writes the old saved value followed by any needed +% separator. The ordering of the tests is decreasing frequency of +% occurrence. +% +% output.nonnull(s) == +% BEGIN +% s := argument on stack +% if output.state = mid.sentence then +% write$(pop() * ", ") +% -- "pop" isn't a function: just use stack top +% else +% if output.state = after.block then +% write$(add.period$(pop())) +% newline$ +% write$("\newblock ") +% else +% if output.state = before.all then +% write$(pop()) +% else -- output.state should be after.sentence +% write$(add.period$(pop()) * " ") +% fi +% fi +% output.state := mid.sentence +% fi +% push s on stack +% END +% +% The output function calls output.nonnull if its argument is non-empty; +% its argument may be a missing field (thus, not necessarily a string) +% +% output(s) == +% BEGIN +% if not empty$(s) then output.nonnull(s) +% fi +% END +% +% The output.check function is the same as the output function except that, if +% necessary, output.check warns the user that the t field shouldn't be empty +% (this is because it probably won't be a good reference without the field; +% the entry functions try to make the formatting look reasonable even when +% such fields are empty). +% +% output.check(s,t) == +% BEGIN +% if empty$(s) then +% warning$("empty " * t * " in " * cite$) +% else output.nonnull(s) +% fi +% END +% +% The output.bibitem function writes the \bibitem for the current entry +% (the label should already have been set up), and sets up the separator +% state for the output functions. And, it leaves a string on the stack +% as per the output convention. +% +% output.bibitem == +% BEGIN +% newline$ +% write$("\bibitem[") % for alphabetic labels, +% write$(label) % these three lines +% write$("]{") % are used +% write$("\bibitem{") % this line for numeric labels +% write$(cite$) +% write$("}") +% push "" on stack +% output.state := before.all +% END +% +% The fin.entry function finishes off an entry by adding a period to the +% string remaining on the stack. If the state is still before.all +% then nothing was produced for this entry, so the result will look bad, +% but the user deserves it. (We don't omit the whole entry because the +% entry was cited, and a bibitem is needed to define the citation label.) +% +% fin.entry == +% BEGIN +% write$(add.period$(pop())) +% newline$ +% END +% +% The new.block function prepares for a new block to be output, and +% new.sentence prepares for a new sentence. +% +% new.block == +% BEGIN +% if output.state <> before.all then +% output.state := after.block +% fi +% END +% +% new.sentence == +% BEGIN +% if output.state <> after.block then +% if output.state <> before.all then +% output.state := after.sentence +% fi +% fi +% END +% + +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 := +} + +% the variables s and t are temporary string holders + +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 {output.bibitem} +{ newline$ +#if LAB_ALPH + "\bibitem[" write$ + label write$ + "]{" write$ +#else + "\bibitem{" write$ +#endif LAB_ALPH + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +% This function finishes all entries. + +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$ +} + +% These three functions pop one or two (integer) arguments from the stack +% and push a single one, either 0 or 1. +% The 'skip$ in the `and' and `or' functions are used because +% the corresponding if$ would be idempotent + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +% Sometimes we begin a new block only if the block will be big enough. The +% new.block.checka function issues a new.block if its argument is nonempty; +% new.block.checkb does the same if either of its TWO arguments is nonempty. + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +% The new.sentence.check functions are analogous. + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +% Here are some functions for formatting chunks of an entry. +% By convention they either produce a string that can be followed by +% a comma or period (using add.period$, so it is OK to end in a period), +% or they produce the null string. +% +% A useful utility is the field.or.null function, which checks if the +% argument is the result of pushing a `missing' field (one for which no +% assignment was made when the current entry was read in from the database) +% or the result of pushing a string having no non-white-space characters. +% It returns the null string if so, otherwise it returns the field string. +% Its main (but not only) purpose is to guarantee that what's left on the +% stack is a string rather than a missing field. +% +% field.or.null(s) == +% BEGIN +% if empty$(s) then return "" +% else return s +% END +% +% Another helper function is emphasize, which returns the argument emphazised, +% if that is non-empty, otherwise it returns the null string. Italic +% corrections aren't used, so this function should be used when punctation +% will follow the result. +% +% emphasize(s) == +% BEGIN +% if empty$(s) then return "" +% else return "{\em " * s * "}" +% +% The format.names function formats the argument (which should be in +% BibTeX name format) into "First Von Last, Junior", separated by commas +% and with an "and" before the last (but ending with "et~al." if the last +% of multiple authors is "others"). This function's argument should always +% contain at least one name. +% +% VAR: nameptr, namesleft, numnames: INTEGER +% pseudoVAR: nameresult: STRING (it's what's accumulated on the stack) +% +% format.names(s) == +% BEGIN +% nameptr := 1 +% numnames := num.names$(s) +% namesleft := numnames +% while namesleft > 0 +% do +% % for full names: +% t := format.name$(s, nameptr, "{ff~}{vv~}{ll}{, jj}") +% % for abbreviated first names: +% t := format.name$(s, nameptr, "{f.~}{vv~}{ll}{, jj}") +% if nameptr > 1 then +% if namesleft > 1 then nameresult := nameresult * ", " * t +% else if numnames > 2 +% then nameresult := nameresult * "," +% fi +% if t = "others" +% then nameresult := nameresult * " et~al." +% else nameresult := nameresult * " and " * t +% fi +% fi +% else nameresult := t +% fi +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% return nameresult +% END +% +% The format.authors function returns the result of format.names(author) +% if the author is present, or else it returns the null string +% +% format.authors == +% BEGIN +% if empty$(author) then return "" +% else return format.names(author) +% fi +% END +% +% Format.editors is like format.authors, but it uses the editor field, +% and appends ", editor" or ", editors" +% +% format.editors == +% BEGIN +% if empty$(editor) then return "" +% else +% if num.names$(editor) > 1 then +% return format.names(editor) * ", editors" +% else +% return format.names(editor) * ", editor" +% fi +% fi +% END +% +% Other formatting functions are similar, so no "comment version" will be +% given for them. +% +% The `pop$' in this function gets rid of the duplicate `empty' value and +% the `skip$' returns the duplicate field value + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } +#if NAME_FULL + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := +#else + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := +#endif NAME_FULL + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { new.block "ISBN " isbn * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { new.block "ISSN " issn * } + if$ +} + +% The format.title function is used for non-book-like titles. +% For most styles we convert to lowercase (except for the very first letter, +% and except for the first one after a colon (followed by whitespace)), +% and hope the user has brace-surrounded words that need to stay capitilized; +% for some styles, however, we leave it as it is in the database. + +FUNCTION {format.title} +{ title empty$ + { "" } +#if ATIT_LOWER + { title "t" change.case$ } +#else + 'title +#endif ATIT_LOWER + if$ +} + +% By default, BibTeX sets the global integer variable global.max$ to the BibTeX +% constant glob_str_size, the maximum length of a global string variable. +% Analogously, BibTeX sets the global integer variable entry.max$ to +% ent_str_size, the maximum length of an entry string variable. +% The style designer may change these if necessary (but this is unlikely) + +% The n.dashify function makes each single `-' in a string a double `--' +% if it's not already +% +% pseudoVAR: pageresult: STRING (it's what's accumulated on the stack) +% +% n.dashify(s) == +% BEGIN +% t := s +% pageresult := "" +% while (not empty$(t)) +% do +% if (first character of t = "-") +% then +% if (next character isn't) +% then +% pageresult := pageresult * "--" +% t := t with the "-" removed +% else +% while (first character of t = "-") +% do +% pageresult := pageresult * "-" +% t := t with the "-" removed +% od +% fi +% else +% pageresult := pageresult * the first character +% t := t with the first character removed +% fi +% od +% return pageresult +% END + +FUNCTION {n.dashify} +{ '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$ +} + +% The format.date function is for the month and year, but we give a warning if +% there's an empty year but the month is there, and we return the empty string +% if they're both empty. + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +% The format.btitle is for formatting the title field when it is a book-like +% entry---the style used here keeps it in uppers-and-lowers and emphasizes it. + +FUNCTION {format.btitle} +{ title emphasize +} + +% For several functions we'll need to connect two strings with a +% tie (~) if the second one isn't very long (fewer than 3 characters). +% The tie.or.space.connect function does that. It concatenates the two +% strings on top of the stack, along with either a tie or space between +% them, and puts this concatenation back onto the stack: +% +% tie.or.space.connect(str1,str2) == +% BEGIN +% if text.length$(str2) < 3 +% then return the concatenation of str1, "~", and str2 +% else return the concatenation of str1, " ", and str2 +% END + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +% The either.or.check function complains if both fields or an either-or pair +% are nonempty. +% +% either.or.check(t,s) == +% BEGIN +% if empty$(s) then +% warning$(can't use both " * t * " fields in " * cite$) +% fi +% END + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +% The format.bvolume function is for formatting the volume and perhaps +% series name of a multivolume work. If both a volume and a series field +% are there, we assume the series field is the title of the whole multivolume +% work (the title field should be the title of the thing being referred to), +% and we add an "of ". This function is called in mid-sentence. + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +% The format.number.series function is for formatting the series name +% and perhaps number of a work in a series. This function is similar to +% format.bvolume, although for this one the series must exist (and the +% volume must not exist). If the number field is empty we output either +% the series field unchanged if it exists or else the null string. +% If both the number and series fields are there we assume the series field +% gives the name of the whole series (the title field should be the title +% of the work being one referred to), and we add an "in ". +% We capitilize Number when this function is used at the beginning of a block. + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +% The format.edition function appends " edition" to the edition, if present. +% We lowercase the edition (it should be something like "Third"), because +% this doesn't start a sentence. + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + if$ +} + +% The format.pages function is used for formatting a page range in a book +% (and in rare circumstances, an article). +% +% The multi.page.check function examines the page field for a "-" or "," or "+" +% so that format.pages can use "page" instead of "pages" if none exists. +% Note: global.max$ here means "take the rest of the string" +% +% VAR: multiresult: INTEGER (actually, a boolean) +% +% multi.page.check(s) == +% BEGIN +% t := s +% multiresult := false +% while ((not multiresult) and (not empty$(t))) +% do +% if (first character of t = "-" or "," or "+") +% then multiresult := true +% else t := t with the first character removed +% fi +% od +% return multiresult +% END + +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 +} + +% This function doesn't begin a sentence so "pages" isn't capitalized. +% Other functions that use this should keep that in mind. + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +% The format.vol.num.pages function is for the volume, number, and page range +% of a journal article. We use the format: vol(number):pages, with some +% variations for empty fields. This doesn't begin a sentence. + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "\penalty0 (" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":\penalty0 " * pages n.dashify * } + if$ + } + if$ +} + + +% The format.chapter.pages, if the chapter is present, puts whatever is in the +% type field (or else "chapter" if type is empty) in front of a chapter number. +% It then appends the pages, if present. This doesn't begin a sentence. + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +% The format.in.ed.booktitle function is used for starting out a sentence +% that begins "In ", putting an editor before the title if one +% exists. + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +% The function empty.misc.check complains if all six fields are empty, and +% if there's been no sorting or alphabetic-label complaint. + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and +#if SORTED + key empty$ not and +#else !SORTED +#if LAB_ALPH + key empty$ not and +#endif LAB_ALPH +#endif SORTED + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +% The function format.thesis.type returns either the (case-changed) type field, +% if it is defined, or else the default string already on the stack +% (like "Master's thesis" or "PhD thesis"). + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +% The function format.tr.number makes a string starting with "Technical Report" +% (or type, if that field is defined), followed by the number if there is one; +% it returns the starting part (with a case change) even if there is no number. +% This is used at the beginning of a sentence. + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +% Now come the cross-referencing functions (these are invoked because +% one entry in the database file(s) cross-references another, by giving +% the other entry's database key in a `crossref' field). This feature +% allows one or more titled things that are part of a larger titled +% thing to cross-reference the larger thing. These styles allow for +% five posibilities: (1) an ARTICLE may cross-reference an ARTICLE; +% (2) a BOOK, (3) INBOOK, or (4) INCOLLECTION may cross-reference a BOOK; +% or (5) an INPROCEEDINGS may cross-reference a PROCEEDINGS. +% Each of these is explained in more detail later. +% +% An ARTICLE entry type may cross reference another ARTICLE (this is +% intended for when an entire journal is devoted to a single topic--- +% but since there is no JOURNAL entry type, the journal, too, should be +% classified as an ARTICLE but without the author and title fields). +% This will result in two warning messages for the journal's entry +% if it's included in the reference list, but such is life. +% +% format.article.crossref == +% BEGIN +% if empty$(key) then +% if empty$(journal) then +% warning$("need key or journal for " * cite$ * +% " to crossref " * crossref) +% return(" \cite{" * crossref * "}") +% else +% return("In " * emphasize.correct (journal) * +% " \cite{" * crossref * "}") +% fi +% else +% return("In " * key * " \cite{" * crossref * "}") +% fi +% END +% +% The other cross-referencing functions are similar, so no "comment version" +% will be given for them. + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +% We use just the last names of editors for a cross reference: either +% "editor", or "editor1 and editor2", or "editor1 et~al." depending on +% whether there are one, or two, or more than two editors. + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +% A BOOK (or INBOOK) entry type (assumed to be for a single volume in a +% multivolume work) may cross reference another BOOK (the entire multivolume). +% Usually there will be an editor, in which case we use that to construct the +% cross reference; otherwise we use a nonempty key field or else the series +% field (since the series gives the title of the multivolume work). + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +% An INCOLLECTION entry type may cross reference a BOOK (assumed to be the +% collection), or an INPROCEEDINGS may cross reference a PROCEEDINGS. +% Often there will be an editor, in which case we use that to construct +% the cross reference; otherwise we use a nonempty key field or else +% the booktitle field (which gives the cross-referenced work's title). + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +% Now we define the type functions for all entry types that may appear +% in the .BIB file---e.g., functions like `article' and `book'. These +% are the routines that actually generate the .BBL-file output for +% the entry. These must all precede the READ command. In addition, the +% style designer should have a function `default.type' for unknown types. +% Note: The fields (within each list) are listed in order of appearance, +% except as described for an `inbook' or a `proceedings'. +% +% The article function is for an article in a journal. An article may +% CROSSREF another article. +% Required fields: author, title, journal, year +% Optional fields: volume, number, pages, month, note +% +% article == +% BEGIN +% output.bibitem +% output.check(format.authors,"author") +% new.block +% output.check(format.title,"title") +% new.block +% if missing$(crossref) then +% output.check(emphasize(journal),"journal") +% output(format.vol.num.pages) +% output.check(format.date,"year") +% else +% output.nonnull(format.article.crossref) +% output(format.pages) +% fi +% new.block +% output(note) +% fin.entry +% END +% +% The book function is for a whole book. A book may CROSSREF another book. +% Required fields: author or editor, title, publisher, year +% Optional fields: volume or number, series, address, edition, month, +% note +% +% book == +% BEGIN +% if empty$(author) then output.check(format.editors,"author and editor") +% else output.check(format.authors,"author") +% if missing$(crossref) then +% either.or.check("author and editor",editor) +% fi +% fi +% new.block +% output.check(format.btitle,"title") +% if missing$(crossref) then +% output(format.bvolume) +% new.block +% output(format.number.series) +% new.sentence +% output.check(publisher,"publisher") +% output(address) +% else +% new.block +% output.nonnull(format.book.crossref) +% fi +% output(format.edition) +% output.check(format.date,"year") +% new.block +% output(note) +% fin.entry +% END +% +% The other entry functions are all quite similar, so no "comment version" +% will be given for them. + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn output + new.block + note output + fin.entry +} + +% A booklet is a bound thing without a publisher or sponsoring institution. +% Required: title +% Optional: author, howpublished, address, month, year, note + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + format.isbn output + new.block + note output + fin.entry +} + +% For the conference entry type, see inproceedings. + +% An inbook is a piece of a book: either a chapter and/or a page range. +% It may CROSSREF a book. If there's no volume field, the type field +% will come before number and series. +% Required: author or editor, title, chapter and/or pages, publisher,year +% Optional: volume or number, series, type, address, edition, month, note + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn output + new.block + note output + fin.entry +} + +% An incollection is like inbook, but where there is a separate title +% for the referenced thing (and perhaps an editor for the whole). +% An incollection may CROSSREF a book. +% Required: author, title, booktitle, publisher, year +% Optional: editor, volume or number, series, type, chapter, pages, +% address, edition, month, note + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn output + new.block + note output + fin.entry +} + +% An inproceedings is an article in a conference proceedings, and it may +% CROSSREF a proceedings. If there's no address field, the month (& year) +% will appear just before note. +% Required: author, title, booktitle, year +% Optional: editor, volume or number, series, pages, address, month, +% organization, publisher, note + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn output + new.block + note output + fin.entry +} + +% The conference function is included for Scribe compatibility. + +FUNCTION {conference} { inproceedings } + +% A manual is technical documentation. +% Required: title +% Optional: author, organization, address, edition, month, year, note + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +% A mastersthesis is a Master's thesis. +% Required: author, title, school, year +% Optional: type, address, month, note + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +% A misc is something that doesn't fit elsewhere. +% Required: at least one of the `optional' fields +% Optional: author, title, howpublished, month, year, note + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.issn output + new.block + note output + fin.entry + empty.misc.check +} + +% A phdthesis is like a mastersthesis. +% Required: author, title, school, year +% Optional: type, address, month, note + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +% A periodical is a publication that appears at regular +% intervals. This includes journals, magazines, and newspapers. +% If there is an organization but no editor field, the +% organization will appear as the first optional field (we try to +% make the first block nonempty); if there's no address field, +% the month (& year) will appear just before note. +% Required: title, key +% Optional: editor, volume, number, series, address, month, year, +% organization, publisher, note, issn, +% howpublished + +FUNCTION {periodical} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + title emphasize "title" output.check +% format.bvolume output +% format.number.series output + format.vol.num.pages output + format.date output + format.issn output + new.sentence + publisher output + address output + howpublished new.block.checka + howpublished output + new.block + note output + fin.entry +} + +% A proceedings is a conference proceedings. +% If there is an organization but no editor field, the organization will +% appear as the first optional field (we try to make the first block nonempty); +% if there's no address field, the month (& year) will appear just before note. +% Required: title, year +% Optional: editor, volume or number, series, address, month, +% organization, publisher, note + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.isbn output + new.block + note output + fin.entry +} + +% A techreport is a technical report. +% Required: author, title, institution, year +% Optional: type, number, address, month, note + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +% An unpublished is something that hasn't been published. +% Required: author, title, note +% Optional: month, year + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +% We use entry type `misc' for an unknown type; BibTeX gives a warning. + +FUNCTION {default.type} { misc } + +% Here are macros for common things that may vary from style to style. +% Users are encouraged to use these macros. +% +% Months are either written out in full or abbreviated + +#if MONTH_FULL + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +#else !MONTH_FULL + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +#endif MONTH_FULL + +% Journals are either written out in full or abbreviated; +% the abbreviations are like those found in ACM publications. +% +% To get a completely different set of abbreviations, it may be best to make +% a separate .bib file with nothing but those abbreviations; users could then +% include that file name as the first argument to the \bibliography command + +#if JOUR_FULL + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +#else !JOUR_FULL + +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. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + +#endif JOUR_FULL + +% Now we read in the .BIB entries. + +READ + +% The sortify function converts to lower case after purify$ing; it's +% used in sorting and in computing alphabetic labels after sorting +% +% The chop.word(w,len,s) function returns either s or, if the first len +% letters of s equals w (this comparison is done in the third line of the +% function's definition), it returns that part of s after w. + +#if SORTED + +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$ +} + +#else !SORTED +#if LAB_ALPH + +% We need the chop.word stuff for the dubious unsorted-list-with-labels case. + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +#endif LAB_ALPH +#endif SORTED + +% This long comment applies only to alphabetic labels +% +% The format.lab.names function makes a short label by using the initials of +% the von and Last parts of the names (but if there are more than four names, +% (i.e., people) it truncates after three and adds a superscripted "+"; +% it also adds such a "+" if the last of multiple authors is "others"). +% If there is only one name, and its von and Last parts combined have just +% a single name-token ("Knuth" has a single token, "Brinch Hansen" has two), +% we take the first three letters of the last name. The boolean +% et.al.char.used tells whether we've used a superscripted "+", so that we +% know whether to include a LaTeX macro for it. +% +% format.lab.names(s) == +% BEGIN +% numnames := num.names$(s) +% if numnames > 1 then +% if numnames > 4 then +% namesleft := 3 +% else +% namesleft := numnames +% nameptr := 1 +% nameresult := "" +% while namesleft > 0 +% do +% if (name_ptr = numnames) and +% format.name$(s, nameptr, "{ff }{vv }{ll}{ jj}") = "others" +% then nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else nameresult := nameresult * +% format.name$(s, nameptr, "{v{}}{l{}}") +% nameptr := nameptr + 1 +% namesleft := namesleft - 1 +% od +% if numnames > 4 then +% nameresult := nameresult * "{\etalchar{+}}" +% et.al.char.used := true +% else +% t := format.name$(s, 1, "{v{}}{l{}}") +% if text.length$(t) < 2 then % there's just one name-token +% nameresult := text.prefix$(format.name$(s,1,"{ll}"),3) +% else +% nameresult := t +% fi +% fi +% return nameresult +% END +% +% Exactly what fields we look at in constructing the primary part of the label +% depends on the entry type; this selectivity (as opposed to, say, always +% looking at author, then editor, then key) helps ensure that "ignored" fields, +% as described in the LaTeX book, really are ignored. Note that MISC is part +% of the deepest `else' clause in the nested part of calc.label; thus, any +% unrecognized entry type in the database is handled correctly. +% +% There is one auxiliary function for each of the four different sequences of +% fields we use. The first of these functions looks at the author field, and +% then, if necessary, the key field. The other three functions, which might +% look at two fields and the key field, are similar, except that the key field +% takes precedence over the organization field (for labels---not for sorting). +% +% The calc.label function calculates the preliminary label of an entry, which +% is formed by taking three letters of information from the author or editor or +% key or organization field (depending on the entry type and on what's empty, +% but ignoring a leading "The " in the organization), and appending the last +% two characters (digits) of the year. It is an error if the appropriate fields +% among author, editor, organization, and key are missing, and we use +% the first three letters of the cite$ in desperation when this happens. +% The resulting label has the year part, but not the name part, purify$ed +% (purify$ing the year allows some sorting shenanigans by the user). +% +% This function also calculates the version of the label to be used in sorting. +% +% The final label may need a trailing 'a', 'b', etc., to distinguish it from +% otherwise identical labels, but we can't calculated those "extra.label"s +% until after sorting. +% +% calc.label == +% BEGIN +% if type$ = "book" or "inbook" then +% author.editor.key.label +% else if type$ = "proceedings" then +% editor.key.organization.label +% else if type$ = "manual" then +% author.key.organization.label +% else +% author.key.label +% fi fi fi +% label := label * substring$(purify$(field.or.null(year)), -1, 2) +% % assuming we will also sort, we calculate a sort.label +% sort.label := sortify(label), but use the last four, not two, digits +% END + +#if LAB_ALPH + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ +#if SORTED + { cite$ #1 #3 substring$ } +#else !SORTED % need warning here because we won't give it later + { "for label, need author or key in " cite$ * warning$ + cite$ #1 #3 substring$ + } +#endif SORTED + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ +#if SORTED + { cite$ #1 #3 substring$ } +#else !SORTED % need warning here because we won't give it later + { "for label, need author, editor, or key in " cite$ * warning$ + cite$ #1 #3 substring$ + } +#endif SORTED + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ +#if SORTED + { cite$ #1 #3 substring$ } +#else !SORTED % need warning here because we won't give it later + { "for label, need author, key, or organization in " cite$ * + warning$ + cite$ #1 #3 substring$ + } +#endif SORTED + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ +#if SORTED + { cite$ #1 #3 substring$ } +#else !SORTED % need warning here because we won't give it later + { "for label, need editor, key, or organization in " cite$ * + warning$ + cite$ #1 #3 substring$ + } +#endif SORTED + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +% It doesn't seem like a particularly good idea to use an order-of-citation +% reference list when using alphabetic labels, but we need to have a +% special pass to calculate labels when this happens. + +#if !SORTED + +ITERATE {calc.label} + +#endif !SORTED + +#endif LAB_ALPH + +% When sorting, we compute the sortkey by executing "presort" on each entry. +% The presort key contains a number of "sortify"ed strings, concatenated +% with multiple blanks between them. This makes things like "brinch per" +% come before "brinch hansen per". +% +% The fields used here are: the sort.label for alphabetic labels (as set by +% calc.label), followed by the author names (or editor names or organization +% (with a leading "The " removed) or key field, depending on entry type and on +% what's empty), followed by year, followed by the first bit of the title +% (chopping off a leading "The ", "A ", or "An "). +% Names are formatted: Von Last First Junior. +% The names within a part will be separated by a single blank +% (such as "brinch hansen"), two will separate the name parts themselves +% (except the von and last), three will separate the names, +% four will separate the names from year (and from label, if alphabetic), +% and four will separate year from title. +% +% The sort.format.names function takes an argument that should be in +% BibTeX name format, and returns a string containing " "-separated +% names in the format described above. The function is almost the same +% as format.names. + +#if SORTED + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ +#if NAME_FULL + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := +#else + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := +#endif NAME_FULL + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% The sort.format.title function returns the argument, +% but first any leading "A "'s, "An "'s, or "The "'s are removed. +% The chop.word function uses s, so we need another string variable, t + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +% The auxiliary functions here, for the presort function, are analogous to +% the ones for calc.label; the same comments apply, except that the +% organization field takes precedence here over the key field. For sorting +% purposes, we still remove a leading "The " from the organization field. + +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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +% There is a limit, entry.max$, on the length of an entry string variable +% (which is what its sort.key$ is), so we take at most that many characters +% of the constructed key, and hope there aren't many references that match +% to that many characters! + +FUNCTION {presort} +#if LAB_ALPH +{ calc.label + sort.label + " " + * + type$ "book" = +#else !LAB_ALPH +{ type$ "book" = +#endif LAB_ALPH + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ +#if LAB_ALPH + * +#endif LAB_ALPH + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +% And now we can sort + +SORT + +#endif SORTED + +% This long comment applies only to alphabetic labels, when sorted +% +% Now comes the final computation for alphabetic labels, putting in the 'a's +% and 'b's and so forth if required. This involves two passes: a forward +% pass to put in the 'b's, 'c's and so on, and a backwards pass +% to put in the 'a's (we don't want to put in 'a's unless we know there +% are 'b's). +% We have to keep track of the longest (in width$ terms) label, for use +% by the "thebibliography" environment. +% +% VAR: longest.label, last.sort.label, next.extra: string +% longest.label.width, last.extra.num: integer +% +% initialize.longest.label == +% BEGIN +% longest.label := "" +% last.sort.label := int.to.chr$(0) +% next.extra := "" +% longest.label.width := 0 +% last.extra.num := 0 +% END +% +% forward.pass == +% BEGIN +% if last.sort.label = sort.label then +% last.extra.num := last.extra.num + 1 +% extra.label := int.to.chr$(last.extra.num) +% else +% last.extra.num := chr.to.int$("a") +% extra.label := "" +% last.sort.label := sort.label +% fi +% END +% +% reverse.pass == +% BEGIN +% if next.extra = "b" then +% extra.label := "a" +% fi +% label := label * extra.label +% if width$(label) > longest.label.width then +% longest.label := label +% longest.label.width := width$(label) +% fi +% next.extra := extra.label +% END + +#if LAB_ALPH + +#if SORTED + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +#else !SORTED + +% It still doesn't seem like a good idea to use an order-of-citation +% reference list when using alphabetic labels, but when this happens we +% must compute the longest label + +STRINGS { longest.label } + +INTEGERS { longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +#endif SORTED + +#else !LAB_ALPH + +% Now comes the computation for numeric labels. +% We use either the sorted order or original order. +% We still have to keep track of the longest (in width$ terms) label, for use +% by the "thebibliography" environment. + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +#endif LAB_ALPH + +% Now we're ready to start writing the .BBL file. +% We begin, if necessary, with a LaTeX macro for unnamed names in an alphabetic +% label; next comes stuff from the `preamble' command in the database files. +% Then we give an incantation containing the command +% \begin{thebibliography}{...} +% where the `...' is the longest label. +% +% We also call init.state.consts, for use by the output routines. + +FUNCTION {begin.bib} +#if LAB_ALPH +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ +#else !LAB_ALPH +{ preamble$ empty$ +#endif LAB_ALPH + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +% Now we produce the output for all the entries + +ITERATE {call.type$} + +% Finally, we finish up by writing the `\end{thebibliography}' command. + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/bibhtml/alphahtml.bst b/Master/texmf-dist/bibtex/bst/bibhtml/alphahtml.bst new file mode 100644 index 00000000000..a8a68d52ae4 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/bibhtml/alphahtml.bst @@ -0,0 +1,1410 @@ +%% alphahtml.bst, version 1.1 +%% Copyright 1999, 2005, Norman Gray. +%% +%% alphahtml.bst derived from alpha.bst and plainhtml.bst by +%% Franz G. Fischer, Franz.Fischer@lpr.e-technik.tu-muenchen.de +% +% $Id: alphahtml.bst,v 1.2 2005/09/19 16:10:59 norman Exp $ +% +% Released under the terms of the GNU General Public Licence -- +% see the file LICENCE, included in the distribution. +% +% Version history: +% * 19 September 2005: added `webpage' entry type, and +% `lastchecked' field. +% 1.1 6 June 1999. Tidied documentation, clarified licence. +% 1.0b1 Original version, based on Franz's adaptations, plus support +% for eprint field (in article, techreport, misc, inproceedings, +% unpublished) +% +% Modification of... +% BibTeX standard bibliography style `alpha' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. +% ... to make it produce HTML, and add the url field +% +% this produces a file which is a
...
, which should be incorporated +% into another html file somehow. +% There will still be ~ and -- within the output file (it's too difficult +% to get rid of them here). A post-processor should turn these +% into either   and &enspace; or ' ' and '-' as required. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + url + lastchecked + eprint +%EDIT1 + } + {} + { label extra.label sort.label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block + close.link } + +STRINGS { s t xxxmirror } + +% Initialise state constants, and location of nearest XXX mirror (for eprints) +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + + "xxx.lanl.gov" 'xxxmirror := +} + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + % close the
after the end of the first block + % and set closelink false + close.link + { "
" write$ + #0 'close.link := } + 'skip$ + if$ + newline$ + " " 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 {output.bibitem} +{ newline$ + "
[" * label * "] " * write$ + % the
is closed within output.nonnull, as long as close.link is true + #1 'close.link := +% newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ + "" 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "" swap$ * "" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +%FUNCTION {format.title} +%{ title empty$ +% { "" } +% { title "t" change.case$ } +% if$ +%} + +% format the title, and surround it with the URL if one is defined +FUNCTION {format.title} +{ title empty$ + { "" } + { url empty$ + { title "t" change.case$ } + { "" * + title "t" change.case$ * "" * } + if$ + } + if$ +} + +% format the eprint number, and surround it with a URL pointing to +% one of the XXX mirrors +FUNCTION {format.eprint} +{ eprint empty$ + { "" } + { "eprint " * eprint * "" * } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +%FUNCTION {format.btitle} +%{ title emphasize +%} + +FUNCTION {format.btitle} +{ title empty$ + { booktitle empty$ + { "need title or booktitle in format.btitle" warning$ } + { booktitle 's := } + if$ + } + { title 's := } + if$ + url empty$ + { s emphasize } + { "" * + s emphasize * "" * } + if$ +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +%{ volume field.or.null +{ volume empty$ % allow this... + { "" } + { "" volume * "" * } + if$ + number empty$ + 'skip$ + { " no. " number * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { " pp. " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +% surround the journal name with a link pointing to the crossref +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In " * + journal * "" * } +% { "In " journal * "" * } + if$ + } + { "In " key * } + if$ +% " " * crossref * "" * +} + +%FUNCTION {format.crossref.editor} +%{ crossref empty$ +% 'skip$ +% { "" * } +% if$ +% editor #1 "{vv~}{ll}" format.name$ +% editor num.names$ duplicate$ +% #2 > +% { pop$ " et~al." * } +% { #2 < +% 'skip$ +% { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = +% { " et~al." * } +% { " and " * editor #2 "{vv~}{ll}" format.name$ * } +% if$ +% } +% if$ +% } +% if$ +% crossref empty$ +% 'skip$ +% { "" * } +% if$ +%} + +% if there is indeed a crossref, make the reference a link +FUNCTION {format.crossref.editor} +{ crossref empty$ + { editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ + } + { "[" * + crossref * "]" * + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "" * series * "" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ +% "" * crossref * "" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In " booktitle * "" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ +% "" * crossref * "" * +% " \cite{" * crossref * "}" * +} + +FUNCTION {format.lastchecked} +{ lastchecked empty$ + { "" } + { ", cited " lastchecked * } + if$ +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.eprint output + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + format.eprint output + } + { address output.nonnull + format.date "year" output.check + format.eprint output + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.eprint output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.eprint output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + format.eprint output + fin.entry +} + +FUNCTION {webpage} +{ output.bibitem + author empty$ + { % Need to put something here -- if the title were put here, + % we'd have a inside a + key empty$ + { "" } + { key } + if$ + "author and key" output.check + } + { format.authors "author" output.check } + if$ + new.block + format.title "title" output.check + new.block + "[Online" format.lastchecked * "]" * output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "+" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "+" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label + sort.label %EDIT2 + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "
" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "
" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/bibhtml/alphahtmldate.bst b/Master/texmf-dist/bibtex/bst/bibhtml/alphahtmldate.bst new file mode 100644 index 00000000000..a57cdb86f86 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/bibhtml/alphahtmldate.bst @@ -0,0 +1,1420 @@ +%% +%% DO NOT EDIT +%% +%% This is alphahtmldate.bst, edited from alphahtml.bst by alphahtmldate.sed +%% +%% alphahtml.bst, version 1.1 +%% Copyright 1999, 2005, Norman Gray. +%% +%% alphahtml.bst derived from alpha.bst and plainhtml.bst by +%% Franz G. Fischer, Franz.Fischer@lpr.e-technik.tu-muenchen.de +% +% $Id: alphahtml.bst,v 1.2 2005/09/19 16:10:59 norman Exp $ +% +% Released under the terms of the GNU General Public Licence -- +% see the file LICENCE, included in the distribution. +% +% Version history: +% * 19 September 2005: added `webpage' entry type, and +% `lastchecked' field. +% 1.1 6 June 1999. Tidied documentation, clarified licence. +% 1.0b1 Original version, based on Franz's adaptations, plus support +% for eprint field (in article, techreport, misc, inproceedings, +% unpublished) +% +% Modification of... +% BibTeX standard bibliography style `alpha' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. +% ... to make it produce HTML, and add the url field +% +% this produces a file which is a
...
, which should be incorporated +% into another html file somehow. +% There will still be ~ and -- within the output file (it's too difficult +% to get rid of them here). A post-processor should turn these +% into either   and &enspace; or ' ' and '-' as required. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + url + lastchecked + eprint +%EDIT1 + sortmonth + } + {} + { label extra.label sort.label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block + close.link } + +STRINGS { s t xxxmirror } + +% Initialise state constants, and location of nearest XXX mirror (for eprints) +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + + "xxx.lanl.gov" 'xxxmirror := +} + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + % close the
after the end of the first block + % and set closelink false + close.link + { "
" write$ + #0 'close.link := } + 'skip$ + if$ + newline$ + " " 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 {output.bibitem} +{ newline$ + "
[" * label * "] " * write$ + % the
is closed within output.nonnull, as long as close.link is true + #1 'close.link := +% newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ + "" 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "" swap$ * "" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +%FUNCTION {format.title} +%{ title empty$ +% { "" } +% { title "t" change.case$ } +% if$ +%} + +% format the title, and surround it with the URL if one is defined +FUNCTION {format.title} +{ title empty$ + { "" } + { url empty$ + { title "t" change.case$ } + { "" * + title "t" change.case$ * "" * } + if$ + } + if$ +} + +% format the eprint number, and surround it with a URL pointing to +% one of the XXX mirrors +FUNCTION {format.eprint} +{ eprint empty$ + { "" } + { "eprint " * eprint * "" * } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +%FUNCTION {format.btitle} +%{ title emphasize +%} + +FUNCTION {format.btitle} +{ title empty$ + { booktitle empty$ + { "need title or booktitle in format.btitle" warning$ } + { booktitle 's := } + if$ + } + { title 's := } + if$ + url empty$ + { s emphasize } + { "" * + s emphasize * "" * } + if$ +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +%{ volume field.or.null +{ volume empty$ % allow this... + { "" } + { "" volume * "" * } + if$ + number empty$ + 'skip$ + { " no. " number * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { " pp. " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +% surround the journal name with a link pointing to the crossref +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In " * + journal * "" * } +% { "In " journal * "" * } + if$ + } + { "In " key * } + if$ +% " " * crossref * "" * +} + +%FUNCTION {format.crossref.editor} +%{ crossref empty$ +% 'skip$ +% { "" * } +% if$ +% editor #1 "{vv~}{ll}" format.name$ +% editor num.names$ duplicate$ +% #2 > +% { pop$ " et~al." * } +% { #2 < +% 'skip$ +% { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = +% { " et~al." * } +% { " and " * editor #2 "{vv~}{ll}" format.name$ * } +% if$ +% } +% if$ +% } +% if$ +% crossref empty$ +% 'skip$ +% { "" * } +% if$ +%} + +% if there is indeed a crossref, make the reference a link +FUNCTION {format.crossref.editor} +{ crossref empty$ + { editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ + } + { "[" * + crossref * "]" * + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "" * series * "" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ +% "" * crossref * "" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In " booktitle * "" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ +% "" * crossref * "" * +% " \cite{" * crossref * "}" * +} + +FUNCTION {format.lastchecked} +{ lastchecked empty$ + { "" } + { ", cited " lastchecked * } + if$ +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.eprint output + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + format.eprint output + } + { address output.nonnull + format.date "year" output.check + format.eprint output + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.eprint output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.eprint output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + format.eprint output + fin.entry +} + +FUNCTION {webpage} +{ output.bibitem + author empty$ + { % Need to put something here -- if the title were put here, + % we'd have a inside a + key empty$ + { "" } + { key } + if$ + "author and key" output.check + } + { format.authors "author" output.check } + if$ + new.block + format.title "title" output.check + new.block + "[Online" format.lastchecked * "]" * output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "+" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "+" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label + year field.or.null sortify + sortmonth field.or.null sortify + * + sort.label + * + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "
" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "
" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/bibhtml/alphahtmldater.bst b/Master/texmf-dist/bibtex/bst/bibhtml/alphahtmldater.bst new file mode 100644 index 00000000000..6e17fe53ede --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/bibhtml/alphahtmldater.bst @@ -0,0 +1,1420 @@ +%% +%% DO NOT EDIT +%% +%% This is alphahtmldater.bst, edited from alphahtml.bst by alphahtmldater.sed +%% +%% alphahtml.bst, version 1.1 +%% Copyright 1999, 2005, Norman Gray. +%% +%% alphahtml.bst derived from alpha.bst and plainhtml.bst by +%% Franz G. Fischer, Franz.Fischer@lpr.e-technik.tu-muenchen.de +% +% $Id: alphahtml.bst,v 1.2 2005/09/19 16:10:59 norman Exp $ +% +% Released under the terms of the GNU General Public Licence -- +% see the file LICENCE, included in the distribution. +% +% Version history: +% * 19 September 2005: added `webpage' entry type, and +% `lastchecked' field. +% 1.1 6 June 1999. Tidied documentation, clarified licence. +% 1.0b1 Original version, based on Franz's adaptations, plus support +% for eprint field (in article, techreport, misc, inproceedings, +% unpublished) +% +% Modification of... +% BibTeX standard bibliography style `alpha' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. +% ... to make it produce HTML, and add the url field +% +% this produces a file which is a
...
, which should be incorporated +% into another html file somehow. +% There will still be ~ and -- within the output file (it's too difficult +% to get rid of them here). A post-processor should turn these +% into either   and &enspace; or ' ' and '-' as required. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + url + lastchecked + eprint +%EDIT1 + sortmonth + } + {} + { label extra.label sort.label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block + close.link } + +STRINGS { s t xxxmirror } + +% Initialise state constants, and location of nearest XXX mirror (for eprints) +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + + "xxx.lanl.gov" 'xxxmirror := +} + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + % close the
after the end of the first block + % and set closelink false + close.link + { "
" write$ + #0 'close.link := } + 'skip$ + if$ + newline$ + " " 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 {output.bibitem} +{ newline$ + "
[" * label * "] " * write$ + % the
is closed within output.nonnull, as long as close.link is true + #1 'close.link := +% newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ + "" 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "" swap$ * "" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +%FUNCTION {format.title} +%{ title empty$ +% { "" } +% { title "t" change.case$ } +% if$ +%} + +% format the title, and surround it with the URL if one is defined +FUNCTION {format.title} +{ title empty$ + { "" } + { url empty$ + { title "t" change.case$ } + { "" * + title "t" change.case$ * "" * } + if$ + } + if$ +} + +% format the eprint number, and surround it with a URL pointing to +% one of the XXX mirrors +FUNCTION {format.eprint} +{ eprint empty$ + { "" } + { "eprint " * eprint * "" * } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +%FUNCTION {format.btitle} +%{ title emphasize +%} + +FUNCTION {format.btitle} +{ title empty$ + { booktitle empty$ + { "need title or booktitle in format.btitle" warning$ } + { booktitle 's := } + if$ + } + { title 's := } + if$ + url empty$ + { s emphasize } + { "" * + s emphasize * "" * } + if$ +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +%{ volume field.or.null +{ volume empty$ % allow this... + { "" } + { "" volume * "" * } + if$ + number empty$ + 'skip$ + { " no. " number * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { " pp. " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +% surround the journal name with a link pointing to the crossref +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In " * + journal * "" * } +% { "In " journal * "" * } + if$ + } + { "In " key * } + if$ +% " " * crossref * "" * +} + +%FUNCTION {format.crossref.editor} +%{ crossref empty$ +% 'skip$ +% { "" * } +% if$ +% editor #1 "{vv~}{ll}" format.name$ +% editor num.names$ duplicate$ +% #2 > +% { pop$ " et~al." * } +% { #2 < +% 'skip$ +% { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = +% { " et~al." * } +% { " and " * editor #2 "{vv~}{ll}" format.name$ * } +% if$ +% } +% if$ +% } +% if$ +% crossref empty$ +% 'skip$ +% { "" * } +% if$ +%} + +% if there is indeed a crossref, make the reference a link +FUNCTION {format.crossref.editor} +{ crossref empty$ + { editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ + } + { "[" * + crossref * "]" * + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "" * series * "" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ +% "" * crossref * "" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In " booktitle * "" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ +% "" * crossref * "" * +% " \cite{" * crossref * "}" * +} + +FUNCTION {format.lastchecked} +{ lastchecked empty$ + { "" } + { ", cited " lastchecked * } + if$ +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.eprint output + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + format.eprint output + } + { address output.nonnull + format.date "year" output.check + format.eprint output + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.eprint output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.eprint output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + format.eprint output + fin.entry +} + +FUNCTION {webpage} +{ output.bibitem + author empty$ + { % Need to put something here -- if the title were put here, + % we'd have a inside a + key empty$ + { "" } + { key } + if$ + "author and key" output.check + } + { format.authors "author" output.check } + if$ + new.block + format.title "title" output.check + new.block + "[Online" format.lastchecked * "]" * output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "+" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "+" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label + year field.or.null sortify + sortmonth field.or.null sortify + * + sort.label + * + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "
" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +REVERSE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "
" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/bibhtml/plainhtml.bst b/Master/texmf-dist/bibtex/bst/bibhtml/plainhtml.bst new file mode 100644 index 00000000000..f40c226132b --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/bibhtml/plainhtml.bst @@ -0,0 +1,1286 @@ +%% plainhtml.bst, version 1.1 +%% Copyright 1999, 2005, Norman Gray. +%% +%% Part of bibhtml, Norman Gray , April 1996 +% +% $Id: plainhtml.bst,v 1.2 2005/09/19 16:10:52 norman Exp $ +% +% Released under the terms of the GNU General Public Licence -- +% see the file LICENCE, included in the distribution. +% +% Version history: +% * 19 September 2005: added `webpage' entry type, and +% `lastchecked' field. +% 1.1 6 June 1999. Tidied documenation, clarified licence. +% 1.0b3 April 1998, added support for eprint field +% (in article, techreport, misc, inproceedings, unpublished) +% 1.0b2 December 1996, added the above exhortation! +% 1.0b1 Original version +% +% Modification of... +% BibTeX standard bibliography style `plain' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. +% ... to make it produce HTML, and add the url field +% +% this produces a file which is a
...
, which should be incorporated +% into another html file somehow. +% There will still be ~ and -- within the output file (it's too difficult +% to get rid of them here). A post-processor should turn these +% into either   and &enspace; or ' ' and '-' as required. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + url + lastchecked + eprint +%EDIT1 + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block + close.link } + +STRINGS { s t xxxmirror } + +% Initialise state constants, and location of nearest XXX mirror (for eprints) +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #0 'close.link := + + "xxx.lanl.gov" 'xxxmirror := +} + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + % close the
after the end of the first block + % and set closelink false + close.link + { "
" write$ + #0 'close.link := } + 'skip$ + if$ + newline$ + " " 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 {output.bibitem} +{ newline$ + "
[" * cite$ * "] " * write$ + % the
is closed within output.nonnull, as long as close.link is true + #1 'close.link := +% newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ + "" 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "" swap$ * "" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +%FUNCTION {format.title} +%{ title empty$ +% { "" } +% { title "t" change.case$ } +% if$ +%} + +% format the title, and surround it with the URL if one is defined +FUNCTION {format.title} +{ title empty$ + { "" } + { url empty$ + { title "t" change.case$ } + { "" * + title "t" change.case$ * "" * } + if$ + } + if$ +} + +% format the eprint number, and surround it with a URL pointing to +% one of the XXX mirrors +FUNCTION {format.eprint} +{ eprint empty$ + { "" } + { "eprint " * eprint * "" * } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +%FUNCTION {format.btitle} +%{ title emphasize +%} + +FUNCTION {format.btitle} +{ title empty$ + { booktitle empty$ + { "need title or booktitle in format.btitle" warning$ } + { booktitle 's := } + if$ + } + { title 's := } + if$ + url empty$ + { s emphasize } + { "" * + s emphasize * "" * } + if$ +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +%{ volume field.or.null +{ volume empty$ % allow this... + { "" } + { "" volume * "" * } + if$ + number empty$ + 'skip$ + { " no. " number * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { " pp. " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +% surround the journal name with a link pointing to the crossref +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In " * + journal * "" * } +% { "In " journal * "" * } + if$ + } + { "In " key * } + if$ +% " " * crossref * "" * +} + +%FUNCTION {format.crossref.editor} +%{ crossref empty$ +% 'skip$ +% { "" * } +% if$ +% editor #1 "{vv~}{ll}" format.name$ +% editor num.names$ duplicate$ +% #2 > +% { pop$ " et~al." * } +% { #2 < +% 'skip$ +% { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = +% { " et~al." * } +% { " and " * editor #2 "{vv~}{ll}" format.name$ * } +% if$ +% } +% if$ +% } +% if$ +% crossref empty$ +% 'skip$ +% { "" * } +% if$ +%} + +% if there is indeed a crossref, make the reference a link +FUNCTION {format.crossref.editor} +{ crossref empty$ + { editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ + } + { "[" * + crossref * "]" * + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "" * series * "" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ +% "" * crossref * "" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In " booktitle * "" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ +% "" * crossref * "" * +% " \cite{" * crossref * "}" * +} + +FUNCTION {format.lastchecked} +{ lastchecked empty$ + { "" } + { ", cited " lastchecked * } + if$ +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.eprint output + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + format.eprint output + } + { address output.nonnull + format.date "year" output.check + format.eprint output + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.eprint output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.eprint output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + format.eprint output + fin.entry +} + +FUNCTION {webpage} +{ output.bibitem + author empty$ + { % Need to put something here -- if the title were put here, + % we'd have a inside a + key empty$ + { "" } + { key } + if$ + "author and key" output.check + } + { format.authors "author" output.check } + if$ + new.block + format.title "title" output.check + new.block + "[Online" format.lastchecked * "]" * output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort.by.author} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +FUNCTION {presort.by.year} +{ year field.or.null sortify +%EDIT2 + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort.by.author} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "
" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "
" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/bibhtml/plainhtmldate.bst b/Master/texmf-dist/bibtex/bst/bibhtml/plainhtmldate.bst new file mode 100644 index 00000000000..8245416cd57 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/bibhtml/plainhtmldate.bst @@ -0,0 +1,1083 @@ +%% +%% DO NOT EDIT +%% +%% This is plainhtmldate.bst, edited from plainhtml.bst by plainhtmldate.sed +%% +%% plainhtml.bst, version 1.1 +%% Copyright 1999, 2005, Norman Gray. +%% +%% Part of bibhtml, Norman Gray , April 1996 +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + url + lastchecked + eprint + sortmonth + } + {} + { label } +INTEGERS { output.state before.all mid.sentence after.sentence after.block + close.link } +STRINGS { s t xxxmirror } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #0 'close.link := + "xxx.lanl.gov" 'xxxmirror := +} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + close.link + { "
" write$ + #0 'close.link := } + 'skip$ + if$ + newline$ + " " 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 {output.bibitem} +{ newline$ + "
[" * cite$ * "] " * write$ + #1 'close.link := + "" + before.all 'output.state := +} +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ + "" 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 {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "" swap$ * "" * } + if$ +} +INTEGERS { nameptr namesleft numnames } +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} +FUNCTION {format.title} +{ title empty$ + { "" } + { url empty$ + { title "t" change.case$ } + { "" * + title "t" change.case$ * "" * } + if$ + } + if$ +} +FUNCTION {format.eprint} +{ eprint empty$ + { "" } + { "eprint " * eprint * "" * } + if$ +} +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} +FUNCTION {format.btitle} +{ title empty$ + { booktitle empty$ + { "need title or booktitle in format.btitle" warning$ } + { booktitle 's := } + if$ + } + { title 's := } + if$ + url empty$ + { s emphasize } + { "" * + s emphasize * "" * } + if$ +} +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume empty$ % allow this... + { "" } + { "" volume * "" * } + if$ + number empty$ + 'skip$ + { " no. " number * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { " pp. " * pages n.dashify * } + if$ + } + if$ +} +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In " * + journal * "" * } + if$ + } + { "In " key * } + if$ +} +FUNCTION {format.crossref.editor} +{ crossref empty$ + { editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ + } + { "[" * + crossref * "]" * + } + if$ +} +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "" * series * "" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ +} +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In " booktitle * "" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ +} +FUNCTION {format.lastchecked} +{ lastchecked empty$ + { "" } + { ", cited " lastchecked * } + if$ +} +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.eprint output + new.block + note output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + format.eprint output + } + { address output.nonnull + format.date "year" output.check + format.eprint output + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.eprint output + new.block + note output + fin.entry + empty.misc.check +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.eprint output + new.block + note output + fin.entry +} +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + format.eprint output + fin.entry +} +FUNCTION {webpage} +{ output.bibitem + author empty$ + { % Need to put something here -- if the title were put here, + key empty$ + { "" } + { key } + if$ + "author and key" output.check + } + { format.authors "author" output.check } + if$ + new.block + format.title "title" output.check + new.block + "[Online" format.lastchecked * "]" * output + fin.entry +} +FUNCTION {default.type} { misc } +MACRO {jan} {"January"} +MACRO {feb} {"February"} +MACRO {mar} {"March"} +MACRO {apr} {"April"} +MACRO {may} {"May"} +MACRO {jun} {"June"} +MACRO {jul} {"July"} +MACRO {aug} {"August"} +MACRO {sep} {"September"} +MACRO {oct} {"October"} +MACRO {nov} {"November"} +MACRO {dec} {"December"} +MACRO {acmcs} {"ACM Computing Surveys"} +MACRO {acta} {"Acta Informatica"} +MACRO {cacm} {"Communications of the ACM"} +MACRO {ibmjrd} {"IBM Journal of Research and Development"} +MACRO {ibmsj} {"IBM Systems Journal"} +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} +MACRO {ieeetc} {"IEEE Transactions on Computers"} +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} +MACRO {ipl} {"Information Processing Letters"} +MACRO {jacm} {"Journal of the ACM"} +MACRO {jcss} {"Journal of Computer and System Sciences"} +MACRO {scp} {"Science of Computer Programming"} +MACRO {sicomp} {"SIAM Journal on Computing"} +MACRO {tocs} {"ACM Transactions on Computer Systems"} +MACRO {tods} {"ACM Transactions on Database Systems"} +MACRO {tog} {"ACM Transactions on Graphics"} +MACRO {toms} {"ACM Transactions on Mathematical Software"} +MACRO {toois} {"ACM Transactions on Office Information Systems"} +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} +MACRO {tcs} {"Theoretical Computer Science"} +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} +FUNCTION {presort.by.author} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +FUNCTION {presort.by.year} +{ year field.or.null sortify + sortmonth field.or.null sortify + * + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +ITERATE {presort.by.year} +SORT +STRINGS { longest.label } +INTEGERS { number.label longest.label.width } +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "
" write$ newline$ +} +EXECUTE {begin.bib} +EXECUTE {init.state.consts} +ITERATE {call.type$} +FUNCTION {end.bib} +{ newline$ + "
" write$ newline$ +} +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/bibhtml/plainhtmldater.bst b/Master/texmf-dist/bibtex/bst/bibhtml/plainhtmldater.bst new file mode 100644 index 00000000000..06fb2eb64a9 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/bibhtml/plainhtmldater.bst @@ -0,0 +1,1294 @@ +%% +%% DO NOT EDIT +%% +%% This is plainhtmldater.bst, edited from plainhtml.bst by plainhtmldater.sed +%% +%% plainhtml.bst, version 1.1 +%% Copyright 1999, 2005, Norman Gray. +%% +%% Part of bibhtml, Norman Gray , April 1996 +% +% $Id: plainhtml.bst,v 1.2 2005/09/19 16:10:52 norman Exp $ +% +% Released under the terms of the GNU General Public Licence -- +% see the file LICENCE, included in the distribution. +% +% Version history: +% * 19 September 2005: added `webpage' entry type, and +% `lastchecked' field. +% 1.1 6 June 1999. Tidied documenation, clarified licence. +% 1.0b3 April 1998, added support for eprint field +% (in article, techreport, misc, inproceedings, unpublished) +% 1.0b2 December 1996, added the above exhortation! +% 1.0b1 Original version +% +% Modification of... +% BibTeX standard bibliography style `plain' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. +% ... to make it produce HTML, and add the url field +% +% this produces a file which is a
...
, which should be incorporated +% into another html file somehow. +% There will still be ~ and -- within the output file (it's too difficult +% to get rid of them here). A post-processor should turn these +% into either   and &enspace; or ' ' and '-' as required. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + url + lastchecked + eprint +%EDIT1 + sortmonth + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block + close.link } + +STRINGS { s t xxxmirror } + +% Initialise state constants, and location of nearest XXX mirror (for eprints) +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #0 'close.link := + + "xxx.lanl.gov" 'xxxmirror := +} + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + % close the
after the end of the first block + % and set closelink false + close.link + { "
" write$ + #0 'close.link := } + 'skip$ + if$ + newline$ + " " 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 {output.bibitem} +{ newline$ + "
[" * cite$ * "] " * write$ + % the
is closed within output.nonnull, as long as close.link is true + #1 'close.link := +% newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ + "" 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "" swap$ * "" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +%FUNCTION {format.title} +%{ title empty$ +% { "" } +% { title "t" change.case$ } +% if$ +%} + +% format the title, and surround it with the URL if one is defined +FUNCTION {format.title} +{ title empty$ + { "" } + { url empty$ + { title "t" change.case$ } + { "" * + title "t" change.case$ * "" * } + if$ + } + if$ +} + +% format the eprint number, and surround it with a URL pointing to +% one of the XXX mirrors +FUNCTION {format.eprint} +{ eprint empty$ + { "" } + { "eprint " * eprint * "" * } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +%FUNCTION {format.btitle} +%{ title emphasize +%} + +FUNCTION {format.btitle} +{ title empty$ + { booktitle empty$ + { "need title or booktitle in format.btitle" warning$ } + { booktitle 's := } + if$ + } + { title 's := } + if$ + url empty$ + { s emphasize } + { "" * + s emphasize * "" * } + if$ +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +%{ volume field.or.null +{ volume empty$ % allow this... + { "" } + { "" volume * "" * } + if$ + number empty$ + 'skip$ + { " no. " number * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { " pp. " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +% surround the journal name with a link pointing to the crossref +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In " * + journal * "" * } +% { "In " journal * "" * } + if$ + } + { "In " key * } + if$ +% " " * crossref * "" * +} + +%FUNCTION {format.crossref.editor} +%{ crossref empty$ +% 'skip$ +% { "" * } +% if$ +% editor #1 "{vv~}{ll}" format.name$ +% editor num.names$ duplicate$ +% #2 > +% { pop$ " et~al." * } +% { #2 < +% 'skip$ +% { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = +% { " et~al." * } +% { " and " * editor #2 "{vv~}{ll}" format.name$ * } +% if$ +% } +% if$ +% } +% if$ +% crossref empty$ +% 'skip$ +% { "" * } +% if$ +%} + +% if there is indeed a crossref, make the reference a link +FUNCTION {format.crossref.editor} +{ crossref empty$ + { editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ + } + { "[" * + crossref * "]" * + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "" * series * "" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ +% "" * crossref * "" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In " booktitle * "" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ +% "" * crossref * "" * +% " \cite{" * crossref * "}" * +} + +FUNCTION {format.lastchecked} +{ lastchecked empty$ + { "" } + { ", cited " lastchecked * } + if$ +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.eprint output + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + format.eprint output + } + { address output.nonnull + format.date "year" output.check + format.eprint output + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.eprint output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.eprint output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + format.eprint output + fin.entry +} + +FUNCTION {webpage} +{ output.bibitem + author empty$ + { % Need to put something here -- if the title were put here, + % we'd have a inside a + key empty$ + { "" } + { key } + if$ + "author and key" output.check + } + { format.authors "author" output.check } + if$ + new.block + format.title "title" output.check + new.block + "[Online" format.lastchecked * "]" * output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort.by.author} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +FUNCTION {presort.by.year} +{ year field.or.null sortify +%EDIT2 + sortmonth field.or.null sortify + * + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort.by.year} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "
" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +REVERSE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "
" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/camel/law.bst b/Master/texmf-dist/bibtex/bst/camel/law.bst new file mode 100644 index 00000000000..88d808d46f2 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/camel/law.bst @@ -0,0 +1,1685 @@ +%% +%% This is file `law.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% camel.dtx (with options: `bstheader,eng') +%% law.dtx (with options: `bstheader,eng') +%% camel.dtx (with options: `bstlibrary,eng') +%% law.dtx (with options: `bstfunctions,eng') +%% camel.dtx (with options: `bsttrailer,eng') +%% This file is part of the Law module of the Camel package. +%% --------------------------------------------------------- +%% This is a generated file. +%% IMPORTANT NOTICE: +%% +%% You are allowed to change this file, subject to the following +%% conditions. Under any circumstances, new macro definitions +%% should not be added to this file. You are welcome to modify +%% the macro definitions contained in this file for your own +%% use. If you pass a copy of the modified version to someone +%% else, you should (a) let me know about the change on +%% fb@soas.ac.uk, and (b) put a note of the changes and of your +%% own contact details in the file. Furthermore, you must +%% acknowledge Camel and its author(s) in the new file (if it +%% is distributed to others), and you must attach these same +%% conditions to the new file. +%% +%% You are not allowed to distribute this file alone. You are not +%% allowed to take money for the distribution or use of this file +%% (or a changed version) except for a nominal charge for copying +%% etc. +%% +%% You are allowed to distribute this file under the condition that +%% it is distributed with all of its contents, intact. +%% +%% For error reports, or offers to help make Camel a more powerful, +%% friendlier, and better package, please contact me on +%% `fb' at soas.ac.uk +%% +FUNCTION { hello } +{ +" ============================================" +" bibliography package, version 1.0k or later" +" Use with LaTeX2e and the Camel prototype " +" --------------------------------------------" +" documentation last updated: 5 December 1994 " +" code last updated: 22 March 1995 " +" version: 1.0i " +" Camel style package. " +" This is the `law' style for BibTeX and the " +" ============================================" +stack$ +} +ENTRY +{ address +annote +author +booktitle +chapter +edition +editor +howpublished +institution +journal +key +month +note +number +organization +pages +publisher +school +series +title +type +volume +year +date +jurisdiction +court +division +divno +casedate +translator +booktranslator +cites +units +} +{} +{ label extra.label sort.label } +STRINGS { s t u v scrubdate + volume.var year.var number.var journal.var pages.var } +INTEGERS { itemcount date.specials charcount a b c + nameptr namesleft numnames a.logical } +FUNCTION {dc..} {"District Court"} +FUNCTION {sc..} {"Supreme Court"} + FUNCTION {not} + { { #0 } + { #1 } + if$ + } + FUNCTION {and} + { 'skip$ + { pop$ #0 } + if$ + } + FUNCTION {or} + { { pop$ #1 } + 'skip$ + if$ + } +FUNCTION {times.ten} + { duplicate$ duplicate$ duplicate$ duplicate$ duplicate$ + duplicate$ duplicate$ duplicate$ duplicate$ + + + + + + + + + + + } +FUNCTION {character.length} + { 'u := + #0 'charcount := + { u empty$ not } + { u + #2 + global.max$ substring$ 'u := + charcount #1 + 'charcount := + }while$ + charcount + } +FUNCTION {first.in.second} + { 's := + duplicate$ empty$ + { pop$ pop$ #0 #0 } + { swap$ duplicate$ character.length 'a := + swap$ duplicate$ character.length 'b := + b a < + { pop$ pop$ #0 #0 } + { s "end" = + { b a - #1 + global.max$ substring$ = + { b a - #1 + #1 } + { #0 #0 + }if$ + } + { s "start" = + { #1 a substring$ = + { #1 #1 } + { #0 + }if$ + } + { s "reverse" = + { b a - #1 + 'b := + { b #0 > } + { duplicate$ + b a substring$ + 's := + swap$ duplicate$ s = + { pop$ pop$ b #0 'b := #1 } + { b #1 = + { pop$ pop$ #0 #0 'b := #0 } + { swap$ b #1 - 'b := + }if$ + }if$ + }while$ + } + { b a - #1 + 'b := #1 'c := + { c b < } + { duplicate$ + c a substring$ + 's := + swap$ duplicate$ s = + { pop$ pop$ c b 'c := #1 } + { b c - #1 = + { pop$ pop$ #0 b 'c := #0 } + { swap$ c #1 + 'c := + }if$ + }if$ + }while$ + }if$ + }if$ + }if$ + }if$ + }if$ + } +FUNCTION { get.character.type } + { duplicate$ "*" = + { pop$ duplicate$ empty$ + { pop$ "other" } + { chr.to.int$ duplicate$ + duplicate$ #47 > swap$ #58 < and + { pop$ "numeral" } + { duplicate$ #64 > swap$ duplicate$ #91 < swap$ + duplicate$ #96 > swap$ #123 < and 'a.logical := + and a.logical or + { "letter" } + { "other" + }if$ + }if$ + }if$ + } + { = + { "other" } + { "letter" + }if$ + }if$ + } +FUNCTION { type.last.char } + { duplicate$ character.length + #1 substring$ + "*" get.character.type + } + FUNCTION {empty.to.null} + { duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ + } +FUNCTION { check } +{ 't := + duplicate$ empty$ + { "empty " t * " in " * cite$ * warning$} + 'skip$ + if$ +} +FUNCTION {either.or} + { duplicate$ empty$ + { pop$ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ + } + { swap$ duplicate$ empty$ + { pop$ } + { "both items in an either.or pair are non-empty in " cite$ * + warning$ + " I'm using only ONE of these items (the second passed by the function)." + warning$ + pop$ + }if$ + }if$ + } +FUNCTION {either.or.nowarning} + { duplicate$ empty$ + { pop$ duplicate$ empty$ + { empty.to.null } + 'skip$ + if$ + } + { swap$ pop$ } + if$ + } +FUNCTION {must.must.must} + { empty.to.null 't := + empty.to.null swap$ empty.to.null swap$ t + * * + write$ + } +FUNCTION {might.ifone.must} + { empty.to.null 't := + swap$ duplicate$ empty$ + { pop$ pop$ t } + { swap$ empty.to.null t * * } + if$ + write$ + } +FUNCTION {iftwo.might.iftwo} + { 't := + duplicate$ empty$ + { pop$ pop$ } + { empty.to.null swap$ empty.to.null swap$ + t empty.to.null + * * write$ } + if$ + } +FUNCTION {must.ifthree.might} + { duplicate$ empty$ + { pop$ pop$ empty.to.null } + { 't := + swap$ empty.to.null + swap$ empty.to.null + t * * + }if$ + write$ + } +FUNCTION {field.tag.no.combine} + { "endlabel" = + { duplicate$ empty$ + { pop$ pop$ empty.to.null } + { empty.to.null 's := empty.to.null + swap$ empty.to.null swap$ s * * + }if$ + } + { duplicate$ empty$ + { pop$ pop$ empty.to.null } + { empty.to.null 's := empty.to.null + swap$ empty.to.null s swap$ * * + }if$ + }if$ + } +FUNCTION {change.letter.case} + { 't := + duplicate$ empty$ + 'skip$ + { t chr.to.int$ "n" chr.to.int$ = + 'skip$ + { t change.case$ } + if$ + } + if$ + } + FUNCTION {n.dashify} + { '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 { gather.chars } + { + "forward" = + { swap$ duplicate$ character.length 'a := + 't := + duplicate$ + { t #1 #1 substring$ swap$ get.character.type + "other" = + t empty$ not and } + { t #2 global.max$ substring$ 't := duplicate$ + }while$ + duplicate$ t #1 #1 substring$ swap$ get.character.type + t #1 #1 substring$ swap$ + "" swap$ duplicate$ 'u := + t #2 global.max$ substring$ 't := + { u = } + { * swap$ + u * 'u := + u #1 #1 substring$ swap$ + u #1 #1 substring$ + u #2 global.max$ substring$ 'u := + t #1 #1 substring$ swap$ get.character.type + t #1 #1 substring$ swap$ + duplicate$ u = + { t #2 global.max$ substring$ 't := } + { swap$ pop$ + }if$ + }while$ + swap$ pop$ t swap$ u + } + { swap$ duplicate$ character.length 'a := + 't := + duplicate$ + { t a #1 substring$ swap$ get.character.type + "other" = + t empty$ not and } + { a #1 - 'a := + t #1 a substring$ 't := + }while$ + duplicate$ t a #1 substring$ swap$ get.character.type + t a #1 substring$ swap$ + "" swap$ duplicate$ 'u := + a #1 - 'a := + t #1 a substring$ 't := + { u = } + { swap$ * swap$ + u * 'u := + u #1 #1 substring$ swap$ + u #1 #1 substring$ + u #2 global.max$ substring$ 'u := + t a #1 substring$ swap$ get.character.type + t a #1 substring$ swap$ + duplicate$ u = + { a #1 - 'a := t #1 a substring$ 't := } + { swap$ pop$ + }if$ + }while$ + swap$ pop$ t swap$ u + }if$ + } + FUNCTION {tie.or.space.connect} + { duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * + } +FUNCTION {format.pages} + { swap$ duplicate$ empty$ + { pop$ pop$ "" } + { swap$ duplicate$ "short" = + { pop$ + 's := + "" + s #1 #1 substring$ + { "-" = not } + { s #1 #1 substring$ * + s #2 global.max$ substring$ 's := + s #1 #1 substring$ + duplicate$ "" = + { pop$ "-" } + 'skip$ + if$ + } + while$ + } + { "full" = + { pages n.dashify } + { "invalid switch fed to the format.pages function" + warning$ + }if$ + }if$ + }if$ +} +FUNCTION {format.names} + { swap$ duplicate$ empty$ + { swap$ pop$ } + { 's := + 'u := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { u "lastonly" = + { s nameptr "{vv~}{ll}" format.name$ 't := } + { u "firstinitial" = + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := } + { u "full" = + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=} + { "style error; invalid or non-existent toggle" warning$ } + if$ + } + if$ + } + if$ + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } + if$ + } + FUNCTION {format.month.year} + { year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ + } +FUNCTION {fillout.a.year} + { duplicate$ character.length #2 = + { "19" swap$ * } + 'skip$ + if$ + } +FUNCTION {parse.month} + { duplicate$ "jan" = + { pop$ "1" } + { duplicate$ "feb" = + { pop$ "2" } + { duplicate$ "mar" = + { pop$ "3" } + { duplicate$ "apr" = + { pop$ "4" } + { duplicate$ "may" = + { pop$ "5" } + { duplicate$ "jun" = + { pop$ "6" } + { duplicate$ "jul" = + { pop$ "7" } + { duplicate$ "aug" = + { pop$ "8" } + { duplicate$ "sep" = + { pop$ "9" } + { duplicate$ "oct" = + { pop$ "10" } + { duplicate$ "nov" = + { pop$ "11" } + { duplicate$ "dec" = + { pop$ "12" } + { "invalid month in " cite$ * warning$ + "passing text to Camel verbatim" warning$ + "t" 'scrubdate := + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + } +FUNCTION { format.month.name } + { swap$ duplicate$ empty$ + { pop$ pop$ "" } + { swap$ "long" = + { duplicate$ "1" = + { "January" } + { duplicate$ "2" = + { "February" } + { duplicate$ "3" = + { "March" } + { duplicate$ "4" = + { "April" } + { duplicate$ "5" = + { "May" } + { duplicate$ "6" = + { "June" } + { duplicate$ "7" = + { "July" } + { duplicate$ "8" = + { "August" } + { duplicate$ "9" = + { "September" } + { duplicate$ "10" = + { "October" } + { duplicate$ "11" = + { "November" } + { duplicate$ "12" = + { "December" } + { "invalid month in " cite$ * warning$ "" + "passing text to Camel verbatim" warning$ + "t" 'scrubdate := + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + } + { duplicate$ "1" = + { "Jan." } + { duplicate$ "2" = + { "Feb." } + { duplicate$ "3" = + { "Mar." } + { duplicate$ "4" = + { "Apr." } + { duplicate$ "5" = + { "May" } + { duplicate$ "6" = + { "Jun." } + { duplicate$ "7" = + { "Jul." } + { duplicate$ "8" = + { "Aug." } + { duplicate$ "9" = + { "Sept." } + { duplicate$ "10" = + { "Oct." } + { duplicate$ "11" = + { "Nov." } + { duplicate$ "12" = + { "Dec." } + { "" + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ +swap$ pop$ + }if$ + } +FUNCTION {extract.date} + { 'v := "" 's := "" 't := "" 'u := + itemcount #0 = + { cites empty$ + { "some date or other is COMPLETELY empty in " cite$ * + warning$ } + 'skip$ + if$ + } + { itemcount #1 = + { pop$ fillout.a.year 's := "" 'u := "" 't := } + { itemcount #2 = + { pop$ swap$ pop$ swap$ duplicate$ character.length #4 = + { swap$ "--" swap$ * * 's := "" 't := } + { swap$ fillout.a.year 's := 't := + }if$ + "" 'u := + } + { itemcount #3 = + { date.specials + { pop$ fillout.a.year 's := + "month" = + { 't := + pop$ 'u := } + { 'u := + pop$ 't := + }if$ + } + { pop$ fillout.a.year 's := + pop$ 'u := + pop$ 't := + }if$ + } + { "too many items for date in " cite$ * warning$ + }if$ + }if$ + }if$ + }if$ + v duplicate$ "month.dd.yy" = + { pop$ s ", " u "\ " t "long" format.month.name } + { duplicate$ "dd.month.yy" = + { pop$ s "\ " t "long" format.month.name "\ " u } + { duplicate$ "mo.dd.yy" = + { pop$ s ", " u "\ " t "short" format.month.name } + { duplicate$ "dd.mo.yy" = + { pop$ s "\ " t "short" format.month.name "\ " u } + { duplicate$ "dd.mm.yy" = + { pop$ s "/" t "/" u } + { duplicate$ "mm.dd.yy" = + { s "/" u "/" t } + { "yy" = + { "" "" "" "" s } + { "invalid date toggle in style file" warning$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + }if$ + "" 'v := + duplicate$ empty$ + { pop$ pop$ } + { swap$ * 'v := } + if$ + duplicate$ empty$ + { pop$ pop$ } + { swap$ * v swap$ * 'v := } + if$ + duplicate$ empty$ + { pop$ v } + { v swap$ * } + if$ + } +FUNCTION {topup.date} + { 'a := + duplicate$ character.length #2 = + { duplicate$ #1 #1 substring$ chr.to.int$ #48 - + times.ten swap$ #2 #1 substring$ chr.to.int$ #48 - + + + } + { duplicate$ character.length #1 = + { chr.to.int$ #48 - } + { pop$ #0 "I can't cope with more than two Japanese year digits in " + cite$ * warning$ + }if$ + }if$ + a + int.to.str$ + } +FUNCTION {format.jdate} + { duplicate$ #2 global.max$ substring$ "*" "forward" gather.chars + pop$ 't := swap$ + #1 #1 substring$ duplicate$ "s" = + { pop$ t #1925 topup.date } + { duplicate$ "m" = + { pop$ t #1867 topup.date } + { duplicate$ "t" = + { pop$ t #1911 topup.date } + { "h" = + { t #1988 topup.date } + { "invalid Imperial calendar code in " cite$ * warning$ + }if$ + }if$ + }if$ + }if$ + swap$ + "*" "forward" gather.chars + pop$ swap$ + "*" "forward" gather.chars + pop$ swap$ pop$ 't := swap$ "default" swap$ t swap$ "default" + swap$ "default" + #2 'itemcount := + } +FUNCTION {format.date} + { 'v := + empty.to.null 's := + #0 'charcount := + #0 'itemcount := + #0 'date.specials := + { s empty$ not } + { s "*" "forward" gather.chars + duplicate$ "letter" = + { pop$ duplicate$ character.length #1 = itemcount not and + { pop$ pop$ s format.jdate "" 's := } + { duplicate$ character.length #3 = + { swap$ 's := + parse.month "month" #1 'date.specials := } + { swap$ 's := + pop$ "1" "invalid date in " cite$ * warning$ + "passing text to Camel verbatim" warning$ + "t" 'scrubdate := + "default" + }if$ + }if$ + } + { "numeral" = + { duplicate$ character.length #1 = + { swap$ 's := "default" } + { duplicate$ character.length #2 = + { swap$ 's := "default" } + { duplicate$ character.length #4 = + { swap$ 's := "default" } + { swap$ 's := pop$ "1" + "invalid numerical element in date for " cite$ * warning$ + "passing text to Camel verbatim" warning$ + "t" 'scrubdate := + "default" + }if$ + }if$ + }if$ + } + { swap$ 's := pop$ "1" + "failed to parse date in " cite$ * warning$ + "default" + }if$ + }if$ + itemcount #1 + 'itemcount := + }while$ + v extract.date + scrubdate "t" = + { pop$ year empty.to.null } + 'skip$ + if$ + } +FUNCTION {parse.one.cite} +{ duplicate$ "=" = not + { "=" "forward" gather.chars pop$ + duplicate$ "[" swap$ "forward" first.in.second + { swap$ duplicate$ "]" swap$ "forward" first.in.second + { "" 'volume.var := + 'b := swap$ 'a := a b < + { duplicate$ a #1 + b a #1 + - substring$ + 'year.var := + b #1 + global.max$ substring$ + " " "forward" gather.chars pop$ + duplicate$ "*" "forward" gather.chars + "numeral" = + { swap$ duplicate$ empty$ + { pop$ pop$ 'number.var := } + { pop$ pop$ swap$ * "" 'number.var := + }if$ + } + { pop$ pop$ " " swap$ * swap$ * "" 'number.var := + }if$ + } + { "Weird syntax error in " cite$ * warning$ + }if$ + } + { "Opening [ without closing ] in " cite$ * warning$ + }if$ + } + { pop$ duplicate$ ")" swap$ "reverse" first.in.second + { swap$ duplicate$ "(" swap$ "reverse" first.in.second + { 'a := swap$ 'b := a b < + { duplicate$ a #1 + b a #1 + - substring$ + 'year.var := + #1 a #1 - substring$ + " " "forward" gather.chars pop$ + duplicate$ "/" swap$ "forward" first.in.second + { pop$ "/" "forward" gather.chars pop$ + swap$ duplicate$ empty$ + { pop$ "" 'number.var := } + { #2 global.max$ substring$ + 'number.var := + }if$ + } + { pop$ "" 'number.var := + }if$ + duplicate$ empty$ + { pop$ "" 'volume.var := } + { duplicate$ "*" "forward" gather.chars + "numeral" = + { swap$ duplicate$ empty$ + { pop$ pop$ 'volume.var := } + { pop$ pop$ swap$ * "" 'volume.var := + }if$ + } + { pop$ pop$ " " swap$ * swap$ * "" 'volume.var := + }if$ + }if$ + } + { "Weird syntax error in " cite$ * warning$ + }if$ + } + { "Closing ) without opening ( in " cite$ * warning$ + }if$ + } + { pop$ "No recognizable date in string in " cite$ * warning$ + }if$ + }if$ + " " swap$ * " " "reverse" gather.chars pop$ + duplicate$ "*" "forward" gather.chars + "numeral" = + { swap$ duplicate$ empty$ + { pop$ pop$ 'pages.var := } + { pop$ pop$ swap$ * "" 'pages.var := + }if$ + } + { pop$ pop$ swap$ * "" 'pages.var := + }if$ + duplicate$ empty$ + { 'journal.var := } + { duplicate$ character.length #2 - + #3 swap$ substring$ 'journal.var := + }if$ + } + 'skip$ + if$ +} +FUNCTION {build.bridges} + { duplicate$ empty$ + { pop$ skip$ } + { duplicate$ "sections" = + { pop$ "\bridges{\ \S~}{}{\ \S\S~}{\ }{\ \S~}{\ \S\S~}" + "" "" must.must.must + } + + { duplicate$ "articles" = + { pop$ + "\bridges{\ art.~}{}{\ arts.~}{\ }{\ art.~}{\ arts.~}" + "" "" must.must.must + } + { "schedules" = + { "\bridges{\ sched.~}{}{\ scheds.~}{\ }{\ sched.~}{\ scheds.~}" + "" "" must.must.must + } + 'skip$ + if$ + }if$ + }if$ + }if$ + } +FUNCTION { get.a.kinda.sort.key } +{ author empty$ + { title empty$ + { "0000" } + { title "*" "forward" gather.chars pop$ + duplicate$ "l" change.letter.case "the" = + { pop$ "*" "forward" gather.chars pop$ swap$ pop$ } + { duplicate$ "l" change.letter.case "a" = + { pop$ "*" "forward" gather.chars pop$ swap$ pop$ } + { swap$ pop$ + }if$ + }if$ + }if$ + } + { author #1 "{ll}" format.name$ + }if$ +} +FUNCTION {j.format.division} + { division empty$ + 'skip$ + { dc.. court "end" first.in.second + { pop$ " No.~" 's := "endlabel" 't := } + { pop$ sc.. court "start" first.in.second + { pop$ "No.\ " 's := "frontlabel" 't := } + { pop$ " " 's := "endlabel" 't := + }if$ + }if$ + }if$ + division s divno t field.tag.no.combine + } +FUNCTION {article} +{ volume empty$ not number empty$ not and + volume empty$ number empty$ year "mo.dd.yy" format.date + pop$ itemcount #1 = not and and or + { "\bridges{,\ p.~}{,\ }{,\ }{\ }{\ at~}{\ at~}" + "" "" must.must.must + newline$ + } + { title type.last.char "numeral" = + { "\bridges{,\ }{,\ }{,\ }{\ }{\ at~}{\ at~}" + "" "" must.must.must + newline$ + } + 'skip$ + if$ + }if$ + "\lexibib{article}{" cite$ "}{" must.must.must + get.a.kinda.sort.key + "}{" "" must.must.must +author "lastonly" format.names +"}{" +"" +must.must.must +title "title" check +"}{" +"" +must.must.must + volume empty$ not number empty$ not and + { journal "journal" check ", v.~" volume must.must.must + ", n.~" number "}{" must.must.must } + { volume empty$ not + { volume "\ " journal "journal" check empty.to.null + might.ifone.must + "}{" "" "" must.must.must} + { year "mo.dd.yy" format.date itemcount #1 = + { "[" swap$ "] " iftwo.might.iftwo + number "\ " journal "journal" check might.ifone.must + "}{" "" "" must.must.must} + { pop$ number empty$ + { "\\" journal "journal" check "\\" must.must.must + "}{" "" "" must.must.must } + { number "\ " journal "journal" check might.ifone.must + "}{" "" "" must.must.must + }if$ + }if$ + }if$ + }if$ +pages "short" format.pages "pages" check +"}{" +"" +must.must.must +volume empty$ not + { "(" "" "" must.must.must + publisher ":\ " "" might.ifone.must + "" year "mo.dd.yy" format.date ")" must.must.must } + { year "mo.dd.yy" format.date itemcount #1 = + 'pop$ + { "" "" must.must.must + }if$ + }if$ +crossref empty$ +{ "}" "" "" must.must.must } +{ booktitle empty$ + { "no booktitle (name of special issue) for " + cite$ "/" crossref ". Why a crossref?" * * * * warning$ + "}" "" "" must.must.must } + { volume empty$ {""} {") ("} if$ booktitle "}" must.must.must} + if$ +}if$ +newline$ +} +FUNCTION {book} +{ title type.last.char "numeral" = + { "\bridges{,\ }{}{,\ }{\ }{\ at~}{\ at~}" + "" "" must.must.must + newline$ + } + { units empty.to.null "paras" = + { "\bridges{,\ para.~}{}{,\ paras.~}{\ }{,\ para.~}{,\ paras.}" + "" "" must.must.must + newline$ + } + 'skip$ + if$ + }if$ + "\lexibib{book}{" cite$ "}{" must.must.must + get.a.kinda.sort.key "" "}{" must.must.must + volume empty$ + { "" } + { "\volno\ " } + if$ + author + "firstinitial" format.names "}{" must.must.must + booktitle empty$ + { title "title" check "" "" must.must.must } + { booktitle ": " title must.ifthree.might + }if$ + type empty.to.null "cmnd" = + type empty.to.null "command" = + type empty.to.null "command papers" = + or or + { ", " year "mo.dd.yy" format.date + ", " "Cmnd. " + * * * + series empty$ + { "no.~" } + { "Ser.~" series ", No.~" * * + }if$ + number "number" check + * * + "" "" must.must.must + } + 'skip$ + if$ + "}{}{}{" "(" "" must.must.must + editor empty$ translator empty$ and + { series empty$ + 'skip$ + { series " No.~" number + "endlabel" field.tag.no.combine ", " "" must.must.must } + if$ + } + { editor translator either.or "firstinitial" format.names + translator empty$ + { editor num.names$ #1 > + { " eds.\ " } + { " ed.\ " } + if$ + } + { " trans.\ " } + if$ + "" must.must.must + }if$ + edition " ed.\ " "" might.ifone.must + type empty.to.null "cmnd" = + type empty.to.null "command" = + type empty.to.null "command papers" = + or or + { "" } + { year "mo.dd.yy" format.date + }if$ + ")}" "" must.must.must + newline$ +} +FUNCTION{incollection} +{ "\lexibib{incollection}{" cite$ "}{" must.must.must + get.a.kinda.sort.key "" "}{" must.must.must + author "lastonly" format.names "author" check + "}{" "" must.must.must + title "title" check + "}{" "" must.must.must + chapter empty$ + { "\\in \\" } + { "\\" type empty$ + { "chapter " chapter "chapter" check " of \\" * * * } + { type " " chapter "chapter" check " of \\" * * * * + }if$ + }if$ + booktitle "booktitle" check + "}{" must.must.must + pages "short" format.pages "pages" check + "}{" "(" must.must.must + editor empty$ translator empty$ and + { series empty$ + 'skip$ + { series " No.~" number + "endlabel" field.tag.no.combine ", " "" must.must.must } + if$ + } + { editor booktranslator either.or "firstinitial" format.names + booktranslator empty$ + { editor num.names$ #1 > + { " eds.\ " } + { " ed.\ " } + if$ + } + { " trans.\ " } + if$ + "" must.must.must + }if$ + edition " ed.\ " "" might.ifone.must + year "mo.dd.yy" format.date ")}" "" must.must.must + newline$ +} +FUNCTION{inbook} +{ "\lexibib{inbook}{" cite$ "}{" must.must.must + get.a.kinda.sort.key "" "}{" must.must.must + author "firstinitial" format.names "author" check + "}{" "" must.must.must + title booktitle = + { chapter empty$ + { "no chapter or separate title for inbook entry " cite$ * warning$ + } + { "{\rm " "Chapter" type either.or.nowarning + " " chapter " of} " * * * * + }if$ + } + { "" + }if$ + title "title" check + "}{" must.must.must + title booktitle = + { "" } + { chapter empty$ + { "{\rm in} " } + { type empty$ + { "{\rm Chapter " chapter " of} " * * } + { "{\rm " type " " chapter " of} " * * * * + }if$ + }if$ + }if$ + booktitle "booktitle" check + "}{" must.must.must + pages "short" format.pages "pages" check + "}{" "(" must.must.must + translator empty$ + { series empty$ + 'skip$ + { series " No.~" number + "endlabel" field.tag.no.combine ", " "" must.must.must } + if$ + } + { translator "firstinitial" format.names + " trans.\ " + "" must.must.must + }if$ + edition " ed.\ " "" might.ifone.must + year "mo.dd.yy" format.date ")" "}" must.must.must + newline$ +} +FUNCTION{booklet} +{ "\lexibib{booklet}{" cite$ "}{" must.must.must + get.a.kinda.sort.key "" "}{" must.must.must + author "full" format.names "}{" "" must.must.must + "\\" title "\\}{}{}{(" must.must.must + howpublished ", " "" might.ifone.must + year "mo.dd.yy" format.date + ")}" "" must.must.must + newline$ +} +FUNCTION {techreport} +{"\lexibib{techreport}{" cite$ "}{" must.must.must + get.a.kinda.sort.key "" "}{" must.must.must + institution author either.or.nowarning + "full" format.names "author & institution" check + "}{" title "title" check must.must.must + "}{}{}{" "(" "" must.must.must + author empty$ + 'skip$ + {institution "\ " "" might.ifone.must + }if$ + type empty$ + { "Technical report" } + { type + }if$ + type empty.to.null "Cmnd" = + { "\ " } + { " No.~" + }if$ + number "endlabel" field.tag.no.combine + ", " "" must.must.must + year "mo.dd.yy" format.date + "" ")}" must.must.must + newline$ + } +FUNCTION {mastersthesis} +{"\lexibib{mastersthesis}{" cite$ "}{" must.must.must + get.a.kinda.sort.key "}{" "" must.must.must + author + "full" format.names "author" check + "}{" title "title" check must.must.must + "}{}{}{(" + type empty$ + { "Master's Thesis" } + { type + }if$ + ", " must.must.must + institution "institution" check ", " "" might.ifone.must + year "mo.dd.yy" format.date + ")" "}" must.must.must + newline$ + } +FUNCTION {clear.cite.vars} + { +"" 'volume.var := +"" 'number.var := +"" 'journal.var := +"" 'pages.var := +"" 'year.var := + } +FUNCTION {case} +{ cites empty.to.null "=" * + journal empty$ + { parse.one.cite } + { volume empty.to.null 'volume.var := + number empty.to.null 'number.var := + journal 'journal.var := + pages empty.to.null 'pages.var := + year empty.to.null 'year.var := + }if$ + volume.var empty$ not number.var empty$ not and + { "\bridges{,\ p.~}{,\ }{,\ }{\ }{\ at~}{\ at~}" + "" "" must.must.must + newline$ } + 'skip$ + if$ + "\lexibib{case}{" cite$ "}{" must.must.must + get.a.kinda.sort.key "" "}{}{" must.must.must + title empty$ + { "Decision of the " court "court" check "" must.must.must + " (" j.format.division ")" iftwo.might.iftwo + ", " "" "" must.must.must + casedate "month.dd.yy" format.date "" "" must.must.must + "}{" "" "" must.must.must + } + { title "}{" "" must.must.must } + if$ + volume.var empty$ not number.var empty$ not and + { journal.var "journal" check ", v.~" volume.var must.must.must + ", n.~" number.var "}{" must.must.must } + { volume.var empty$ + { "[" year.var "mo.dd.yy" format.date "] " iftwo.might.iftwo + number.var "\ " journal.var "journal" check might.ifone.must + "}{" "" "" must.must.must } + { volume.var "\ " journal.var "journal" check empty.to.null + might.ifone.must + "}{" "" "" must.must.must + }if$ + }if$ +pages.var "short" format.pages "pages" check +"}{" +"(" +must.must.must +volume.var empty$ + 'skip$ + { year.var "mo.dd.yy" format.date "" "" must.must.must + }if$ +crossref empty$ +{ ")}" "" "" must.must.must } +{ booktitle empty$ + { "no booktitle (name of special issue) for " + cite$ "/" crossref * * * warning$ + ")}" "" "" must.must.must } + { volume.var empty$ {""} {") ("} if$ booktitle "}" must.must.must} + if$ +}if$ +{ duplicate$ "=" = not } +{ parse.one.cite + "={" "" "" must.must.must + volume.var empty$ not number.var empty$ not and + { journal.var "journal" check ", v.~" volume.var must.must.must + ", n.~" number.var "}{" must.must.must } + { volume.var empty$ + { "[" year.var "mo.dd.yy" format.date "] " iftwo.might.iftwo + number.var "\ " journal.var "journal" check might.ifone.must + "}{" "" "" must.must.must } + { volume.var "\ " journal.var "journal" check empty.to.null + might.ifone.must + "}{" "" "" must.must.must + }if$ + }if$ +pages.var "short" format.pages "pages" check +"}{" +"" +must.must.must +volume.var empty$ + 'skip$ + { "(" year.var "mo.dd.yy" format.date ")" must.must.must + }if$ +crossref empty$ +{ "}" "" "" must.must.must } +{ booktitle empty$ + { "no booktitle (name of special issue) for " + cite$ "/" crossref * * * warning$ + "}" "" "" must.must.must } + { volume.var empty$ {""} {") ("} if$ booktitle "}" must.must.must} + if$ +}if$ +}while$ +pop$ +clear.cite.vars +newline$ +annote empty.to.null write$ newline$ +} +FUNCTION {j.statute} + { "\lexibib{jstatute}{" cite$ "}{" must.must.must + get.a.kinda.sort.key "" "}{}{" must.must.must + title "title" check empty.to.null "}{}{}{" "" must.must.must + title empty$ {""} {"("} if$ + "" "" must.must.must + number empty$ + 'skip$ + { type empty$ + { "Law" } + { type + }if$ + "\ no.~" * + number "number" check " of " + iftwo.might.iftwo + } + if$ + year "yy" format.date + title empty$ {""} {")"} if$ + "}" must.must.must + newline$ + } +FUNCTION { s.statute } +{ "\lexibib{statute}{" cite$ "}{" must.must.must + get.a.kinda.sort.key "" "}{}{" must.must.must + title "title" check ", No.~" number + "endlabel" field.tag.no.combine + number empty$ + { "\ " * } + { "\ of " * } + if$ + year "mo.dd.yy" format.date "}{}{}{}" must.must.must + newline$ +} +FUNCTION { e.statute } +{ "\lexibib{statute}{" cite$ "}{" must.must.must + get.a.kinda.sort.key "" "}{}{" must.must.must + title "title" check "\ " + year "mo.dd.yy" format.date must.must.must + "}{}{}{}" "" "" must.must.must + newline$ +} +FUNCTION { statute } + { type build.bridges + jurisdiction empty.to.null duplicate$ + "japan" = + { pop$ j.statute } + { duplicate$ "singapore" = + { pop$ s.statute } + { duplicate$ "england" = + { pop$ e.statute } + { pop$ "IMPORTANT: unknown jurisdiction for " cite$ * warning$ + }if$ + }if$ + }if$ + } +FUNCTION {unpublished} +{ "\lexibib{book}{" cite$ "}{" must.must.must + get.a.kinda.sort.key "" "}{" must.must.must + author "firstinitial" format.names "}{" "" must.must.must + title "title" check "" "" must.must.must + "}{}{}{" "(" "" must.must.must + note + ")}" "" must.must.must + newline$ +} +FUNCTION {default.type} { book } +READ +EXECUTE {hello} +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$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year "yy" format.date purify$ #-1 #2 substring$ + * + 'label := + year "yy" format.date purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {case.sort} +{ title empty$ + { key empty$ + { "to sort, need title or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { title sort.format.title } + 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + { type$ "case" = + 'case.sort + { type$ "statute" = + 'case.sort + 'author.sort + if$ + } + if$ + } + if$ + } + if$ + } + if$ + " " + * + year "yy" format.date sortify + * + " " + * + title empty.to.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +FUNCTION {begin.bib} +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ +} + +EXECUTE {begin.bib} + +ITERATE {call.type$} +%% +%% +%% End of file `law.bst'. diff --git a/Master/texmf-dist/bibtex/bst/chem-journal/jcc.bst b/Master/texmf-dist/bibtex/bst/chem-journal/jcc.bst new file mode 100644 index 00000000000..8370282bd53 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/chem-journal/jcc.bst @@ -0,0 +1,990 @@ +% BibTeX bibliography style `jcc' for J. Comp. Chem. +% 1/26/96 Joerg-R. Hill +% no output of 'title' for 'article', 'book', 'inbook', 'incollection' +% no output of 'note' except in 'unpublished' +% +% version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. +% Copyright (C) 1985, all rights reserved. +% Copying of this file is authorized only if either +% (1) you make absolutely no changes to your copy, including name, or +% (2) if you do make changes, you name it something other than +% btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. +% This restriction helps ensure that all standard styles are identical. +% The file btxbst.doc has the documentation for this style. +% +% Fixed article, book references 11/10/92---CLF + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block after.item author.or.editor } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'after.item := +} + +FUNCTION {add.semicolon} +{ duplicate$ + #-1 #1 substring$ "}" = + { #-2 #1024 substring$ ";} " * } + { "; " * } + if$ +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.semicolon write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.item = + { " " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {new.item} +{ duplicate$ empty$ + { skip$ } + { output.state mid.sentence = + { after.item 'output.state := } + { skip$ } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.item.checka} +{ empty$ + 'skip$ + 'new.item + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {boldface} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {paren} +{ duplicate$ empty$ + { pop$ "" } + { "(" swap$ * ")" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { #1 'author.or.editor := + author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { #2 'author.or.editor := + editor format.names + editor num.names$ #1 > + { ", Eds." * } + { ", Ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + { year paren } + { month " " * year paren } + if$ + } + if$ +} + +FUNCTION {format.bdate} +{ year empty$ + { "there's no year in " cite$ * warning$ } + 'year + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Vol. " volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " ed." * } + { edition "t" change.case$ " ed." * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume boldface field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.in.booktitle.ed} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " booktitle emphasize * ", " * format.editors * } + if$ + } + if$ +} + +FUNCTION {format.pub.address} +{ publisher empty$ + { "" } + { address empty$ + { publisher } + { publisher ", " * address *} + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output new.item + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { 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.pub.address "publisher" output.check + } + { format.book.crossref output.nonnull } + if$ + format.edition output + format.bdate "year" output.check + new.block + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output new.item + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull } + if$ + format.in.booktitle.ed "title" output.check + crossref missing$ + { format.pub.address "publisher" output.check + format.bdate "year" output.check + new.block + format.bvolume output + new.block + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check new.item + crossref missing$ + { format.in.booktitle.ed "booktitle" output.check + format.bvolume output + format.number.series output + new.block + format.pub.address "publisher" output.check + format.edition output + format.bdate "year" output.check + new.block + format.chapter.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check new.item + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.bdate "year" output.check + } + { address output.nonnull + format.bdate "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.title "title" output.check new.sentence + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull new.item } + if$ + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check new.item + format.title "title" output.check new.item + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + howpublished new.item.checka + howpublished output + format.bdate output + new.block + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check new.item + format.btitle "title" output.check new.item + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull new.item } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check new.item + format.title "title" output.check new.item + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check new.item +% format.title "title" output.check new.item + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {bbrc} {"Biochem. Biophys. Res. Commun."} + +MACRO {jacs} {"J. Amer. Chem. Soc."} + +MACRO {jbc} {"J. Biol. Chem."} + +MACRO {pnas} {"Proc. Natl. Acad. Sci."} + +MACRO {jmb} {"J. Mol. Biol."} + +MACRO {embo} {"EMBO J."} + +MACRO {tibs} {"Trends Biochem. Sci."} + +MACRO {protsfg} {"Proteins: Struct. Func. Gen."} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/chem-journal/jpc.bst b/Master/texmf-dist/bibtex/bst/chem-journal/jpc.bst new file mode 100644 index 00000000000..66f83d5a894 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/chem-journal/jpc.bst @@ -0,0 +1,990 @@ +% BibTeX bibliography style `jpc' for J. Phys. Chem. +% 8/9/93 Joerg-R. Hill +% no output of 'title' for 'article', 'book', 'inbook', 'incollection' +% no output of 'note' except in 'unpublished' +% +% version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. +% Copyright (C) 1985, all rights reserved. +% Copying of this file is authorized only if either +% (1) you make absolutely no changes to your copy, including name, or +% (2) if you do make changes, you name it something other than +% btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. +% This restriction helps ensure that all standard styles are identical. +% The file btxbst.doc has the documentation for this style. +% +% Fixed article, book references 11/10/92---CLF + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block after.item author.or.editor } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'after.item := +} + +FUNCTION {add.semicolon} +{ duplicate$ + #-1 #1 substring$ "}" = + { #-2 #1024 substring$ ";} " * } + { "; " * } + if$ +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.semicolon write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.item = + { " " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {new.item} +{ duplicate$ empty$ + { skip$ } + { output.state mid.sentence = + { after.item 'output.state := } + { skip$ } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.item.checka} +{ empty$ + 'skip$ + 'new.item + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {boldface} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, f}." format.name$ 't := + nameptr #1 > + { namesleft #1 > + { author.or.editor #1 = + { "; " * t * } + { ", " * t * } + if$ + } + { t "others" = + { " et~al." * } + { author.or.editor #1 = + { "; " * t * } + { ", " * t * } + if$ + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { #1 'author.or.editor := + author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { #2 'author.or.editor := + editor format.names + editor num.names$ #1 > + { ", Eds." * } + { ", Ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + { year boldface } + { month " " * year boldface } + if$ + } + if$ +} + +FUNCTION {format.bdate} +{ year empty$ + { "there's no year in " cite$ * warning$ } + 'year + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Vol. " volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " ed." * } + { edition "t" change.case$ " ed." * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume emphasize field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.in.booktitle.ed} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " booktitle emphasize * "; " * format.editors * } + if$ + } + if$ +} + +FUNCTION {format.pub.address} +{ publisher empty$ + { "" } + { address empty$ + { publisher } + { publisher ": " * address *} + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check new.item + crossref missing$ + { journal emphasize "journal" output.check new.item + format.date "year" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check new.item } + { format.authors output.nonnull new.item + 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 + new.block + format.pub.address "publisher" output.check + } + { format.book.crossref output.nonnull } + if$ + format.edition output + format.bdate "year" output.check + new.block + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output new.item + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check new.item } + { format.authors output.nonnull new.item } + if$ + format.in.booktitle.ed "title" output.check + new.block + crossref missing$ + { format.pub.address "publisher" output.check + format.bdate "year" output.check + new.block + format.bvolume output + new.block + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check new.item + crossref missing$ + { format.in.booktitle.ed "booktitle" output.check + format.bvolume output + format.number.series output + new.block + format.pub.address "publisher" output.check + format.edition output + format.bdate "year" output.check + new.block + format.chapter.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check new.item + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.bdate "year" output.check + } + { address output.nonnull + format.bdate "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.title "title" output.check new.sentence + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull new.item } + if$ + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check new.item + format.title "title" output.check new.item + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.title output + new.sentence + format.authors output new.item + howpublished new.item.checka + howpublished output + format.date output + new.block + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check new.item + format.btitle "title" output.check new.item + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull new.item } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check new.item + format.title "title" output.check new.item + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check new.item +% format.title "title" output.check new.item + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {bbrc} {"Biochem. Biophys. Res. Commun."} + +MACRO {jacs} {"J. Amer. Chem. Soc."} + +MACRO {jbc} {"J. Biol. Chem."} + +MACRO {pnas} {"Proc. Natl. Acad. Sci."} + +MACRO {jmb} {"J. Mol. Biol."} + +MACRO {embo} {"EMBO J."} + +MACRO {tibs} {"Trends Biochem. Sci."} + +MACRO {protsfg} {"Proteins: Struct. Func. Gen."} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/chem-journal/pccp.bst b/Master/texmf-dist/bibtex/bst/chem-journal/pccp.bst new file mode 100644 index 00000000000..9c73cdbf538 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/chem-journal/pccp.bst @@ -0,0 +1,989 @@ +% BibTeX bibliography style `pccp' for Phys. Chem. Chem. Phys. +% 5/5/00 Joerg-R. Hill +% no output of 'title' for 'article', 'book', 'inbook', 'incollection' +% no output of 'note' except in 'unpublished' +% +% version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. +% Copyright (C) 1985, all rights reserved. +% Copying of this file is authorized only if either +% (1) you make absolutely no changes to your copy, including name, or +% (2) if you do make changes, you name it something other than +% btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. +% This restriction helps ensure that all standard styles are identical. +% The file btxbst.doc has the documentation for this style. +% +% Fixed article, book references 11/10/92---CLF + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block after.item author.or.editor } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'after.item := +} + +FUNCTION {add.semicolon} +{ duplicate$ + #-1 #1 substring$ "}" = + { #-2 #1024 substring$ ";} " * } + { "; " * } + if$ +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.semicolon write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.item = + { " " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {new.item} +{ duplicate$ empty$ + { skip$ } + { output.state mid.sentence = + { after.item 'output.state := } + { skip$ } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.item.checka} +{ empty$ + 'skip$ + 'new.item + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {boldface} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {paren} +{ duplicate$ empty$ + { pop$ "" } + { "(" swap$ * ")" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { #1 'author.or.editor := + author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { #2 'author.or.editor := + editor num.names$ #1 > + { "ed. " * } + { "ed. " * } + if$ + editor format.names + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + { year } + { month " " * year } + if$ + } + if$ +} + +FUNCTION {format.bdate} +{ year empty$ + { "there's no year in " cite$ * warning$ } + 'year + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Vol. " volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " ed." * } + { edition "t" change.case$ " ed." * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pp." pages n.dashify tie.or.space.connect } + { "p." pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume boldface field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.in.booktitle.ed} +{ booktitle empty$ + { "" } + { editor empty$ + { "in " booktitle emphasize * } + { "in " booktitle emphasize * ", " * format.editors * } + if$ + } + if$ +} + +FUNCTION {format.pub.address} +{ publisher empty$ + { "" } + { address empty$ + { publisher } + { publisher ", " * address *} + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + crossref missing$ + { journal emphasize "journal" output.check + format.date "year" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { 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.pub.address "publisher" output.check + } + { format.book.crossref output.nonnull } + if$ + format.edition output + format.bdate "year" output.check + new.block + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output new.item + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull } + if$ + format.in.booktitle.ed "title" output.check + crossref missing$ + { format.pub.address "publisher" output.check + format.bdate "year" output.check + new.block + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check new.item + crossref missing$ + { format.in.booktitle.ed "booktitle" output.check + format.bvolume output + format.number.series output + new.block + format.pub.address "publisher" output.check + format.edition output + format.bdate "year" output.check + new.block + format.chapter.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check new.item + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.bdate "year" output.check + } + { address output.nonnull + format.bdate "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.title "title" output.check new.sentence + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull new.item } + if$ + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check new.item + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + howpublished new.item.checka + howpublished output + format.bdate output + new.block + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check new.item + format.btitle "title" output.check new.item + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull new.item } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check new.item + format.title "title" output.check new.item + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check +% format.title "title" output.check new.item + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {bbrc} {"Biochem. Biophys. Res. Commun."} + +MACRO {jacs} {"J. Amer. Chem. Soc."} + +MACRO {jbc} {"J. Biol. Chem."} + +MACRO {pnas} {"Proc. Natl. Acad. Sci."} + +MACRO {jmb} {"J. Mol. Biol."} + +MACRO {embo} {"EMBO J."} + +MACRO {tibs} {"Trends Biochem. Sci."} + +MACRO {protsfg} {"Proteins: Struct. Func. Gen."} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/chem-journal/revcompchem.bst b/Master/texmf-dist/bibtex/bst/chem-journal/revcompchem.bst new file mode 100644 index 00000000000..e3f7c5be881 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/chem-journal/revcompchem.bst @@ -0,0 +1,993 @@ +% BibTeX bibliography style `revcompchem' for Reviews in Computational Chemistry +% 4/28/98 Joerg-R. Hill +% +% version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. +% Copyright (C) 1985, all rights reserved. +% Copying of this file is authorized only if either +% (1) you make absolutely no changes to your copy, including name, or +% (2) if you do make changes, you name it something other than +% btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. +% This restriction helps ensure that all standard styles are identical. +% The file btxbst.doc has the documentation for this style. +% +% Fixed article, book references 11/10/92---CLF + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block after.item author.or.editor } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'after.item := +} + +FUNCTION {add.semicolon} +{ duplicate$ + #-1 #1 substring$ "}" = + { #-2 #1024 substring$ ";} " * } + { "; " * } + if$ +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.semicolon write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.item = + { " " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {new.item} +{ duplicate$ empty$ + { skip$ } + { output.state mid.sentence = + { after.item 'output.state := } + { skip$ } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.item.checka} +{ empty$ + 'skip$ + 'new.item + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {boldface} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {paren} +{ duplicate$ empty$ + { pop$ "" } + { "(" swap$ * ")" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { #1 'author.or.editor := + author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { #2 'author.or.editor := + editor format.names + editor num.names$ #1 > + { ", Eds." * } + { ", Ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + { year paren } + { month " " * year paren } + if$ + } + if$ +} + +FUNCTION {format.bdate} +{ year empty$ + { "there's no year in " cite$ * warning$ } + 'year + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Vol. " volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " ed." * } + { edition "t" change.case$ " ed." * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume boldface field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "in " booktitle emphasize * } + { "in " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.in.booktitle.ed} +{ booktitle empty$ + { "" } + { editor empty$ + { "in " booktitle emphasize * } + { "in " booktitle emphasize * ", " * format.editors * } + if$ + } + if$ +} + +FUNCTION {format.pub.address} +{ publisher empty$ + { "" } + { address empty$ + { publisher } + { publisher ", " * address *} + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "in {\em " booktitle * "\/}" * } + if$ + } + { "in " key * } + if$ + } + { "in " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output new.item + format.date "year" output.check new.sentence + format.title "title" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { 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.pub.address "publisher" output.check + } + { format.book.crossref output.nonnull } + if$ + format.edition output + format.bdate "year" output.check + new.block + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output new.item + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull } + if$ + format.in.booktitle.ed "booktitle" output.check + crossref missing$ + { format.pub.address "publisher" output.check + format.bdate "year" output.check + new.block + format.bvolume output + new.block + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + title empty$ + { "need title for " cite$ * warning$ } + { format.title output } + if$ + new.block + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check new.item + crossref missing$ + { format.in.booktitle.ed "booktitle" output.check + format.bvolume output + format.number.series output + new.block + format.pub.address "publisher" output.check + format.edition output + format.bdate "year" output.check + new.block + format.chapter.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check new.item + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.bdate "year" output.check + } + { address output.nonnull + format.bdate "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.title "title" output.check new.sentence + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull new.item } + if$ + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check new.item + format.title "title" output.check new.item + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + howpublished new.item.checka + howpublished output + format.bdate output + new.block + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check new.item + format.btitle "title" output.check new.item + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull new.item } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check new.item + format.title "title" output.check new.item + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check new.item +% format.title "title" output.check new.item + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {bbrc} {"Biochem. Biophys. Res. Commun."} + +MACRO {jacs} {"J. Amer. Chem. Soc."} + +MACRO {jbc} {"J. Biol. Chem."} + +MACRO {pnas} {"Proc. Natl. Acad. Sci."} + +MACRO {jmb} {"J. Mol. Biol."} + +MACRO {embo} {"EMBO J."} + +MACRO {tibs} {"Trends Biochem. Sci."} + +MACRO {protsfg} {"Proteins: Struct. Func. Gen."} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/computational-complexity/cc.bst b/Master/texmf-dist/bibtex/bst/computational-complexity/cc.bst new file mode 100644 index 00000000000..ebaf928d197 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/computational-complexity/cc.bst @@ -0,0 +1,1383 @@ +% File name: cc.bst +% +% cc.bst style file for BibTeX. +% February 6, 1996 +% This style file provides the following citation facilities: +% Usage in Tex Output: +% file: +% \cite Cook (1990) +% \citeauthor Cook +% \citeyear 1990 +% \citemul Cook (1990, 1991a, 1991b) +% \shortcite Cook 1990 +% \parencite (Cook 1990) +% \nocite + +% It was prepared by modifying previous style files. +% Here are acknowledgements: +%> BibTeX `named' style file for BibTeX version 0.99c, LaTeX version 2.09 +%> Place it in a file called named.bst in the BibTeX search path. (Placing it +%> in the same directory as the LaTeX document should also work.) +%> Support for named citations is provided by named.sty + +%> This version was made by modifying the master file made by +%> Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU) + +%> Copyright (C) 1985, all rights reserved. +%> Modifications Copyright 1988, Peter F. Patel-Schneider +%> Copying of this file is authorized only if either +%> (1) you make absolutely no changes to your copy, including name, or +%> (2) if you do make changes, you name it something other than +%> btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. +%> This restriction helps ensure that all standard styles are identical. + +%> There are undoubtably bugs in this style. If you make bug fixes, +%> improvements, etc. please let me know. My e-mail address is: +%> pfps@research.att.com + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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 { mode s t } + +%FUNCTION {message} +%{ +% duplicate$ top$ +%} + +FUNCTION {output.nonnull} +{ 's := +%%%% "output.nonnull" top$ +%%%% output.state top$ + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ +%%%% { ", " * 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 {output.bibitem} +{ newline$ + + "\bibitem[" write$ + label write$ + "]{" write$ + + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {semi.block} +{ %%%%"semi.block" top$ + mid.sentence 'output.state := +} + +%FUNCTION {semi.block} +%{ output.state mid.sentence = +% '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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.semiblock.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'semi.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\sl " swap$ * "}" * } + if$ +} + +FUNCTION {bold} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + "{\sc " * + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + "}" * +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { "ed.\ " + editor format.names * + } + if$ +} + +FUNCTION {format.editors.reverse} +{ editor empty$ + { "" } + { editor format.names + ", ed." * + } + if$ +} + +FUNCTION {format.editors.simple} +{ editor empty$ + { "" } + { editor format.names } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + + { title "t" change.case$ } + + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } +% { "there's a month but no year in " cite$ * warning$ +% month +% } + { } + if$ + } +% { month empty$ +% {year extra.label * } +% { month " " * year * extra.label *} +% if$ +% } + { year extra.label * } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +%FUNCTION {format.bvolume} +%{ volume empty$ +% { "" } +% { series empty$ +% 'skip$ +% {series emphasize ",\ vol.\ " * volume *} +% if$ +% "volume and number" number either.or.check +% } +% if$ +%} +%FUNCTION {format.bvolume} +%{ volume empty$ +% { "" } +% { series empty$ +% 'skip$ +% {series emphasize "\ " * volume bold *} +% if$ +% "volume and number" number either.or.check +% } +% if$ +%} +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "vol." volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +%FUNCTION {format.number.series} +%{ volume empty$ +% { number empty$ +% { series field.or.null } +% { output.state mid.sentence = +% { "number" } +% { "Number" } +% if$ +% number tie.or.space.connect +% series empty$ +% { "there's a number but no series in " cite$ * warning$ } +% { " in " * series * } +% if$ +% } +% if$ +% } +% { "" } +% if$ +%} +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { "there's a number but no series in " cite$ * warning$ } + { series "\ " * number bold * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { pages n.dashify } + { "p." pages tie.or.space.connect } + if$ + } + if$ +} + + +FUNCTION {format.vol.num.year} +{ volume field.or.null bold + number empty$ + 'skip$ + { "(" number * ")\," * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + year empty$ + 'skip$ + { "\ (" * format.date * ")" * } + if$ +} + + +FUNCTION {format.vol.num.pages} +{ volume field.or.null bold + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ",\, pp.\, " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " booktitle emphasize * ", " * format.editors * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + + key empty$ not and + + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.publisher.address} +{ address empty$ + 'publisher + { publisher ", " * address * } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \shortcite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \shortcite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \shortcite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + semi.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "\ " * format.vol.num.year * "journal" output.check + format.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors.simple "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + semi.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + format.publisher.address "publisher" output.check + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + semi.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + semi.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + format.publisher.address "publisher" output.check + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + semi.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + format.publisher.address "publisher" output.check + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + semi.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date output + } + { address output.nonnull + format.date output +%%%% new.sentence + organization output + publisher output + } + if$ + format.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + semi.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + semi.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors "author" output.check + title howpublished new.semiblock.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + semi.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } +% { format.editors output.nonnull } + { format.editors.reverse output.nonnull } + if$ + semi.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + semi.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + semi.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + + +MACRO {jan} {"January"} +MACRO {feb} {"February"} +MACRO {mar} {"March"} +MACRO {apr} {"April"} +MACRO {may} {"May"} +MACRO {jun} {"June"} +MACRO {jul} {"July"} +MACRO {aug} {"August"} +MACRO {sep} {"September"} +MACRO {oct} {"October"} +MACRO {nov} {"November"} +MACRO {dec} {"December"} + + + +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$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ + 's := + s num.names$ 'numnames := + + mode "cite" = + { numnames #1 = + { s #1 "{vv }{ll}" format.name$ } + { numnames #2 = + { s #1 "{vv }{ll }\& " format.name$ s #2 "{vv }{ll}" format.name$ * } + { s #1 "{vv }{ll }\bgroup \em et al.\egroup " format.name$ } + if$ + } + if$ + } + { numnames #1 = + { s #1 "{ll}" format.name$ } + { numnames #2 = + { s #1 "{ll }\& " format.name$ s #2 "{ll}" format.name$ * } + { s #1 "{ll }\bgroup \em et al.\egroup " 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 {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + + { cite$ #1 #3 substring$ } + + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + + { cite$ #1 #3 substring$ } + + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ + "cite" 'mode := + type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + + "\protect\citeauthoryear{" swap$ * "}{" * + year field.or.null purify$ * % CHANGED - pfps - 15 Feb 1989 + 'label := + + "sort" 'mode := + type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + " " * + year field.or.null purify$ * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} + +{ calc.label + sort.label + + " " + * + type$ "book" = + + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + + * + + " " + * + year field.or.null sortify + * + " " + * + cite$ + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * "}" * 'label := % CHANGED - pfps 15 Feb 1989 + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {begin.bib} + +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + + 'skip$ + { preamble$ write$ newline$ } + if$ + + "\begin{thebibliography}{}\small" write$ newline$ + +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/computational-complexity/cc2.bst b/Master/texmf-dist/bibtex/bst/computational-complexity/cc2.bst new file mode 100644 index 00000000000..fb6b8e55522 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/computational-complexity/cc2.bst @@ -0,0 +1,1667 @@ +%% +%% This is file `cc2.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `,ay,nat,lang,vonx,ed-au,nmft,nmft-sc,nmfted,nmand-rm,dt-beg,yr-par,note-yr,atit-u,vol-bf,volp-com,pgsep-s,jnm-x,pg-bk,isbn,issn,url,url-blk,edpar,edby,edbyy,ppx,ord,amper,and-xcom,etal-it,nfss') +%% ---------------------------------------- +%% *** bst for computational complexity with natbib.sty *** +%% +%% 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 ENGLISH + % 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 + isbn + issn + 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} +{ + new.block +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +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 {bolden} +{ duplicate$ empty$ + { pop$ "" } + { "\textbf{" 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. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "editors" } + +FUNCTION {bbl.editor} +{ "editor" } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edition" } + +FUNCTION {bbl.volume} +{ "volume" } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "number" } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "" } + +FUNCTION {bbl.page} +{ "" } + +FUNCTION {bbl.chapter} +{ "chapter" } + +FUNCTION {bbl.techrep} +{ "Technical Report" } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} +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 + "{ff~}{vv~}{ll}{, jj}" + format.name$ + bib.name.font + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal emphasize * + } + { + "\&" + 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 + "(" swap$ * ")" * + * + } + if$ +} +FUNCTION {format.book.pages} +{ pages "pages" bibinfo.check + duplicate$ empty$ 'skip$ + { bbl.pages * } + if$ +} +FUNCTION {format.isbn} +{ isbn "isbn" bibinfo.check + duplicate$ empty$ 'skip$ + { + new.block + "ISBN " swap$ * + } + if$ +} + +FUNCTION {format.issn} +{ issn "issn" bibinfo.check + duplicate$ empty$ 'skip$ + { + new.block + "ISSN " swap$ * + } + 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$ + { + select.language + } + 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 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal emphasize * + } + { + "\&" + 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 capitalize + " " * } + +FUNCTION {format.date} +{ year "year" bibinfo.check duplicate$ empty$ + { + "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" + } + 'skip$ + if$ + extra.label * + before.all 'output.state := + " (" swap$ * ")" * +} +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 } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.prefix "number" bibinfo.check * * + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * + series "series" bibinfo.check * + } + if$ + } + if$ + } + { "" } + if$ +} +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s eng.ord 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + convert.edition + 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 + { + n.dashify + } + { + } + if$ + "pages" bibinfo.check + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ", " * + swap$ + n.dashify + "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$ + { + "volume" bibinfo.check + } + if$ + bolden + 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 {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + emphasize +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + get.bbl.editor + swap$ "," * + " " * swap$ * + swap$ + "," * + " " * 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 + capitalize + 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 := + "" + address empty$ t empty$ and + 'skip$ + { + t empty$ + { address "address" bibinfo.check * + } + { t * + address empty$ + 'skip$ + { ", " * address "address" bibinfo.check * } + if$ + } + if$ + } + 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.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { + journal + "journal" bibinfo.check + emphasize + "journal" output.check + add.blank + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn output + new.block + format.url output + new.block + 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.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + format.publisher.address output + } + { + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.isbn output + format.book.pages output + new.block + format.url output + new.block + format.note output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.isbn output + format.book.pages output + new.block + format.url output + new.block + 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.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + crossref missing$ + { format.isbn output } + 'skip$ + if$ + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + format.publisher.address output + format.edition output + format.isbn output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + format.url output + new.block + format.note output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + new.sentence + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.isbn output + format.issn output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + format.url output + new.block + format.note output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + organization address new.block.checkb + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title output + new.block + howpublished "howpublished" bibinfo.check output + new.block + format.url output + new.block + format.note output + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + new.block + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + new.sentence + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.isbn output + format.issn output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title + "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + new.block + format.url output + new.block + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + format.url output + new.block + 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 * + } + { " \& " * 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$ + { pop$ "????" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll{ }}{ ff{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + 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$ + "\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 `cc2.bst'. diff --git a/Master/texmf-dist/bibtex/bst/context/cont-ab.bst b/Master/texmf-dist/bibtex/bst/context/cont-ab.bst new file mode 100644 index 00000000000..cc3c9411ae9 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/context/cont-ab.bst @@ -0,0 +1,1120 @@ +% Written by Taco Hoekwater +% Donated to the Public Domain. Use at your own risk. +% Preliminary version, 19-aug-1999. +% New 17/9/2003: 'eprint' and 'doi' tags + +% This style produces citations in a format the ConTeXt can handle. +% It outputs a large collection of labels so that context can decide +% which one to use. +% +% Actually, there are a number of separate bst files that change in +% only two lines: the ITERATEs right before the two SORTs can +% have different values, sorting by either one of +% +% -------------------------- cont-master.bst clabel +% - the author (+year, title) : cont-au.bst author +% - the title (+author, year) : cont-ti.bst title +% - the short key a la abbrev : cont-ab.bst clabel +% - nothing at all (cite order): cont-no.bst none +% +% +% Output gives the following computed info: +% +% - the total number of bib entries +% - the longest short label +% +% And per entry: +% +% - the key +% - the entry type +% - the yeardata for crossrefs +% - the authordata for crossrefs +% - the short key +% - the .bib appearance number + +% Commands that may be written to the bbl file (not counting stuff the +% bib database defines itself): +% +% \setuppublicationlist +% \startpublication +% \stoppublication + +% Field entries with a strange format/appearance: +% +% \artauthor, +% \editor, +% \author: \xxx[junior]{firstnames}[inits]{von}{lastname} + +% \etalchar: appears in short keys sometimes +% \maybeyear: appears in \pubyear sometimes +% +% And these commands for the entries have only one argument, +% precisely matching the corresponding field. Note that there +% are more fields supported than in the standard bst files. +% +% \abstract +% \annotate +% \arttitle +% \chapter +% \city +% \comment +% \crossref +% \edition +% \isbn +% \issn +% \issue +% \journal +% \keyword +% \keywords +% \lang +% \month +% \names +% \note +% \organization +% \pages +% \pubname +% \pubyear +% \series +% \size +% \thekey +% \title +% \type +% \volume +% \eprint +% \doi +% \howpublished + +ENTRY + { abstract + address + annotate + author + booktitle + chapter + comment + doi + edition + editor + eprint + howpublished + institution + isbn + issn + journal + key + keyword + keywords + language + month + names + note + number + organization + pages + publisher + school + series + size + title + type + volume + year + } + {} + { label extra.label sort.label clabel sort.clabel ordinal.label} + + +STRINGS { s t autype} + +STRINGS { last.label next.extra nlabel } + +STRINGS { longest.label last.sort.label} + +INTEGERS { longest.label.width last.extra.num ordinal.num } + +INTEGERS { nameptr namesleft numnames } + +INTEGERS { len } + + +FUNCTION {begin.bib} +{ #0 'ordinal.num := + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\setuppublicationlist[samplesize={" write$ + longest.label "},totalnumber=" * write$ + nlabel "]" * write$ + newline$ +} + +FUNCTION {end.bib} +{ newline$ +} + + + +FUNCTION {do.out} +{ duplicate$ empty$ + { pop$ pop$ write$} + { "{" swap$ * "}" * * write$ pop$ newline$ } + if$ +} + + +FUNCTION {do.t.out} +{ duplicate$ empty$ + { pop$ pop$ write$} + { "{" swap$ "t" change.case$ * "}" * * write$ pop$ newline$ } + if$ +} + +FUNCTION {format.year} +{ year empty$ + 'skip$ + { "\pubyear{" year * write$ + extra.label empty$ + { "}" write$ } + { "\maybeyear{" extra.label * "}}" * write$ } + if$ + newline$ + } + if$ +} + +FUNCTION {start.entry} +{ ordinal.num #1 + 'ordinal.num := + newline$ + "\startpublication[" write$ + "k=" write$ + cite$ "," * write$ + "t=" write$ + type$ "," * write$ + newline$ + label write$ + "," write$ + doi empty$ + {} + { + "o=" write$ + doi write$ + "," write$ + } if$ + newline$ + "n=" write$ + ordinal.label write$ + ",s=" write$ + clabel write$ + "]" write$ + newline$ + "" "\lang" language do.out +} + +FUNCTION {stop.entry} +{ "" "\note" note do.out + "" "\annotate" annotate do.out + "" "\eprint" eprint do.out + "" "\doi" doi do.out + "" "\keyword" keyword do.out + "" "\keywords" keywords do.out + "" "\comment" comment do.out + "" "\abstract" abstract do.out + "" "\names" names do.out + "" "\size" size do.out + "\stoppublication" write$ + newline$ +} + + + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + + +FUNCTION {format.names} +{ 's := 'autype := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { autype write$ + s nameptr "{jj}" format.name$ 't := + "[" t * "]" * write$ + s nameptr "{ff}" format.name$ 't := + "{" t * "}" * write$ + s nameptr "{f}" format.name$ add.period$ 't := + "[" t * "]" * write$ + s nameptr "{vv}" format.name$ 't := + "{" t * "}" * write$ + s nameptr "{ll}" format.name$ 't := + "{" t * "}" * write$ + newline$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + + +FUNCTION {format.key} +{ "" "\thekey" key do.out } + + +FUNCTION {format.artauthors} +{ author empty$ + { format.key } + { "\artauthor" author format.names } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { format.key } + { "\author" author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { format.key } + { "\editor" editor format.names } + if$ +} + + +FUNCTION {format.title} +{ "" "\title" title do.out + "" "\isbn" isbn do.out +} + +FUNCTION {format.t.title} +{ "" "\title" title do.t.out + "" "\isbn" isbn do.out +} + +FUNCTION {format.arttitle} +{ "" "\arttitle" title do.t.out } + +FUNCTION {format.journal} +{ "" "\journal" journal do.out + "" "\issn" issn do.out +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.volume} +{ "" "\volume" volume do.out +} + +FUNCTION {format.volume.issue} +{ "" "\volume" volume do.out + "" "\issue" number do.out +} + +FUNCTION {format.number.series} +{ "" "\series" series do.out + volume empty$ + { "" "\volume" number do.out + } + { "" "\volume" volume do.out + "" "\issue" number do.out } + if$ +} + +FUNCTION {format.edition} +{ "" "\edition" edition do.out + "" "\month" month do.out +} + +FUNCTION {format.pages} +{ "" "\pages" pages do.out } + + +FUNCTION {format.vol.num.pages} +{ format.volume.issue + format.pages +} + +FUNCTION {format.vol.num.page} +{ format.volume.issue + format.pages +} + +FUNCTION {format.type.chapter.pages} +{ chapter empty$ + 'format.pages + { "" "\type" type do.out + "" "\chapter" chapter do.out + } + if$ + format.pages +} + +FUNCTION {format.booktitle} +{"" "\title" booktitle do.out + "" "\isbn" isbn do.out +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + 'skip$ + { format.booktitle } + if$ +} + +FUNCTION {format.in.booktitle.or.series} +{ "" "\series" series do.out + booktitle empty$ + 'skip$ + { editor empty$ + { format.booktitle } + { format.editors format.booktitle } + if$ + } + if$ +} + + +FUNCTION {format.tr.number} +{"" "\type" type do.out + "" "\volume" number do.out +} + +FUNCTION {format.crossref} +{ "" "\crossref" crossref do.out +} + +FUNCTION {format.book.crossref} +{ + "" "\volume" volume do.out + format.crossref +} + +FUNCTION {format.incoll.inproc.crossref} +{ format.crossref +} + +FUNCTION {article} +{ start.entry + format.artauthors + format.year + format.arttitle + crossref missing$ + { format.journal + format.vol.num.pages + } + { format.crossref + format.pages + } + if$ + "" "\month" month do.out + stop.entry +} + +FUNCTION {book} +{ start.entry + author empty$ + { format.editors + } + { format.authors + } + if$ + format.year + format.title + crossref missing$ + { format.number.series + "" "\city" address do.out + "" "\pubname" publisher do.out + } + { + format.book.crossref + } + if$ + format.edition + stop.entry +} + +FUNCTION {booklet} +{ start.entry + format.authors + format.year + format.t.title + format.key + "" "\pubname" publisher do.out + "" "\howpublished" howpublished do.out + "" "\city" address do.out + stop.entry +} + +FUNCTION {inbook} +{ start.entry + author empty$ + { format.editors + } + { format.authors + } + if$ + format.year + format.title + crossref missing$ + { format.type.chapter.pages + format.number.series + "" "\city" address do.out + "" "\pubname" publisher do.out + } + { format.type.chapter.pages + format.book.crossref + } + if$ + format.edition + stop.entry +} + +FUNCTION {incollection} +{ start.entry + format.artauthors + format.year + format.arttitle + format.editors + crossref missing$ + { format.in.ed.booktitle + format.number.series + "" "\city" address do.out + format.edition + format.type.chapter.pages + } + { format.incoll.inproc.crossref + format.type.chapter.pages + } + if$ + "" "\pubname" publisher do.out + stop.entry +} + +FUNCTION {inproceedings} +{ start.entry + format.authors + format.year + format.arttitle + crossref missing$ + { format.in.booktitle.or.series + format.number.series + "" "\city" address do.out + format.pages + } + { format.incoll.inproc.crossref + format.pages + } + if$ + "" "\pubname" publisher do.out + "" "\organization" organization do.out + stop.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ start.entry + format.authors + format.year + format.title + "" "\organization" organization do.out + "" "\city" address do.out + "" "\edition" edition do.out + stop.entry +} + +FUNCTION {mastersthesis} +{ start.entry + format.authors + format.year + format.t.title + "" "\type" type do.out + "" "\pubname" school do.out + "" "\month" month do.out + "" "\city" address do.out + stop.entry +} + +FUNCTION {misc} +{ start.entry + format.authors + format.year + format.t.title + format.key + "" "\city" address do.out + "" "\month" month do.out + "" "\pubname" publisher do.out + "" "\howpublished" howpublished do.out + stop.entry +} + +FUNCTION {phdthesis} +{ start.entry + format.authors + format.title + format.year + "" "\type" type do.out + "" "\month" month do.out + "" "\pubname" school do.out + "" "\city" address do.out + stop.entry +} + +FUNCTION {proceedings} +{ start.entry + format.editors + format.year + format.title + format.number.series + "" "\city" address do.out + "" "\pubname" publisher do.out + "" "\organization" organization do.out + stop.entry +} + +FUNCTION {techreport} +{ start.entry + format.authors + format.year + format.t.title + format.tr.number + "" "\city" address do.out + "" "\pubname" institution do.out + stop.entry +} + +FUNCTION {unpublished} +{ start.entry + format.authors + format.year + format.t.title + "" "\month" month do.out + stop.entry +} + + +FUNCTION {default.type} { misc } + +MACRO {jan} {"1"} +MACRO {feb} {"2"} +MACRO {mar} {"3"} +MACRO {apr} {"4"} +MACRO {may} {"5"} +MACRO {jun} {"6"} +MACRO {jul} {"7"} +MACRO {aug} {"8"} +MACRO {sep} {"9"} +MACRO {oct} {"10"} +MACRO {nov} {"11"} +MACRO {dec} {"12"} + +READ + +FUNCTION {initialize.ordinal.label} +{ #0 'ordinal.num := } + +FUNCTION {set.ordinal.label} { + #1 ordinal.num + 'ordinal.num := + ordinal.num int.to.str$ 'ordinal.label := +} + +EXECUTE {initialize.ordinal.label} + +ITERATE {set.ordinal.label} + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ + "{" swap$ * "}," * +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { "{" cite$ * "}," *} + { "{" key * "}," * } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { "{" cite$ * "}," *} + { "{" key * "}," * } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { "{" cite$ * "}," *} + { "{" key * "}," * } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + "a=" swap$ * "y=" * + year field.or.null purify$ #-1 #4 substring$ + * + 'label := +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.clab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.clabel} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.clab.names } + if$ +} + +FUNCTION {author.editor.key.clabel} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.clab.names } + if$ + } + { author format.clab.names } + if$ +} + +FUNCTION {author.key.organization.clabel} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.clab.names } + if$ +} + +FUNCTION {editor.key.organization.clabel} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.clab.names } + if$ +} + +FUNCTION {calc.clabel} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.clabel + { type$ "proceedings" = + 'editor.key.organization.clabel + { type$ "manual" = + 'author.key.organization.clabel + 'author.key.clabel + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'clabel := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.clabel := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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.title} +{ calc.label + calc.clabel + title field.or.null + sort.format.title + " " + * + #1 entry.max$ substring$ + 'sort.label := + sort.label + 'sort.key$ := +} + +FUNCTION {presort.author} +{ calc.clabel + calc.label + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + 'sort.key$ := +} + +FUNCTION {presort.clabel} +{ calc.label + calc.clabel + clabel sortify + duplicate$ 'sort.label := + #1 entry.max$ substring$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +FUNCTION {presort.none} +{ calc.label + calc.clabel + "" 'sort.label := + "" 'sort.key$ := +} + +ITERATE {presort.clabel} + +SORT + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'ordinal.num := +} + +FUNCTION {forward.pass} +{ ordinal.num #1 + 'ordinal.num := + ordinal.num int.to.str$ 'nlabel := + 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$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + clabel extra.label * 'clabel := + extra.label 'next.extra := + clabel width$ longest.label.width > + { clabel 'longest.label := + clabel width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.extra.label.stuff} + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order.author} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +FUNCTION {bib.sort.order.title} +{ sort.label + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +FUNCTION {bib.sort.order.clabel} +{ sort.label + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +FUNCTION {bib.sort.order.none} +{ sort.label 'sort.key$ := +} + +ITERATE {bib.sort.order.clabel} + +SORT + +EXECUTE {begin.bib} + +ITERATE {call.type$} + + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/context/cont-au.bst b/Master/texmf-dist/bibtex/bst/context/cont-au.bst new file mode 100644 index 00000000000..3af40718107 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/context/cont-au.bst @@ -0,0 +1,1120 @@ +% Written by Taco Hoekwater +% Donated to the Public Domain. Use at your own risk. +% Preliminary version, 19-aug-1999. +% New 17/9/2003: 'eprint' and 'doi' tags + +% This style produces citations in a format the ConTeXt can handle. +% It outputs a large collection of labels so that context can decide +% which one to use. +% +% Actually, there are a number of separate bst files that change in +% only two lines: the ITERATEs right before the two SORTs can +% have different values, sorting by either one of +% +% -------------------------- cont-master.bst author +% - the author (+year, title) : cont-au.bst author +% - the title (+author, year) : cont-ti.bst title +% - the short key a la abbrev : cont-ab.bst clabel +% - nothing at all (cite order): cont-no.bst none +% +% +% Output gives the following computed info: +% +% - the total number of bib entries +% - the longest short label +% +% And per entry: +% +% - the key +% - the entry type +% - the yeardata for crossrefs +% - the authordata for crossrefs +% - the short key +% - the .bib appearance number + +% Commands that may be written to the bbl file (not counting stuff the +% bib database defines itself): +% +% \setuppublicationlist +% \startpublication +% \stoppublication + +% Field entries with a strange format/appearance: +% +% \artauthor, +% \editor, +% \author: \xxx[junior]{firstnames}[inits]{von}{lastname} + +% \etalchar: appears in short keys sometimes +% \maybeyear: appears in \pubyear sometimes +% +% And these commands for the entries have only one argument, +% precisely matching the corresponding field. Note that there +% are more fields supported than in the standard bst files. +% +% \abstract +% \annotate +% \arttitle +% \chapter +% \city +% \comment +% \crossref +% \edition +% \isbn +% \issn +% \issue +% \journal +% \keyword +% \keywords +% \lang +% \month +% \names +% \note +% \organization +% \pages +% \pubname +% \pubyear +% \series +% \size +% \thekey +% \title +% \type +% \volume +% \eprint +% \doi +% \howpublished + +ENTRY + { abstract + address + annotate + author + booktitle + chapter + comment + doi + edition + editor + eprint + howpublished + institution + isbn + issn + journal + key + keyword + keywords + language + month + names + note + number + organization + pages + publisher + school + series + size + title + type + volume + year + } + {} + { label extra.label sort.label clabel sort.clabel ordinal.label} + + +STRINGS { s t autype} + +STRINGS { last.label next.extra nlabel } + +STRINGS { longest.label last.sort.label} + +INTEGERS { longest.label.width last.extra.num ordinal.num } + +INTEGERS { nameptr namesleft numnames } + +INTEGERS { len } + + +FUNCTION {begin.bib} +{ #0 'ordinal.num := + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\setuppublicationlist[samplesize={" write$ + longest.label "},totalnumber=" * write$ + nlabel "]" * write$ + newline$ +} + +FUNCTION {end.bib} +{ newline$ +} + + + +FUNCTION {do.out} +{ duplicate$ empty$ + { pop$ pop$ write$} + { "{" swap$ * "}" * * write$ pop$ newline$ } + if$ +} + + +FUNCTION {do.t.out} +{ duplicate$ empty$ + { pop$ pop$ write$} + { "{" swap$ "t" change.case$ * "}" * * write$ pop$ newline$ } + if$ +} + +FUNCTION {format.year} +{ year empty$ + 'skip$ + { "\pubyear{" year * write$ + extra.label empty$ + { "}" write$ } + { "\maybeyear{" extra.label * "}}" * write$ } + if$ + newline$ + } + if$ +} + +FUNCTION {start.entry} +{ ordinal.num #1 + 'ordinal.num := + newline$ + "\startpublication[" write$ + "k=" write$ + cite$ "," * write$ + "t=" write$ + type$ "," * write$ + newline$ + label write$ + "," write$ + doi empty$ + {} + { + "o=" write$ + doi write$ + "," write$ + } if$ + newline$ + "n=" write$ + ordinal.label write$ + ",s=" write$ + clabel write$ + "]" write$ + newline$ + "" "\lang" language do.out +} + +FUNCTION {stop.entry} +{ "" "\note" note do.out + "" "\annotate" annotate do.out + "" "\eprint" eprint do.out + "" "\doi" doi do.out + "" "\keyword" keyword do.out + "" "\keywords" keywords do.out + "" "\comment" comment do.out + "" "\abstract" abstract do.out + "" "\names" names do.out + "" "\size" size do.out + "\stoppublication" write$ + newline$ +} + + + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + + +FUNCTION {format.names} +{ 's := 'autype := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { autype write$ + s nameptr "{jj}" format.name$ 't := + "[" t * "]" * write$ + s nameptr "{ff}" format.name$ 't := + "{" t * "}" * write$ + s nameptr "{f}" format.name$ add.period$ 't := + "[" t * "]" * write$ + s nameptr "{vv}" format.name$ 't := + "{" t * "}" * write$ + s nameptr "{ll}" format.name$ 't := + "{" t * "}" * write$ + newline$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + + +FUNCTION {format.key} +{ "" "\thekey" key do.out } + + +FUNCTION {format.artauthors} +{ author empty$ + { format.key } + { "\artauthor" author format.names } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { format.key } + { "\author" author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { format.key } + { "\editor" editor format.names } + if$ +} + + +FUNCTION {format.title} +{ "" "\title" title do.out + "" "\isbn" isbn do.out +} + +FUNCTION {format.t.title} +{ "" "\title" title do.t.out + "" "\isbn" isbn do.out +} + +FUNCTION {format.arttitle} +{ "" "\arttitle" title do.t.out } + +FUNCTION {format.journal} +{ "" "\journal" journal do.out + "" "\issn" issn do.out +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.volume} +{ "" "\volume" volume do.out +} + +FUNCTION {format.volume.issue} +{ "" "\volume" volume do.out + "" "\issue" number do.out +} + +FUNCTION {format.number.series} +{ "" "\series" series do.out + volume empty$ + { "" "\volume" number do.out + } + { "" "\volume" volume do.out + "" "\issue" number do.out } + if$ +} + +FUNCTION {format.edition} +{ "" "\edition" edition do.out + "" "\month" month do.out +} + +FUNCTION {format.pages} +{ "" "\pages" pages do.out } + + +FUNCTION {format.vol.num.pages} +{ format.volume.issue + format.pages +} + +FUNCTION {format.vol.num.page} +{ format.volume.issue + format.pages +} + +FUNCTION {format.type.chapter.pages} +{ chapter empty$ + 'format.pages + { "" "\type" type do.out + "" "\chapter" chapter do.out + } + if$ + format.pages +} + +FUNCTION {format.booktitle} +{"" "\title" booktitle do.out + "" "\isbn" isbn do.out +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + 'skip$ + { format.booktitle } + if$ +} + +FUNCTION {format.in.booktitle.or.series} +{ "" "\series" series do.out + booktitle empty$ + 'skip$ + { editor empty$ + { format.booktitle } + { format.editors format.booktitle } + if$ + } + if$ +} + + +FUNCTION {format.tr.number} +{"" "\type" type do.out + "" "\volume" number do.out +} + +FUNCTION {format.crossref} +{ "" "\crossref" crossref do.out +} + +FUNCTION {format.book.crossref} +{ + "" "\volume" volume do.out + format.crossref +} + +FUNCTION {format.incoll.inproc.crossref} +{ format.crossref +} + +FUNCTION {article} +{ start.entry + format.artauthors + format.year + format.arttitle + crossref missing$ + { format.journal + format.vol.num.pages + } + { format.crossref + format.pages + } + if$ + "" "\month" month do.out + stop.entry +} + +FUNCTION {book} +{ start.entry + author empty$ + { format.editors + } + { format.authors + } + if$ + format.year + format.title + crossref missing$ + { format.number.series + "" "\city" address do.out + "" "\pubname" publisher do.out + } + { + format.book.crossref + } + if$ + format.edition + stop.entry +} + +FUNCTION {booklet} +{ start.entry + format.authors + format.year + format.t.title + format.key + "" "\pubname" publisher do.out + "" "\howpublished" howpublished do.out + "" "\city" address do.out + stop.entry +} + +FUNCTION {inbook} +{ start.entry + author empty$ + { format.editors + } + { format.authors + } + if$ + format.year + format.title + crossref missing$ + { format.type.chapter.pages + format.number.series + "" "\city" address do.out + "" "\pubname" publisher do.out + } + { format.type.chapter.pages + format.book.crossref + } + if$ + format.edition + stop.entry +} + +FUNCTION {incollection} +{ start.entry + format.artauthors + format.year + format.arttitle + format.editors + crossref missing$ + { format.in.ed.booktitle + format.number.series + "" "\city" address do.out + format.edition + format.type.chapter.pages + } + { format.incoll.inproc.crossref + format.type.chapter.pages + } + if$ + "" "\pubname" publisher do.out + stop.entry +} + +FUNCTION {inproceedings} +{ start.entry + format.authors + format.year + format.arttitle + crossref missing$ + { format.in.booktitle.or.series + format.number.series + "" "\city" address do.out + format.pages + } + { format.incoll.inproc.crossref + format.pages + } + if$ + "" "\pubname" publisher do.out + "" "\organization" organization do.out + stop.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ start.entry + format.authors + format.year + format.title + "" "\organization" organization do.out + "" "\city" address do.out + "" "\edition" edition do.out + stop.entry +} + +FUNCTION {mastersthesis} +{ start.entry + format.authors + format.year + format.t.title + "" "\type" type do.out + "" "\pubname" school do.out + "" "\month" month do.out + "" "\city" address do.out + stop.entry +} + +FUNCTION {misc} +{ start.entry + format.authors + format.year + format.t.title + format.key + "" "\city" address do.out + "" "\month" month do.out + "" "\pubname" publisher do.out + "" "\howpublished" howpublished do.out + stop.entry +} + +FUNCTION {phdthesis} +{ start.entry + format.authors + format.title + format.year + "" "\type" type do.out + "" "\month" month do.out + "" "\pubname" school do.out + "" "\city" address do.out + stop.entry +} + +FUNCTION {proceedings} +{ start.entry + format.editors + format.year + format.title + format.number.series + "" "\city" address do.out + "" "\pubname" publisher do.out + "" "\organization" organization do.out + stop.entry +} + +FUNCTION {techreport} +{ start.entry + format.authors + format.year + format.t.title + format.tr.number + "" "\city" address do.out + "" "\pubname" institution do.out + stop.entry +} + +FUNCTION {unpublished} +{ start.entry + format.authors + format.year + format.t.title + "" "\month" month do.out + stop.entry +} + + +FUNCTION {default.type} { misc } + +MACRO {jan} {"1"} +MACRO {feb} {"2"} +MACRO {mar} {"3"} +MACRO {apr} {"4"} +MACRO {may} {"5"} +MACRO {jun} {"6"} +MACRO {jul} {"7"} +MACRO {aug} {"8"} +MACRO {sep} {"9"} +MACRO {oct} {"10"} +MACRO {nov} {"11"} +MACRO {dec} {"12"} + +READ + +FUNCTION {initialize.ordinal.label} +{ #0 'ordinal.num := } + +FUNCTION {set.ordinal.label} { + #1 ordinal.num + 'ordinal.num := + ordinal.num int.to.str$ 'ordinal.label := +} + +EXECUTE {initialize.ordinal.label} + +ITERATE {set.ordinal.label} + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ + "{" swap$ * "}," * +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { "{" cite$ * "}," *} + { "{" key * "}," * } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { "{" cite$ * "}," *} + { "{" key * "}," * } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { "{" cite$ * "}," *} + { "{" key * "}," * } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + "a=" swap$ * "y=" * + year field.or.null purify$ #-1 #4 substring$ + * + 'label := +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.clab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.clabel} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.clab.names } + if$ +} + +FUNCTION {author.editor.key.clabel} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.clab.names } + if$ + } + { author format.clab.names } + if$ +} + +FUNCTION {author.key.organization.clabel} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.clab.names } + if$ +} + +FUNCTION {editor.key.organization.clabel} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.clab.names } + if$ +} + +FUNCTION {calc.clabel} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.clabel + { type$ "proceedings" = + 'editor.key.organization.clabel + { type$ "manual" = + 'author.key.organization.clabel + 'author.key.clabel + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'clabel := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.clabel := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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.title} +{ calc.label + calc.clabel + title field.or.null + sort.format.title + " " + * + #1 entry.max$ substring$ + 'sort.label := + sort.label + 'sort.key$ := +} + +FUNCTION {presort.author} +{ calc.clabel + calc.label + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + 'sort.key$ := +} + +FUNCTION {presort.clabel} +{ calc.label + calc.clabel + clabel sortify + duplicate$ 'sort.label := + #1 entry.max$ substring$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +FUNCTION {presort.none} +{ calc.label + calc.clabel + "" 'sort.label := + "" 'sort.key$ := +} + +ITERATE {presort.author} + +SORT + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'ordinal.num := +} + +FUNCTION {forward.pass} +{ ordinal.num #1 + 'ordinal.num := + ordinal.num int.to.str$ 'nlabel := + 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$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + clabel extra.label * 'clabel := + extra.label 'next.extra := + clabel width$ longest.label.width > + { clabel 'longest.label := + clabel width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.extra.label.stuff} + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order.author} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +FUNCTION {bib.sort.order.title} +{ sort.label + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +FUNCTION {bib.sort.order.clabel} +{ sort.label + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +FUNCTION {bib.sort.order.none} +{ sort.label 'sort.key$ := +} + +ITERATE {bib.sort.order.author} + +SORT + +EXECUTE {begin.bib} + +ITERATE {call.type$} + + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/context/cont-no.bst b/Master/texmf-dist/bibtex/bst/context/cont-no.bst new file mode 100644 index 00000000000..7b582f359c8 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/context/cont-no.bst @@ -0,0 +1,1120 @@ +% Written by Taco Hoekwater +% Donated to the Public Domain. Use at your own risk. +% Preliminary version, 19-aug-1999. +% New 17/9/2003: 'eprint' and 'doi' tags + +% This style produces citations in a format the ConTeXt can handle. +% It outputs a large collection of labels so that context can decide +% which one to use. +% +% Actually, there are a number of separate bst files that change in +% only two lines: the ITERATEs right before the two SORTs can +% have different values, sorting by either one of +% +% -------------------------- cont-master.bst none +% - the author (+year, title) : cont-au.bst author +% - the title (+author, year) : cont-ti.bst title +% - the short key a la abbrev : cont-ab.bst clabel +% - nothing at all (cite order): cont-no.bst none +% +% +% Output gives the following computed info: +% +% - the total number of bib entries +% - the longest short label +% +% And per entry: +% +% - the key +% - the entry type +% - the yeardata for crossrefs +% - the authordata for crossrefs +% - the short key +% - the .bib appearance number + +% Commands that may be written to the bbl file (not counting stuff the +% bib database defines itself): +% +% \setuppublicationlist +% \startpublication +% \stoppublication + +% Field entries with a strange format/appearance: +% +% \artauthor, +% \editor, +% \author: \xxx[junior]{firstnames}[inits]{von}{lastname} + +% \etalchar: appears in short keys sometimes +% \maybeyear: appears in \pubyear sometimes +% +% And these commands for the entries have only one argument, +% precisely matching the corresponding field. Note that there +% are more fields supported than in the standard bst files. +% +% \abstract +% \annotate +% \arttitle +% \chapter +% \city +% \comment +% \crossref +% \edition +% \isbn +% \issn +% \issue +% \journal +% \keyword +% \keywords +% \lang +% \month +% \names +% \note +% \organization +% \pages +% \pubname +% \pubyear +% \series +% \size +% \thekey +% \title +% \type +% \volume +% \eprint +% \doi +% \howpublished + +ENTRY + { abstract + address + annotate + author + booktitle + chapter + comment + doi + edition + editor + eprint + howpublished + institution + isbn + issn + journal + key + keyword + keywords + language + month + names + note + number + organization + pages + publisher + school + series + size + title + type + volume + year + } + {} + { label extra.label sort.label clabel sort.clabel ordinal.label} + + +STRINGS { s t autype} + +STRINGS { last.label next.extra nlabel } + +STRINGS { longest.label last.sort.label} + +INTEGERS { longest.label.width last.extra.num ordinal.num } + +INTEGERS { nameptr namesleft numnames } + +INTEGERS { len } + + +FUNCTION {begin.bib} +{ #0 'ordinal.num := + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\setuppublicationlist[samplesize={" write$ + longest.label "},totalnumber=" * write$ + nlabel "]" * write$ + newline$ +} + +FUNCTION {end.bib} +{ newline$ +} + + + +FUNCTION {do.out} +{ duplicate$ empty$ + { pop$ pop$ write$} + { "{" swap$ * "}" * * write$ pop$ newline$ } + if$ +} + + +FUNCTION {do.t.out} +{ duplicate$ empty$ + { pop$ pop$ write$} + { "{" swap$ "t" change.case$ * "}" * * write$ pop$ newline$ } + if$ +} + +FUNCTION {format.year} +{ year empty$ + 'skip$ + { "\pubyear{" year * write$ + extra.label empty$ + { "}" write$ } + { "\maybeyear{" extra.label * "}}" * write$ } + if$ + newline$ + } + if$ +} + +FUNCTION {start.entry} +{ ordinal.num #1 + 'ordinal.num := + newline$ + "\startpublication[" write$ + "k=" write$ + cite$ "," * write$ + "t=" write$ + type$ "," * write$ + newline$ + label write$ + "," write$ + doi empty$ + {} + { + "o=" write$ + doi write$ + "," write$ + } if$ + newline$ + "n=" write$ + ordinal.label write$ + ",s=" write$ + clabel write$ + "]" write$ + newline$ + "" "\lang" language do.out +} + +FUNCTION {stop.entry} +{ "" "\note" note do.out + "" "\annotate" annotate do.out + "" "\eprint" eprint do.out + "" "\doi" doi do.out + "" "\keyword" keyword do.out + "" "\keywords" keywords do.out + "" "\comment" comment do.out + "" "\abstract" abstract do.out + "" "\names" names do.out + "" "\size" size do.out + "\stoppublication" write$ + newline$ +} + + + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + + +FUNCTION {format.names} +{ 's := 'autype := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { autype write$ + s nameptr "{jj}" format.name$ 't := + "[" t * "]" * write$ + s nameptr "{ff}" format.name$ 't := + "{" t * "}" * write$ + s nameptr "{f}" format.name$ add.period$ 't := + "[" t * "]" * write$ + s nameptr "{vv}" format.name$ 't := + "{" t * "}" * write$ + s nameptr "{ll}" format.name$ 't := + "{" t * "}" * write$ + newline$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + + +FUNCTION {format.key} +{ "" "\thekey" key do.out } + + +FUNCTION {format.artauthors} +{ author empty$ + { format.key } + { "\artauthor" author format.names } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { format.key } + { "\author" author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { format.key } + { "\editor" editor format.names } + if$ +} + + +FUNCTION {format.title} +{ "" "\title" title do.out + "" "\isbn" isbn do.out +} + +FUNCTION {format.t.title} +{ "" "\title" title do.t.out + "" "\isbn" isbn do.out +} + +FUNCTION {format.arttitle} +{ "" "\arttitle" title do.t.out } + +FUNCTION {format.journal} +{ "" "\journal" journal do.out + "" "\issn" issn do.out +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.volume} +{ "" "\volume" volume do.out +} + +FUNCTION {format.volume.issue} +{ "" "\volume" volume do.out + "" "\issue" number do.out +} + +FUNCTION {format.number.series} +{ "" "\series" series do.out + volume empty$ + { "" "\volume" number do.out + } + { "" "\volume" volume do.out + "" "\issue" number do.out } + if$ +} + +FUNCTION {format.edition} +{ "" "\edition" edition do.out + "" "\month" month do.out +} + +FUNCTION {format.pages} +{ "" "\pages" pages do.out } + + +FUNCTION {format.vol.num.pages} +{ format.volume.issue + format.pages +} + +FUNCTION {format.vol.num.page} +{ format.volume.issue + format.pages +} + +FUNCTION {format.type.chapter.pages} +{ chapter empty$ + 'format.pages + { "" "\type" type do.out + "" "\chapter" chapter do.out + } + if$ + format.pages +} + +FUNCTION {format.booktitle} +{"" "\title" booktitle do.out + "" "\isbn" isbn do.out +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + 'skip$ + { format.booktitle } + if$ +} + +FUNCTION {format.in.booktitle.or.series} +{ "" "\series" series do.out + booktitle empty$ + 'skip$ + { editor empty$ + { format.booktitle } + { format.editors format.booktitle } + if$ + } + if$ +} + + +FUNCTION {format.tr.number} +{"" "\type" type do.out + "" "\volume" number do.out +} + +FUNCTION {format.crossref} +{ "" "\crossref" crossref do.out +} + +FUNCTION {format.book.crossref} +{ + "" "\volume" volume do.out + format.crossref +} + +FUNCTION {format.incoll.inproc.crossref} +{ format.crossref +} + +FUNCTION {article} +{ start.entry + format.artauthors + format.year + format.arttitle + crossref missing$ + { format.journal + format.vol.num.pages + } + { format.crossref + format.pages + } + if$ + "" "\month" month do.out + stop.entry +} + +FUNCTION {book} +{ start.entry + author empty$ + { format.editors + } + { format.authors + } + if$ + format.year + format.title + crossref missing$ + { format.number.series + "" "\city" address do.out + "" "\pubname" publisher do.out + } + { + format.book.crossref + } + if$ + format.edition + stop.entry +} + +FUNCTION {booklet} +{ start.entry + format.authors + format.year + format.t.title + format.key + "" "\pubname" publisher do.out + "" "\howpublished" howpublished do.out + "" "\city" address do.out + stop.entry +} + +FUNCTION {inbook} +{ start.entry + author empty$ + { format.editors + } + { format.authors + } + if$ + format.year + format.title + crossref missing$ + { format.type.chapter.pages + format.number.series + "" "\city" address do.out + "" "\pubname" publisher do.out + } + { format.type.chapter.pages + format.book.crossref + } + if$ + format.edition + stop.entry +} + +FUNCTION {incollection} +{ start.entry + format.artauthors + format.year + format.arttitle + format.editors + crossref missing$ + { format.in.ed.booktitle + format.number.series + "" "\city" address do.out + format.edition + format.type.chapter.pages + } + { format.incoll.inproc.crossref + format.type.chapter.pages + } + if$ + "" "\pubname" publisher do.out + stop.entry +} + +FUNCTION {inproceedings} +{ start.entry + format.authors + format.year + format.arttitle + crossref missing$ + { format.in.booktitle.or.series + format.number.series + "" "\city" address do.out + format.pages + } + { format.incoll.inproc.crossref + format.pages + } + if$ + "" "\pubname" publisher do.out + "" "\organization" organization do.out + stop.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ start.entry + format.authors + format.year + format.title + "" "\organization" organization do.out + "" "\city" address do.out + "" "\edition" edition do.out + stop.entry +} + +FUNCTION {mastersthesis} +{ start.entry + format.authors + format.year + format.t.title + "" "\type" type do.out + "" "\pubname" school do.out + "" "\month" month do.out + "" "\city" address do.out + stop.entry +} + +FUNCTION {misc} +{ start.entry + format.authors + format.year + format.t.title + format.key + "" "\city" address do.out + "" "\month" month do.out + "" "\pubname" publisher do.out + "" "\howpublished" howpublished do.out + stop.entry +} + +FUNCTION {phdthesis} +{ start.entry + format.authors + format.title + format.year + "" "\type" type do.out + "" "\month" month do.out + "" "\pubname" school do.out + "" "\city" address do.out + stop.entry +} + +FUNCTION {proceedings} +{ start.entry + format.editors + format.year + format.title + format.number.series + "" "\city" address do.out + "" "\pubname" publisher do.out + "" "\organization" organization do.out + stop.entry +} + +FUNCTION {techreport} +{ start.entry + format.authors + format.year + format.t.title + format.tr.number + "" "\city" address do.out + "" "\pubname" institution do.out + stop.entry +} + +FUNCTION {unpublished} +{ start.entry + format.authors + format.year + format.t.title + "" "\month" month do.out + stop.entry +} + + +FUNCTION {default.type} { misc } + +MACRO {jan} {"1"} +MACRO {feb} {"2"} +MACRO {mar} {"3"} +MACRO {apr} {"4"} +MACRO {may} {"5"} +MACRO {jun} {"6"} +MACRO {jul} {"7"} +MACRO {aug} {"8"} +MACRO {sep} {"9"} +MACRO {oct} {"10"} +MACRO {nov} {"11"} +MACRO {dec} {"12"} + +READ + +FUNCTION {initialize.ordinal.label} +{ #0 'ordinal.num := } + +FUNCTION {set.ordinal.label} { + #1 ordinal.num + 'ordinal.num := + ordinal.num int.to.str$ 'ordinal.label := +} + +EXECUTE {initialize.ordinal.label} + +ITERATE {set.ordinal.label} + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ + "{" swap$ * "}," * +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { "{" cite$ * "}," *} + { "{" key * "}," * } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { "{" cite$ * "}," *} + { "{" key * "}," * } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { "{" cite$ * "}," *} + { "{" key * "}," * } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + "a=" swap$ * "y=" * + year field.or.null purify$ #-1 #4 substring$ + * + 'label := +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.clab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.clabel} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.clab.names } + if$ +} + +FUNCTION {author.editor.key.clabel} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.clab.names } + if$ + } + { author format.clab.names } + if$ +} + +FUNCTION {author.key.organization.clabel} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.clab.names } + if$ +} + +FUNCTION {editor.key.organization.clabel} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.clab.names } + if$ +} + +FUNCTION {calc.clabel} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.clabel + { type$ "proceedings" = + 'editor.key.organization.clabel + { type$ "manual" = + 'author.key.organization.clabel + 'author.key.clabel + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'clabel := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.clabel := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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.title} +{ calc.label + calc.clabel + title field.or.null + sort.format.title + " " + * + #1 entry.max$ substring$ + 'sort.label := + sort.label + 'sort.key$ := +} + +FUNCTION {presort.author} +{ calc.clabel + calc.label + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + 'sort.key$ := +} + +FUNCTION {presort.clabel} +{ calc.label + calc.clabel + clabel sortify + duplicate$ 'sort.label := + #1 entry.max$ substring$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +FUNCTION {presort.none} +{ calc.label + calc.clabel + "" 'sort.label := + "" 'sort.key$ := +} + +ITERATE {presort.none} + +SORT + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'ordinal.num := +} + +FUNCTION {forward.pass} +{ ordinal.num #1 + 'ordinal.num := + ordinal.num int.to.str$ 'nlabel := + 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$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + clabel extra.label * 'clabel := + extra.label 'next.extra := + clabel width$ longest.label.width > + { clabel 'longest.label := + clabel width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.extra.label.stuff} + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order.author} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +FUNCTION {bib.sort.order.title} +{ sort.label + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +FUNCTION {bib.sort.order.clabel} +{ sort.label + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +FUNCTION {bib.sort.order.none} +{ sort.label 'sort.key$ := +} + +ITERATE {bib.sort.order.none} + +SORT + +EXECUTE {begin.bib} + +ITERATE {call.type$} + + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/context/cont-ti.bst b/Master/texmf-dist/bibtex/bst/context/cont-ti.bst new file mode 100644 index 00000000000..b4660d6ae99 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/context/cont-ti.bst @@ -0,0 +1,1120 @@ +% Written by Taco Hoekwater +% Donated to the Public Domain. Use at your own risk. +% Preliminary version, 19-aug-1999. +% New 17/9/2003: 'eprint' and 'doi' tags + +% This style produces citations in a format the ConTeXt can handle. +% It outputs a large collection of labels so that context can decide +% which one to use. +% +% Actually, there are a number of separate bst files that change in +% only two lines: the ITERATEs right before the two SORTs can +% have different values, sorting by either one of +% +% -------------------------- cont-master.bst title +% - the author (+year, title) : cont-au.bst author +% - the title (+author, year) : cont-ti.bst title +% - the short key a la abbrev : cont-ab.bst clabel +% - nothing at all (cite order): cont-no.bst none +% +% +% Output gives the following computed info: +% +% - the total number of bib entries +% - the longest short label +% +% And per entry: +% +% - the key +% - the entry type +% - the yeardata for crossrefs +% - the authordata for crossrefs +% - the short key +% - the .bib appearance number + +% Commands that may be written to the bbl file (not counting stuff the +% bib database defines itself): +% +% \setuppublicationlist +% \startpublication +% \stoppublication + +% Field entries with a strange format/appearance: +% +% \artauthor, +% \editor, +% \author: \xxx[junior]{firstnames}[inits]{von}{lastname} + +% \etalchar: appears in short keys sometimes +% \maybeyear: appears in \pubyear sometimes +% +% And these commands for the entries have only one argument, +% precisely matching the corresponding field. Note that there +% are more fields supported than in the standard bst files. +% +% \abstract +% \annotate +% \arttitle +% \chapter +% \city +% \comment +% \crossref +% \edition +% \isbn +% \issn +% \issue +% \journal +% \keyword +% \keywords +% \lang +% \month +% \names +% \note +% \organization +% \pages +% \pubname +% \pubyear +% \series +% \size +% \thekey +% \title +% \type +% \volume +% \eprint +% \doi +% \howpublished + +ENTRY + { abstract + address + annotate + author + booktitle + chapter + comment + doi + edition + editor + eprint + howpublished + institution + isbn + issn + journal + key + keyword + keywords + language + month + names + note + number + organization + pages + publisher + school + series + size + title + type + volume + year + } + {} + { label extra.label sort.label clabel sort.clabel ordinal.label} + + +STRINGS { s t autype} + +STRINGS { last.label next.extra nlabel } + +STRINGS { longest.label last.sort.label} + +INTEGERS { longest.label.width last.extra.num ordinal.num } + +INTEGERS { nameptr namesleft numnames } + +INTEGERS { len } + + +FUNCTION {begin.bib} +{ #0 'ordinal.num := + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\setuppublicationlist[samplesize={" write$ + longest.label "},totalnumber=" * write$ + nlabel "]" * write$ + newline$ +} + +FUNCTION {end.bib} +{ newline$ +} + + + +FUNCTION {do.out} +{ duplicate$ empty$ + { pop$ pop$ write$} + { "{" swap$ * "}" * * write$ pop$ newline$ } + if$ +} + + +FUNCTION {do.t.out} +{ duplicate$ empty$ + { pop$ pop$ write$} + { "{" swap$ "t" change.case$ * "}" * * write$ pop$ newline$ } + if$ +} + +FUNCTION {format.year} +{ year empty$ + 'skip$ + { "\pubyear{" year * write$ + extra.label empty$ + { "}" write$ } + { "\maybeyear{" extra.label * "}}" * write$ } + if$ + newline$ + } + if$ +} + +FUNCTION {start.entry} +{ ordinal.num #1 + 'ordinal.num := + newline$ + "\startpublication[" write$ + "k=" write$ + cite$ "," * write$ + "t=" write$ + type$ "," * write$ + newline$ + label write$ + "," write$ + doi empty$ + {} + { + "o=" write$ + doi write$ + "," write$ + } if$ + newline$ + "n=" write$ + ordinal.label write$ + ",s=" write$ + clabel write$ + "]" write$ + newline$ + "" "\lang" language do.out +} + +FUNCTION {stop.entry} +{ "" "\note" note do.out + "" "\annotate" annotate do.out + "" "\eprint" eprint do.out + "" "\doi" doi do.out + "" "\keyword" keyword do.out + "" "\keywords" keywords do.out + "" "\comment" comment do.out + "" "\abstract" abstract do.out + "" "\names" names do.out + "" "\size" size do.out + "\stoppublication" write$ + newline$ +} + + + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + + +FUNCTION {format.names} +{ 's := 'autype := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { autype write$ + s nameptr "{jj}" format.name$ 't := + "[" t * "]" * write$ + s nameptr "{ff}" format.name$ 't := + "{" t * "}" * write$ + s nameptr "{f}" format.name$ add.period$ 't := + "[" t * "]" * write$ + s nameptr "{vv}" format.name$ 't := + "{" t * "}" * write$ + s nameptr "{ll}" format.name$ 't := + "{" t * "}" * write$ + newline$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + + +FUNCTION {format.key} +{ "" "\thekey" key do.out } + + +FUNCTION {format.artauthors} +{ author empty$ + { format.key } + { "\artauthor" author format.names } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { format.key } + { "\author" author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { format.key } + { "\editor" editor format.names } + if$ +} + + +FUNCTION {format.title} +{ "" "\title" title do.out + "" "\isbn" isbn do.out +} + +FUNCTION {format.t.title} +{ "" "\title" title do.t.out + "" "\isbn" isbn do.out +} + +FUNCTION {format.arttitle} +{ "" "\arttitle" title do.t.out } + +FUNCTION {format.journal} +{ "" "\journal" journal do.out + "" "\issn" issn do.out +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.volume} +{ "" "\volume" volume do.out +} + +FUNCTION {format.volume.issue} +{ "" "\volume" volume do.out + "" "\issue" number do.out +} + +FUNCTION {format.number.series} +{ "" "\series" series do.out + volume empty$ + { "" "\volume" number do.out + } + { "" "\volume" volume do.out + "" "\issue" number do.out } + if$ +} + +FUNCTION {format.edition} +{ "" "\edition" edition do.out + "" "\month" month do.out +} + +FUNCTION {format.pages} +{ "" "\pages" pages do.out } + + +FUNCTION {format.vol.num.pages} +{ format.volume.issue + format.pages +} + +FUNCTION {format.vol.num.page} +{ format.volume.issue + format.pages +} + +FUNCTION {format.type.chapter.pages} +{ chapter empty$ + 'format.pages + { "" "\type" type do.out + "" "\chapter" chapter do.out + } + if$ + format.pages +} + +FUNCTION {format.booktitle} +{"" "\title" booktitle do.out + "" "\isbn" isbn do.out +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + 'skip$ + { format.booktitle } + if$ +} + +FUNCTION {format.in.booktitle.or.series} +{ "" "\series" series do.out + booktitle empty$ + 'skip$ + { editor empty$ + { format.booktitle } + { format.editors format.booktitle } + if$ + } + if$ +} + + +FUNCTION {format.tr.number} +{"" "\type" type do.out + "" "\volume" number do.out +} + +FUNCTION {format.crossref} +{ "" "\crossref" crossref do.out +} + +FUNCTION {format.book.crossref} +{ + "" "\volume" volume do.out + format.crossref +} + +FUNCTION {format.incoll.inproc.crossref} +{ format.crossref +} + +FUNCTION {article} +{ start.entry + format.artauthors + format.year + format.arttitle + crossref missing$ + { format.journal + format.vol.num.pages + } + { format.crossref + format.pages + } + if$ + "" "\month" month do.out + stop.entry +} + +FUNCTION {book} +{ start.entry + author empty$ + { format.editors + } + { format.authors + } + if$ + format.year + format.title + crossref missing$ + { format.number.series + "" "\city" address do.out + "" "\pubname" publisher do.out + } + { + format.book.crossref + } + if$ + format.edition + stop.entry +} + +FUNCTION {booklet} +{ start.entry + format.authors + format.year + format.t.title + format.key + "" "\pubname" publisher do.out + "" "\howpublished" howpublished do.out + "" "\city" address do.out + stop.entry +} + +FUNCTION {inbook} +{ start.entry + author empty$ + { format.editors + } + { format.authors + } + if$ + format.year + format.title + crossref missing$ + { format.type.chapter.pages + format.number.series + "" "\city" address do.out + "" "\pubname" publisher do.out + } + { format.type.chapter.pages + format.book.crossref + } + if$ + format.edition + stop.entry +} + +FUNCTION {incollection} +{ start.entry + format.artauthors + format.year + format.arttitle + format.editors + crossref missing$ + { format.in.ed.booktitle + format.number.series + "" "\city" address do.out + format.edition + format.type.chapter.pages + } + { format.incoll.inproc.crossref + format.type.chapter.pages + } + if$ + "" "\pubname" publisher do.out + stop.entry +} + +FUNCTION {inproceedings} +{ start.entry + format.authors + format.year + format.arttitle + crossref missing$ + { format.in.booktitle.or.series + format.number.series + "" "\city" address do.out + format.pages + } + { format.incoll.inproc.crossref + format.pages + } + if$ + "" "\pubname" publisher do.out + "" "\organization" organization do.out + stop.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ start.entry + format.authors + format.year + format.title + "" "\organization" organization do.out + "" "\city" address do.out + "" "\edition" edition do.out + stop.entry +} + +FUNCTION {mastersthesis} +{ start.entry + format.authors + format.year + format.t.title + "" "\type" type do.out + "" "\pubname" school do.out + "" "\month" month do.out + "" "\city" address do.out + stop.entry +} + +FUNCTION {misc} +{ start.entry + format.authors + format.year + format.t.title + format.key + "" "\city" address do.out + "" "\month" month do.out + "" "\pubname" publisher do.out + "" "\howpublished" howpublished do.out + stop.entry +} + +FUNCTION {phdthesis} +{ start.entry + format.authors + format.title + format.year + "" "\type" type do.out + "" "\month" month do.out + "" "\pubname" school do.out + "" "\city" address do.out + stop.entry +} + +FUNCTION {proceedings} +{ start.entry + format.editors + format.year + format.title + format.number.series + "" "\city" address do.out + "" "\pubname" publisher do.out + "" "\organization" organization do.out + stop.entry +} + +FUNCTION {techreport} +{ start.entry + format.authors + format.year + format.t.title + format.tr.number + "" "\city" address do.out + "" "\pubname" institution do.out + stop.entry +} + +FUNCTION {unpublished} +{ start.entry + format.authors + format.year + format.t.title + "" "\month" month do.out + stop.entry +} + + +FUNCTION {default.type} { misc } + +MACRO {jan} {"1"} +MACRO {feb} {"2"} +MACRO {mar} {"3"} +MACRO {apr} {"4"} +MACRO {may} {"5"} +MACRO {jun} {"6"} +MACRO {jul} {"7"} +MACRO {aug} {"8"} +MACRO {sep} {"9"} +MACRO {oct} {"10"} +MACRO {nov} {"11"} +MACRO {dec} {"12"} + +READ + +FUNCTION {initialize.ordinal.label} +{ #0 'ordinal.num := } + +FUNCTION {set.ordinal.label} { + #1 ordinal.num + 'ordinal.num := + ordinal.num int.to.str$ 'ordinal.label := +} + +EXECUTE {initialize.ordinal.label} + +ITERATE {set.ordinal.label} + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ + "{" swap$ * "}," * +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { "{" cite$ * "}," *} + { "{" key * "}," * } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { "{" cite$ * "}," *} + { "{" key * "}," * } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { "{" cite$ * "}," *} + { "{" key * "}," * } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + "a=" swap$ * "y=" * + year field.or.null purify$ #-1 #4 substring$ + * + 'label := +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.clab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.clabel} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.clab.names } + if$ +} + +FUNCTION {author.editor.key.clabel} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.clab.names } + if$ + } + { author format.clab.names } + if$ +} + +FUNCTION {author.key.organization.clabel} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.clab.names } + if$ +} + +FUNCTION {editor.key.organization.clabel} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.clab.names } + if$ +} + +FUNCTION {calc.clabel} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.clabel + { type$ "proceedings" = + 'editor.key.organization.clabel + { type$ "manual" = + 'author.key.organization.clabel + 'author.key.clabel + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'clabel := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.clabel := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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.title} +{ calc.label + calc.clabel + title field.or.null + sort.format.title + " " + * + #1 entry.max$ substring$ + 'sort.label := + sort.label + 'sort.key$ := +} + +FUNCTION {presort.author} +{ calc.clabel + calc.label + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label + 'sort.key$ := +} + +FUNCTION {presort.clabel} +{ calc.label + calc.clabel + clabel sortify + duplicate$ 'sort.label := + #1 entry.max$ substring$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +FUNCTION {presort.none} +{ calc.label + calc.clabel + "" 'sort.label := + "" 'sort.key$ := +} + +ITERATE {presort.title} + +SORT + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := + #0 'ordinal.num := +} + +FUNCTION {forward.pass} +{ ordinal.num #1 + 'ordinal.num := + ordinal.num int.to.str$ 'nlabel := + 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$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + clabel extra.label * 'clabel := + extra.label 'next.extra := + clabel width$ longest.label.width > + { clabel 'longest.label := + clabel width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.extra.label.stuff} + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order.author} +{ sort.label + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +FUNCTION {bib.sort.order.title} +{ sort.label + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +FUNCTION {bib.sort.order.clabel} +{ sort.label + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +FUNCTION {bib.sort.order.none} +{ sort.label 'sort.key$ := +} + +ITERATE {bib.sort.order.title} + +SORT + +EXECUTE {begin.bib} + +ITERATE {call.type$} + + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/dinat/dinat.bst b/Master/texmf-dist/bibtex/bst/dinat/dinat.bst new file mode 100644 index 00000000000..38a8cb4a275 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/dinat/dinat.bst @@ -0,0 +1,1952 @@ +%% DINAT.BST Version 2.5 2000-11-14 +%% (c) Helge Baumann email:Helge.Baumann@gmx.de +%%------------------------------------------------------------------------------ +%% For use with BibTeX version 0.99a or later. +%%------------------------------------------------------------------------------ +%% Copying of this file is authorized only if either +%% (1) you make absolutely no changes to your copy, including name, or +%% (2) if you do make changes, you name it something other than dinat.bst, +%% natdin.bst, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. +%% This restriction helps ensure that all standard styles are identical. +%%------------------------------------------------------------------------------ +%% This is a full author-year citation style bibliography. As such, it is +%% non-standard LaTeX, and requires the natbib-package by Patrick W. Daly, +%% version 7 or higher to function properly. +%% It should be used with the following configuration in natbib.cfg: +%% \newcommand{\bibstyle@dinat}% +%% {\bibpunct{(}{)}{;}{a}{}{,~}% +%% \gdef\NAT@biblabelnum##1{\textbf{##1}}} +%%------------------------------------------------------------------------------ +%% The form of the \bibitem entries is +%% \bibitem[Jones u. a.(1990)Jones, Baker und Smith]{key}... +%% If there are more [Jones u. a. 1990], a single character is added to +%% the year like in [Jones u.a.(1990{\natexlab{a}})Jones, Baker und Smith]. +%% The resulting bibliography entry is +%% \textsc{Jones}, \textsc{Baker} und \textsc{Smith} ... +%% The \cite command functions as follows: +%% \cite{key} ==>> Jones u. a. (1990) +%% \cite[chap. 2]{key} ==>> (Jones u. a. 1990, chap. 2) +%% \cite[e.g.][]{key} ==>> (e.g. Jones u. a. 1990) +%% \cite[e.g.][p. 32]{key} ==>> (e.g. Jones u. a. p. 32) +%% \citep{key} ==>> (Jones u. a. 1990) +%% \citep*{key} ==>> (Jones, Baker und Smith 1990) +%% \citet{key} ==>> Jones u. a. (1990) +%% \citet*{key} ==>> Jones, Baker und Smith (1990) +%% \citeauthor{key} ==>> Jones u. a. +%% \citeauthor*{key} ==>> Jones, Baker und Smith +%% \citeyear{key} ==>> 1990 +%%------------------------------------------------------------------------------ +%% This bibliography style file is intended for texts in german. +%% It draws up bibliographies in accordance with the german DIN 1505, +%% part 2 and 3, as discribed in the german text +%% http://www.fh-hamburg.de/pers/Lorenzen/tum/litverz.ps +%%------------------------------------------------------------------------------ +%% This style is based on the natdin.bst style. +%% The intention for designing a new style for the same result +%% were the many bugs and the poor design of the original style. +%% So i simplified the programming and add some comments for rework. +%% The names of the functions were changed to reflect their functionality: +%% out.*: write the top of the stack to the bbl-file +%% format.*: format the top of the stack +%% push.*: put one item on top of the stack +%%------------------------------------------------------------------------------ +%% There are some non standard fields for most entries: +%% isbn: international book number +%% issn: internation journal number +%% url: for electronic published documents or additional information +%% if there is no publisher and address, the url is used instead, +%% else it acts like a additional note +%% urldate: the date of the access to the url +%%------------------------------------------------------------------------------ +%% Author(s): +%% HB: Helge Baumann, helge.baumann@gmx.de +%%------------------------------------------------------------------------------ +%% History: +%% (only main changes are listed, for others see the webpage) +%% 2000-04-10 (HB): Initial release +%% 2000-04-18 (HB): Version 1.1: +%% corrected some typos and oversights +%% minor changes in output +%% 2000-04-25 (HB): Version 1.2: +%% dinat only: added \natexlab +%% using full key/cite for label +%% 2000-05-02 (HB): Version 2.0: +%% added urldate for date of visit +%% added labels in bibliography, so the seperate +%% style dinnat.bst is not needed anymore +%% 2000-05-09 (HB): Version 2.1: +%% removed blanc in bibpunct +%% put text ("u.\,a." ...) in functions +%% rebuild some push functions +%% changed \cite to \citep +%% removed push.crossref.editor (not used) +%% 2000-07-12 (HB): version 2.2: +%% added push.crossref +%% changed many crossrefs +%% corrected typos +%% put \, in curly braces +%% 2000-10-03 (HB): version 2.3: +%% changed remaining "u.~a." +%% added \labelsep behind dinatlabel +%% added mastersthesis again, keeping (wrong) +%% masterthesis (sorry for that) +%% minor changes in proceedings +%% 2000-11-05 (HB): version 2.4: +%% improved inbook +%% removed extra period from proceedings +%% added missing colon in misc +%% improved name formatting +%% removed long dashes from ISBN/ISSN +%% restructured format.dashes +%% 2000-11-14 (HB): version 2.5: +%% always use key for label if present +%%------------------------------------------------------------------------------ + + +%%------------------------------------------------------------------------------ +%% push standard text items on top of the stack +%%------------------------------------------------------------------------------ +FUNCTION {push.bd} { "Bd." } +FUNCTION {push.diplom} { "Diplomarbeit" } +FUNCTION {push.disser} { "Dissertation" } +FUNCTION {push.forschung} { "Forschungsbericht" } +FUNCTION {push.hrsg} { "Hrsg." } +FUNCTION {push.in} { "In:" } +FUNCTION {push.isbn} { "ISBN" } +FUNCTION {push.issn} { "ISSN" } +FUNCTION {push.kap} { "Kap." } +FUNCTION {push.nr} { "Nr." } +FUNCTION {push.sn} { "S" } +FUNCTION {push.s} { "S." } +FUNCTION {push.siehe} { "Siehe" } +FUNCTION {push.ua} { "u.\,a." } +FUNCTION {push.und} { "und" } +FUNCTION {push.url.name} { "URL" } +FUNCTION {push.veranst} { "Veranst." } +FUNCTION {push.von} { "von" } +FUNCTION {push.zugriff} { "Zugriffsdatum" } + +FUNCTION {push.cite} { "\citep" } + + +%%------------------------------------------------------------------------------ +%% Definitions for every bibliography entry +%%------------------------------------------------------------------------------ +ENTRY + % fields (crossref is default) + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + url + urldate + volume + year + } + % INTEGERS + {} + % STRINGS (sort.key$ is default) + { label extra.label sort.label short.list dinat.label } + + +%%------------------------------------------------------------------------------ +%% required macros for abbr. names of month +%%------------------------------------------------------------------------------ +MACRO {jan} {"Januar"} + +MACRO {feb} {"Februar"} + +MACRO {mar} {"M\^^b{a}rz"} + +MACRO {apr} {"April"} + +MACRO {may} {"Mai"} + +MACRO {jun} {"Juni"} + +MACRO {jul} {"Juli"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"Oktober"} + +MACRO {nov} {"November"} + +MACRO {dec} {"Dezember"} + + +%%------------------------------------------------------------------------------ +%% macros for common journals +%%------------------------------------------------------------------------------ +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + + +%%------------------------------------------------------------------------------ +%% for debugging (not used) +%%------------------------------------------------------------------------------ +FUNCTION {show} +% show quoted top of stack +{ duplicate$ ":::: `" swap$ * "'" * top$ +} + +FUNCTION {show.stack} +% show and clear whole stack +{ "STACK=====================================================================" + top$ + stack$ + "ENDSTACK==================================================================" + top$ +} + + +%%------------------------------------------------------------------------------ +%% logical functions +%%------------------------------------------------------------------------------ +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ { skip$ } + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + { skip$ } + if$ +} + + +%%------------------------------------------------------------------------------ +%% variables for the recent output state +%%------------------------------------------------------------------------------ +INTEGERS { output.state + before.all + mid.sentence + after.sentence + after.block + colon.after + period.dash } + +FUNCTION {init.state.consts} +% initialisation of the state variables +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'colon.after := + #5 'period.dash := +} + +FUNCTION {set.period.dash} +% set ". -- " +{ output.state before.all = + { skip$ } + { period.dash 'output.state := } + if$ +} + +FUNCTION {set.period.dash.check} +% only if not empty +{ empty$ + { skip$ } + { set.period.dash } + if$ +} + +FUNCTION {set.colon.after} +% set ": " +{ output.state before.all = + { skip$ } + { colon.after 'output.state := } + if$ +} + +FUNCTION {new.sentence} +% set ". " +{ output.state before.all = + { skip$ } + { after.sentence 'output.state := } + if$ +} + +FUNCTION {new.sentence.check} +% only if not empty +{ empty$ + { skip$ } + { new.sentence } + if$ +} + +FUNCTION {part.of.sentence} +% set ", " +{ output.state before.all = + { skip$ } + { mid.sentence 'output.state := } + if$ +} + + +%%------------------------------------------------------------------------------ +%% output lines to bbl. file +%%------------------------------------------------------------------------------ +STRINGS { h s t u v } + +FUNCTION {out.block} +% writes the second but last element with seperator +{ 's := + output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + { write$ } + { output.state colon.after = + { ": " * write$ + newline$ + "\newblock " write$ + } + { output.state period.dash = + { ". -- " * write$ + newline$ + "\newblock " write$ + } + { output.state mid.sentence = + { ", " * write$ } + { write$ + newline$ + "\newblock " write$ + } + if$ + } + if$ + } + if$ + } + if$ + after.block 'output.state := + } + if$ + s +} + +FUNCTION {out} +% write only if not empty +{ duplicate$ empty$ + { pop$ } + { out.block } + if$ +} + +FUNCTION {out.check.required} +% write if not empty, else drop warning +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + { out.block } + if$ +} + +FUNCTION {out.check.din} +% write if not empty, else drop note +{ 't := + duplicate$ empty$ + { pop$ "DIN: empty " t * " in " * cite$ * top$ } + { out.block } + if$ +} + + +%%------------------------------------------------------------------------------ +%% format entries for full author/editor citations +%%------------------------------------------------------------------------------ +INTEGERS { nameptr namesleft pos len } + +FUNCTION {format.full.names} +% format all names +{ 's := + "" + #1 'nameptr := + s num.names$ 'namesleft := + { namesleft #0 > } % while + { s nameptr "{vv~}{ll}" format.name$ 't := + nameptr #1 = + { % first name + t * + } + { namesleft #1 = + { % last name + t "others" = + { " " * push.ua * } + { " " * push.und * " " * t * } + if$ + } + { % other names + ", " * t * + } + if$ + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ % { namesleft #0 > } +} + +FUNCTION {key.full} +{ key empty$ + { cite$ } + { key } + if$ +} + +FUNCTION {author.key.full} +{ author empty$ + { key.full } + { author format.full.names } + if$ +} + +FUNCTION {editor.key.full} +{ editor empty$ + { key.full } + { editor format.full.names } + if$ +} + +FUNCTION {author.editor.key.full} +{ author empty$ + { editor.key.full } + { author 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$ +} + + +%%------------------------------------------------------------------------------ +%% write bibentry to bbl. file +%%------------------------------------------------------------------------------ +FUNCTION {out.bibitem.start} +% start of entry +{ newline$ + "\bibitem[" label * ")" * + make.full.names + duplicate$ short.list = + { pop$ } + { * } + if$ + "]{" * cite$ * "}" * + write$ + newline$ + "\dinatlabel{" dinat.label * "} " * + write$ + "" + before.all 'output.state := +} + +FUNCTION {out.bibitem.end} +% end of entry +{ write$ + newline$ +} + + +%%------------------------------------------------------------------------------ +%% format text +%%------------------------------------------------------------------------------ +FUNCTION {format.emphasize} +% emphasize top of stack +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +FUNCTION {format.smallcaps} +% top of stack in small caps +{ duplicate$ empty$ + { pop$ "" } + { "\textsc{" swap$ * "}" * } + if$ +} + +FUNCTION {format.dashes} +% replace single dashes (-) with tex-styled dashes (--) +{ 't := + "" + { t empty$ not } % while$ + { t #1 #2 substring$ "--" = + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + { t #1 #1 substring$ "-" = + { "--" * } + { t #1 #1 substring$ * } + if$ + t #2 global.max$ substring$ 't := + } + if$ + } + while$ % { t empty$ not } +} + + +%%------------------------------------------------------------------------------ +%% manipulte entries on the stack +%%------------------------------------------------------------------------------ +FUNCTION {tie.or.space.connect} +% connect two top items with space or ~, if second is shorter than 3 +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {push.field.or.null} +% push an empty item on the stack if it's a missing entry +{ duplicate$ empty$ + { pop$ "" } + { skip$ } + if$ +} + + +%%------------------------------------------------------------------------------ +%% format text on stack +%%------------------------------------------------------------------------------ +STRINGS { hrsg } + +FUNCTION {format.names} +% format all names on top of stack +{ 's := + "" + #1 'nameptr := + s num.names$ 'namesleft := + { namesleft #0 > } % while names left + { % first get last name in small caps + s nameptr "{ll}" format.name$ 't := + t format.smallcaps 't := + % second get all first names + s nameptr "{, ff}" format.name$ 'u := + u text.length$ 'len := + #1 'pos := + "" 'v := + { pos len < } % while + { u pos #1 substring$ "~" = + { v "" = + { u #1 pos #1 - substring$ 'v := } + { skip$ } + if$ + % cut second and more first names + v u pos #2 substring$ * "." * 'v := + } + { skip$ } + if$ + pos #1 + 'pos := + } + while$ % { pos len < } + v "" = + { u 'v := } + { skip$ } + if$ + % third get all "von" + s nameptr "{ vv}" format.name$ 'u := + % put it all together + t v * u * hrsg * 't := + + nameptr #1 = + { %first name + t * + } + { namesleft #1 = + { % last name + t "others" format.smallcaps = + t "others" format.smallcaps hrsg * = + or + { " " * push.ua * } + { "~; " * t * } + if$ + } + { % other names + "~; " * t * + } + if$ + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ % { namesleft #0 > } + "" 'hrsg := +} + + +%%------------------------------------------------------------------------------ +%% push formatted or empty field(s) on top of the stack +%%------------------------------------------------------------------------------ +FUNCTION {push.authors} +% format author names +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {push.editors} +% format editor names +{ editor empty$ + { "" } + { " (" push.hrsg * ")" * 'hrsg := + editor format.names + } + if$ +} + +FUNCTION {push.authors.editors} +% format author and/or editor names +{ author empty$ + { push.editors } + { push.authors + editor empty$ + { skip$ } + { "~; " * push.editors * } + if$ + } + if$ +} + + +FUNCTION {push.organization} +% format organization +{ organization empty$ + { "" } + { organization + " (" * push.veranst * ")" * + } + if$ +} + +FUNCTION {push.title} +% title as in entry +{ title empty$ + { "" } + { title } + if$ +} + +FUNCTION {push.url} +% prefixed with "URL" and special formatting +{ url empty$ + { "" } + { push.url.name " \url{" * url * "}" * + urldate empty$ + { skip$ } + { ". -- " * push.zugriff * ": " * urldate * } + if$ + } + if$ +} + +FUNCTION {push.date} +% format: month year +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + { year } + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {push.address.publisher.year} +% the whole imprint +{ address empty$ + { publisher empty$ + { url empty$ + { year empty$ + { "no publisher, address, url or date in " cite$ * warning$ + "" } + { push.date } + if$ + } + { "no proper publisher, using url in " cite$ * warning$ + push.url + year empty$ + { skip$ } + { ", " * push.date * } + if$ + } + if$ + } + { publisher + year empty$ + { "there's a publisher but no year in " cite$ * warning$ } + { ", " * push.date * } + if$ + } + if$ + } + { address + publisher empty$ + { "there's an address but no publisher in " cite$ * warning$ } + { "~: " * publisher * } + if$ + year empty$ + { skip$ } + { ", " * push.date * } + if$ + } + if$ +} + +FUNCTION {push.btitle} +% the booktitle +{ title empty$ + { "" } + { title format.emphasize } + if$ +} + +FUNCTION {push.btitle.vol} +% booktitle in multivolume works +{ number empty$ + { series empty$ + { push.btitle + volume empty$ + { skip$ } + { ". " * push.bd * volume tie.or.space.connect } + if$ + } + { volume empty$ + { push.btitle } + { series format.emphasize ". " * + push.bd * volume tie.or.space.connect + ": " * push.btitle * + } + if$ + } + if$ + } + { push.btitle } + if$ +} + +FUNCTION {push.article.in.journal} +% source of article +{ journal empty$ + { "" } + { author missing$ + title missing$ + and + { journal format.emphasize } + { push.in " " * journal format.emphasize * } + if$ + } + if$ +} + +FUNCTION {push.series.number} +% series and number like DIN +{ volume empty$ + { series empty$ + { number empty$ + { "" } + { "there's a number but no series in " cite$ * warning$ + "(" number * ")" * } + if$ + } + { "(" series * + number empty$ + { skip$ } + { number tie.or.space.connect } + if$ + ")" * + } + if$ + } + { series empty$ + { "" } + { type$ "proceedings" = + { "(" series * + number empty$ + { skip$ } + { number tie.or.space.connect } + if$ + ")" * + } + { "" } + if$ + } + if$ + } + if$ +} + +FUNCTION {push.misc.series} +% series in MISC +{ series empty$ + { "" } + { "(" series * ")" * } + if$ +} + +FUNCTION {push.edition} +% like in entry +{ edition empty$ + { "" } + { edition } + if$ +} + +FUNCTION {push.isbn.issn} +% preceeded with ISSN/ISBN +{ isbn empty$ + { issn empty$ + { "" } + { push.issn " " * issn * } + if$ + } + { push.isbn " " * isbn * } + if$ +} + +FUNCTION {push.pages.book} +% as length of a book +{ pages empty$ + { "" } + { pages format.dashes "~" * push.sn * } + if$ +} + +FUNCTION {push.pages} +% as part of a book +{ pages empty$ + { "" } + { push.s "~" * pages format.dashes * } + if$ +} + +FUNCTION {push.vol.year.num.pages} +% for journals etc. +{ volume push.field.or.null + year empty$ + { "there's no year in " cite$ * warning$ } + { duplicate$ empty$ + { pop$ "(" } + { " (" * } + if$ + year * ")" * + } + if$ + month empty$ + { skip$ } + { duplicate$ empty$ + { pop$ month } + { ", " * month * } + if$ + } + if$ + number empty$ + { skip$ } + { duplicate$ empty$ + { pop$ push.nr } + { ", " * push.nr * } + if$ + "~" * number * + } + if$ + pages empty$ + { skip$ } + { duplicate$ empty$ + { skip$ } + { ", " * + title missing$ + { push.pages.book * } + { push.pages * } + if$ + } + if$ + } + if$ +} + +FUNCTION {push.chapter.pages} +% chapter and pages +{ chapter empty$ + { push.pages } + { type empty$ + { push.kap } + { type } + if$ + chapter tie.or.space.connect + pages empty$ + { skip$ } + { ", " * push.pages * } + if$ + } + if$ +} + +FUNCTION {push.in.ed.booktitle} +% main title and volume +{ booktitle empty$ + { "" } + { push.in " " * + editor empty$ + { skip$ } + { push.editors * ": " * } + if$ + booktitle format.emphasize * + volume empty$ + { skip$ } + { " " * push.bd * "~" * volume * } + if$ + } + if$ +} + +FUNCTION {push.mastersthesis.type} +% type of a mastersthesis +{ type empty$ + { push.diplom } + { type } + if$ +} + +FUNCTION {push.phdthesis.type} +% type of a phdthesis +{ type empty$ + { push.disser } + { type } + if$ +} + +FUNCTION {push.tr.number} +% type and number of a technical report +{ number empty$ + { " " } + { "(" number * "). " * } + if$ + "-- " * + type empty$ + { push.forschung * } + { type * } + if$ +} + +FUNCTION {push.article.crossref} +% article from a journal +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { push.in " " * journal format.emphasize * } + if$ + } + { push.in " " * key * } + if$ + " " * push.cite * "{" * crossref * "}" * + pages empty$ + { skip$ } + { ", " * push.pages * } + if$ +} + +FUNCTION {push.book.crossref} +% crossreference in BOOKs +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + push.siehe + } + { ". -- " push.bd * "~" * volume * + " " * push.von * + } + if$ + " " * push.cite * "{" * crossref * "}" * +} + +FUNCTION {push.incoll.inproc.crossref} +% crossreference with In: +{ editor empty$ + editor push.field.or.null author push.field.or.null = + or + { key empty$ + { booktitle empty$ + { push.siehe } + { push.in " " * booktitle format.emphasize * "." * } + if$ + } + { push.in } + if$ + } + { push.in } + if$ + " " * push.cite * "{" * crossref * "}" * + chapter empty$ + { skip$ } + { ", " * + type empty$ + { push.kap * } + { type * } + if$ + chapter tie.or.space.connect + } + if$ + pages empty$ + { skip$ } + { ", " * push.pages * } + if$ +} + +FUNCTION {push.crossref} +% a simple crossref +{ crossref empty$ + { "" } + { push.siehe " " * push.cite * "{" * crossref * "}" * } + if$ +} + + +%%------------------------------------------------------------------------------ +%% functions for the different entries +%%------------------------------------------------------------------------------ +FUNCTION {article} +% required: author, title, journal, year +% optional: volume, number, pages, month, note, url, issn +{ out.bibitem.start + push.authors "author" out.check.required + set.colon.after + push.title "title" out.check.required + crossref missing$ + { push.article.in.journal out.block + new.sentence + push.vol.year.num.pages out + } + { push.article.crossref out.block } + if$ + url set.period.dash.check + push.url out + note set.period.dash.check + note out + issn set.period.dash.check + push.isbn.issn out + out.bibitem.end +} + +FUNCTION {book} +% required: author/editor, title, publisher, year +% optional: volume oder number, series, address, edition, pages, month, +% note, url, isbn +{ out.bibitem.start + author empty$ + { push.editors "author and editor" out.check.required } + { push.authors.editors out.block } + if$ + set.colon.after + crossref missing$ + { push.btitle.vol } + { push.btitle } + if$ + "title" out.check.required + push.edition out + push.address.publisher.year "publisher" out.check.required + new.sentence + crossref missing$ + { push.series.number out } + { push.book.crossref out.block } + if$ + pages set.period.dash.check + push.pages.book out + address empty$ + publisher empty$ + and + { skip$ } + { url set.period.dash.check + push.url out + } + if$ + note set.period.dash.check + note out + isbn set.period.dash.check + push.isbn.issn out + out.bibitem.end +} + +% booklet see below + +% conference see below + +FUNCTION {inbook} +% required: author/editor, title, chapter/pages, publisher, year +% optional: volume oder number, series, type, address, month, note, url, isbn +{ out.bibitem.start + author empty$ + { push.editors "author and editor" out.check.required } + { push.authors out.block } + if$ + set.colon.after + push.btitle.vol "title" out.check.required + push.chapter.pages out + crossref missing$ + { push.in.ed.booktitle "booktitle" out.check.required + address empty$ + { part.of.sentence + push.address.publisher.year out + } + { push.address.publisher.year "publisher" out.check.required } + if$ + new.sentence + series empty$ + { skip$ } + { push.series.number out } + if$ + part.of.sentence + address empty$ + publisher empty$ + and + { skip$ } + { url set.period.dash.check + push.url out + } + if$ + } + { push.crossref out.block + url set.period.dash.check + push.url out + } + if$ + note set.period.dash.check + note out + isbn set.period.dash.check + push.isbn.issn out + out.bibitem.end +} + +FUNCTION {incollection} +% required: author, title, booktitle, publisher, year +% optional: editor, volume oder number, series, type, chapter, +% pages, address, edition, month, note, url +{ out.bibitem.start + push.authors "author" out.check.required + set.colon.after + push.title "title" out.check.required + crossref missing$ + { push.in.ed.booktitle "booktitle" out.check.required + push.edition out + push.address.publisher.year "publisher" out.check.required + new.sentence + push.series.number out + part.of.sentence + push.chapter.pages "pages" out.check.required + address empty$ + publisher empty$ + and + { skip$ } + { url set.period.dash.check + push.url out + } + if$ + } + { push.incoll.inproc.crossref out.block + url set.period.dash.check + push.url out + } + if$ + note set.period.dash.check + note out + isbn set.period.dash.check + issn set.period.dash.check + push.isbn.issn out + out.bibitem.end +} + +FUNCTION {inproceedings} +% required: author, title, booktitle, year +% optional: editor, volume oder number, series, pages, address, month, +% organization, publisher, note, url +{ out.bibitem.start + push.authors "author" out.check.required + set.colon.after + push.title "title" out.check.required + crossref missing$ + { push.in.ed.booktitle "booktitle" out.check.required + address empty$ + { organization new.sentence.check + push.organization out + part.of.sentence + push.address.publisher.year out + } + { push.address.publisher.year "publisher" out.check.required } + if$ + new.sentence + series empty$ + { skip$ } + { push.series.number out } + if$ + part.of.sentence + push.pages "pages" out.check.required + address empty$ + publisher empty$ + and + { skip$ } + { url set.period.dash.check + push.url out + } + if$ + } + { push.incoll.inproc.crossref out.block + url set.period.dash.check + push.url out + } + if$ + note set.period.dash.check + note out + isbn set.period.dash.check + issn set.period.dash.check + push.isbn.issn out + out.bibitem.end +} + +FUNCTION {manual} +% required: title +% optional: author, organization, address, edition, month, year, note, url +{ out.bibitem.start + author empty$ + { organization empty$ + { title empty$ + { skip$ } + { push.btitle "title" out.check.required } + if$ + } + { push.organization out.block + set.colon.after + push.btitle "title" out.check.required + } + if$ + } + { push.authors out.block + set.colon.after + push.btitle "title" out.check.required + } + if$ + push.edition "edition" out.check.required + author empty$ + { organization empty$ + { address out + part.of.sentence + } + { skip$ } + if$ + } + { address ": " * push.organization * out + part.of.sentence + } + if$ + push.date out + pages set.period.dash.check + push.pages.book out + url set.period.dash.check + push.url out + note set.period.dash.check + note out + out.bibitem.end +} + +FUNCTION {mastersthesis} +% required: author, title, school, year +% optional: type, address, month, note, url +{ out.bibitem.start + push.authors "author" out.check.required + set.colon.after + push.btitle "title" out.check.required + address out + part.of.sentence + school "school" out.check.required + part.of.sentence + push.mastersthesis.type out.block + part.of.sentence + push.date "year" out.check.required + pages set.period.dash.check + push.pages.book out + url set.period.dash.check + push.url out + note set.period.dash.check + note out + out.bibitem.end +} + +FUNCTION {misc} +% required: +% optional: author, title, howpublished, month, year, note, url +{ out.bibitem.start + note empty$ + { title empty$ + { skip$ } + { push.authors.editors out.block + set.colon.after + push.btitle out + howpublished out + push.date out + push.crossref out + url set.period.dash.check + push.url out + } + if$ + } + { note #1 #4 substring$ "u" change.case$ "NORM" = + { note out + part.of.sentence + push.date out + push.title format.emphasize out + push.crossref out + } + { author empty$ + { editor empty$ + { organization empty$ + { skip$ } + { push.organization out.block + set.colon.after + } + if$ + } + { push.editors push.organization * out.block + set.colon.after + } + if$ + } + { push.authors.editors out.block + set.colon.after + } + if$ + push.btitle out + push.crossref out + howpublished out + push.date out + new.sentence + push.misc.series out + url set.period.dash.check + push.url out + note set.period.dash.check + note out + } + if$ + } + if$ + out.bibitem.end +} + +FUNCTION {phdthesis} +% required: author, title, school, year +% optional: type, address, month, note, url +{ out.bibitem.start + push.authors "author" out.check.required + set.colon.after + push.btitle "title" out.check.required + address out + part.of.sentence + school "school" out.check.required + part.of.sentence + push.phdthesis.type out.block + part.of.sentence + push.date "year" out.check.required + pages set.period.dash.check + push.pages.book out + url set.period.dash.check + push.url out + note set.period.dash.check + note out + out.bibitem.end +} + +FUNCTION {proceedings} +% required: title, year +% optional: editor, volume oder number, series, address, month, +% organization, publisher, note, url +{ out.bibitem.start + editor empty$ + { push.organization } + { push.editors + organization empty$ + { skip$ } + { "~; " * push.organization * } + if$ + } + if$ + out.block + set.colon.after + push.btitle "title" out.check.required + volume empty$ + { skip$ } + { push.bd "~" * volume format.emphasize * out.block } + if$ + push.address.publisher.year "publisher" out.check.required + push.series.number out + pages set.period.dash.check + push.pages.book out + address empty$ + publisher empty$ + and + { skip$ } + { url set.period.dash.check + push.url out + } + if$ + note set.period.dash.check + note out + isbn set.period.dash.check + issn set.period.dash.check + push.isbn.issn out + out.bibitem.end +} + +FUNCTION {techreport} +% required: author, title, institution, year +% optional: type, number, address, month, note, url +{ out.bibitem.start + author empty$ + { push.editors "author and editor" out.check.required } + { push.authors.editors out.block } + if$ + set.colon.after + push.title "title" out.check.required + institution empty$ + { skip$ } + { institution new.sentence.check + "/ " institution * out.block + } + if$ + push.address.publisher.year out + number new.sentence.check + push.tr.number "number" out.check.required + pages set.period.dash.check + push.pages.book out + address empty$ + publisher empty$ + and + { skip$ } + { url set.period.dash.check + push.url out + } + if$ + note "note" out.check.required + isbn set.period.dash.check + issn set.period.dash.check + push.isbn.issn out + out.bibitem.end +} + +FUNCTION {booklet} +% required: title +% optional: author, howpublished, address, month, year, note, url +{ misc % so far +} + +FUNCTION {conference} +% required: author, title, note +% optional: month, year, url +{ inproceedings % like stated in BibTeXing by O. Patashnik +} + +FUNCTION {masterthesis} +% required: author, title, school, year +% optional: type, address, month, note, url +{ mastersthesis % just because of a typo in former version +} + +FUNCTION {unpublished} +% required: author, title, note +% optional: month, year, url +{ misc % so far +} + +FUNCTION {default.type} +% all other types +{ misc +} + + +%%------------------------------------------------------------------------------ +%% for producing the labels +%%------------------------------------------------------------------------------ +FUNCTION {sortify} +% simplify for sorting +{ purify$ + "l" change.case$ +} + +FUNCTION {chop.word} +% cut a word +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + { s } + if$ +} + +FUNCTION {chop.article} +% cut article from a word +{ 't := + "A " #2 + "An " #3 + "Der " #4 + "Die " #4 + "Das " #4 + "Ein " #4 + "Eine " #5 + "The " #4 t chop.word + chop.word + chop.word + chop.word + chop.word + chop.word + chop.word + chop.word +} + + +FUNCTION {format.lab.names} +% format names for the label +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " " * push.ua * } + { #2 < + { skip$ } + { s #2 "{ll}" format.name$ "others" = + { " " * push.ua * } + { " " * push.und * " " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.label} +% label from key or author +{ key empty$ + { author empty$ + { cite$ } + { author format.lab.names } + if$ + } + { key } + if$ +} + +FUNCTION {author.editor.label} +% label from key, author or editor +{ key empty$ + { author empty$ + { editor empty$ + { cite$ } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ + } + { key } + if$ +} + +FUNCTION {author.organization.label} +% label from key, author or organization +{ key empty$ + { author empty$ + { organization empty$ + { cite$ } + { organization chop.article } + if$ + } + { author format.lab.names } + if$ + } + { key } + if$ +} + +FUNCTION {editor.organization.label} +% label from key, editor or organization +{ key empty$ + { editor empty$ + { organization empty$ + { cite$ } + { organization chop.article } + if$ + } + { editor format.lab.names } + if$ + } + { key } + if$ +} + +FUNCTION {calc.short.authors} +% make short label (only first author) +{ type$ "book" = + type$ "inbook" = + or + { author.editor.label } + { type$ "proceedings" = + { editor.organization.label } + { type$ "manual" = + { author.organization.label } + { author.label } + if$ + } + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +% make a full label +{ calc.short.authors + short.list "(" * + year push.field.or.null format.dashes * 'label := + short.list " " * + year push.field.or.null format.dashes * 'dinat.label := + label sortify 'sort.label := +} + + +%%------------------------------------------------------------------------------ +%% sorting +%%------------------------------------------------------------------------------ +FUNCTION {sort.format.names} +% format names for sorting +{ 's := + #1 'nameptr := + "" + s num.names$ 'namesleft := + { namesleft #0 > } % while + { nameptr #1 = + { skip$ } + { " " * } + if$ + s nameptr "{ll{ }}{ ff{ }}{ vv{ }}{ jj{ }}" format.name$ 't := + namesleft #1 = + t "others" = + and + { "[" * push.ua * "]" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ % { namesleft #0 > } +} + +FUNCTION {sort.format.title} +% format title for sorting (without article) +{ chop.article + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +% author or key for sorting +{ key empty$ + { author empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { author sort.format.names } + if$ + } + { key sortify } + if$ +} + +FUNCTION {author.editor.sort} +% author, editor or key for sorting +{ key empty$ + { author empty$ + { editor empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ + } + { key sortify } + if$ +} + +FUNCTION {author.organization.sort} +% author, organization or key for sorting +{ key empty$ + { author empty$ + { organization empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { organization chop.article sortify } + if$ + } + { author sort.format.names } + if$ + } + { key sortify } + if$ +} + +FUNCTION {editor.organization.sort} +% editor, organization or key for sorting +{ key empty$ + { editor empty$ + { organization empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { organization chop.article sortify } + if$ + } + { editor sort.format.names } + if$ + } + { key sortify } + if$ +} + +FUNCTION {presort} +% first sort +{ calc.label + sort.label + " " * + type$ "book" = + type$ "inbook" = + or + { author.editor.sort } + { type$ "proceedings" = + { editor.organization.sort } + { type$ "manual" = + { author.organization.sort } + { author.sort } + if$ + } + if$ + } + if$ + " " * + year push.field.or.null sortify * + " " * + title push.field.or.null sort.format.title * + #1 entry.max$ substring$ + 'sort.label := + sort.label * + #1 entry.max$ substring$ + 'sort.key$ := +} + +STRINGS { last.label next.extra } + +INTEGERS { last.extra.num label.count } + +FUNCTION {initialize.label} +{ "" 'last.label := + #0 'label.count := +} + +FUNCTION {forward.pass} +% find maximum additional character for identical labels +{ 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$ + label.count #1 + 'label.count := +} + +FUNCTION {reverse.pass} +% add additional characters to identical labels +{ next.extra "b" = + { "a" 'extra.label := } + { skip$ } + if$ + extra.label 'next.extra := + extra.label empty$ + { "" } + { "{\natexlab{" extra.label * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := + dinat.label extra.label * 'dinat.label := +} + +FUNCTION {bib.sort.order} +{ sort.label 'sort.key$ := +} + + +%%------------------------------------------------------------------------------ +%% making the bbl. file +%%------------------------------------------------------------------------------ +FUNCTION {begin.bib} +% beginning of the file +{ preamble$ empty$ + { skip$ } + { preamble$ + write$ + newline$ + } + if$ + "\begin{thebibliography}{" label.count int.to.str$ * "}" * + write$ + newline$ + "% this bibliography was produced with the style dinat.bst v2.5" + write$ + newline$ + "\makeatletter" + write$ + newline$ + "\newcommand{\dinatlabel}[1]%" + write$ + newline$ + "{\ifNAT@numbers\else\NAT@biblabelnum{#1}\hspace{2\labelsep}\fi}" + write$ + newline$ + "\makeatother" + write$ + newline$ + "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" + write$ + newline$ + "\expandafter\ifx\csname url\endcsname\relax\def\url#1{\texttt{#1}}\fi" + write$ + newline$ +} + +FUNCTION {end.bib} +% end of the bbl. file +{ newline$ + "\end{thebibliography}" write$ newline$ +} + + +%%------------------------------------------------------------------------------ +%% processing the .bib file +%%------------------------------------------------------------------------------ +READ + +ITERATE {presort} + +SORT + +EXECUTE {initialize.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +ITERATE {bib.sort.order} + +SORT + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/directory/address-html.bst b/Master/texmf-dist/bibtex/bst/directory/address-html.bst new file mode 100644 index 00000000000..b2b49f34659 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/directory/address-html.bst @@ -0,0 +1,791 @@ +%% address-html.bst +%% Copyright 1999-2000 Christophe Geuzaine +% +% Last Mod by Christophe on Sun Aug 27 21:10:54 2000 +% +% This program 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 (at your option) any later version. +% +% BibTeX bibliography style `address-html.bst' +% 'directory' database: all fields +% +% Christophe.Geuzaine@advalvas.be +% +% Last modified 08/06/1999 +% +% This is definitively a hack... +% +% The parts you may want to customize are labeled with "CUSTOM" +% + +INTEGERS { nameptr namesleft numnames numaux len } +STRINGS { s t u v } + +% ------------------------------------------------------------ +% E N T R I E S +% ------------------------------------------------------------ + +ENTRY + { name + nickname + birthday + birthyear + address + phone + cellular + fax + email + url + account + p.address + p.phone + p.cellular + p.fax + p.email + p.url + p.account + r.address + r.phone + r.cellular + r.fax + r.email + r.url + r.account + w.title + w.name + w.address + w.phone + w.cellular + w.fax + w.email + w.url + w.account + note + } + {} + { birthday.str + private.str + residence.str + work.str + note.str + and.str + nickname.str + address.str + phone.str + cellular.str + fax.str + email.str + url.str + account.str + title.str + name.str + } + + +% ------------------------------------------------------------ +% G E N E R A L +% ------------------------------------------------------------ + +FUNCTION {init.strings} +{ + +% CUSOTM this is the 'html' equivalent for the \dirXXX customization +% commands + + "
    birthday
" 'birthday.str := + "
    home
" 'private.str := + "
    residence
" 'residence.str := + "
    workplace
" 'work.str := + "
    note
" 'note.str := + + " and " 'and.str := + " aka " 'nickname.str := + "" 'address.str := + "Phn: " 'phone.str := + "GSM: " 'cellular.str := + "Fax: " 'fax.str := + "" 'email.str := + "" 'url.str := + "Account: " 'account.str := + "" 'title.str := + "" 'name.str := +} + +FUNCTION {output.nonnull} +{ 's := + write$ + newline$ + "
" write$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {emailize} +{ duplicate$ empty$ + { pop$ "" } + { "" * swap$ * "" * } + if$ +} + +FUNCTION {urlize} +{ duplicate$ empty$ + { pop$ "" } + { "" * swap$ * "" * } + if$ +} + +FUNCTION {ttize} +{ duplicate$ empty$ + { pop$ "" } + { "" swap$ * "" * } + if$ +} + +% ------------------------------------------------------------ +% S O R T I N G F U N C T I O N S +% ------------------------------------------------------------ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {sort.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + + +FUNCTION {sort.raw.names} +{ 't := + "A " #2 "L'" #2 + "An " #3 "Au " #3 "Le " #3 "La " #3 + "The " #4 "Les " #4 "Aux " #4 + t + chop.word chop.word + chop.word chop.word chop.word chop.word + chop.word chop.word chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {name.sort} +{ name empty$ + { " Name field missing in entry '" cite$ * "'" * warning$ "" } + { name sort.names } + if$ +} + +FUNCTION {raw.name.sort} +{ name empty$ + { " Name field missing in entry '" cite$ * "'" * warning$ "" } + { name sort.raw.names } + if$ +} + +FUNCTION {presort} +{ type$ "company" = + type$ "place" = + or + { raw.name.sort } + { name.sort } + if$ + " " + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +% ------------------------------------------------------------ +% P R E - A N D P O S T - H E A D E R S +% ------------------------------------------------------------ + +FUNCTION {begin.bib} +{ "" write$ + newline$ + "Address Book (generated by the LaTeX directory package)" write$ + newline$ +} + +FUNCTION {end.bib} +{ newline$ + "


This address book was generated by directory, version 1.15
" write$ + newline$ +} + +% ------------------------------------------------------------ +% F O R M A T S +% ------------------------------------------------------------ + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { +% CUSTOM uncomment one of the following lines to have the behaviour on the right + s nameptr "{ff{ } }{vv{ } }{ll{ }}{, jj{ }}" format.name$ 't := % Christophe de Geuzaine, jr +% s nameptr "{f.{ } }{vv{ } }{ll{ }}{, jj{ }}" format.name$ 't := % C. de Geuzaine, jr +% s nameptr "{vv{ } }{ll{ }}{ f.{ }}{, jj{ }}" format.name$ 't := % de Geuzaine C., jr +% s nameptr "{vv{ } }{ll{ }}{, ff{ }}{, jj{ }}" format.name$ 't := % de Geuzaine, Christophe, jr + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { and.str * t * } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + + +FUNCTION {format.dates} +{ + 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + + birthyear empty$ + { #0 'numaux := } + { birthyear num.names$ 'numaux := + numnames numaux = + { } + { " birthdays and birthyears don't match in entry '" cite$ * "'" * warning$ } + if$ + } + if$ + +% CUSTOM + + { namesleft #0 > } + { s nameptr "{ff}" format.name$ 't := + s nameptr "{ll}" format.name$ 'u := + + nameptr #1 > + { namesleft #1 > + { ", " * t * "/" * u * } + { and.str * t * "/" * u * } + if$ + } + { t "/" * u * } + if$ + + numaux #0 > not + { } + { birthyear nameptr "{ll}" format.name$ 'v := + "/" * v * } + if$ + + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + numaux #1 - 'numaux := + } + while$ +} + +FUNCTION {format.years} +{ + 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + + { namesleft #0 > } + { s nameptr "{ll}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { and.str * t * } + if$ + } + t + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.name} +{ name empty$ + { "" } + { name format.names } + if$ +} + +FUNCTION {format.nickname} +{ nickname empty$ + { "" } + { nickname.str nickname format.names * } + if$ +} + +FUNCTION {format.birthday.flag} +{ birthyear empty$ not + birthday empty$ not + or + { birthday.str } + { "" } + if$ +} + +FUNCTION {format.birthday} +{ birthday empty$ + { + birthyear empty$ + { "" } + { birthyear format.years } + if$ + } + { birthday format.dates } + if$ +} + +FUNCTION {format.address} +{ address empty$ + { "" } + { address.str address * } + if$ +} + +FUNCTION {format.account} +{ account empty$ + { "" } + { account.str account ttize * } + if$ +} + +FUNCTION {format.phone} +{ phone empty$ + { "" } + { phone.str phone * } + if$ +} + +FUNCTION {format.cellular} +{ cellular empty$ + { "" } + { cellular.str cellular * } + if$ +} + +FUNCTION {format.fax} +{ fax empty$ + { "" } + { fax.str fax * } + if$ +} + +FUNCTION {format.email} +{ email empty$ + { "" } + { email.str email email emailize * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { url.str url url urlize * } + if$ +} + + +FUNCTION {format.p.flag} +{ p.address empty$ not + p.phone empty$ not + p.cellular empty$ not + p.fax empty$ not + p.email empty$ not + p.url empty$ not + p.account empty$ not + or or or or or or + { private.str } + { "" } + if$ +} + +FUNCTION {format.p.address} +{ p.address empty$ + { "" } + { address.str p.address * } + if$ +} + +FUNCTION {format.p.phone} +{ p.phone empty$ + { "" } + { phone.str p.phone * } + if$ +} + +FUNCTION {format.p.cellular} +{ p.cellular empty$ + { "" } + { cellular.str p.cellular * } + if$ +} + +FUNCTION {format.p.fax} +{ p.fax empty$ + { "" } + { fax.str p.fax * } + if$ +} + +FUNCTION {format.p.email} +{ p.email empty$ + { "" } + { email.str p.email p.email emailize * } + if$ +} + +FUNCTION {format.p.url} +{ p.url empty$ + { "" } + { url.str p.url p.url urlize * } + if$ +} + +FUNCTION {format.p.account} +{ p.account empty$ + { "" } + { account.str p.account ttize * } + if$ +} + +FUNCTION {format.r.flag} +{ r.address empty$ not + r.phone empty$ not + r.cellular empty$ not + r.fax empty$ not + r.email empty$ not + r.url empty$ not + r.account empty$ not + or or or or or or + { residence.str } + { "" } + if$ +} + +FUNCTION {format.r.address} +{ r.address empty$ + { "" } + { address.str r.address * } + if$ +} + +FUNCTION {format.r.phone} +{ r.phone empty$ + { "" } + { phone.str r.phone * } + if$ +} + +FUNCTION {format.r.cellular} +{ r.cellular empty$ + { "" } + { cellular.str r.cellular * } + if$ +} + +FUNCTION {format.r.fax} +{ r.fax empty$ + { "" } + { fax.str r.fax * } + if$ +} + +FUNCTION {format.r.email} +{ r.email empty$ + { "" } + { email.str r.email r.email emailize * } + if$ +} + +FUNCTION {format.r.url} +{ r.url empty$ + { "" } + { url.str r.url r.url urlize * } + if$ +} + +FUNCTION {format.r.account} +{ r.account empty$ + { "" } + { account.str r.account ttize * } + if$ +} + +FUNCTION {format.w.flag} +{ w.title empty$ not + w.name empty$ not + w.address empty$ not + w.phone empty$ not + w.cellular empty$ not + w.fax empty$ not + w.email empty$ not + w.url empty$ not + w.account empty$ not + or or or or or or or or + { work.str } + { "" } + if$ +} + +FUNCTION {format.w.title} +{ w.title empty$ + { "" } + { title.str w.title * } + if$ +} + +FUNCTION {format.w.name} +{ w.name empty$ + { "" } + { name.str w.name * } + if$ +} + +FUNCTION {format.w.address} +{ w.address empty$ + { "" } + { address.str w.address * } + if$ +} + +FUNCTION {format.w.phone} +{ w.phone empty$ + { "" } + { phone.str w.phone * } + if$ +} + +FUNCTION {format.w.cellular} +{ w.cellular empty$ + { "" } + { cellular.str w.cellular * } + if$ +} + +FUNCTION {format.w.fax} +{ w.fax empty$ + { "" } + { fax.str w.fax * } + if$ +} + +FUNCTION {format.w.email} +{ w.email empty$ + { "" } + { email.str w.email w.email emailize * } + if$ +} + +FUNCTION {format.w.url} +{ w.url empty$ + { "" } + { url.str w.url w.url urlize * } + if$ +} + +FUNCTION {format.w.account} +{ w.account empty$ + { "" } + { account.str w.account ttize * } + if$ +} + +FUNCTION {format.note.flag} +{ note empty$ + { "" } + { note.str } + if$ +} + +FUNCTION {format.note} +{ note empty$ + { "" } + { note } + if$ +} + + +% ------------------------------------------------------------ +% P E R S O N E N T R Y +% ------------------------------------------------------------ + +FUNCTION { person } +{ + init.strings + newline$ + "

" write$ + format.name write$ + "
" write$ + + format.nickname write$ + + "" + format.birthday.flag output + format.birthday output + + format.p.flag output + format.p.address output + format.p.phone output + format.p.cellular output + format.p.fax output + format.p.email output + format.p.url output + format.p.account output + + format.r.flag output + format.r.address output + format.r.phone output + format.r.cellular output + format.r.fax output + format.r.email output + format.r.url output + format.r.account output + + format.w.flag output + format.w.title output + format.w.name output + format.w.address output + format.w.phone output + format.w.cellular output + format.w.fax output + format.w.email output + format.w.url output + format.w.account output + + format.note.flag output + format.note output + + write$ + newline$ +} + +% ------------------------------------------------------------ +% C O M P A N Y E N T R Y +% ------------------------------------------------------------ + + +FUNCTION { company } +{ + init.strings + newline$ + "

" write$ + name write$ + "
" write$ + + "" + format.address output + format.phone output + format.cellular output + format.fax output + format.email output + format.url output + format.account output + format.note.flag output + format.note output + + write$ + newline$ +} + +% ------------------------------------------------------------ +% P L A C E E N T R Y +% ------------------------------------------------------------ + +FUNCTION { place } +{ + init.strings + newline$ + "

" write$ + name write$ + "
" write$ + + "" + format.address output + format.phone output + format.cellular output + format.fax output + format.note.flag output + format.note output + + write$ + newline$ +} + +% ------------------------------------------------------------ +% M A I N +% ------------------------------------------------------------ + +READ +ITERATE {presort} +SORT +EXECUTE {begin.bib} +ITERATE {call.type$} +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/directory/address.bst b/Master/texmf-dist/bibtex/bst/directory/address.bst new file mode 100644 index 00000000000..8f692899926 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/directory/address.bst @@ -0,0 +1,767 @@ +%% address.bst +%% Copyright 1999-2000 Christophe Geuzaine +% +% Last Mod by Christophe on Sun Aug 27 21:07:56 2000 +% +% This program 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 (at your option) any later version. +% +% BibTeX bibliography style `address.bst' +% 'directory' database: all fields +% +% Christophe.Geuzaine@advalvas.be +% +% The parts you may want to customize are labeled with "CUSTOM" +% + +INTEGERS { nameptr namesleft numnames numaux len } +STRINGS { s t u v } + +% ------------------------------------------------------------ +% E N T R I E S +% ------------------------------------------------------------ + +ENTRY + { name + nickname + birthday + birthyear + address + phone + cellular + fax + email + url + account + p.address + p.phone + p.cellular + p.fax + p.email + p.url + p.account + r.address + r.phone + r.cellular + r.fax + r.email + r.url + r.account + w.title + w.name + w.address + w.phone + w.cellular + w.fax + w.email + w.url + w.account + note + } + {} + { label + letter + } + +% ------------------------------------------------------------ +% G E N E R A L +% ------------------------------------------------------------ + +FUNCTION {output} +{ 's := + s empty$ + {} + { s write$ + newline$ + "\dirblock" write$ + newline$ + } + if$ +} + +FUNCTION {output.flag} +{ 's := + s empty$ + {} + { s write$ + newline$ + } + if$ +} + + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +% ------------------------------------------------------------ +% S O R T I N G F U N C T I O N S +% ------------------------------------------------------------ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {sort.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + + +FUNCTION {sort.raw.names} +{ 't := + "A " #2 "L'" #2 + "An " #3 "Au " #3 "Le " #3 "La " #3 + "The " #4 "Les " #4 "Aux " #4 + t + chop.word chop.word + chop.word chop.word chop.word chop.word + chop.word chop.word chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {name.sort} +{ name empty$ + { " Name field missing in entry '" cite$ * "'" * warning$ "" } + { name sort.names } + if$ +} + +FUNCTION {raw.name.sort} +{ name empty$ + { " Name field missing in entry '" cite$ * "'" * warning$ "" } + { name sort.raw.names } + if$ +} + +FUNCTION {presort} +{ type$ "company" = + type$ "place" = + or + { raw.name.sort } + { name.sort } + if$ + " " + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +FUNCTION {format.first.letter} +{ type$ "company" = + type$ "place" = + or + { raw.name.sort } + { name.sort } + if$ + #1 #1 substring$ +} + +% ------------------------------------------------------------ +% P R E - A N D P O S T - H E A D E R S +% ------------------------------------------------------------ + +FUNCTION {begin.bib} +{ "\begin{theaddressbook}" write$ + newline$ +} + +FUNCTION {end.bib} +{ newline$ + "\end{theaddressbook}" write$ + newline$ +} + +% ------------------------------------------------------------ +% F O R M A T S +% ------------------------------------------------------------ + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { +% CUSTOM uncomment one of the following lines to have the behaviour on the right + s nameptr "{ff }{vv }{ll}{, jj}" format.name$ 't := % Christophe de Geuzaine, jr +% s nameptr "{f. }{vv }{ll}{, jj}" format.name$ 't := % C. de Geuzaine, jr +% s nameptr "{vv }{ll}{ f.}{, jj}" format.name$ 't := % de Geuzaine C., jr +% s nameptr "{vv }{ll}{, ff}{, jj}" format.name$ 't := % de Geuzaine, Christophe, jr + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { " {\dirandf} " * t * } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + + +FUNCTION {format.dates} +{ + 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + + birthyear empty$ + { #0 'numaux := } + { birthyear num.names$ 'numaux := + numnames numaux = + { } + { " birthdays and birthyears don't match in entry '" cite$ * "'" * warning$ } + if$ + } + if$ + +% CUSTOM you shoudn't change this, but rather redefine the command \Dirbirthday. + + { namesleft #0 > } + { s nameptr "{ff}" format.name$ 't := + s nameptr "{ll}" format.name$ 'u := + + nameptr #1 > + { namesleft #1 > + { ", \dirbira{" * t * "}{" * u * "}" * } + { " {\dirandf} \dirbira{" * t * "}{" * u * "}" * } + if$ + } + { "\dirbira{" t * "}{" * u * "}" * } + if$ + + numaux #0 > not + { } + { birthyear nameptr "{ll}" format.name$ 'v := + "\dirbiya{" * v * "}" * } + if$ + + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + numaux #1 - 'numaux := + } + while$ +} + +FUNCTION {format.years} +{ + 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + + { namesleft #0 > } + { s nameptr "{ll}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", \dirbyra{" * t * "}" * } + { " {\dirandf} \dirbyra{" * t * "}" * } + if$ + } + { "\dirbyra{" t * "}" * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.name} +{ name empty$ + { "" } + { name format.names } + if$ +} + +FUNCTION {format.nickname} +{ nickname empty$ + { "" } + { newline$ + "\dirnica{" nickname format.names "}" * * } + if$ +} + +FUNCTION {format.birthday.flag} +{ birthyear empty$ not + birthday empty$ not + or + { "\dirbirf" } + { "" } + if$ +} + +FUNCTION {format.birthday} +{ birthday empty$ + { + birthyear empty$ + { "" } + { birthyear format.years } + if$ + } + { birthday format.dates } + if$ +} + +FUNCTION {format.address} +{ address empty$ + { "" } + { "\diradda{" address "}" * * } + if$ +} + +FUNCTION {format.account} +{ account empty$ + { "" } + { "\diracca{" account "}" * * } + if$ +} + +FUNCTION {format.phone} +{ phone empty$ + { "" } + { "\dirphoa{" phone "}" * * } + if$ +} + +FUNCTION {format.cellular} +{ cellular empty$ + { "" } + { "\dircela{" cellular "}" * * } + if$ +} + +FUNCTION {format.fax} +{ fax empty$ + { "" } + { "\dirfaxa{" fax "}" * * } + if$ +} + +FUNCTION {format.email} +{ email empty$ + { "" } + { "\diremaa{" email "}" * * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { "\dirurla{" url "}" * * } + if$ +} + + +FUNCTION {format.p.flag} +{ p.address empty$ not + p.phone empty$ not + p.cellular empty$ not + p.fax empty$ not + p.email empty$ not + p.url empty$ not + p.account empty$ not + or or or or or or + { "\dirprif" } + { "" } + if$ +} + +FUNCTION {format.p.address} +{ p.address empty$ + { "" } + { "\dirpadda{" p.address "}" * * } + if$ +} + +FUNCTION {format.p.phone} +{ p.phone empty$ + { "" } + { "\dirpphoa{" p.phone "}" * * } + if$ +} + +FUNCTION {format.p.cellular} +{ p.cellular empty$ + { "" } + { "\dirpcela{" p.cellular "}" * * } + if$ +} + +FUNCTION {format.p.fax} +{ p.fax empty$ + { "" } + { "\dirpfaxa{" p.fax "}" * * } + if$ +} + +FUNCTION {format.p.email} +{ p.email empty$ + { "" } + { "\dirpemaa{" p.email "}" * * } + if$ +} + +FUNCTION {format.p.url} +{ p.url empty$ + { "" } + { "\dirpurla{" p.url "}" * * } + if$ +} + +FUNCTION {format.p.account} +{ p.account empty$ + { "" } + { "\dirpacca{" p.account "}" * * } + if$ +} + +FUNCTION {format.r.flag} +{ r.address empty$ not + r.phone empty$ not + r.cellular empty$ not + r.fax empty$ not + r.email empty$ not + r.url empty$ not + r.account empty$ not + or or or or or or + { "\dirresf" } + { "" } + if$ +} + +FUNCTION {format.r.address} +{ r.address empty$ + { "" } + { "\dirradda{" r.address "}" * * } + if$ +} + +FUNCTION {format.r.phone} +{ r.phone empty$ + { "" } + { "\dirrphoa{" r.phone "}" * * } + if$ +} + +FUNCTION {format.r.cellular} +{ r.cellular empty$ + { "" } + { "\dirrcela{" r.cellular "}" * * } + if$ +} + +FUNCTION {format.r.fax} +{ r.fax empty$ + { "" } + { "\dirrfaxa{" r.fax "}" * * } + if$ +} + +FUNCTION {format.r.email} +{ r.email empty$ + { "" } + { "\dirremaa{" r.email "}" * * } + if$ +} + +FUNCTION {format.r.url} +{ r.url empty$ + { "" } + { "\dirrurla{" r.url "}" * * } + if$ +} + +FUNCTION {format.r.account} +{ r.account empty$ + { "" } + { "\dirracca{" r.account "}" * * } + if$ +} + +FUNCTION {format.w.flag} +{ w.title empty$ not + w.name empty$ not + w.address empty$ not + w.phone empty$ not + w.cellular empty$ not + w.fax empty$ not + w.email empty$ not + w.url empty$ not + w.account empty$ not + or or or or or or or or + { "\dirworf" } + { "" } + if$ +} + +FUNCTION {format.w.title} +{ w.title empty$ + { "" } + { "\dirtita{" w.title "}" * * } + if$ +} + +FUNCTION {format.w.name} +{ w.name empty$ + { "" } + { "\dirnama{" w.name "}" * * } + if$ +} + +FUNCTION {format.w.address} +{ w.address empty$ + { "" } + { "\dirwadda{" w.address "}" * * } + if$ +} + +FUNCTION {format.w.phone} +{ w.phone empty$ + { "" } + { "\dirwphoa{" w.phone "}" * * } + if$ +} + +FUNCTION {format.w.cellular} +{ w.cellular empty$ + { "" } + { "\dirwcela{" w.cellular "}" * * } + if$ +} + +FUNCTION {format.w.fax} +{ w.fax empty$ + { "" } + { "\dirwfaxa{" w.fax "}" * * } + if$ +} + +FUNCTION {format.w.email} +{ w.email empty$ + { "" } + { "\dirwemaa{" w.email "}" * * } + if$ +} + +FUNCTION {format.w.url} +{ w.url empty$ + { "" } + { "\dirwurla{" w.url "}" * * } + if$ +} + +FUNCTION {format.w.account} +{ w.account empty$ + { "" } + { "\dirwacca{" w.account "}" * * } + if$ +} + +FUNCTION {format.note.flag} +{ note empty$ + { "" } + { "\dirnotf" } + if$ +} + +FUNCTION {format.note} +{ note empty$ + { "" } + { "\dirnota{" note "}" * * } + if$ +} + + +% ------------------------------------------------------------ +% P E R S O N E N T R Y +% ------------------------------------------------------------ + +FUNCTION { person } +{ + newline$ + + "\dircheck{" write$ + format.first.letter write$ + "}" write$ + newline$ + + "\diritem[" write$ + format.name write$ + "]{" write$ + "d." cite$ * write$ + "}\dirgroup" write$ + format.nickname write$ + newline$ + "\dirblock" write$ + newline$ + + format.birthday.flag output.flag + format.birthday output + + format.p.flag output.flag + format.p.address output + format.p.phone output + format.p.cellular output + format.p.fax output + format.p.email output + format.p.url output + format.p.account output + + format.r.flag output.flag + format.r.address output + format.r.phone output + format.r.cellular output + format.r.fax output + format.r.email output + format.r.url output + format.r.account output + + format.w.flag output.flag + format.w.title output + format.w.name output + format.w.address output + format.w.phone output + format.w.cellular output + format.w.fax output + format.w.email output + format.w.url output + format.w.account output + + format.note.flag output.flag + format.note output + + "\direndgroup" write$ + newline$ +} + +% ------------------------------------------------------------ +% C O M P A N Y E N T R Y +% ------------------------------------------------------------ + + +FUNCTION { company } +{ + newline$ + + "\dircheck{" write$ + format.first.letter write$ + "}" write$ + newline$ + + "\diritem[" write$ + name write$ + "]{" write$ + "d." cite$ * write$ + "}\dirgroup" write$ + newline$ + "\dirblock" write$ + newline$ + + format.address output + format.phone output + format.cellular output + format.fax output + format.email output + format.url output + format.account output + format.note.flag output.flag + format.note output + + "\direndgroup" write$ + newline$ +} + +% ------------------------------------------------------------ +% P L A C E E N T R Y +% ------------------------------------------------------------ + +FUNCTION { place } +{ + newline$ + + "\dircheck{" write$ + format.first.letter write$ + "}" write$ + newline$ + + "\diritem[" write$ + name write$ + "]{" write$ + "d." cite$ * write$ + "}\dirgroup" write$ + newline$ + "\dirblock" write$ + newline$ + + format.address output + format.phone output + format.cellular output + format.fax output + format.note.flag output.flag + format.note output + + "\direndgroup" write$ + newline$ +} + +% ------------------------------------------------------------ +% M A I N +% ------------------------------------------------------------ + +READ +ITERATE {presort} +SORT +EXECUTE {begin.bib} +ITERATE {call.type$} +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/directory/email-html.bst b/Master/texmf-dist/bibtex/bst/directory/email-html.bst new file mode 100644 index 00000000000..ef151557491 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/directory/email-html.bst @@ -0,0 +1,361 @@ +%% email-html.bst +%% Copyright 1999-2000 Christophe Geuzaine +% +% Last Mod by Christophe on Sun Aug 27 21:23:27 2000 +% +% This program 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 (at your option) any later version. +% +% BibTeX bibliography style `addr-htm.bst' +% 'directory' database: all fields +% +% Christophe.Geuzaine@advalvas.be +% +% This is definitively a hack... +% +% The parts you may want to customize are labeled with "CUSTOM" +% + +INTEGERS { nameptr namesleft numnames numaux len } +STRINGS { s t u v } + +% ------------------------------------------------------------ +% E N T R I E S +% ------------------------------------------------------------ + +ENTRY + { name + email + p.email + r.email + w.email + } + {} + { private.str + residence.str + work.str + and.str + } + + +% ------------------------------------------------------------ +% G E N E R A L +% ------------------------------------------------------------ + +FUNCTION {init.strings} +{ +% CUSOTM this is the 'html' equivalent for the \dirXXX customization +% commands + + " priv." 'private.str := + " temp." 'residence.str := + " prof." 'work.str := + " and " 'and.str := +} + +FUNCTION {output.nonnull} +{ 's := + write$ + newline$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {emailize} +{ duplicate$ empty$ + { pop$ "" } + { "" * swap$ * "" * } + if$ +} + +% ------------------------------------------------------------ +% S O R T I N G F U N C T I O N S +% ------------------------------------------------------------ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {sort.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + + +FUNCTION {sort.raw.names} +{ 't := + "A " #2 "L'" #2 + "An " #3 "Au " #3 "Le " #3 "La " #3 + "The " #4 "Les " #4 "Aux " #4 + t + chop.word chop.word + chop.word chop.word chop.word chop.word + chop.word chop.word chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {name.sort} +{ name empty$ + { " Name field missing in entry '" cite$ * "'" * warning$ "" } + { name sort.names } + if$ +} + +FUNCTION {raw.name.sort} +{ name empty$ + { " Name field missing in entry '" cite$ * "'" * warning$ "" } + { name sort.raw.names } + if$ +} + +FUNCTION {presort} +{ type$ "company" = + type$ "place" = + or + { raw.name.sort } + { name.sort } + if$ + " " + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +% ------------------------------------------------------------ +% P R E - A N D P O S T - H E A D E R S +% ------------------------------------------------------------ + +FUNCTION {begin.bib} +{ "" write$ + newline$ + "E-mail directory (generated by the LaTeX directory package)" write$ + newline$ +} + +FUNCTION {end.bib} +{ newline$ + "


This e-mail directory was generated by directory, version 1.15
" write$ + newline$ +} + +% ------------------------------------------------------------ +% F O R M A T S +% ------------------------------------------------------------ + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { +% CUSTOM uncomment one of the following lines to have the behaviour on the right +% s nameptr "{ff{ } }{vv{ } }{ll{ }}{, jj{ }}" format.name$ 't := % Christophe de Geuzaine, jr +% s nameptr "{f.{ } }{vv{ } }{ll{ }}{, jj{ }}" format.name$ 't := % C. de Geuzaine, jr +% s nameptr "{vv{ } }{ll{ }}{ f.{ }}{, jj{ }}" format.name$ 't := % de Geuzaine C., jr + s nameptr "{vv{ } }{ll{ }}{, ff{ }}{, jj{ }}" format.name$ 't := % de Geuzaine, Christophe, jr + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { and.str * t * } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.name} +{ name empty$ + { "" } + { name format.names } + if$ +} + +FUNCTION {format.email} +{ email empty$ + { "" } + { email email emailize } + if$ +} + +FUNCTION {format.p.flag} +{ p.email empty$ not + { private.str } + { "" } + if$ +} + +FUNCTION {format.p.email} +{ p.email empty$ + { "" } + { p.email p.email emailize } + if$ +} + +FUNCTION {format.r.flag} +{ r.email empty$ not + { residence.str } + { "" } + if$ +} + +FUNCTION {format.r.email} +{ r.email empty$ + { "" } + { r.email r.email emailize } + if$ +} + +FUNCTION {format.w.flag} +{ w.email empty$ not + { work.str } + { "" } + if$ +} + +FUNCTION {format.w.email} +{ w.email empty$ + { "" } + { w.email w.email emailize } + if$ +} + + +% ------------------------------------------------------------ +% P E R S O N E N T R Y +% ------------------------------------------------------------ + +FUNCTION { person } +{ + p.email empty$ not + r.email empty$ not + w.email empty$ not + or or + { init.strings + + newline$ + "
" write$ + format.name write$ + "" write$ + + "" + format.p.flag output + format.p.email output + format.r.flag output + format.r.email output + format.w.flag output + format.w.email output + + write$ + newline$ + } + { } + if$ +} + +% ------------------------------------------------------------ +% C O M P A N Y E N T R Y +% ------------------------------------------------------------ + + +FUNCTION { company } +{ + email empty$ not + { init.strings + + newline$ + "
" write$ + name write$ + "" write$ + + "" + format.email output + + write$ + newline$ + } + { } + if$ + +} + +% ------------------------------------------------------------ +% P L A C E E N T R Y +% ------------------------------------------------------------ + +FUNCTION { place } +{ +} + +% ------------------------------------------------------------ +% M A I N +% ------------------------------------------------------------ + +READ +ITERATE {presort} +SORT +EXECUTE {begin.bib} +ITERATE {call.type$} +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/directory/letter.bst b/Master/texmf-dist/bibtex/bst/directory/letter.bst new file mode 100644 index 00000000000..a86270c01dd --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/directory/letter.bst @@ -0,0 +1,272 @@ +%% letter.bst +%% Copyright 1999-2000 Christophe Geuzaine +% +% Last Mod by Christophe on Sun Aug 27 21:24:23 2000 +% +% This program 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 (at your option) any later version. +% +% BibTeX bibliography style `letter.bst' +% 'directory' database: all fields +% +% Christophe.Geuzaine@advalvas.be +% +% The parts you may want to customize are labeled with "CUSTOM" +% + +INTEGERS { nameptr namesleft numnames numaux len } +STRINGS { s t u v } + +% ------------------------------------------------------------ +% E N T R I E S +% ------------------------------------------------------------ + +ENTRY + { name + address + p.address + r.address + w.title + w.name + w.address + } + {} + {} + + +% ------------------------------------------------------------ +% F O R M A T S +% ------------------------------------------------------------ + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { +% CUSTOM uncomment one of the following lines to have the behaviour on the right + s nameptr "{ff }{vv }{ll}{, jj}" format.name$ 't := % Christophe de Geuzaine, jr +% s nameptr "{f. }{vv }{ll}{, jj}" format.name$ 't := % C. de Geuzaine, jr +% s nameptr "{vv }{ll}{ f.}{, jj}" format.name$ 't := % de Geuzaine C., jr +% s nameptr "{vv }{ll}{, ff}{, jj}" format.name$ 't := % de Geuzaine, Christophe, jr + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { " {\dirandf} " * t * } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.name} +{ name empty$ + { "" } + { name format.names } + if$ +} + +FUNCTION {format.address} +{ address empty$ + { "" } + { " \dirnext " address * } + if$ +} + +FUNCTION {format.p.address} +{ p.address empty$ + { "" } + { " \dirnext " p.address * } + if$ +} + +FUNCTION {format.r.address} +{ r.address empty$ + { "" } + { " \dirnext " r.address * } + if$ +} + +FUNCTION {format.w.title} +{ w.title empty$ + { "" } + { " \dirnext " w.title * } + if$ +} + +FUNCTION {format.w.name} +{ w.name empty$ + { "" } + { " \dirnext " w.name * } + if$ +} + +FUNCTION {format.w.address} +{ w.address empty$ + { "" } + { " \dirnext " w.address * } + if$ +} + +% ------------------------------------------------------------ +% P E R S O N E N T R Y +% ------------------------------------------------------------ + +FUNCTION { person } +{ + "\diritem{" write$ + format.name write$ + "}{" write$ + "d." cite$ * write$ + "}" write$ + + newline$ + + "\diritem{" write$ + "\dirbegin " write$ + format.name write$ + format.p.address write$ + "\dirend " write$ + "}{" write$ + "p." cite$ * write$ + "}" write$ + + newline$ + + "\diritem{" write$ + "\dirbegin " write$ + format.name write$ + format.r.address write$ + "\dirend " write$ + "}{" write$ + "r." cite$ * write$ + "}" write$ + + newline$ + + "\diritem{" write$ + "\dirbegin " write$ + format.name write$ + format.w.title write$ + format.w.name write$ + format.w.address write$ + "\dirend " write$ + "}{" write$ + "w." cite$ * write$ + "}" write$ + + newline$ +} + +% ------------------------------------------------------------ +% C O M P A N Y E N T R Y +% ------------------------------------------------------------ + + +FUNCTION { company } +{ + "\diritem{" write$ + name write$ + "}{" write$ + "d." cite$ * write$ + "}" write$ + + newline$ + + "\diritem{" write$ + "\dirbegin " write$ + name write$ + format.address write$ + "\dirend " write$ + "}{" write$ + "p." cite$ * write$ + "}" write$ + + newline$ + + "\diritem{" write$ + "\dirbegin " write$ + name write$ + format.address write$ + "\dirend " write$ + "}{" write$ + "r." cite$ * write$ + "}" write$ + + newline$ + + "\diritem{" write$ + "\dirbegin " write$ + name write$ + format.address write$ + "\dirend " write$ + "}{" write$ + "w." cite$ * write$ + "}" write$ + + newline$ +} + +% ------------------------------------------------------------ +% P L A C E E N T R Y +% ------------------------------------------------------------ + +FUNCTION { place } +{ + "\diritem{" write$ + name write$ + "}{" write$ + "d." cite$ * write$ + "}" write$ + + newline$ + + "\diritem{" write$ + "\dirbegin " write$ + name write$ + format.address write$ + "\dirend " write$ + "}{" write$ + "p." cite$ * write$ + "}" write$ + + newline$ + + "\diritem{" write$ + "\dirbegin " write$ + name write$ + format.address write$ + "\dirend " write$ + "}{" write$ + "r." cite$ * write$ + "}" write$ + + newline$ + + "\diritem{" write$ + "\dirbegin " write$ + name write$ + format.address write$ + "\dirend " write$ + "}{" write$ + "w." cite$ * write$ + "}" write$ + + newline$ +} + +% ------------------------------------------------------------ +% M A I N +% ------------------------------------------------------------ + +READ +ITERATE {call.type$} + diff --git a/Master/texmf-dist/bibtex/bst/directory/phone.bst b/Master/texmf-dist/bibtex/bst/directory/phone.bst new file mode 100644 index 00000000000..acd92094b15 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/directory/phone.bst @@ -0,0 +1,487 @@ +%% phone.bst +%% Copyright 1999-2000 Christophe Geuzaine +% +% Last Mod by Christophe on Sun Aug 27 21:14:08 2000 +% +% This program 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 (at your option) any later version. +% +% BibTeX bibliography style `phone.bst' +% 'directory' database: only phone and fax fields +% +% Christophe.Geuzaine@advalvas.be +% +% The parts you may want to customize are labeled with "CUSTOM" +% + +INTEGERS { nameptr namesleft numnames numaux len } +STRINGS { s t u v } + +% ------------------------------------------------------------ +% E N T R I E S +% ------------------------------------------------------------ + +ENTRY + { name + phone + cellular + fax + p.phone + p.cellular + p.fax + r.phone + r.cellular + r.fax + w.phone + w.cellular + w.fax + } + {} + {} + +% ------------------------------------------------------------ +% G E N E R A L +% ------------------------------------------------------------ + +FUNCTION {output} +{ 's := + s empty$ + {} + { s write$ + newline$ + "\dirblock" write$ + newline$ + } + if$ +} + +FUNCTION {output.flag} +{ 's := + s empty$ + {} + { s write$ + newline$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + + +% ------------------------------------------------------------ +% S O R T I N G F U N C T I O N S +% ------------------------------------------------------------ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {sort.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + + +FUNCTION {sort.raw.names} +{ 't := + "A " #2 "L'" #2 + "An " #3 "Au " #3 "Le " #3 "La " #3 + "The " #4 "Les " #4 "Aux " #4 + t + chop.word chop.word + chop.word chop.word chop.word chop.word + chop.word chop.word chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {name.sort} +{ name empty$ + { " Name field missing in entry '" cite$ * "'" * warning$ "" } + { name sort.names } + if$ +} + +FUNCTION {raw.name.sort} +{ name empty$ + { " Name field missing in entry '" cite$ * "'" * warning$ "" } + { name sort.raw.names } + if$ +} + +FUNCTION {presort} +{ type$ "company" = + type$ "place" = + or + { raw.name.sort } + { name.sort } + if$ + " " + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +FUNCTION {format.first.letter} +{ type$ "company" = + type$ "place" = + or + { raw.name.sort } + { name.sort } + if$ + #1 #1 substring$ +} + + +% ------------------------------------------------------------ +% P R E - A N D P O S T - H E A D E R S +% ------------------------------------------------------------ + +FUNCTION {begin.bib} +{ "\begin{thephonebook}" write$ + newline$ +} + +FUNCTION {end.bib} +{ newline$ + "\end{thephonebook}" write$ + newline$ +} + +% ------------------------------------------------------------ +% F O R M A T S +% ------------------------------------------------------------ + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { +% CUSTOM uncomment one of the following lines to have the behaviour on the right +% s nameptr "{ff }{vv }{ll}{, jj}" format.name$ 't := % Christophe de Geuzaine, jr +% s nameptr "{f. }{vv }{ll}{, jj}" format.name$ 't := % C. de Geuzaine, jr + s nameptr "{vv }{ll}{ f.}{, jj}" format.name$ 't := % de Geuzaine C., jr +% s nameptr "{vv }{ll}{, ff}{, jj}" format.name$ 't := % de Geuzaine, Christophe, jr + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { " {\dirandf} " * t * } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.name} +{ name empty$ + { "" } + { name format.names } + if$ +} + +FUNCTION {format.phone} +{ phone empty$ + { "" } + { "\dirphoa{" phone "}" * * } + if$ +} + +FUNCTION {format.cellular} +{ cellular empty$ + { "" } + { "\dircela{" cellular "}" * * } + if$ +} + +FUNCTION {format.fax} +{ fax empty$ + { "" } + { "\dirfaxa{" fax "}" * * } + if$ +} + +FUNCTION {format.p.flag} +{ p.phone empty$ not + p.cellular empty$ not + p.fax empty$ not + or or + { "\dirprif " } + { "" } + if$ +} + +FUNCTION {format.p.phone} +{ p.phone empty$ + { "" } + { "\dirpphoa{" p.phone "}" * * } + if$ +} + +FUNCTION {format.p.cellular} +{ p.cellular empty$ + { "" } + { "\dirpcela{" p.cellular "}" * * } + if$ +} + +FUNCTION {format.p.fax} +{ p.fax empty$ + { "" } + { "\dirpfaxa{" p.fax "}" * * } + if$ +} + +FUNCTION {format.r.flag} +{ r.phone empty$ not + r.cellular empty$ not + r.fax empty$ not + or or + { "\dirresf " } + { "" } + if$ +} + +FUNCTION {format.r.phone} +{ r.phone empty$ + { "" } + { "\dirrphoa{" r.phone "}" * * } + if$ +} + +FUNCTION {format.r.cellular} +{ r.cellular empty$ + { "" } + { "\dirrcela{" r.cellular "}" * * } + if$ +} + +FUNCTION {format.r.fax} +{ r.fax empty$ + { "" } + { "\dirrfaxa{" r.fax "}" * * } + if$ +} + +FUNCTION {format.w.flag} +{ w.phone empty$ not + w.cellular empty$ not + w.fax empty$ not + or or + { "\dirworf " } + { "" } + if$ +} + +FUNCTION {format.w.phone} +{ w.phone empty$ + { "" } + { "\dirwphoa{" w.phone "}" * * } + if$ +} + +FUNCTION {format.w.cellular} +{ w.cellular empty$ + { "" } + { "\dirwcela{" w.cellular "}" * * } + if$ +} + +FUNCTION {format.w.fax} +{ w.fax empty$ + { "" } + { "\dirwfaxa{" w.fax "}" * * } + if$ +} + +% ------------------------------------------------------------ +% P E R S O N E N T R Y +% ------------------------------------------------------------ + +FUNCTION { person } +{ + p.phone empty$ not + p.cellular empty$ not + p.fax empty$ not + r.phone empty$ not + r.cellular empty$ not + r.fax empty$ not + w.phone empty$ not + w.cellular empty$ not + w.fax empty$ not + or or or or or or or or + { newline$ + + "\dircheck{" write$ + format.first.letter write$ + "}" write$ + newline$ + + "\diritem[" write$ + format.name write$ + "]{" write$ + "d." cite$ * write$ + "}\dirgroup" write$ + newline$ + "\dirblock" write$ + newline$ + + format.p.flag output.flag + format.p.phone output + format.p.cellular output + format.p.fax output + + format.r.flag output.flag + format.r.phone output + format.r.cellular output + format.r.fax output + + format.w.flag output.flag + format.w.phone output + format.w.cellular output + format.w.fax output + + "\direndgroup" write$ + newline$ + } + { } + if$ +} + +% ------------------------------------------------------------ +% C O M P A N Y E N T R Y +% ------------------------------------------------------------ + +FUNCTION { company } +{ + phone empty$ not + cellular empty$ not + fax empty$ not + or or + { newline$ + + "\dircheck{" write$ + format.first.letter write$ + "}" write$ + newline$ + + "\diritem[" write$ + name write$ + "]{" write$ + "d." cite$ * write$ + "}\dirgroup" write$ + newline$ + "\dirblock" write$ + newline$ + + format.phone output + format.cellular output + format.fax output + + "\direndgroup" write$ + newline$ + } + { } + if$ +} + +% ------------------------------------------------------------ +% P L A C E E N T R Y +% ------------------------------------------------------------ + +FUNCTION { place } +{ + phone empty$ not + cellular empty$ not + fax empty$ not + or or + { newline$ + + "\dircheck{" write$ + format.first.letter write$ + "}" write$ + newline$ + + "\diritem[" write$ + name write$ + "]{" write$ + "d." cite$ * write$ + "}\dirgroup" write$ + newline$ + "\dirblock" write$ + newline$ + + format.phone output + format.cellular output + format.fax output + + "\direndgroup" write$ + newline$ + } + { } + if$ +} + + +% ------------------------------------------------------------ +% M A I N +% ------------------------------------------------------------ + +READ +ITERATE {presort} +SORT +EXECUTE {begin.bib} +ITERATE {call.type$} +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/dk-bib/dk-abbrv.bst b/Master/texmf-dist/bibtex/bst/dk-bib/dk-abbrv.bst new file mode 100644 index 00000000000..166f7dd5ce9 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/dk-bib/dk-abbrv.bst @@ -0,0 +1,1301 @@ +% BibTeX standard bibliography style `abbrv' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +% "Translated" into Norwegian by dag@ifi.uio.no, July 1997. +% Now called `norabbrv'. +% Added field "isbn" and "issn". dag@ifi.uio.no, April 2001. +% Translated into Danish by arne.jorgensen@tug.dk, June 2001. +% Now called `dk-abbrv'. +% This is dk-bib, Version 0.5 ($Id: dk-abbrv.bst 82 2005-10-02 16:26:11Z arne $) + +ENTRY + { address + author + booktitle + chapter + edition + printing + editor + howpublished + institution + isbn + issn + url + annote + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.annote} +{ annote empty$ + 'skip$ + { "\dkbibannote{" cite$ * "}{" * annote add.period$ * "}" * + write$ newline$ } + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ + output.annote +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {output.isbn.issn} +{ isbn empty$ + 'skip$ + { new.block "\dkbibisbn{" isbn * "}" * output } + if$ + issn empty$ + 'skip$ + { new.block "\dkbibissn{" issn * "}" * output } + if$ +} + +FUNCTION {output.url} +{ url empty$ + 'skip$ + { new.block "\dkbiburl{" url * "}" * output } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv }{ll}{~jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " et~al." * } + { " og " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", redakt\o rer" * } + { ", redakt\o r" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { "\dkbibdash" * + t #2 global.max$ substring$ 't := + { t #1 #1 substring$ "-" = } + { t #2 global.max$ substring$ 't := } + while$ + t #1 #1 substring$ " " = + { "{}" * } + { " " * } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "bind" volume tie.or.space.connect + series empty$ + 'skip$ + { " af " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "nr." } + { "Nr." } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " i " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {ordinal.translate.i} +{ duplicate$ "l" change.case$ "first" = + {pop$ "1"} + {skip$} + if$ + duplicate$ "l" change.case$ "second" = + {pop$ "2"} + {skip$} + if$ + duplicate$ "l" change.case$ "third" = + {pop$ "3"} + {skip$} + if$ + duplicate$ "l" change.case$ "fourth" = + {pop$ "4"} + {skip$} + if$ + duplicate$ "l" change.case$ "fifth" = + {pop$ "5"} + {skip$} + if$ +} + +FUNCTION {ordinal.translate.ii} +{ duplicate$ "l" change.case$ "sixth" = + {pop$ "6"} + {skip$} + if$ + duplicate$ "l" change.case$ "seventh" = + {pop$ "7"} + {skip$} + if$ + duplicate$ "l" change.case$ "eighth" = + {pop$ "8"} + {skip$} + if$ + duplicate$ "l" change.case$ "ninth" = + {pop$ "9"} + {skip$} + if$ + duplicate$ "l" change.case$ "tenth" = + {pop$ "10"} + {skip$} + if$ +} + +FUNCTION {ordinal.translate.iii} +{ duplicate$ "l" change.case$ "eleventh" = + {pop$ "11"} + {skip$} + if$ + duplicate$ "l" change.case$ "twelfth" = + {pop$ "12"} + {skip$} + if$ + duplicate$ "l" change.case$ "thirteenth" = + {pop$ "13"} + {skip$} + if$ + duplicate$ "l" change.case$ "fourteenth" = + {pop$ "14"} + {skip$} + if$ + duplicate$ "l" change.case$ "fifteenth" = + {pop$ "15"} + {skip$} + if$ +} + +FUNCTION {ordinal.translate.iv} +{ duplicate$ "l" change.case$ "sixteenth" = + {pop$ "16"} + {skip$} + if$ + duplicate$ "l" change.case$ "seventeenth" = + {pop$ "17"} + {skip$} + if$ + duplicate$ "l" change.case$ "eighteenth" = + {pop$ "18"} + {skip$} + if$ + duplicate$ "l" change.case$ "nineteenth" = + {pop$ "19"} + {skip$} + if$ + duplicate$ "l" change.case$ "twentieth" = + {pop$ "20"} + {skip$} + if$ +} + +FUNCTION {ordinal.translate} +{ ordinal.translate.i + ordinal.translate.ii + ordinal.translate.iii + ordinal.translate.iv +} + +FUNCTION {format.edition} +{ edition empty$ + printing empty$ + + + #2 + = + { "" } + { output.state mid.sentence = + { "\dkbibedition{" } + { "\dkbibEdition{" } + if$ + edition empty$ + { "" } + { edition ordinal.translate + duplicate$ "l" change.case$ + duplicate$ "u" change.case$ + = + { purify$ } + { output.state mid.sentence = + { skip$ } + { "u" change.case$ + "t" change.case$ + } + if$ + } + if$ + } + if$ + * "}{" * + printing empty$ + { "" } + { printing ordinal.translate + duplicate$ "l" change.case$ + duplicate$ "u" change.case$ + = + { purify$ } + { skip$ } + if$ + } + if$ + * "}" * + } + 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 empty$ + { "" } + { pages multi.page.check + { "side" pages n.dashify tie.or.space.connect } + { "side" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "kapitel" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "I " booktitle emphasize * } + { "I " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ isbn empty$ issn empty$ + and and and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Rapport" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "I \emph{" journal * "}" * } + if$ + } + { "I " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv }{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff~}{vv }{ll}{~jj}" format.name$ "others" = + { " et~al." * } + { " og " * editor #2 "{vv }{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Bind" volume tie.or.space.connect + " af " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "\emph{" * series * "}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "I \emph{" booktitle * "}" * } + if$ + } + { "I " key * } + if$ + } + { "I " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Specialeafhandling" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + output.isbn.issn + output.url + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "Ph.d.-afhandling" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"jan."} + +MACRO {feb} {"feb."} + +MACRO {mar} {"mar."} + +MACRO {apr} {"apr."} + +MACRO {may} {"maj"} + +MACRO {jun} {"jun."} + +MACRO {jul} {"jul."} + +MACRO {aug} {"aug."} + +MACRO {sep} {"sep."} + +MACRO {oct} {"okt."} + +MACRO {nov} {"nov."} + +MACRO {dec} {"dec."} + +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. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ f{ }}{ vv{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { organization sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + "\makeatletter" write$ newline$ + "\@tfor\dkbib@reserved@a:=0123456789\do{%" write$ newline$ + " \expandafter\sfcode\expandafter`\dkbib@reserved@a=1007}" write$ newline$ + "\providecommand{\dkbib@addperiod}{\ifnum\spacefactor=1007.\fi}" write$ newline$ + "\providecommand{\dkbibedition}[2]{#1\dkbib@addperiod~udgave}" write$ newline$ + "\providecommand{\dkbibEdition}[2]{#1\dkbib@addperiod~udgave}" write$ newline$ + "\providecommand{\dkbibisbn}[1]{\unskip\@gobble}" write$ newline$ + "\providecommand{\dkbibissn}[1]{\unskip\@gobble}" write$ newline$ + "\providecommand{\dkbiburl}[1]{\unskip\@gobble}" write$ newline$ + "\providecommand{\dkbibannote}[2]{\unskip}" write$ newline$ + "\providecommand{\dkbibdash}{\hbox{-}\penalty\@m}" write$ newline$ + "\makeatother" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/dk-bib/dk-alpha.bst b/Master/texmf-dist/bibtex/bst/dk-bib/dk-alpha.bst new file mode 100644 index 00000000000..eae749cd23d --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/dk-bib/dk-alpha.bst @@ -0,0 +1,1455 @@ +% BibTeX standard bibliography style `alpha' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +% "Translated" into Norwegian by dag@ifi.uio.no, January 1997. +% Now called `noralpha'. +% Added field "isbn" and "issn". dag@ifi.uio.no, April 2001. +% Translated into Danish by arne.jorgensen@tug.dk, June 2001. +% Now called `dk-alpha'. +% This is dk-bib, Version 0.5 ($Id: dk-alpha.bst 82 2005-10-02 16:26:11Z arne $) + +ENTRY + { address + author + booktitle + chapter + edition + printing + editor + howpublished + institution + isbn + issn + url + annote + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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 {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.annote} +{ annote empty$ + 'skip$ + { "\dkbibannote{" cite$ * "}{" * annote add.period$ * "}" * + write$ newline$ } + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ + output.annote +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {output.isbn.issn} +{ isbn empty$ + 'skip$ + { new.block "\dkbibisbn{" isbn * "}" * output } + if$ + issn empty$ + 'skip$ + { new.block "\dkbibissn{" issn * "}" * output } + if$ +} + +FUNCTION {output.url} +{ url empty$ + 'skip$ + { new.block "\dkbiburl{" url * "}" * output } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv }{ll}{~jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " et~al." * } + { " og " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", redakt\o rer" * } + { ", redakt\o r" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { "\dkbibdash" * + t #2 global.max$ substring$ 't := + { t #1 #1 substring$ "-" = } + { t #2 global.max$ substring$ 't := } + while$ + t #1 #1 substring$ " " = + { "{}" * } + { " " * } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "bind" volume tie.or.space.connect + series empty$ + 'skip$ + { " af " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "nr." } + { "Nr." } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " i " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {ordinal.translate.i} +{ duplicate$ "l" change.case$ "first" = + {pop$ "1"} + {skip$} + if$ + duplicate$ "l" change.case$ "second" = + {pop$ "2"} + {skip$} + if$ + duplicate$ "l" change.case$ "third" = + {pop$ "3"} + {skip$} + if$ + duplicate$ "l" change.case$ "fourth" = + {pop$ "4"} + {skip$} + if$ + duplicate$ "l" change.case$ "fifth" = + {pop$ "5"} + {skip$} + if$ +} + +FUNCTION {ordinal.translate.ii} +{ duplicate$ "l" change.case$ "sixth" = + {pop$ "6"} + {skip$} + if$ + duplicate$ "l" change.case$ "seventh" = + {pop$ "7"} + {skip$} + if$ + duplicate$ "l" change.case$ "eighth" = + {pop$ "8"} + {skip$} + if$ + duplicate$ "l" change.case$ "ninth" = + {pop$ "9"} + {skip$} + if$ + duplicate$ "l" change.case$ "tenth" = + {pop$ "10"} + {skip$} + if$ +} + +FUNCTION {ordinal.translate.iii} +{ duplicate$ "l" change.case$ "eleventh" = + {pop$ "11"} + {skip$} + if$ + duplicate$ "l" change.case$ "twelfth" = + {pop$ "12"} + {skip$} + if$ + duplicate$ "l" change.case$ "thirteenth" = + {pop$ "13"} + {skip$} + if$ + duplicate$ "l" change.case$ "fourteenth" = + {pop$ "14"} + {skip$} + if$ + duplicate$ "l" change.case$ "fifteenth" = + {pop$ "15"} + {skip$} + if$ +} + +FUNCTION {ordinal.translate.iv} +{ duplicate$ "l" change.case$ "sixteenth" = + {pop$ "16"} + {skip$} + if$ + duplicate$ "l" change.case$ "seventeenth" = + {pop$ "17"} + {skip$} + if$ + duplicate$ "l" change.case$ "eighteenth" = + {pop$ "18"} + {skip$} + if$ + duplicate$ "l" change.case$ "nineteenth" = + {pop$ "19"} + {skip$} + if$ + duplicate$ "l" change.case$ "twentieth" = + {pop$ "20"} + {skip$} + if$ +} + +FUNCTION {ordinal.translate} +{ ordinal.translate.i + ordinal.translate.ii + ordinal.translate.iii + ordinal.translate.iv +} + +FUNCTION {format.edition} +{ edition empty$ + printing empty$ + + + #2 + = + { "" } + { output.state mid.sentence = + { "\dkbibedition{" } + { "\dkbibEdition{" } + if$ + edition empty$ + { "" } + { edition ordinal.translate + duplicate$ "l" change.case$ + duplicate$ "u" change.case$ + = + { purify$ } + { output.state mid.sentence = + { skip$ } + { "u" change.case$ + "t" change.case$ + } + if$ + } + if$ + } + if$ + * "}{" * + printing empty$ + { "" } + { printing ordinal.translate + duplicate$ "l" change.case$ + duplicate$ "u" change.case$ + = + { purify$ } + { skip$ } + if$ + } + if$ + * "}" * + } + 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 empty$ + { "" } + { pages multi.page.check + { "side" pages n.dashify tie.or.space.connect } + { "side" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "kapitel" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "I " booktitle emphasize * } + { "I " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ isbn empty$ issn empty$ + and and and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Rapport" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "I \emph{" journal * "}" * } + if$ + } + { "I " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv }{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff~}{vv }{ll}{~jj}" format.name$ "others" = + { " et~al." * } + { " og " * editor #2 "{vv }{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "I " + } + { "Bind" volume tie.or.space.connect + " af " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "\emph{" * series * "}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "I \emph{" booktitle * "}" * } + if$ + } + { "I " key * } + if$ + } + { "I " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Specialeafhandling" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + output.isbn.issn + output.url + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "Ph.d.-afhandling" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"januar"} + +MACRO {feb} {"februar"} + +MACRO {mar} {"marts"} + +MACRO {apr} {"april"} + +MACRO {may} {"maj"} + +MACRO {jun} {"juni"} + +MACRO {jul} {"juli"} + +MACRO {aug} {"august"} + +MACRO {sep} {"september"} + +MACRO {oct} {"oktober"} + +MACRO {nov} {"november"} + +MACRO {dec} {"december"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { organization #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ ff{ }}{ vv{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label + sort.label + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {begin.bib} +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + "\makeatletter" write$ newline$ + "\@tfor\dkbib@reserved@a:=0123456789\do{%" write$ newline$ + " \expandafter\sfcode\expandafter`\dkbib@reserved@a=1007}" write$ newline$ + "\providecommand{\dkbib@addperiod}{\ifnum\spacefactor=1007.\fi}" write$ newline$ + "\providecommand{\dkbibedition}[2]{#1\dkbib@addperiod~udgave}" write$ newline$ + "\providecommand{\dkbibEdition}[2]{#1\dkbib@addperiod~udgave}" write$ newline$ + "\providecommand{\dkbibisbn}[1]{\unskip\@gobble}" write$ newline$ + "\providecommand{\dkbibissn}[1]{\unskip\@gobble}" write$ newline$ + "\providecommand{\dkbiburl}[1]{\unskip\@gobble}" write$ newline$ + "\providecommand{\dkbibannote}[2]{\unskip}" write$ newline$ + "\providecommand{\dkbibdash}{\hbox{-}\penalty\@m}" write$ newline$ + "\makeatother" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/dk-bib/dk-apali.bst b/Master/texmf-dist/bibtex/bst/dk-bib/dk-apali.bst new file mode 100644 index 00000000000..840bf3134a0 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/dk-bib/dk-apali.bst @@ -0,0 +1,1295 @@ +% BibTeX `apalike' bibliography style (24-Jan-88 version) +% Adapted from the `alpha' style, version 0.99a; for BibTeX version 0.99a. +% Copyright (C) 1988, all rights reserved. +% Copying of this file is allowed, provided that if you make any changes at all +% you name it something other than `apalike.bst'. +% This restriction helps ensure that all copies are identical. +% Differences between this style and `alpha' are generally heralded by a `%'. +% The file btxbst.doc has the documentation for alpha.bst. +% +% This style should be used with the `apalike' LaTeX style (apalike.sty). +% \cite's come out like "(Jones, 1986)" in the text but there are no labels +% in the bibliography, and something like "(1986)" comes out immediately +% after the author. Author (and editor) names appear as last name, comma, +% initials. A `year' field is required for every entry, and so is either +% an author (or in some cases, an editor) field or a key field. +% +% Editorial note: +% Many journals require a style like `apalike', but I strongly, strongly, +% strongly recommend that you not use it if you have a choice---use something +% like `plain' instead. Mary-Claire van Leunen (A Handbook for Scholars, +% Knopf, 1979) argues convincingly that a style like `plain' encourages better +% writing than one like `apalike'. Furthermore the strongest arguments for +% using an author-date style like `apalike'---that it's "the most practical" +% (The Chicago Manual of Style, University of Chicago Press, thirteenth +% edition, 1982, pages 400--401)---fall flat on their face with the new +% computer-typesetting technology. For instance page 401 anachronistically +% states "The chief disadvantage of [a style like `plain'] is that additions +% or deletions cannot be made after the manuscript is typed without changing +% numbers in both text references and list." LaTeX sidesteps the disadvantage. +% +% History: +% 15-sep-86 (SK,OP) Original version, by Susan King and Oren Patashnik. +% 10-nov-86 (OP) Truncated the sort.key$ string to the correct length +% in bib.sort.order to eliminate error message. +% 24-jan-88 (OP) Updated for BibTeX version 0.99a, from alpha.bst 0.99a; +% apalike now sorts by author, then year, then title; +% THIS `apalike' VERSION DOES NOT WORK WITH BIBTEX 0.98i. +% 20-jan-2005 (arne) Translated into Danish by arne.jorgensen@tug.dk. +% Now called `dk-apali'. +% This is dk-bib, Version 0.5 ($Id: dk-apali.bst 82 2005-10-02 16:26:11Z arne $) + +ENTRY + { address + author + booktitle + chapter + edition + printing + editor + howpublished + institution + isbn + issn + url + annote + journal + key +% month not used in apalike + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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$ +} + +% apalike needs this function because +% the year has special punctuation; +% apalike ignores the month +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ + " (" year * extra.label * ")" * + mid.sentence 'output.state := + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.annote} +{ annote empty$ + 'skip$ + { "\dkbibannote{" cite$ * "}{" * annote add.period$ * "}" * + write$ newline$ } + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ + output.annote +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {output.isbn.issn} +{ isbn empty$ + 'skip$ + { new.block "\dkbibisbn{" isbn * "}" * output } + if$ + issn empty$ + 'skip$ + { new.block "\dkbibissn{" issn * "}" * output } + if$ +} + +FUNCTION {output.url} +{ url empty$ + 'skip$ + { new.block "\dkbiburl{" url * "}" * output } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +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$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := % last name first + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " et~al." * } + { " og " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.key} % this function is just for apalike +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", redakt\o rer" * } + { ", redakt\o r" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { "\dkbibdash" * + t #2 global.max$ substring$ 't := + { t #1 #1 substring$ "-" = } + { t #2 global.max$ substring$ 't := } + while$ + t #1 #1 substring$ " " = + { "{}" * } + { " " * } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "bind" volume tie.or.space.connect + series empty$ + 'skip$ + { " af " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "nr." } + { "Nr." } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " i " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {ordinal.translate.i} +{ duplicate$ "l" change.case$ "first" = + {pop$ "1"} + {skip$} + if$ + duplicate$ "l" change.case$ "second" = + {pop$ "2"} + {skip$} + if$ + duplicate$ "l" change.case$ "third" = + {pop$ "3"} + {skip$} + if$ + duplicate$ "l" change.case$ "fourth" = + {pop$ "4"} + {skip$} + if$ + duplicate$ "l" change.case$ "fifth" = + {pop$ "5"} + {skip$} + if$ +} + +FUNCTION {ordinal.translate.ii} +{ duplicate$ "l" change.case$ "sixth" = + {pop$ "6"} + {skip$} + if$ + duplicate$ "l" change.case$ "seventh" = + {pop$ "7"} + {skip$} + if$ + duplicate$ "l" change.case$ "eighth" = + {pop$ "8"} + {skip$} + if$ + duplicate$ "l" change.case$ "ninth" = + {pop$ "9"} + {skip$} + if$ + duplicate$ "l" change.case$ "tenth" = + {pop$ "10"} + {skip$} + if$ +} + +FUNCTION {ordinal.translate.iii} +{ duplicate$ "l" change.case$ "eleventh" = + {pop$ "11"} + {skip$} + if$ + duplicate$ "l" change.case$ "twelfth" = + {pop$ "12"} + {skip$} + if$ + duplicate$ "l" change.case$ "thirteenth" = + {pop$ "13"} + {skip$} + if$ + duplicate$ "l" change.case$ "fourteenth" = + {pop$ "14"} + {skip$} + if$ + duplicate$ "l" change.case$ "fifteenth" = + {pop$ "15"} + {skip$} + if$ +} + +FUNCTION {ordinal.translate.iv} +{ duplicate$ "l" change.case$ "sixteenth" = + {pop$ "16"} + {skip$} + if$ + duplicate$ "l" change.case$ "seventeenth" = + {pop$ "17"} + {skip$} + if$ + duplicate$ "l" change.case$ "eighteenth" = + {pop$ "18"} + {skip$} + if$ + duplicate$ "l" change.case$ "nineteenth" = + {pop$ "19"} + {skip$} + if$ + duplicate$ "l" change.case$ "twentieth" = + {pop$ "20"} + {skip$} + if$ +} + +FUNCTION {ordinal.translate} +{ ordinal.translate.i + ordinal.translate.ii + ordinal.translate.iii + ordinal.translate.iv +} + +FUNCTION {format.edition} +{ edition empty$ + printing empty$ + + + #2 + = + { "" } + { output.state mid.sentence = + { "\dkbibedition{" } + { "\dkbibEdition{" } + if$ + edition empty$ + { "" } + { edition ordinal.translate + duplicate$ "l" change.case$ + duplicate$ "u" change.case$ + = + { purify$ } + { output.state mid.sentence = + { skip$ } + { "u" change.case$ + "t" change.case$ + } + if$ + } + if$ + } + if$ + * "}{" * + printing empty$ + { "" } + { printing ordinal.translate + duplicate$ "l" change.case$ + duplicate$ "u" change.case$ + = + { purify$ } + { skip$ } + if$ + } + if$ + * "}" * + } + 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 empty$ + { "" } + { pages multi.page.check + { "side" pages n.dashify tie.or.space.connect } + { "side" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "kapitel" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "I " booktitle emphasize * } + { "I " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Rapport" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "I" % this is for apalike + "~\cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "I " + } + { "Bind" volume tie.or.space.connect + " af " * + } + if$ + "\cite{" * crossref * "}" * % this is for apalike +} + +FUNCTION {format.incoll.inproc.crossref} +{ "I" % this is for apalike + "~\cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + output.isbn.issn + output.url + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + howpublished output + address output + new.block + note output + output.isbn.issn + output.url + 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$ + output.year.check % special for apalike + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address output % for apalike + new.sentence % there's no year + organization output % here so things + publisher output % are simpler + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + "Specialeafhandling" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + new.block + format.title output + new.block + howpublished output + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + new.block + "Ph.d.-afhandling" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output % special for + output.year.check % apalike + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output % for apalike + new.sentence % we always output + organization output % a nonempty organization + publisher output % here + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + new.block + format.title "title" output.check + new.block + note "note" output.check + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"januar"} + +MACRO {feb} {"februar"} + +MACRO {mar} {"marts"} + +MACRO {apr} {"april"} + +MACRO {may} {"maj"} + +MACRO {jun} {"juni"} + +MACRO {jul} {"juli"} + +MACRO {aug} {"august"} + +MACRO {sep} {"september"} + +MACRO {oct} {"oktober"} + +MACRO {nov} {"november"} + +MACRO {dec} {"december"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +% There are three apalike cases: one person (Jones), +% two (Jones and de~Bruijn), and more (Jones et~al.). +% This function is much like format.crossref.editors. +% +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " og " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole 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 % apalike uses the whole key, no organization + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label % apalike ignores organization + 'author.key.label % for labeling and sorting + if$ + } + if$ + ", " % these three lines are + * % for apalike, which + year field.or.null purify$ #-1 #4 substring$ % uses all four digits + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ % apalike uses initials + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := % <= here + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 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$ +} + +% apalike uses two sorting passes; the first one sets the +% labels so that the `a's, `b's, etc. can be computed; +% the second pass puts the references in "correct" order. +% The presort function is for the first pass. It computes +% label, sort.label, and title, and then concatenates. +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$ % for + 'sort.label := % apalike + sort.label % style + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT % by label, sort.label, title---for final label calculation + +STRINGS { last.label next.extra } % apalike labels are only for the text; + +INTEGERS { last.extra.num } % there are none in the bibliography + +FUNCTION {initialize.extra.label.stuff} % and hence there is no `longest.label' +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +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$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + extra.label 'next.extra := +} + +EXECUTE {initialize.extra.label.stuff} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +% Now that the label is right we sort for real, +% on sort.label then year then title. This is +% for the second sorting 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 % by sort.label, year, title---giving final bibliography order + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ % no labels in apalike + "\makeatletter" write$ newline$ + "\@tfor\dkbib@reserved@a:=0123456789\do{%" write$ newline$ + " \expandafter\sfcode\expandafter`\dkbib@reserved@a=1007}" write$ newline$ + "\providecommand{\dkbib@addperiod}{\ifnum\spacefactor=1007.\fi}" write$ newline$ + "\providecommand{\dkbibedition}[2]{#1\dkbib@addperiod~udgave}" write$ newline$ + "\providecommand{\dkbibEdition}[2]{#1\dkbib@addperiod~udgave}" write$ newline$ + "\providecommand{\dkbibisbn}[1]{\unskip\@gobble}" write$ newline$ + "\providecommand{\dkbibissn}[1]{\unskip\@gobble}" write$ newline$ + "\providecommand{\dkbiburl}[1]{\unskip\@gobble}" write$ newline$ + "\providecommand{\dkbibannote}[2]{\unskip}" write$ newline$ + "\providecommand{\dkbibdash}{\hbox{-}\penalty\@m}" write$ newline$ + "\makeatother" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/dk-bib/dk-plain.bst b/Master/texmf-dist/bibtex/bst/dk-bib/dk-plain.bst new file mode 100644 index 00000000000..9998bf38103 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/dk-bib/dk-plain.bst @@ -0,0 +1,1301 @@ +% BibTeX standard bibliography style `plain' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +% "Translated" into Norwegian by dag@ifi.uio.no, July 1997. +% Now called `norplain'. +% Added field "isbn" and "issn". dag@ifi.uio.no, April 2001. +% Translated into Danish by arne.jorgensen@tug.dk, June 2001. +% Now called `dk-plain'. +% This is dk-bib, Version 0.5 ($Id: dk-plain.bst 82 2005-10-02 16:26:11Z arne $) + +ENTRY + { address + author + booktitle + chapter + edition + printing + editor + howpublished + institution + isbn + issn + url + annote + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.annote} +{ annote empty$ + 'skip$ + { "\dkbibannote{" cite$ * "}{" * annote add.period$ * "}" * + write$ newline$ } + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ + output.annote +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {output.isbn.issn} +{ isbn empty$ + 'skip$ + { new.block "\dkbibisbn{" isbn * "}" * output } + if$ + issn empty$ + 'skip$ + { new.block "\dkbibissn{" issn * "}" * output } + if$ +} + +FUNCTION {output.url} +{ url empty$ + 'skip$ + { new.block "\dkbiburl{" url * "}" * output } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv }{ll}{~jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " et~al." * } + { " og " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", redakt\o rer" * } + { ", redakt\o r" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { "\dkbibdash" * + t #2 global.max$ substring$ 't := + { t #1 #1 substring$ "-" = } + { t #2 global.max$ substring$ 't := } + while$ + t #1 #1 substring$ " " = + { "{}" * } + { " " * } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "bind" volume tie.or.space.connect + series empty$ + 'skip$ + { " af " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "nr." } + { "Nr." } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " i " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {ordinal.translate.i} +{ duplicate$ "l" change.case$ "first" = + {pop$ "1"} + {skip$} + if$ + duplicate$ "l" change.case$ "second" = + {pop$ "2"} + {skip$} + if$ + duplicate$ "l" change.case$ "third" = + {pop$ "3"} + {skip$} + if$ + duplicate$ "l" change.case$ "fourth" = + {pop$ "4"} + {skip$} + if$ + duplicate$ "l" change.case$ "fifth" = + {pop$ "5"} + {skip$} + if$ +} + +FUNCTION {ordinal.translate.ii} +{ duplicate$ "l" change.case$ "sixth" = + {pop$ "6"} + {skip$} + if$ + duplicate$ "l" change.case$ "seventh" = + {pop$ "7"} + {skip$} + if$ + duplicate$ "l" change.case$ "eighth" = + {pop$ "8"} + {skip$} + if$ + duplicate$ "l" change.case$ "ninth" = + {pop$ "9"} + {skip$} + if$ + duplicate$ "l" change.case$ "tenth" = + {pop$ "10"} + {skip$} + if$ +} + +FUNCTION {ordinal.translate.iii} +{ duplicate$ "l" change.case$ "eleventh" = + {pop$ "11"} + {skip$} + if$ + duplicate$ "l" change.case$ "twelfth" = + {pop$ "12"} + {skip$} + if$ + duplicate$ "l" change.case$ "thirteenth" = + {pop$ "13"} + {skip$} + if$ + duplicate$ "l" change.case$ "fourteenth" = + {pop$ "14"} + {skip$} + if$ + duplicate$ "l" change.case$ "fifteenth" = + {pop$ "15"} + {skip$} + if$ +} + +FUNCTION {ordinal.translate.iv} +{ duplicate$ "l" change.case$ "sixteenth" = + {pop$ "16"} + {skip$} + if$ + duplicate$ "l" change.case$ "seventeenth" = + {pop$ "17"} + {skip$} + if$ + duplicate$ "l" change.case$ "eighteenth" = + {pop$ "18"} + {skip$} + if$ + duplicate$ "l" change.case$ "nineteenth" = + {pop$ "19"} + {skip$} + if$ + duplicate$ "l" change.case$ "twentieth" = + {pop$ "20"} + {skip$} + if$ +} + +FUNCTION {ordinal.translate} +{ ordinal.translate.i + ordinal.translate.ii + ordinal.translate.iii + ordinal.translate.iv +} + +FUNCTION {format.edition} +{ edition empty$ + printing empty$ + + + #2 + = + { "" } + { output.state mid.sentence = + { "\dkbibedition{" } + { "\dkbibEdition{" } + if$ + edition empty$ + { "" } + { edition ordinal.translate + duplicate$ "l" change.case$ + duplicate$ "u" change.case$ + = + { purify$ } + { output.state mid.sentence = + { skip$ } + { "u" change.case$ + "t" change.case$ + } + if$ + } + if$ + } + if$ + * "}{" * + printing empty$ + { "" } + { printing ordinal.translate + duplicate$ "l" change.case$ + duplicate$ "u" change.case$ + = + { purify$ } + { skip$ } + if$ + } + if$ + * "}" * + } + 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 empty$ + { "" } + { pages multi.page.check + { "side" pages n.dashify tie.or.space.connect } + { "side" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "kapitel" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "I " booktitle emphasize * } + { "I " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ isbn empty$ issn empty$ + and and and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Rapport" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "I \emph{" journal * "}" * } + if$ + } + { "I " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv }{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff~}{vv }{ll}{~jj}" format.name$ "others" = + { " et~al." * } + { " og " * editor #2 "{vv }{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "I " + } + { "Bind" volume tie.or.space.connect + " af " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "\emph{" * series * "}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "I \emph{" booktitle * "}" * } + if$ + } + { "I " key * } + if$ + } + { "I " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Specialeafhandling" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + output.isbn.issn + output.url + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "Ph.d.-afhandling" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"januar"} + +MACRO {feb} {"februar"} + +MACRO {mar} {"marts"} + +MACRO {apr} {"april"} + +MACRO {may} {"maj"} + +MACRO {jun} {"juni"} + +MACRO {jul} {"juli"} + +MACRO {aug} {"august"} + +MACRO {sep} {"september"} + +MACRO {oct} {"oktober"} + +MACRO {nov} {"november"} + +MACRO {dec} {"december"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ ff{ }}{ vv{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + "\makeatletter" write$ newline$ + "\@tfor\dkbib@reserved@a:=0123456789\do{%" write$ newline$ + " \expandafter\sfcode\expandafter`\dkbib@reserved@a=1007}" write$ newline$ + "\providecommand{\dkbib@addperiod}{\ifnum\spacefactor=1007.\fi}" write$ newline$ + "\providecommand{\dkbibedition}[2]{#1\dkbib@addperiod~udgave}" write$ newline$ + "\providecommand{\dkbibEdition}[2]{#1\dkbib@addperiod~udgave}" write$ newline$ + "\providecommand{\dkbibisbn}[1]{\unskip\@gobble}" write$ newline$ + "\providecommand{\dkbibissn}[1]{\unskip\@gobble}" write$ newline$ + "\providecommand{\dkbiburl}[1]{\unskip\@gobble}" write$ newline$ + "\providecommand{\dkbibannote}[2]{\unskip}" write$ newline$ + "\providecommand{\dkbibdash}{\hbox{-}\penalty\@m}" write$ newline$ + "\makeatother" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/dk-bib/dk-unsrt.bst b/Master/texmf-dist/bibtex/bst/dk-bib/dk-unsrt.bst new file mode 100644 index 00000000000..b3c7cd5f138 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/dk-bib/dk-unsrt.bst @@ -0,0 +1,1155 @@ +% BibTeX standard bibliography style `unsrt' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +% "Translated" into Norwegian by dag@ifi.uio.no, July 1997. +% Now called `norunsrt'. +% Added field "isbn" and "issn". dag@ifi.uio.no, April 2001. +% Translated into Danish by arne.jorgensen@tug.dk, June 2001. +% Now called `dk-unsrt'. +% This is dk-bib, Version 0.5 ($Id: dk-unsrt.bst 82 2005-10-02 16:26:11Z arne $) + +ENTRY + { address + author + booktitle + chapter + edition + printing + editor + howpublished + institution + isbn + issn + url + annote + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {output.annote} +{ annote empty$ + 'skip$ + { "\dkbibannote{" cite$ * "}{" * annote add.period$ * "}" * + write$ newline$ } + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ + output.annote +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {output.isbn.issn} +{ isbn empty$ + 'skip$ + { new.block "\dkbibisbn{" isbn * "}" * output } + if$ + issn empty$ + 'skip$ + { new.block "\dkbibissn{" issn * "}" * output } + if$ +} + +FUNCTION {output.url} +{ url empty$ + 'skip$ + { new.block "\dkbiburl{" url * "}" * output } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv }{ll}{~jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " et~al." * } + { " og " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", redakt\o rer" * } + { ", redakt\o r" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { "\dkbibdash" * + t #2 global.max$ substring$ 't := + { t #1 #1 substring$ "-" = } + { t #2 global.max$ substring$ 't := } + while$ + t #1 #1 substring$ " " = + { "{}" * } + { " " * } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "bind" volume tie.or.space.connect + series empty$ + 'skip$ + { " af " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "nr." } + { "Nr." } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " i " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {ordinal.translate.i} +{ duplicate$ "l" change.case$ "first" = + {pop$ "1"} + {skip$} + if$ + duplicate$ "l" change.case$ "second" = + {pop$ "2"} + {skip$} + if$ + duplicate$ "l" change.case$ "third" = + {pop$ "3"} + {skip$} + if$ + duplicate$ "l" change.case$ "fourth" = + {pop$ "4"} + {skip$} + if$ + duplicate$ "l" change.case$ "fifth" = + {pop$ "5"} + {skip$} + if$ +} + +FUNCTION {ordinal.translate.ii} +{ duplicate$ "l" change.case$ "sixth" = + {pop$ "6"} + {skip$} + if$ + duplicate$ "l" change.case$ "seventh" = + {pop$ "7"} + {skip$} + if$ + duplicate$ "l" change.case$ "eighth" = + {pop$ "8"} + {skip$} + if$ + duplicate$ "l" change.case$ "ninth" = + {pop$ "9"} + {skip$} + if$ + duplicate$ "l" change.case$ "tenth" = + {pop$ "10"} + {skip$} + if$ +} + +FUNCTION {ordinal.translate.iii} +{ duplicate$ "l" change.case$ "eleventh" = + {pop$ "11"} + {skip$} + if$ + duplicate$ "l" change.case$ "twelfth" = + {pop$ "12"} + {skip$} + if$ + duplicate$ "l" change.case$ "thirteenth" = + {pop$ "13"} + {skip$} + if$ + duplicate$ "l" change.case$ "fourteenth" = + {pop$ "14"} + {skip$} + if$ + duplicate$ "l" change.case$ "fifteenth" = + {pop$ "15"} + {skip$} + if$ +} + +FUNCTION {ordinal.translate.iv} +{ duplicate$ "l" change.case$ "sixteenth" = + {pop$ "16"} + {skip$} + if$ + duplicate$ "l" change.case$ "seventeenth" = + {pop$ "17"} + {skip$} + if$ + duplicate$ "l" change.case$ "eighteenth" = + {pop$ "18"} + {skip$} + if$ + duplicate$ "l" change.case$ "nineteenth" = + {pop$ "19"} + {skip$} + if$ + duplicate$ "l" change.case$ "twentieth" = + {pop$ "20"} + {skip$} + if$ +} + +FUNCTION {ordinal.translate} +{ ordinal.translate.i + ordinal.translate.ii + ordinal.translate.iii + ordinal.translate.iv +} + +FUNCTION {format.edition} +{ edition empty$ + printing empty$ + + + #2 + = + { "" } + { output.state mid.sentence = + { "\dkbibedition{" } + { "\dkbibEdition{" } + if$ + edition empty$ + { "" } + { edition ordinal.translate + duplicate$ "l" change.case$ + duplicate$ "u" change.case$ + = + { purify$ } + { output.state mid.sentence = + { skip$ } + { "u" change.case$ + "t" change.case$ + } + if$ + } + if$ + } + if$ + * "}{" * + printing empty$ + { "" } + { printing ordinal.translate + duplicate$ "l" change.case$ + duplicate$ "u" change.case$ + = + { purify$ } + { skip$ } + if$ + } + if$ + * "}" * + } + 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 empty$ + { "" } + { pages multi.page.check + { "side" pages n.dashify tie.or.space.connect } + { "side" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "kapitel" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "I " booktitle emphasize * } + { "I " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ isbn empty$ issn empty$ + and and and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Rapport" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "I \emph{" journal * "}" * } + if$ + } + { "I " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv }{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff~}{vv }{ll}{~jj}" format.name$ "others" = + { " et~al." * } + { " og " * editor #2 "{vv }{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "I " + } + { "Bind" volume tie.or.space.connect + " af " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "\emph{" * series * "}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "I \emph{" booktitle * "}" * } + if$ + } + { "I " key * } + if$ + } + { "I " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Specialeafhandling" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + output.isbn.issn + output.url + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "Ph.d.-afhandling" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + output.isbn.issn + output.url + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"januar"} + +MACRO {feb} {"februar"} + +MACRO {mar} {"marts"} + +MACRO {apr} {"april"} + +MACRO {may} {"maj"} + +MACRO {jun} {"juni"} + +MACRO {jul} {"juli"} + +MACRO {aug} {"august"} + +MACRO {sep} {"september"} + +MACRO {oct} {"oktober"} + +MACRO {nov} {"november"} + +MACRO {dec} {"december"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + "\makeatletter" write$ newline$ + "\@tfor\dkbib@reserved@a:=0123456789\do{%" write$ newline$ + " \expandafter\sfcode\expandafter`\dkbib@reserved@a=1007}" write$ newline$ + "\providecommand{\dkbib@addperiod}{\ifnum\spacefactor=1007.\fi}" write$ newline$ + "\providecommand{\dkbibedition}[2]{#1\dkbib@addperiod~udgave}" write$ newline$ + "\providecommand{\dkbibEdition}[2]{#1\dkbib@addperiod~udgave}" write$ newline$ + "\providecommand{\dkbibisbn}[1]{\unskip\@gobble}" write$ newline$ + "\providecommand{\dkbibissn}[1]{\unskip\@gobble}" write$ newline$ + "\providecommand{\dkbiburl}[1]{\unskip\@gobble}" write$ newline$ + "\providecommand{\dkbibannote}[2]{\unskip}" write$ newline$ + "\providecommand{\dkbibdash}{\hbox{-}\penalty\@m}" write$ newline$ + "\makeatother" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/dtk/dtk.bst b/Master/texmf-dist/bibtex/bst/dtk/dtk.bst new file mode 100644 index 00000000000..ad7dcdf4acc --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/dtk/dtk.bst @@ -0,0 +1,1342 @@ +%% +%% This is file `dtk.bst', generated +%% on <1995/11/5> with the docstrip utility (2.2i). +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `head,exlang,vonx,nmlm,x3,m2,tit-it,atit-u,volp-com,edpar,edby-par,edbyx,blk-com,au-col,german,pp,ed,abr,ord,and-xcom,{}') +%% german.mbs (with options: `exlang,vonx,nmlm,x3,m2,tit-it,atit-u,volp-com,edpar,edby-par,edbyx,blk-com,au-col,german,pp,ed,abr,ord,and-xcom,{}') +%% dtk.mbs (with options: `exlang,vonx,nmlm,x3,m2,tit-it,atit-u,volp-com,edpar,edby-par,edbyx,blk-com,au-col,german,pp,ed,abr,ord,and-xcom,{}') +%% merlin.mbs (with options: `tail,exlang,vonx,nmlm,x3,m2,tit-it,atit-u,volp-com,edpar,edby-par,edbyx,blk-com,au-col,german,pp,ed,abr,ord,and-xcom,{}') +%% ---------------------------------------- +%% *** This BibTeX style is made for use in +%% *** `Die TeXnische Komoedie' --- the +%% *** communications of Dante e.V. +%% + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{merlin.mbs}[1995/11/01 3.5 (PWD)] + % + % NOTICE: + % This file may be used for non-profit purposes. + % It may not be distributed in exchange for money, + % other than distribution costs. + % + % The author provides it `as is' and does not guarantee it in any way. + % + % Copyright (C) 1994, 1995 Patrick W. Daly + %------------------------------------------------------------------- + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in + % GERMAN + % This is a numerical citation style, and as such is standard LaTeX. + % It requires no extra package to interface to the main text. + % The form of the \bibitem entries is + % \bibitem{key}... + % Usage of \cite is as follows: + % \cite{key} ==>> [#] + % \cite[chap. 2]{key} ==>> [#, chap. 2] + % where # is a number determined by the ordering in the reference list. + % This is alphabetical by authors. + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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 {add.colon} +{ empty$ + 'skip$ + { before.all 'output.state := ":" output add.blank } + if$ +} + +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.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "\/}" * } + if$ +} + +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. + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{german.mbs}[1995/10/25 1.4 (PWD)] + % Copyright (C) 1994, 1995 Patrick W. Daly + %------------------------------------------------------------------- + + % The language selected here is GERMAN +FUNCTION {bbl.and} +{ "und"} + +FUNCTION {bbl.editors} +{ "Hg." } + +FUNCTION {bbl.editor} +{ "Hg." } + +FUNCTION {bbl.edby} +{ "herausgegeben von" } + +FUNCTION {bbl.edition} +{ "Aufl." } + +FUNCTION {bbl.volume} +{ "Bd." } + +FUNCTION {bbl.of} +{ "von" } + +FUNCTION {bbl.number} +{ "Nr." } + +FUNCTION {bbl.nr} +{ "Nr." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "S." } + +FUNCTION {bbl.page} +{ "S." } + +FUNCTION {bbl.chapter} +{ "Kap." } + +FUNCTION {bbl.techrep} +{ "{Techn.\ Ber.}" } + +FUNCTION {bbl.mthesis} +{ "Diplomarbeit" } + +FUNCTION {bbl.phdthesis} +{ "Dissertation" } + +FUNCTION {bbl.first} +{ "1." } + +FUNCTION {bbl.second} +{ "2." } + +FUNCTION {bbl.third} +{ "3." } + +FUNCTION {bbl.fourth} +{ "4." } + +FUNCTION {bbl.fifth} +{ "5." } + +FUNCTION {bbl.th} +{ "." } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Febr."} + +MACRO {mar} {"M\^^b{a}rz"} + +MACRO {apr} {"Apr."} + +MACRO {may} {"Mai"} + +MACRO {jun} {"Juni"} + +MACRO {jul} {"Juli"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Okt."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dez."} + + % End of language definition file + + +MACRO{DTK}{"Die \TeX\-nische Ko\-m\^^b{o}\-die"} +MACRO{TUGboat}{"TUGboat"} +MACRO{TTN}{"\TeX{} and TUG News"} +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { + nameptr #3 = + numnames #3 > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + t "others" = + { " et~al." * } + { bbl.and space.word * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.names.ed} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff~}{vv~}{ll}{, jj}" + format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " et~al." * } + { bbl.and space.word * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { + author format.names + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { + editor format.names + editor num.names$ #1 > + { " (" * bbl.editors * ")" * } + { " (" * bbl.editor * ")" * } + if$ + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title + emphasize + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ '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 empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s bbl.th * 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { bbl.pages pages n.dashify tie.or.space.connect } + { bbl.page pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { + "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in booktitle emphasize * + " (" * + editor num.names$ #1 > + { bbl.editors } + { bbl.editor } + if$ + capitalize + * " " * + format.in.editors * + ")" * + } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { word.in journal emphasize * } + if$ + } + { word.in key * " " *} + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { bbl.and space.word * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { bbl.volume volume tie.or.space.connect + bbl.of space.word * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series emphasize * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { word.in booktitle emphasize * } + if$ + } + { word.in key * " " *} + if$ + } + { word.in format.crossref.editor * " " *} + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author add.colon + format.title "title" output.check + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor add.colon + } + { format.authors output.nonnull + author add.colon + 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 + publisher "publisher" output.check + address output + } + { + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author add.colon + format.title "title" output.check + howpublished output + address output + format.date output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor add.colon + } + { format.authors output.nonnull + author add.colon + 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 + publisher "publisher" output.check + address output + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author add.colon + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author add.colon + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + author add.colon + format.btitle "title" output.check + author empty$ + { organization empty$ + { + address output + } + 'skip$ + if$ + } + { + organization output + address output + } + if$ + format.edition output + format.date output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author add.colon + format.btitle "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author add.colon + format.title output + howpublished output + format.date output + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author add.colon + format.btitle "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + editor add.colon + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author add.colon + format.title "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author add.colon + format.title "title" output.check + 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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll{ }}{ ff{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + nameptr #3 = + numnames #3 > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + " " * + namesleft #1 = t "others" = and + { "aaaaa" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * + 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 diff --git a/Master/texmf-dist/bibtex/bst/elsevier/elsart-harv.bst b/Master/texmf-dist/bibtex/bst/elsevier/elsart-harv.bst new file mode 100644 index 00000000000..1e67cabe0dd --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/elsevier/elsart-harv.bst @@ -0,0 +1,1528 @@ +%% +%% This is file `elsart-harv.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `,ay,nat,nm-rev,ed-rev,dt-beg,yr-com,aymth,yrp-per,note-yr,jttl-rm,thtit-a,vnum-sp,volp-com,pp-last,jnm-x,btit-rm,bt-rm,pre-edn,url,url-nl,edpar,blk-tit,in-col,pp,ed,abr,ednx,ord,jabr,xand,em-x,nfss') +%% After docstrip generation some manual changes were made (SP) +%% ---------------------------------------- +%% *** Author-date reference style for elsart *** +%% $Id: elsart-harv.bst 1.3 2000/05/08 10:17:51 spepping Exp spepping $ +%% +%% Copyright 1994-1999 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}[1999/03/18 3.88 (PWD)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % 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 + howpublished + institution + journal + key + 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} +{ + new.sentence +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ skip$ } + +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. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "Eds." } + +FUNCTION {bbl.editor} +{ "Ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "Edition" } + +FUNCTION {bbl.volume} +{ "Vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "Ch." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +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. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + +FUNCTION {write.url} +{ url empty$ + { skip$ } + { "\newline\urlprefix\url{" url * "}" * write$ newline$ } + if$ +} + + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, jj}{, f.}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + "," * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {format.names.ed} +{ format.names } +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { " (" * bbl.editors * ")" * } + { " (" * bbl.editor * ")" * } + if$ + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + editor num.names$ #1 > + { " (" * bbl.editors * ")" * } + { " (" * bbl.editor * ")" * } + 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$ * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ + } + if$ +} + +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { 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 {n.dashify} +{ + '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 capitalize + ":" * + " " * } + +FUNCTION {format.date} +{ year duplicate$ empty$ + { "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" } + 'skip$ + if$ + month empty$ + 'skip$ + { month + " " * swap$ * + } + if$ + extra.label * + before.all 'output.state := + ", " swap$ * +} + +FUNCTION {format.btitle} +{ title +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s eng.ord 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { bbl.pages pages n.dashify tie.or.space.connect } + { bbl.page pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.journal.pages} +{ pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { + ", " * + pages n.dashify * + } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { + "~(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + { "" } + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle * } + { word.in format.in.editors * ", " * + booktitle * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { bbl.volume capitalize + volume tie.or.space.connect + bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + t empty$ + { address empty$ + 'skip$ + { address * } + if$ + } + { t * + address empty$ + 'skip$ + { ", " * address * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.publisher.address} +{ publisher empty$ + { "empty publisher in " cite$ * warning$ + "" + } + { publisher } + if$ + format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization empty$ + { "" } + { organization } + if$ + format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + crossref missing$ + { journal + "journal" output.check + add.blank + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.journal.pages + format.note output + fin.entry + write.url +} + +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.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.edition output + new.sentence + format.bvolume output + format.number.series output + new.sentence + format.publisher.address output + } + { + new.sentence + format.book.crossref output.nonnull + } + if$ + format.note output + fin.entry + write.url +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + howpublished output + address output + format.note output + fin.entry + write.url +} + +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.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.edition output + new.sentence + format.bvolume output + format.number.series output + new.sentence + format.publisher.address output + format.chapter.pages "chapter and pages" output.check + } + { + format.chapter.pages "chapter and pages" output.check + new.sentence + format.book.crossref output.nonnull + } + if$ + format.pages "pages" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.edition output + new.sentence + format.bvolume output + format.number.series output + new.sentence + format.publisher.address output + format.chapter.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.pages "pages" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.edition output + new.sentence + format.bvolume output + format.number.series output + new.sentence + publisher empty$ + { format.organization.address output } + { organization output + format.publisher.address output + } + if$ +% format.pages output + } + { format.incoll.inproc.crossref output.nonnull +% format.pages output + } + if$ + format.pages "pages" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + new.sentence + organization output + address output + format.edition output + format.note output + fin.entry + write.url +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.note output + fin.entry + write.url +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title output + new.sentence + howpublished output + format.note output + fin.entry + write.url +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.note output + fin.entry + write.url +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + new.sentence + format.bvolume output + format.number.series output + new.sentence + publisher empty$ + { format.organization.address output } + { organization output + format.publisher.address output + } + if$ + format.note output + fin.entry + write.url +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.sentence + format.tr.number output.nonnull + institution "institution" output.check + address output + format.note output + fin.entry + write.url +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + format.note "note" output.check + fin.entry + write.url +} + +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 := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + } + { 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$ + { pop$ "????" } + 'skip$ + 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 > + { + " " * + 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$ + "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" + write$ newline$ + "\expandafter\ifx\csname url\endcsname\relax" + write$ newline$ + " \def\url#1{\texttt{#1}}\fi" + write$ newline$ + "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi" + 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 `elsart-harv.bst'. diff --git a/Master/texmf-dist/bibtex/bst/elsevier/elsart-num.bst b/Master/texmf-dist/bibtex/bst/elsevier/elsart-num.bst new file mode 100644 index 00000000000..ee274ef0a84 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/elsevier/elsart-num.bst @@ -0,0 +1,1262 @@ +%% +%% This is file `elsart-num.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `,seq-no,nm-init,ed-au,dt-end,yr-par,yrp-x,jttl-rm,thtit-a,vnum-sp,volp-blk,jdt-p,pp-last,jnm-x,btit-rm,bt-rm,pub-date,pub-xpar,pre-edn,url,url-nl,edpar,blk-com,in-col,pp,ed,abr,ednx,ord,jabr,and-xcom,xand,em-x,nfss') +%% After docstrip generation some manual changes were made (SP) +%% ---------------------------------------- +%% *** Numerical reference style for elsart *** +%% $Id: elsart-num.bst 1.4 2000/05/08 10:17:09 spepping Exp spepping $ +%% +%% Copyright 1994-1999 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}[1999/03/18 3.88 (PWD)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is a numerical citation style, and as such is standard LaTeX. + % It requires no extra package to interface to the main text. + % The form of the \bibitem entries is + % \bibitem{key}... + % Usage of \cite is as follows: + % \cite{key} ==>> [#] + % \cite[chap. 2]{key} ==>> [#, chap. 2] + % where # is a number determined by the ordering in the reference list. + % The order in the reference list is that by which the works were originally + % cited in the text, or that in the database. + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + url + volume + year + } + {} + { label } + +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} +{ + add.blank +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ skip$ } + +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. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "Eds." } + +FUNCTION {bbl.editor} +{ "Ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "Edition" } + +FUNCTION {bbl.volume} +{ "Vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "Ch." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +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. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + +FUNCTION {write.url} +{ url empty$ + { skip$ } + { "\newline\urlprefix\url{" url * "}" * write$ newline$ } + if$ +} + + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + "," * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {format.names.ed} +{ format.names } +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { " (" * bbl.editors * ")" * } + { " (" * bbl.editor * ")" * } + if$ + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + editor num.names$ #1 > + { " (" * bbl.editors * ")" * } + { " (" * bbl.editor * ")" * } + 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$ * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + '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 empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ + duplicate$ empty$ + 'skip$ + { + before.all 'output.state := + " (" swap$ * ")" * + } + if$ +} + +FUNCTION{format.year} +{ year duplicate$ empty$ + { "empty year in " cite$ * warning$ pop$ "" } + { "(" swap$ * ")" * } + if$ +} + +FUNCTION {format.btitle} +{ title +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s eng.ord 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { bbl.pages pages n.dashify tie.or.space.connect } + { bbl.page pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.journal.pages} +{ pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { + " " * + format.year * " " * + pages n.dashify * + } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { + "~(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + { "" } + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle * } + { word.in format.in.editors * ", " * + booktitle * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { word.in journal emphasize * } + if$ + } + { word.in key * " " *} + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal * + } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + } + { bbl.and space.word * editor #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { bbl.volume volume tie.or.space.connect + bbl.of space.word * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series emphasize * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { word.in booktitle * } + if$ + } + { word.in key * " " *} + if$ + } + { word.in format.crossref.editor * " " *} + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.org.or.pub} +{ 't := + "" + year empty$ + { "empty year in " cite$ * warning$ } + 'skip$ + if$ + address empty$ t empty$ and + year empty$ and + 'skip$ + { + t empty$ + { address empty$ + 'skip$ + { address * } + if$ + } + { t * + address empty$ + 'skip$ + { ", " * address * } + if$ + } + if$ + year empty$ + 'skip$ + { t empty$ address empty$ and + 'skip$ + { ", " * } + if$ + year * + } + if$ + } + if$ +} + +FUNCTION {format.publisher.address} +{ publisher empty$ + { "empty publisher in " cite$ * warning$ + "" + } + { publisher } + if$ + format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization empty$ + { "" } + { organization } + if$ + format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { journal + "journal" output.check + add.blank + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.journal.pages + format.note output + fin.entry + write.url +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { format.edition output + format.bvolume output + format.number.series output + format.publisher.address output + } + { + format.book.crossref output.nonnull + } + if$ + format.note output + fin.entry + write.url +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.title "title" output.check + howpublished output + address output + format.note output + format.date output + fin.entry + write.url +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.btitle "title" output.check + crossref missing$ + { + format.edition output + format.bvolume output + format.number.series output + format.publisher.address output + format.chapter.pages "chapter and pages" output.check + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.pages "pages" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.edition output + format.bvolume output + format.number.series output + format.publisher.address output + format.chapter.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.pages "pages" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.edition output + format.bvolume output + format.number.series output + publisher empty$ + { format.organization.address output } + { organization output + format.publisher.address output + } + if$ +% format.pages output + } + { format.incoll.inproc.crossref output.nonnull +% format.pages output + } + if$ + format.pages "pages" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + format.btitle "title" output.check + author empty$ + { organization empty$ + { + address output + } + 'skip$ + if$ + } + { + organization output + address output + } + if$ + format.edition output + format.note output + format.date output + fin.entry + write.url +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.note output + format.date "year" output.check + fin.entry + write.url +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + howpublished output + format.note output + format.date output + fin.entry + write.url + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.note output + format.date "year" output.check + fin.entry + write.url +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + format.btitle "title" output.check + format.bvolume output + format.number.series output + editor empty$ + { publisher empty$ + 'skip$ + { + format.publisher.address output + } + if$ + } + { publisher empty$ + { + format.organization.address output } + { + organization output + format.publisher.address output + } + if$ + } + if$ + format.note output +% format.date "year" output.check + fin.entry + write.url +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.note output + format.date "year" output.check + fin.entry + write.url +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + format.note "note" output.check + format.date output + fin.entry + write.url +} + +FUNCTION {default.type} { misc } + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * + write$ newline$ + "\expandafter\ifx\csname url\endcsname\relax" + write$ newline$ + " \def\url#1{\texttt{#1}}\fi" + write$ newline$ + "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi" + 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 `elsart-num.bst'. diff --git a/Master/texmf-dist/bibtex/bst/figbib/figbib.bst b/Master/texmf-dist/bibtex/bst/figbib/figbib.bst new file mode 100644 index 00000000000..d693f9e9a13 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/figbib/figbib.bst @@ -0,0 +1,56 @@ + +ENTRY + { main + add + file + source + caption + } + {} + {} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'write$ + if$ +} + +FUNCTION {fig} +{ newline$ + "\figbibitem{" write$ + cite$ write$ + "}{" write$ + main write$ + "}{" write$ + add output + "}{" write$ + file write$ + "}{" write$ + source output + "}{" write$ + caption output + "}" write$ + newline$ +} + + +FUNCTION {begin.thefigdblist} +{ "\begin{thefigbiblist}" write$ + newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ +} + +FUNCTION {end.thefigdblist} +{ newline$ + "\end{thefigbiblist}" write$ + newline$ +} + +READ +EXECUTE {begin.thefigdblist} +ITERATE {call.type$} +EXECUTE {end.thefigdblist} diff --git a/Master/texmf-dist/bibtex/bst/figbib/figbib1.bst b/Master/texmf-dist/bibtex/bst/figbib/figbib1.bst new file mode 100644 index 00000000000..d2025614090 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/figbib/figbib1.bst @@ -0,0 +1,56 @@ + +ENTRY + { main1 + add1 + file + source1 + caption1 + } + {} + {} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'write$ + if$ +} + +FUNCTION {fig} +{ newline$ + "\figbibitem{" write$ + cite$ write$ + "}{" write$ + main1 write$ + "}{" write$ + add1 output + "}{" write$ + file write$ + "}{" write$ + source1 output + "}{" write$ + caption1 output + "}" write$ + newline$ +} + + +FUNCTION {begin.thefigdblist} +{ "\begin{thefigbiblist}" write$ + newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ +} + +FUNCTION {end.thefigdblist} +{ newline$ + "\end{thefigbiblist}" write$ + newline$ +} + +READ +EXECUTE {begin.thefigdblist} +ITERATE {call.type$} +EXECUTE {end.thefigdblist} diff --git a/Master/texmf-dist/bibtex/bst/finbib/finplain.bst b/Master/texmf-dist/bibtex/bst/finbib/finplain.bst new file mode 100644 index 00000000000..645a06ba18e --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/finbib/finplain.bst @@ -0,0 +1,1213 @@ +% BibTeX bibliography style 'finplain' release 0.1.0 +% Based on the BibTeX 0.99a standard bibliography style 'plain' +% $Id: finplain.bst,v 1.3 1998/06/25 14:14:34 antkaij Exp $ + +% This is the BibTeX 0.99a standard bibliography style 'plain' translated +% into Finnish. Translation made by Antti-Juhani Kaijanaho +% on June 3, 1998 and June 25, 1998. This file requires LaTeX2e. + +% ========================================================================= +% ************************************************************************* +% VAROITUS! Tama suomennos on julkisesti saatavilla lahinna testausta * +% ja kokeiluja varten. * +% * +% WARNING! This translation is made available to the public for * +% testing and experimentation purposes. It can be used for production * +% work, but do expect to find some rough edges and bugs. There is * +% NO WARRANTY. * +% * +% There is one known problem: * +% * There is a comma before "ja" that should not be there in * +% author and editor lists. * +% * +% Bug reports and patches are welcome at . Please, indicate * +% in the subject field of your message that it concerns 'finplain.bst'. * +% ************************************************************************* +% ========================================================================= + + +% The changes from plain to finplain.bst are + % Copyright (C) 1998 Antti-Juhani Kaijanaho. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % finplain.bst, btxbst.doc, plain.bst, unsrt.bst, alpha.bst, + % and abbrv.bst. + +% This is the copyright message of the original file: +% 8<---- +% BibTeX standard bibliography style `plain' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. +% 8<---- + +% All changes have been clearly marked. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } % chaged by 19980625 + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " ja " * t * } % changed by 19980603 + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", toim." * } % changed by 19980603 + { ", toim." * } % changed by 19980603 + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "{\ }" } % changed by 19980603 + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +% the following function was rewritten by 19980603 +FUNCTION {format.bvolume} +{ + volume empty$ + { % We have no volume + series empty$ + { % We have neither a volume nor a series + "" + } + { % We have a series but no volume + "sarjassa " series emphasize * + } + if$ + } + { % We have a volume + series empty$ + { % We have no series, just volume + "osa" volume tie.or.space.connect + } + { % We have both a series and a volume + "sarjan " series emphasize * + " osa" volume tie.or.space.connect * + } + if$ + % We cannot have both a volume and a number + "volume and number" number either.or.check + } + if$ +} + +% the following function was rewritten by 19980603 +FUNCTION {format.number.series} +{ + volume empty$ + { + number empty$ + { series field.or.null } + { + series number tie.or.space.connect + } + if$ + } + { + "" + } + if$ +} + +% The following three functions adapted from a custom-bib style file by +% 19980603 +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {format.edition} +{ + edition empty$ + { "" } + { + edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { "ensimm\^^b{a}inen" 't := } + { s "second" = s "2" = or + { "toinen" 't := } + { s "third" = s "3" = or + { "kolmas" 't := } + { s "fourth" = s "4" = or + { "nelj\^^b{a}s" 't := } + { s "fifth" = s "5" = or + { "viides" 't := } + { s #1 #1 substring$ is.num + { s "." * 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t + + output.state mid.sentence = + { "l" change.case$ " laitos" * } + { "t" change.case$ " laitos" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + % the following two lines were changed by 19980603 + { "ss." pages n.dashify tie.or.space.connect } + { "s." pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + % the following two lines were changed by 19980603 + { "Kirjassa " booktitle emphasize * } + { "Kirjassa " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tekninen raportti" } % changed by 19980603 + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "Lehdess \emph{" journal * "}" * } % changed by 19980603 + if$ + } + { "Ks." key tie.or.space.connect } % changed by 19980603 + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + % the following line was changed by 19980603 + { " ja " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "Kirjassa" % changed by 19980603 + } + { "Osa" volume tie.or.space.connect % changed by 19980603 + " kirjasta " * % changed by 19980603 + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "\emph{" * series * "}" * } % changed by 19980603 + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "Kirjassa \emph{" booktitle * "}" * } % changed by 19980603 + if$ + } + { "Ks." key tie.or.space.connect } % changed by 19980603 + if$ + } + { "Ks.\ " format.crossref.editor * } % changed by 19980603 + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Pro~gradu" format.thesis.type output.nonnull + school "schools" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "V\^^b{a}it\^^b{o}skirja" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +% The month names were translated by 19980603 + +MACRO {jan} {"tammikuu"} + +MACRO {feb} {"helmikuu"} + +MACRO {mar} {"maaliskuu"} + +MACRO {apr} {"huhtikuu"} + +MACRO {may} {"toukokuu"} + +MACRO {jun} {"kes\^^b{a}kuu"} + +MACRO {jul} {"hein\^^b{a}kuu"} + +MACRO {aug} {"elokuu"} + +MACRO {sep} {"syyskuu"} + +MACRO {oct} {"lokakuu"} + +MACRO {nov} {"marraskuu"} + +MACRO {dec} {"joulukuu"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/gatech-thesis/gatech-thesis-losa.bst b/Master/texmf-dist/bibtex/bst/gatech-thesis/gatech-thesis-losa.bst new file mode 100644 index 00000000000..022548eec9c --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gatech-thesis/gatech-thesis-losa.bst @@ -0,0 +1,264 @@ +% gatech-thesis-losa.bst: This style is used by the gatech-thesis-losa.sty +% style to provide support for a 'List of Symbols or Abbreviations' +% within the context of gatech-thesis.cls. The advantages of +% creating a separate .bst file are that the formatting of the +% losa glossary can be different from that of other "real" glossaries +% which are also based on the gloss.sty package. +% +% This file was adapted from the file `glsplain.bst' taken from the +% gloss package. +% +% Original information: +% ORIG: +% ORIG: (c) 1998 Jose Luis Diaz, 1999-2002 Jose Luis Diaz and Javier Bezos. +% ORIG: All Rights Reserved. +% ORIG: +% ORIG: This file is part of the gloss distribution release 1.5.2 +% ORIG: -------------------------------------------------------- +% ORIG: +% ORIG: This file can be redistributed and/or modified under the terms +% ORIG: of the LaTeX Project Public License Distributed from CTAN +% ORIG: archives in directory macros/latex/base/lppl.txt; either +% ORIG: version 1 of the License, or any later version. +% ORIG: +% ORIG: % History of v0.1 +% ORIG: % ~~~~~~~~~~~~~~~ +% ORIG: % 1997/06/25 (JLDdA) Original version, by Jose Luis Diaz de Arriba (and an +% ORIG: % unindicted co-conspirator) +% ORIG: % History of v1.0 +% ORIG: % ~~~~~~~~~~~~~~~ +% ORIG: % 1999/07/29 (JBL) Rewritten in full. Now it warns if a required field is +% ORIG: % missing, conforms the new gloss.sty syntax, and +% ORIG: % writes headings for each letter. The heading, +% ORIG: % short, and group fiels have been added. +% ORIG: % History of v1.1-1.4 +% ORIG: % ~~~~~~~~~~~~~~~~~~~ +% ORIG: % 1999/10/10 (JBL) Lots of changes. +% ORIG: % History of v.1.5 +% ORIG: % ~~~~~~~~~~~~~~~~ +% ORIG: % 2001/08/02 (JBL) Added the sort-short field for compatility +% ORIG: % with glsshort.bst + +STRINGS { last.heading s t star.period} + +ENTRY + { word + sort-word + definition + heading + group + short + sort-short + } + {} + { ucword } + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {has.period} +{ duplicate$ + add.period$ = +} + +FUNCTION {str.length} +{ 't := + #0 + { t empty$ not } + { t #2 global.max$ substring$ + 't := + #1 + + } + while$ +} + + +FUNCTION {upper.first} +{ duplicate$ + #1 text.prefix$ + duplicate$ + "u" change.case$ + 's := + str.length + #1 + entry.max$ substring$ + s swap$ * +} + +FUNCTION {check.required} +{ 's := + duplicate$ empty$ + { "Empty " s * " in " * cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {push.sortword} +{ sort-word empty$ + { word field.or.null } + 'sort-word + if$ +} + +FUNCTION {check.alpha} +{ duplicate$ + purify$ + empty$ + { "Non alphabetical " cite$ * + " entry without group field" * warning$ } + 'skip$ + if$ +} + +FUNCTION {push.heading} +{ heading empty$ + { word field.or.null + #1 text.prefix$ + check.alpha + } + 'heading + if$ +} + +FUNCTION {begin.entry} +{ newline$ + "\begin{losaitem" star.period * write$ + "}{" write$ + cite$ write$ + "}{" write$ + word write$ + "}{" write$ + ucword write$ + "}{" write$ + short field.or.null write$ + "}" write$ + newline$ +} + +FUNCTION {end.entry} +{ "\end{losaitem" star.period "}" * * write$ + newline$ +} + +FUNCTION {set.vars} +{ word field.or.null + "word" check.required + upper.first + 'ucword := +} + + +FUNCTION {losadef} +{ definition field.or.null + "definition" check.required + duplicate$ has.period + { "*" } + { "" } + if$ + 'star.period := % definition is stored for later writing + begin.entry % this outputs word, ucword, and short + write$ % writes definition + end.entry +} + +FUNCTION {gd} +{ definition field.or.null + "definition" check.required + duplicate$ has.period + { "*" } + { "" } + if$ + 'star.period := % definition is stored for later + begin.entry % this outputs word, ucword, and short + write$ % writes definition + end.entry +} + +FUNCTION {default.type} { losadef } + +FUNCTION {presort} +{ set.vars + push.sortword + group empty$ + { purify$ "L" } + 'group + if$ % sort-word heading + swap$ * % heading * sort-word + "l" change.case$ + 'sort.key$ := +} + +FUNCTION {begin.thelosa} +{ "\begin{thelosa}" + write$ + newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ +} + +FUNCTION {end.thelosa} +{ newline$ + "\end{thelosa}" write$ + newline$ +} + +FUNCTION {call.entries} + { group empty$ + 'push.heading + { heading empty$ + 'skip$ + { "Ignoring heading because there is group field in " + cite$ * + warning$ + } + if$ + group + } + if$ + "u" change.case$ + duplicate$ + group empty$ + 'skip$ + { "$$$$$" * } + if$ + duplicate$ + last.heading = + { pop$ pop$ } + { newline$ + 'last.heading := + group empty$ + { "\losaheading{" } + { "\losagroup{" } + if$ + swap$ * "}" * + write$ + newline$ + } + if$ + call.type$ + } + +READ + +ITERATE {presort} + +SORT + +EXECUTE {begin.thelosa} + +ITERATE {call.entries} + +EXECUTE {end.thelosa} + + diff --git a/Master/texmf-dist/bibtex/bst/gatech-thesis/gatech-thesis.bst b/Master/texmf-dist/bibtex/bst/gatech-thesis/gatech-thesis.bst new file mode 100644 index 00000000000..b076cdcfcdd --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gatech-thesis/gatech-thesis.bst @@ -0,0 +1,1137 @@ +% Georgia Tech thesis bibliography style (08-Aug-2002 version) +% like plain.bst, but: +% +% numeric labels, sorted, IEEE abbreviations (vol. not volume, +% no. not number, authors' first names abbreviated), quotes +% around article titles, commas separate all fields except after +% book titles and before "notes". Authors names typeset +% in small caps, surname first. +% +% Based on IEEE Transactions bibliography style (29-Jan-88 version) +% Differs from ieeetr.bst by: +% sorted, small cap author names, authors' first names abbreviated + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.quote after.sentence + after.quoted.block after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.quote := + #3 'after.sentence := + #4 'after.quoted.block := + #5 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.quote = + { " " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.quoted.block = + { write$ + newline$ + "\newblock " write$ + } + { add.period$ " " * write$ } + if$ + } + if$ + } + 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {blank.sep} +{ after.quote 'output.state := +} + +FUNCTION {fin.entry} +{ output.state after.quoted.block = + 'skip$ + 'add.period$ + if$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { output.state after.quote = + { after.quoted.block 'output.state := } + { after.block 'output.state := } + if$ + } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +%CSW: scapify copied from asm.bst +FUNCTION {scapify} +{ duplicate$ empty$ + { pop$ "" } + { "{\sc " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + %CSW: surname first, small caps + %{ s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ scapify 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " {\em et~al.}" * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { "``" title "t" change.case$ * ",''" * } + if$ +} + +FUNCTION {format.title.p} +{ title empty$ + { "" } + { "``" title "t" change.case$ * ".''" * } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "vol.~" volume * + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "no.~" } + { "No.~" } + if$ + number * + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition "l" change.case$ "~ed." * } + 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 empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.volume} +{ volume empty$ + { "" } + { "vol.~" volume * } + if$ +} + +FUNCTION {format.number} +{ number empty$ + { "" } + { "no.~" number * } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "ch.~" chapter * } + { type "l" change.case$ chapter tie.or.space.connect } + if$ + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { "in " booktitle emphasize * + editor empty$ + 'skip$ + { " (" * format.editors * ")" * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + output.state after.block = + { type "t" change.case$ } + { type "l" change.case$ } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + %CSW: plain.bst has the following line, unsrt.bst doesn't... + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. Rep." } + 'type + if$ + number empty$ + { "l" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.addr.pub} +{ publisher empty$ + { "" } + { address empty$ + { "" } + { address ": " * } + if$ + publisher * + } + if$ +} + +FUNCTION {format.paddress} +{ address empty$ + { "" } + { "(" address * ")" * } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in {\em " journal * "\/}" * } + if$ + } + { "in " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " {\em et~al.}" * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " {\em et~al.}" * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Vol.~" volume * + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "in {\em " booktitle * "\/}" * } + if$ + } + { "in " key * } + if$ + } + { "in " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + blank.sep + crossref missing$ + { journal emphasize "journal" output.check + format.volume output + month empty$ + { format.number output } + 'skip$ + if$ + format.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { 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 + new.block + format.number.series output + format.addr.pub "publisher" output.check + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + title empty$ + { "empty title in " cite$ * warning$ + howpublished new.sentence.checka + } + { howpublished empty$ not + address empty$ month empty$ year empty$ and and + or + { format.title.p output.nonnull } + { format.title output.nonnull } + if$ + blank.sep + } + if$ + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { 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 + new.block + format.number.series output + format.addr.pub "publisher" output.check + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + blank.sep + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + format.addr.pub "publisher" output.check + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + blank.sep + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.paddress output + format.pages output + organization output + publisher output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + blank.sep + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title empty$ + { howpublished new.sentence.checka } + { howpublished empty$ not + month empty$ year empty$ and + or + { format.title.p output.nonnull } + { format.title output.nonnull } + if$ + blank.sep + } + if$ + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + format.btitle "title" output.check + format.bvolume output + format.number.series output + format.paddress output + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + blank.sep + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title.p "title" output.check + blank.sep + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications ACM"} + +MACRO {ibmjrd} {"IBM J. Research and Development"} + +MACRO {ibmsj} {"IBM Systems~J."} + +MACRO {ieeese} {"IEEE Trans. Software Engineering"} + +MACRO {ieeetc} {"IEEE Trans. Computers"} + +MACRO {ieeetcad} + {"IEEE Trans. Computer-Aided Design"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM J. Computing"} + +MACRO {tocs} {"ACM Trans. Computer Systems"} + +MACRO {tods} {"ACM Trans. Database Systems"} + +MACRO {tog} {"ACM Trans. Graphics"} + +MACRO {toms} {"ACM Trans. Mathematical Software"} + +MACRO {toois} {"ACM Trans. Office Information Systems"} + +MACRO {toplas} {"ACM Trans. Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% CSW: sorting functions copied from plain.bst +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% CSW: end sorting functions copied from plain.bst +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/germbib/gerabbrv.bst b/Master/texmf-dist/bibtex/bst/germbib/gerabbrv.bst new file mode 100644 index 00000000000..1f6088715d0 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/germbib/gerabbrv.bst @@ -0,0 +1,1208 @@ +% BibTeX standard bibliography style `abbrv' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. +% 15-feb-92 (MW) Updated for use with `bibgerman.sty': things like "and" +% change with the language. Switch the language using the +% language field: +% language = "german" | "USenglish" | "english" +% Then a `\selectlanguage{...}' command will be pushed just +% before the `\bibitem...' command for the entry in work. +% 2003/03/31 Harald Harders Fixed bug in detection of "and others" +% 2003/04/29 Harald Harders Fixed bug format of names. For multiple +% names, some of them were not typeset in +% small caps. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block before.title } + +STRINGS { s t language.state language.temp } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {language.state.test} +{ + 'language.temp := + language.temp language.state = + { #1 } + { #0 } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + % next if is for use with `new' FUNCTION {after.authors} + { output.state before.title = + { ": " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + language empty$ + 'skip$ + { language.state language = + 'skip$ + { "\selectlanguage{\" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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$ +} + +% new one -> sets what is specified in FUNCTION {output.nonnull} +% if `before.title 'output.state = ... if$' is true +FUNCTION {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "\/}" * } + if$ +} + +FUNCTION {smallcaps} +{ duplicate$ empty$ + { pop$ "" } + { "{\sc " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + namesleft #1 > + { ", " * t smallcaps * } + { numnames #2 > + { "english" language.state.test + "USenglish" language.state.test + or + {"," * } + 'skip$ + if$ + } + 'skip$ + if$ + t "others" = + { " \btxetalshort{.}" * } + { " \btxandshort{.}\ " * t smallcaps * } + if$ + } + if$ + } + { s nameptr "{ll}{, jj}{, f.}{~vv}" format.name$ smallcaps } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorsshort{.})" * } + { "\ (\btxeditorshort{.})" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { "english" language.state.test + "USenglish" language.state.test + or + { title "t" change.case$ emphasize } + { title emphasize } + if$ + } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month "\ " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumeshort{.}" } + { "\btxvolumeshort{.}" } + if$ + volume tie.or.space.connect + series empty$ + 'skip$ + { " \btxofseriesshort{.}\ " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumbershort{.}" } + { "\Btxnumbershort{.}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinseriesshort{.}\ " * series emphasize * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { "english" language.state.test + "USenglish" language.state.test + or + { output.state mid.sentence = + { edition "l" change.case$ " \btxeditionshort{.}" * } + { edition "t" change.case$ " \btxeditionshort{.}" * } + if$ + } + { edition " \btxeditionshort{.}" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpagesshort{.}" pages n.dashify tie.or.space.connect } + { "\btxpageshort{.}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchaptershort{.}" } + { "english" language.state.test + "USenglish" language.state.test + or + { type "l" change.case$ } + { type } + if$ + } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinshort{.}\ " booktitle emphasize * } + { "\Btxinshort{.}\ " format.editors * ": " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + "english" language.state.test + "USenglish" language.state.test + or + { type "t" change.case$ } + { type } + if$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "\Btxtechrepshort{.}" } + 'type + if$ + number empty$ + { "english" language.state.test + "USenglish" language.state.test + or + { type empty$ + { pop$ "\btxtechreplong{}" } + { "t" change.case$ } + if$ + } + 'skip$ + if$ + } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinshort{.}\ " journal emphasize * } + if$ + } + { "\Btxinshort{.}\ " key emphasize * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{ll}{, jj}{, f.}{~vv}" format.name$ smallcaps + editor num.names$ duplicate$ + #2 > + { pop$ " \btxetalshort{.}" * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " \btxetalshort{.}" * } + { " \btxandshort{.}\ " * editor #2 "{vv~}{ll}" format.name$ smallcaps * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinshort{.}\ " + } + { "\Btxvolumeshort{.}" volume tie.or.space.connect + " \btxofseriesshort{.}\ " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series emphasize * } + if$ + } + { key emphasize * } + if$ + } + { "\Btxinshort{.}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Btxinshort{.}\ " booktitle emphasize * } + if$ + } + { "\Btxinshort{.}\ " key emphasize * } + if$ + } + { "\Btxinshort{.}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { emphasize } + 'skip$ + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization smallcaps output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis{}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis{}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization smallcaps output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanshort{.}"} + +MACRO {feb} {"\btxmonfebshort{.}"} + +MACRO {mar} {"\btxmonmarshort{.}"} + +MACRO {apr} {"\btxmonaprshort{.}"} + +MACRO {may} {"\btxmonmayshort{.}"} + +MACRO {jun} {"\btxmonjunshort{.}"} + +MACRO {jul} {"\btxmonjulshort{.}"} + +MACRO {aug} {"\btxmonaugshort{.}"} + +MACRO {sep} {"\btxmonsepshort{.}"} + +MACRO {oct} {"\btxmonoctshort{.}"} + +MACRO {nov} {"\btxmonnovshort{.}"} + +MACRO {dec} {"\btxmondecshort{.}"} + +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. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ f{ }}{vv{ } }{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/germbib/geralpha.bst b/Master/texmf-dist/bibtex/bst/germbib/geralpha.bst new file mode 100644 index 00000000000..984bbead5bc --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/germbib/geralpha.bst @@ -0,0 +1,1369 @@ +% BibTeX standard bibliography style `plain' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. +% 15-feb-92 (MW) Updated for use with `bibgerman.sty': things like "and" +% change with the language. Switch the language using the +% language field: +% language = "german" | "USenglish" | "english" +% Then a `\selectlanguage{...}' command will be pushed just +% before the `\bibitem...' command for the entry in work. +% 2003/03/31 Harald Harders Fixed bug in detection of "and others" +% 2003/04/29 Harald Harders Fixed bug format of names. For multiple +% names, some of them were not typeset in +% small caps. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block before.title } + +STRINGS { s t language.state language.temp } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {language.state.test} +{ + 'language.temp := + language.temp language.state = + { #1 } + { #0 } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + % next if is for use with `new' FUNCTION {after.authors} + { output.state before.title = + { ": " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + language empty$ + 'skip$ + { language.state language = + 'skip$ + { "\selectlanguage{\" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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$ +} + +% new one -> sets what is specified in FUNCTION {output.nonnull} +% if `before.title 'output.state = ... if$' is true +FUNCTION {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {smallcaps} +{ duplicate$ empty$ + { pop$ "" } + { "{\sc " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + namesleft #1 > + { ", " * t smallcaps * } + { numnames #2 > + { "english" language.state.test + "USenglish" language.state.test + or + {"," * } + 'skip$ + if$ + } + 'skip$ + if$ + t "others" = + { " \btxetalshort{.}" * } + { " \btxandlong{}\ " * t smallcaps * } + if$ + } + if$ + } + { s nameptr "{ll}{, jj}{, ff}{~vv}" format.name$ smallcaps } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorslong{})" * } + { "\ (\btxeditorlong{})" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { "english" language.state.test + "USenglish" language.state.test + or + { title "t" change.case$ emphasize } + { title emphasize } + if$ + } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumelong{}" } + { "\btxvolumelong{}" } + if$ + volume tie.or.space.connect + series empty$ + 'skip$ + { " \btxofserieslong{}\ " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumberlong{}" } + { "\Btxnumberlong{}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinserieslong{}\ " * series emphasize * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { "english" language.state.test + "USenglish" language.state.test + or + { output.state mid.sentence = + { edition "l" change.case$ " \btxeditionlong{}" * } + { edition "t" change.case$ " \btxeditionlong{}" * } + if$ + } + { edition " \btxeditionlong{}" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpageslong{}" pages n.dashify tie.or.space.connect } + { "\btxpagelong{}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchapterlong{}" } + { "english" language.state.test + "USenglish" language.state.test + or + { type "l" change.case$ } + { type } + if$ + } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinlong{}\ " booktitle emphasize * } + { "\Btxinlong{}\ " format.editors * ": " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + "english" language.state.test + "USenglish" language.state.test + or + { type "t" change.case$ } + { type } + if$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "\Btxtechreplong{}" } + 'type + if$ + number empty$ + { "english" language.state.test + "USenglish" language.state.test + or + { type empty$ + { pop$ "\btxtechreplong{}" } + { "t" change.case$ } + if$ + } + 'skip$ + if$ + } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinlong{}\ " journal emphasize * } + if$ + } + { "\Btxinlong{}\ " key emphasize * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{ll}{, jj}{, ff}{~vv}" format.name$ smallcaps + editor num.names$ duplicate$ + #2 > + { pop$ " \btxetalshort{.}" * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " \btxetalshort{.}" * } + { " \btxandlong{}\ " * editor #2 "{ff}{~vv}{~ll}{, jj}" format.name$ smallcaps * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinlong{}\ " + } + { "\Btxvolumelong{}" volume tie.or.space.connect + " \btxofserieslong{}\ " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series emphasize * } + if$ + } + { key emphasize * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Btxinlong{}\ " booktitle emphasize * } + if$ + } + { "\Btxinlong{}\ " key emphasize * } + if$ + } + { "\Btxinlong{}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { emphasize } + 'skip$ + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization smallcaps output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis{}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis{}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization smallcaps output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanlong{}"} + +MACRO {feb} {"\btxmonfeblong{}"} + +MACRO {mar} {"\btxmonmarlong{}"} + +MACRO {apr} {"\btxmonaprlong{}"} + +MACRO {may} {"\btxmonmaylong{}"} + +MACRO {jun} {"\btxmonjunlong{}"} + +MACRO {jul} {"\btxmonjullong{}"} + +MACRO {aug} {"\btxmonauglong{}"} + +MACRO {sep} {"\btxmonseplong{}"} + +MACRO {oct} {"\btxmonoctlong{}"} + +MACRO {nov} {"\btxmonnovlong{}"} + +MACRO {dec} {"\btxmondeclong{}"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label + sort.label + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {begin.bib} +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/germbib/gerapali.bst b/Master/texmf-dist/bibtex/bst/germbib/gerapali.bst new file mode 100644 index 00000000000..7e521813e20 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/germbib/gerapali.bst @@ -0,0 +1,1227 @@ +% BibTeX `apalike' bibliography style (24-Jan-88 version) +% Adapted from the `alpha' style, version 0.99a; for BibTeX version 0.99a. +% Copyright (C) 1988, all rights reserved. +% Copying of this file is allowed, provided that if you make any changes at all +% you name it something other than `apalike.bst'. +% This restriction helps ensure that all copies are identical. +% Differences between this style and `alpha' are generally heralded by a `%'. +% The file btxbst.doc has the documentation for alpha.bst. +% +% This style should be used with the `apalike' LaTeX style (apalike.sty). +% \cite's come out like "(Jones, 1986)" in the text but there are no labels +% in the bibliography, and something like "(1986)" comes out immediately +% after the author. Author (and editor) names appear as last name, comma, +% initials. A `year' field is required for every entry, and so is either +% an author (or in some cases, an editor) field or a key field. +% +% Editorial note: +% Many journals require a style like `apalike', but I strongly, strongly, +% strongly recommend that you not use it if you have a choice---use something +% like `plain' instead. Mary-Claire van Leunen (A Handbook for Scholars, +% Knopf, 1979) argues convincingly that a style like `plain' encourages better +% writing than one like `apalike'. Furthermore the strongest arguments for +% using an author-date style like `apalike'---that it's "the most practical" +% (The Chicago Manual of Style, University of Chicago Press, thirteenth +% edition, 1982, pages 400--401)---fall flat on their face with the new +% computer-typesetting technology. For instance page 401 anachronistically +% states "The chief disadvantage of [a style like `plain'] is that additions +% or deletions cannot be made after the manuscript is typed without changing +% numbers in both text references and list." LaTeX sidesteps the disadvantage. +% +% History: +% 15-sep-86 (SK,OP) Original version, by Susan King and Oren Patashnik. +% 10-nov-86 (OP) Truncated the sort.key$ string to the correct length +% in bib.sort.order to eliminate error message. +% 24-jan-88 (OP) Updated for BibTeX version 0.99a, from alpha.bst 0.99a; +% apalike now sorts by author, then year, then title; +% THIS `apalike' VERSION DOES NOT WORK WITH BIBTEX 0.98i. +% 15-feb-92 (MW) Updated for use with `bibgerman.sty': things like "and" +% change with the language. Switch the language using the +% language field: +% language = "german" | "USenglish" | "english" +% Then a `\selectlanguage{...}' command will be pushed just +% before the `\bibitem...' command for the entry in work. + +ENTRY + { address + author + booktitle + chapter + citelabel + edition + editor + howpublished + institution + journal + key + language +% month not used in apalike + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block before.title } + +STRINGS { s t language.state language.temp } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {language.state.test} +{ + 'language.temp := + language.temp language.state = + { #1 } + { #0 } + if$ +} + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + % next if is for use with `new' FUNCTION {after.authors} + { output.state before.title = + { ": " * write$ } + { add.period$ " " * write$ } + if$ + } + 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$ +} + +% apalike needs this function because +% the year has special punctuation; +% apalike ignores the month +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ + "\ (" year * extra.label * ")" * + mid.sentence 'output.state := + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + language empty$ + 'skip$ + { language.state language = + 'skip$ + { "\selectlanguage{\" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +% new one -> sets what is specified in FUNCTION {output.nonnull} +% if `before.title 'output.state = ... if$' is true +% FUNCTION {after.authors} +% { output.state before.all = +% 'skip$ +% { before.title 'output.state := } +% if$ +% } + +% original -> sets points after (year) and before title +FUNCTION {after.authors} +{ new.block } + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +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$ "" } + { "{\em " swap$ * "\/}" * } + if$ +} + +FUNCTION {smallcaps} +{ duplicate$ empty$ + { pop$ "" } + { "{\sc " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := % last name first + namesleft #1 > + { ", " * t smallcaps * } + { numnames #2 > + { "english" language.state.test + "USenglish" language.state.test + or + {"," * } + 'skip$ + if$ + } + 'skip$ + if$ + t "others" = + { " \btxetalshort{.}" * } + { " \btxandshort{.}\ " * t smallcaps * } + if$ + } + if$ + } + { s nameptr "{ll}{, jj}{, ff}{~vv}" format.name$ smallcaps } % last name first + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.key} % this function is just for apalike +{ empty$ + { key field.or.null + duplicate$ empty$ + 'skip$ + { smallcaps } + if$ + } + { "" } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", \btxeditorsshort{.}" * } + { ", \btxeditorshort{.}" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { "english" language.state.test + "USenglish" language.state.test + or + { title "t" change.case$ emphasize } + { title emphasize } + if$ + } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumeshort{.}" } + { "\btxvolumeshort{.}" } + if$ + volume tie.or.space.connect + series empty$ + 'skip$ + { " \btxofseriesshort{.}\ " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumbershort{.}" } + { "\Btxnumbershort{.}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinseriesshort{.}\ " * series emphasize * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { "english" language.state.test + "USenglish" language.state.test + or + { output.state mid.sentence = + { edition "l" change.case$ " \btxeditionshort{.}" * } + { edition "t" change.case$ " \btxeditionshort{.}" * } + if$ + } + { edition " \btxeditionshort{.}" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpagesshort{.}" pages n.dashify tie.or.space.connect } + { "\btxpageshort{.}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchaptershort{.}" } + { "english" language.state.test + "USenglish" language.state.test + or + { type "l" change.case$ } + { type } + if$ + } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinshort{.}\ " booktitle emphasize * } + { "\Btxinshort{.}\ " format.editors * ": " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + "english" language.state.test + "USenglish" language.state.test + or + { type "t" change.case$ } + { type } + if$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "\Btxtechreplong{.}" } + 'type + if$ + number empty$ + { "english" language.state.test + "USenglish" language.state.test + or + { type empty$ + { pop$ "\btxtechreplong{.}" } + { "t" change.case$ } + if$ + } + 'skip$ + if$ + } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "In" % this is for apalike + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinshort{.}\ " + } + { "\Btxvolumeshort{.}" volume tie.or.space.connect + " \btxofseriesshort{.}\ " * + } + if$ + "\cite{" * crossref * "}" * % this is for apalike +} + +FUNCTION {format.incoll.inproc.crossref} +{ "\Btxinshort{.}\ " % this is for apalike + "\cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { emphasize } + 'skip$ + if$ + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + 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$ + output.year.check % special for apalike + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + after.authors + format.title "title" output.check + new.block + howpublished output + address output + new.block + 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$ + output.year.check % special for apalike + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address output % for apalike + new.sentence % there's no year + organization output % here so things + publisher output % are simpler + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + after.authors + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + after.authors + format.title "title" output.check + new.block + "\btxmastthesis{.}" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % special for + output.year.check % apalike + after.authors + format.title output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis{.}" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output % special for + output.year.check % apalike + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output % for apalike + new.sentence % we always output + organization output % a nonempty organization + publisher output % here + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output % special for + output.year.check % apalike + after.authors + format.title "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanshort{.}"} + +MACRO {feb} {"\btxmonfebshort{.}"} + +MACRO {mar} {"\btxmonmarshort{.}"} + +MACRO {apr} {"\btxmonaprshort{.}"} + +MACRO {may} {"\btxmonmayshort{.}"} + +MACRO {jun} {"\btxmonjunshort{.}"} + +MACRO {jul} {"\btxmonjulshort{.}"} + +MACRO {aug} {"\btxmonaugshort{.}"} + +MACRO {sep} {"\btxmonsepshort{.}"} + +MACRO {oct} {"\btxmonoctshort{.}"} + +MACRO {nov} {"\btxmonnovshort{.}"} + +MACRO {dec} {"\btxmondecshort{.}"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +% There are three apalike cases: one person (Jones), +% two (Jones and de~Bruijn), and more (Jones et~al.). +% This function is much like format.crossref.editors. +% +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ smallcaps + s num.names$ duplicate$ + #2 > + { pop$ " \btxetalshort{.}" * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " \btxetalshort{.}" * } + { " \btxandshort{.}\ " * s #2 "{vv~}{ll}" format.name$ smallcaps * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ citelabel empty$ + { author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole key + if$ + } + { author format.lab.names } + if$ + } + { citelabel smallcaps } + if$ +} + +FUNCTION {author.editor.key.label} +{ citelabel empty$ + { author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ + } + { citelabel smallcaps } + if$ +} + +FUNCTION {editor.key.label} +{ citelabel empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key % apalike uses the whole key, no organization + if$ + } + { editor format.lab.names } + if$ + } + { citelabel smallcaps } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label % apalike ignores organization + 'author.key.label % for labeling and sorting + if$ + } + if$ + year empty$ + {""} +% {", "} % original + {" "} % gendert fr Andreas Diplomarbeit 30/04/92 + if$ % these three lines are + * % for apalike, which +% year field.or.null purify$ #-1 #4 substring$ % uses all four digits % original + year field.or.null % gendert fr Andreas Diplomarbeit 19/09/92 um Jahresangaben wie 1988a, 1988b zu ermglichen + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ % apalike uses initials + s nameptr "{ll{ }}{ ff{ }}{vv{ } }{ jj{ }}" format.name$ 't := % <= here + nameptr numnames = t "others" = and + { "et al" * } + { 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$ +} + +% apalike uses two sorting passes; the first one sets the +% labels so that the `a's, `b's, etc. can be computed; +% the second pass puts the references in "correct" order. +% The presort function is for the first pass. It computes +% label, sort.label, and title, and then concatenates. +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$ % for + 'sort.label := % apalike + sort.label % style + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT % by label, sort.label, title---for final label calculation + +STRINGS { last.label next.extra } % apalike labels are only for the text; + +INTEGERS { last.extra.num } % there are none in the bibliography + +FUNCTION {initialize.extra.label.stuff} % and hence there is no `longest.label' +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +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$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + extra.label 'next.extra := +} + +EXECUTE {initialize.extra.label.stuff} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +% Now that the label is right we sort for real, +% on sort.label then year then title. This is +% for the second sorting 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 % by sort.label, year, title---giving final bibliography order + +FUNCTION {begin.bib} +{ preamble$ empty$ % no \etalchar in apalike + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ % no labels in apalike +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/germbib/gerplain.bst b/Master/texmf-dist/bibtex/bst/germbib/gerplain.bst new file mode 100644 index 00000000000..5e2de73cd47 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/germbib/gerplain.bst @@ -0,0 +1,1209 @@ +% BibTeX standard bibliography style `plain' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. +% 15-feb-92 (MW) Updated for use with `bibgerman.sty': things like "and" +% change with the language. Switch the language using the +% language field: +% language = "german" | "USenglish" | "english" +% Then a `\selectlanguage{...}' command will be pushed just +% before the `\bibitem...' command for the entry in work. +% 2003/03/31 Harald Harders Fixed bug in detection of "and others" +% 2003/04/29 Harald Harders Fixed bug format of names. For multiple +% names, some of them were not typeset in +% small caps. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block before.title } + +STRINGS { s t language.state language.temp } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {language.state.test} +{ + 'language.temp := + language.temp language.state = + { #1 } + { #0 } + if$ +} + + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + % next if is for use with `new' FUNCTION {after.authors} + { output.state before.title = + { ": " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + language empty$ + 'skip$ + { language.state language = + 'skip$ + { "\selectlanguage{\" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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$ +} + +% new one -> sets what is specified in FUNCTION {output.nonnull} +% if `before.title 'output.state = ... if$' is true +FUNCTION {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {smallcaps} +{ duplicate$ empty$ + { pop$ "" } + { "{\sc " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + namesleft #1 > + { ", " * t smallcaps * } + { numnames #2 > + { "english" language.state.test + "USenglish" language.state.test + or + {"," * } + 'skip$ + if$ + } + 'skip$ + if$ + t "others" = + { " \btxetalshort{.}" * } + { " \btxandlong{}\ " * t smallcaps * } + if$ + } + if$ + } + { s nameptr "{ll}{, jj}{, ff}{~vv}" format.name$ smallcaps } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorslong{})" * } + { "\ (\btxeditorlong{})" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { "english" language.state.test + "USenglish" language.state.test + or + { title "t" change.case$ emphasize } + { title emphasize } + if$ + } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumelong{}" } + { "\btxvolumelong{}" } + if$ + volume tie.or.space.connect + series empty$ + 'skip$ + { " \btxofserieslong{}\ " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumberlong{}" } + { "\Btxnumberlong{}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinserieslong{}\ " * series emphasize * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { "english" language.state.test + "USenglish" language.state.test + or + { output.state mid.sentence = + { edition "l" change.case$ " \btxeditionlong{}" * } + { edition "t" change.case$ " \btxeditionlong{}" * } + if$ + } + { edition " \btxeditionlong{}" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpageslong{}" pages n.dashify tie.or.space.connect } + { "\btxpagelong{}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchapterlong{}" } + { "english" language.state.test + "USenglish" language.state.test + or + { type "l" change.case$ } + { type } + if$ + } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinlong{}\ " booktitle emphasize * } + { "\Btxinlong{}\ " format.editors * ": " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + "english" language.state.test + "USenglish" language.state.test + or + { type "t" change.case$ } + { type } + if$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "\Btxtechreplong{}" } + 'type + if$ + number empty$ + { "english" language.state.test + "USenglish" language.state.test + or + { type empty$ + { pop$ "\btxtechreplong{}" } + { "t" change.case$ } + if$ + } + 'skip$ + if$ + } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinlong{}\ " journal emphasize * } + if$ + } + { "\Btxinlong{}\ " key emphasize * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{ll}{, jj}{, ff}{~vv}" format.name$ smallcaps + editor num.names$ duplicate$ + #2 > + { pop$ " \btxetalshort{.}" * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " \btxetalshort{.}" * } + { " \btxandlong{}\ " * editor #2 "{ff}{~vv}{~ll}{, jj}" format.name$ smallcaps * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinlong{}\ " + } + { "\Btxvolumelong{}" volume tie.or.space.connect + " \btxofserieslong{}\ " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series emphasize * } + if$ + } + { key emphasize * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Btxinlong{}\ " booktitle emphasize * } + if$ + } + { "\Btxinlong{}\ " key emphasize * } + if$ + } + { "\Btxinlong{}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { emphasize } + 'skip$ + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization smallcaps output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis{}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis{}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization smallcaps output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanlong{}"} + +MACRO {feb} {"\btxmonfeblong{}"} + +MACRO {mar} {"\btxmonmarlong{}"} + +MACRO {apr} {"\btxmonaprlong{}"} + +MACRO {may} {"\btxmonmaylong{}"} + +MACRO {jun} {"\btxmonjunlong{}"} + +MACRO {jul} {"\btxmonjullong{}"} + +MACRO {aug} {"\btxmonauglong{}"} + +MACRO {sep} {"\btxmonseplong{}"} + +MACRO {oct} {"\btxmonoctlong{}"} + +MACRO {nov} {"\btxmonnovlong{}"} + +MACRO {dec} {"\btxmondeclong{}"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ ff{ }}{vv{ } }{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/germbib/gerunsrt.bst b/Master/texmf-dist/bibtex/bst/germbib/gerunsrt.bst new file mode 100644 index 00000000000..293ef709c5b --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/germbib/gerunsrt.bst @@ -0,0 +1,1063 @@ +% BibTeX standard bibliography style `plain' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. +% 15-feb-92 (MW) Updated for use with `bibgerman.sty': things like "and" +% change with the language. Switch the language using the +% language field: +% language = "german" | "USenglish" | "english" +% Then a `\selectlanguage{...}' command will be pushed just +% before the `\bibitem...' command for the entry in work. +% 2003/03/31 Harald Harders Fixed bug in detection of "and others" +% 2003/04/29 Harald Harders Fixed bug format of names. For multiple +% names, some of them were not typeset in +% small caps. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block before.title } + +STRINGS { s t language.state language.temp } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.title := + "nostate" 'language.state := +} + +FUNCTION {language.state.test} +{ + 'language.temp := + language.temp language.state = + { #1 } + { #0 } + if$ +} + + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + % next if is for use with `new' FUNCTION {after.authors} + { output.state before.title = + { ": " * write$ } + { add.period$ " " * write$ } + if$ + } + 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 {output.bibitem} +{ newline$ + language empty$ + 'skip$ + { language.state language = + 'skip$ + { "\selectlanguage{\" language * "}" * write$ + newline$ + } + if$ + language 'language.state := + } + if$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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$ +} + +% new one -> sets what is specified in FUNCTION {output.nonnull} +% if `before.title 'output.state = ... if$' is true +FUNCTION {after.authors} +{ output.state before.all = + 'skip$ + { before.title 'output.state := } + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkc} +{ empty$ + swap$ empty$ + and + 'skip$ + 'after.authors + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {smallcaps} +{ duplicate$ empty$ + { pop$ "" } + { "{\sc " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + namesleft #1 > + { ", " * t smallcaps * } + { numnames #2 > + { "english" language.state.test + "USenglish" language.state.test + or + {"," * } + 'skip$ + if$ + } + 'skip$ + if$ + t "others" = + { " \btxetalshort{.}" * } + { " \btxandlong{}\ " * t smallcaps * } + if$ + } + if$ + } + { s nameptr "{ll}{, jj}{, ff}{~vv}" format.name$ smallcaps } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { "\ (\btxeditorslong{})" * } + { "\ (\btxeditorlong{})" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { "english" language.state.test + "USenglish" language.state.test + or + { title "t" change.case$ emphasize } + { title emphasize } + if$ + } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { "\ " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { output.state after.block = + { "\Btxvolumelong{}" } + { "\btxvolumelong{}" } + if$ + volume tie.or.space.connect + series empty$ + 'skip$ + { " \btxofserieslong{}\ " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\btxnumberlong{}" } + { "\Btxnumberlong{}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \btxinserieslong{}\ " * series emphasize * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { "english" language.state.test + "USenglish" language.state.test + or + { output.state mid.sentence = + { edition "l" change.case$ " \btxeditionlong{}" * } + { edition "t" change.case$ " \btxeditionlong{}" * } + if$ + } + { edition " \btxeditionlong{}" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\btxpageslong{}" pages n.dashify tie.or.space.connect } + { "\btxpagelong{}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\btxchapterlong{}" } + { "english" language.state.test + "USenglish" language.state.test + or + { type "l" change.case$ } + { type } + if$ + } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Btxinlong{}\ " booktitle emphasize * } + { "\Btxinlong{}\ " format.editors * ": " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + "english" language.state.test + "USenglish" language.state.test + or + { type "t" change.case$ } + { type } + if$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "\Btxtechreplong{}" } + 'type + if$ + number empty$ + { "english" language.state.test + "USenglish" language.state.test + or + { type empty$ + { pop$ "\btxtechreplong{}" } + { "t" change.case$ } + if$ + } + 'skip$ + if$ + } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Btxinlong{}\ " journal emphasize * } + if$ + } + { "\Btxinlong{}\ " key emphasize * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{ll}{, jj}{, ff}{~vv}" format.name$ smallcaps + editor num.names$ duplicate$ + #2 > + { pop$ " \btxetalshort{.}" * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " \btxetalshort{.}" * } + { " \btxandlong{}\ " * editor #2 "{ff}{~vv}{~ll}{, jj}" format.name$ smallcaps * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Btxinlong{}\ " + } + { "\Btxvolumelong{}" volume tie.or.space.connect + " \btxofserieslong{}\ " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series emphasize * } + if$ + } + { key emphasize * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Btxinlong{}\ " booktitle emphasize * } + if$ + } + { "\Btxinlong{}\ " key emphasize * } + if$ + } + { "\Btxinlong{}\ " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { journal + title missing$ + { emphasize } + 'skip$ + if$ + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + after.authors + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + after.authors + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization smallcaps output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + "\btxmastthesis{}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkc + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + after.authors + format.btitle "title" output.check + new.block + "\btxphdthesis{}" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization smallcaps output } + { format.editors output.nonnull } + if$ + after.authors + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + after.authors + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\btxmonjanlong{}"} + +MACRO {feb} {"\btxmonfeblong{}"} + +MACRO {mar} {"\btxmonmarlong{}"} + +MACRO {apr} {"\btxmonaprlong{}"} + +MACRO {may} {"\btxmonmaylong{}"} + +MACRO {jun} {"\btxmonjunlong{}"} + +MACRO {jul} {"\btxmonjullong{}"} + +MACRO {aug} {"\btxmonauglong{}"} + +MACRO {sep} {"\btxmonseplong{}"} + +MACRO {oct} {"\btxmonoctlong{}"} + +MACRO {nov} {"\btxmonnovlong{}"} + +MACRO {dec} {"\btxmondeclong{}"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/gloss/glsplain.bst b/Master/texmf-dist/bibtex/bst/gloss/glsplain.bst new file mode 100644 index 00000000000..675407b4c29 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gloss/glsplain.bst @@ -0,0 +1,252 @@ +% (c) 1998 Jose Luis Diaz, 1999-2002 Jose Luis Diaz and Javier Bezos. +% All Rights Reserved. +% +% This file is part of the gloss distribution release 1.5.2 +% -------------------------------------------------------- +% +% This 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. +% +%% History of v0.1 +%% ~~~~~~~~~~~~~~~ +%% 1997/06/25 (JLDdA) Original version, by Jose Luis Diaz de Arriba (and an +%% unindicted co-conspirator) +%% History of v1.0 +%% ~~~~~~~~~~~~~~~ +%% 1999/07/29 (JBL) Rewritten in full. Now it warns if a required field is +%% missing, conforms the new gloss.sty syntax, and +%% writes headings for each letter. The heading, +%% short, and group fiels have been added. +%% History of v1.1-1.4 +%% ~~~~~~~~~~~~~~~~~~~ +%% 1999/10/10 (JBL) Lots of changes. +%% History of v.1.5 +%% ~~~~~~~~~~~~~~~~ +%% 2001/08/02 (JBL) Added the sort-short field for compatility +%% with glsshort.bst + +STRINGS { last.heading s t star.period} + +ENTRY + { word + sort-word + definition + heading + group + short + sort-short + } + {} + { ucword } + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {has.period} +{ duplicate$ + add.period$ = +} + +FUNCTION {str.length} +{ 't := + #0 + { t empty$ not } + { t #2 global.max$ substring$ + 't := + #1 + + } + while$ +} + + +FUNCTION {upper.first} +{ duplicate$ + #1 text.prefix$ + duplicate$ + "u" change.case$ + 's := + str.length + #1 + entry.max$ substring$ + s swap$ * +} + +FUNCTION {check.required} +{ 's := + duplicate$ empty$ + { "Empty " s * " in " * cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {push.sortword} +{ sort-word empty$ + { word field.or.null } + 'sort-word + if$ +} + +FUNCTION {check.alpha} +{ duplicate$ + purify$ + empty$ + { "Non alphabetical " cite$ * + " entry without group field" * warning$ } + 'skip$ + if$ +} + +FUNCTION {push.heading} +{ heading empty$ + { word field.or.null + #1 text.prefix$ + check.alpha + } + 'heading + if$ +} + +FUNCTION {begin.entry} +{ newline$ + "\begin{glossitem" star.period * write$ + "}{" write$ + cite$ write$ + "}{" write$ + word write$ + "}{" write$ + ucword write$ + "}{" write$ + short field.or.null write$ + "}" write$ + newline$ +} + +FUNCTION {end.entry} +{ "\end{glossitem" star.period "}" * * write$ + newline$ +} + +FUNCTION {set.vars} +{ word field.or.null + "word" check.required + upper.first + 'ucword := +} + + +FUNCTION {glossdef} +{ definition field.or.null + "definition" check.required + duplicate$ has.period + { "*" } + { "" } + if$ + 'star.period := % definition is stored for later writing + begin.entry % this outputs word, ucword, and short + write$ % writes definition + end.entry +} + +FUNCTION {gd} +{ definition field.or.null + "definition" check.required + duplicate$ has.period + { "*" } + { "" } + if$ + 'star.period := % definition is stored for later + begin.entry % this outputs word, ucword, and short + write$ % writes definition + end.entry +} + +FUNCTION {default.type} { glossdef } + +FUNCTION {presort} +{ set.vars + push.sortword + group empty$ + { purify$ "L" } + 'group + if$ % sort-word heading + swap$ * % heading * sort-word + "l" change.case$ + 'sort.key$ := +} + +FUNCTION {begin.thegloss} +{ "\begin{thegloss}" + write$ + newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ +} + +FUNCTION {end.thegloss} +{ newline$ + "\end{thegloss}" write$ + newline$ +} + +FUNCTION {call.entries} + { group empty$ + 'push.heading + { heading empty$ + 'skip$ + { "Ignoring heading because there is group field in " + cite$ * + warning$ + } + if$ + group + } + if$ + "u" change.case$ + duplicate$ + group empty$ + 'skip$ + { "$$$$$" * } + if$ + duplicate$ + last.heading = + { pop$ pop$ } + { newline$ + 'last.heading := + group empty$ + { "\glossheading{" } + { "\glossgroup{" } + if$ + swap$ * "}" * + write$ + newline$ + } + if$ + call.type$ + } + +READ + +ITERATE {presort} + +SORT + +EXECUTE {begin.thegloss} + +ITERATE {call.entries} + +EXECUTE {end.thegloss} + + diff --git a/Master/texmf-dist/bibtex/bst/gloss/glsshort.bst b/Master/texmf-dist/bibtex/bst/gloss/glsshort.bst new file mode 100644 index 00000000000..babd8ded93c --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gloss/glsshort.bst @@ -0,0 +1,251 @@ +% (c) 1998 Jose Luis Diaz, 1999-2002 Jose Luis Diaz and Javier Bezos. +% All Rights Reserved. +% +% This file is part of the gloss distribution release 1.5.2 +% ----------------------------------------------------------- +% +% This 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. +% +%% History of v0.1 +%% ~~~~~~~~~~~~~~~ +%% 1997/06/25 (JLDdA) Original version, by Jose Luis Diaz de Arriba (and an +%% unindicted co-conspirator) +%% History of v1.0 +%% ~~~~~~~~~~~~~~~ +%% 1999/07/29 (JBL) Rewritten in full. Now it warns if a required field is +%% missing, conforms the new gloss.sty syntax, and +%% writes headings for each letter. The heading, +%% short, and group fiels have been added. +%% History of v1.1-1.4 +%% ~~~~~~~~~~~~~~~~~~~ +%% 1999/10/10 (JBL) Lots of changes. +%% History of v.1.5 +%% ~~~~~~~~~~~~~~~~ +%% 2001/08/02 (JBL) Created this file from glsplain.bst + +STRINGS { last.heading s t star.period} + +ENTRY + { word + sort-word + definition + heading + group + short + sort-short + } + {} + { ucword } + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {has.period} +{ duplicate$ + add.period$ = +} + +FUNCTION {str.length} +{ 't := + #0 + { t empty$ not } + { t #2 global.max$ substring$ + 't := + #1 + + } + while$ +} + + +FUNCTION {upper.first} +{ duplicate$ + #1 text.prefix$ + duplicate$ + "u" change.case$ + 's := + str.length + #1 + entry.max$ substring$ + s swap$ * +} + +FUNCTION {check.required} +{ 's := + duplicate$ empty$ + { "Empty " s * " in " * cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {push.sortshort} +{ sort-short empty$ + { short field.or.null } + 'sort-short + if$ +} + +FUNCTION {check.alpha} +{ duplicate$ + purify$ + empty$ + { "Non alphabetical " cite$ * + " entry without group field" * warning$ } + 'skip$ + if$ +} + +FUNCTION {push.heading} +{ heading empty$ + { short field.or.null + #1 text.prefix$ + check.alpha + } + 'heading + if$ +} + +FUNCTION {begin.entry} +{ newline$ + "\begin{glossitem" star.period * write$ + "}{" write$ + cite$ write$ + "}{" write$ + word write$ + "}{" write$ + ucword write$ + "}{" write$ + short field.or.null write$ + "}" write$ + newline$ +} + +FUNCTION {end.entry} +{ "\end{glossitem" star.period "}" * * write$ + newline$ +} + +FUNCTION {set.vars} +{ short field.or.null + "short" check.required + upper.first + 'ucword := +} + + +FUNCTION {glossdef} +{ definition field.or.null + "definition" check.required + duplicate$ has.period + { "*" } + { "" } + if$ + 'star.period := % definition is stored for later writing + begin.entry % this outputs word, ucword, and short + write$ % writes definition + end.entry +} + +FUNCTION {gd} +{ definition field.or.null + "definition" check.required + duplicate$ has.period + { "*" } + { "" } + if$ + 'star.period := % definition is stored for later + begin.entry % this outputs word, ucword, and short + write$ % writes definition + end.entry +} + +FUNCTION {default.type} { glossdef } + +FUNCTION {presort} +{ set.vars + push.sortshort + group empty$ + { purify$ "L" } + 'group + if$ % sort-short heading + swap$ * % heading * sort-short + "l" change.case$ + 'sort.key$ := +} + +FUNCTION {begin.thegloss} +{ "\begin{thegloss}" + write$ + newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ +} + +FUNCTION {end.thegloss} +{ newline$ + "\end{thegloss}" write$ + newline$ +} + +FUNCTION {call.entries} + { group empty$ + 'push.heading + { heading empty$ + 'skip$ + { "Ignoring heading because there is group field in " + cite$ * + warning$ + } + if$ + group + } + if$ + "u" change.case$ + duplicate$ + group empty$ + 'skip$ + { "$$$$$" * } + if$ + duplicate$ + last.heading = + { pop$ pop$ } + { newline$ + 'last.heading := + group empty$ + { "\glossheading{" } + { "\glossgroup{" } + if$ + swap$ * "}" * + write$ + newline$ + } + if$ + call.type$ + } + +READ + +ITERATE {presort} + +SORT + +EXECUTE {begin.thegloss} + +ITERATE {call.entries} + +EXECUTE {end.thegloss} + + diff --git a/Master/texmf-dist/bibtex/bst/gost/gost71s.bst b/Master/texmf-dist/bibtex/bst/gost/gost71s.bst new file mode 100644 index 00000000000..a9c393568fc --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/gost71s.bst @@ -0,0 +1,1577 @@ +%% +%% This is file `gost71s.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gost.dtx (with options: `gost71s') +%% +%% Copyright 1996-2005 Maksym Polyakov. +%% Version 2005.08.12 +%% +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.2 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% Please, send bug reports via e-mail: +%% polyama at auburn dot edu +%% +%% 2005.08.12 Bug fix (long annote) +%% +%% 2003.06.06 contributions by Konstantin Vorontsov: +%% New ENTRY "annote" added for output annotations. +%% New commands BibUrl, BibAnnote added for customize urls and annotations. +%% +%% 2003.08.10 +%% New command BibEmph added for customize emphasizing. +%% +%% 2003.10.07 +%% Some bug fixes in names and date formatting. +%% +%% 2003.10.07 +%% Bug fix in INPROCEEDINGS. +%% +%% +%% This bibliography style attempts +%% to format bibliography according to +%% GOST 7.1-84 vd970321 +%% +%% For the Ukrainian|Russian bibliographic entries +%% you need to create field +%% language = {ukrainian|russian}. +%% Default language is English. +%% Field numpages for books must contain number of pages. +%% Optional field url will format url (using hyperref, if loaded). +%% +%% See examples in gost71.pdf and gost780.pdf +%% +%% Requires 8-bit bibtex with switch -B and csf file supporting cyrillic. +%% bibtex8 -B -c .csf +%% + +ENTRY + { address + annote + author + booktitle + bookauthor + chapter + edition + editor + compiler + howpublished + institution + journal + key + month + note + number + organization + pages + numpages + publisher + school + series + title + type + volume + year + language + booklanguage + url + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block +after.dblslash after.slash after.column after.semicolumn} + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'after.dblslash := + #5 'after.slash := + #6 'after.column := + #7 'after.semicolumn := +} + +STRINGS { s t } + +STRINGS { curlanguage } + +FUNCTION {change.language} +{ booklanguage empty$ + {""} + {booklanguage 'curlanguage := + "\selectlanguageifdefined{" + curlanguage * + "}" * + } + if$ +} + +FUNCTION {output.nonnull} +%%%{ 's := +{ swap$ + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + " " quote$ "--- " * * write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.dblslash = + { "~//" * change.language * " " * write$ } + { output.state after.slash = + { "~/ " * write$ } + { output.state after.column = + { ": " * write$ } + { output.state after.semicolumn = + { "; " * write$ } + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + } + if$ + } + 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.dblslash} +{ output.state before.all = + 'skip$ + { after.dblslash 'output.state := } + if$ +} + +FUNCTION {new.slash} +{ output.state before.all = + 'skip$ + { after.slash 'output.state := } + if$ +} + +FUNCTION {new.column} +{ output.state before.all = + 'skip$ + { after.column 'output.state := } + if$ +} + +FUNCTION {new.semicolumn} +{ output.state before.all = + 'skip$ + { after.semicolumn '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 {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.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {space.word} +{ " " swap$ * " " * } + +FUNCTION {bbl.edby} % { "\bbledby{}" } +{ curlanguage "english" = + {"Ed. by "} + { curlanguage "ukrainian" = + {"{\cyr\CYRP\cyrii\cyrd\ \cyrr\cyre\cyrd.\ }"} + { curlanguage "russian" = + {"{\cyr\CYRP\cyro\cyrd\ \cyrr\cyre\cyrd.\ }"} + {"language is not defined: " language "edited by" * * warning$ "edited by"} + if$} + if$} + if$ +} + +FUNCTION {bbl.cmplr} +{ curlanguage "english" = + {"Compiler "} + { curlanguage "ukrainian" = + {"{\cyr\CYRU\cyrk\cyrl.\ }"} + { curlanguage "russian" = + {"{\cyr\CYRS\cyro\cyrs\cyrt.\ }"} + {"language is not defined: " language "compiler" * * warning$ "compiler"} + if$} + if$} + if$ +} + +FUNCTION {bbl.edition} % { "\bbledition{}" } +{ curlanguage "english" = + {"edition"} + { curlanguage "ukrainian" = + {"{\cyr\cyrv\cyri\cyrd.}"} + { curlanguage "russian" = + {"{\cyr\cyri\cyrz\cyrd.}"} + {"language is not defined: " language "edition" * * warning$ "edition"} + if$} + if$} + if$ +} + +FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +{ curlanguage "english" = + {"Volume"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"\CYRT\cyro\cyrm"} + {"language is not defined: " language "Volume" * * warning$ "Volume"} + if$} + if$ +} + +FUNCTION {bbl.vvol} % { "\bblVol{}" } +{ curlanguage "english" = + {"Vol."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"\CYRT."} + {"language is not defined: " language "Vol." * * warning$ "Vol."} + if$} + if$ +} + +FUNCTION {bbl.iissue} % { "\bblIssue{}" } +{ curlanguage "english" = + {"Issue"} + { curlanguage "ukrainian" = + {"\CYRV\cyri\cyrp\cyru\cyrs\cyrk"} + { curlanguage "russian" = + {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} + {"language is not defined: " language * warning$ "Issue"} + if$} + if$} + if$ +} + +FUNCTION {bbl.iiss} % { "\bblIss{}" } +{ curlanguage "english" = + {"Iss."} + { curlanguage "ukrainian" = + {"\CYRV\cyri\cyrp."} + { curlanguage "russian" = + {"\CYRV\cyrery\cyrp."} + {"language is not defined: " language * warning$ "Issue"} + if$} + if$} + if$ +} + +FUNCTION {bbl.of} % { "\bblof{}" } +{ curlanguage "english" = + {"of"} + { curlanguage "ukrainian" = + {"{\cyr\cyrii\cyrz}"} + { curlanguage "russian" = + {"{\cyr\cyri\cyrz}"} + {"language is not defined: " language "of" * * warning$ "of"} + if$} + if$} + if$ +} + +FUNCTION {bbl.etal} % { "\bblof{}" } +{ curlanguage "english" = + {"et~al."} + { curlanguage "ukrainian" = + {"{\cyr\cyrt\cyra~\cyrii\cyrn.}"} + { curlanguage "russian" = + {"{\cyr\cyri~\cyrd\cyrr.}"} + {"language is not defined: " language "at al" * * warning$ "at al."} + if$} + if$} + if$ +} + +FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +{ curlanguage "english" = + {"Number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"\CYRN\cyro\cyrm\cyre\cyrr"} + {"language is not defined: " language "Number" * * warning$ "Number"} + if$} + if$ +} + +FUNCTION {bbl.number} % { "\bblnumber{}" } +{ curlanguage "english" = + {"number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\cyrn\cyro\cyrm\cyre\cyrr}"} + {"language is not defined: " language "number" * * warning$ "number"} + if$} + if$ +} + +FUNCTION {bbl.nr} % { "\bblno{}" } +{ curlanguage "english" = + {"no."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\textnumero}"} + {"language is not defined: " language "no." * * warning$ "no."} + if$} + if$ +} + +FUNCTION {bbl.nnr} % { "\bblno{}" } +{ curlanguage "english" = + {"No."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\textnumero}"} + {"language is not defined: " language "No." * * warning$ "No."} + if$} + if$ +} + +FUNCTION {bbl.in} % { "\bblin{}" } +{ curlanguage "english" = + {"in"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\cyrv}"} + {"language is not defined: " language "in" * * warning$ "in"} + if$} + if$ +} + +FUNCTION {bbl.iin} % { "\bblIn{}" } +{ curlanguage "english" = + {"In"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"\CYRV"} + {"language is not defined: " language "In" * * warning$ "In"} + if$} + if$ +} + +FUNCTION {bbl.pages} % { "\bblpp." } +{ curlanguage "english" = + {"pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\cyrs.}"} + {"language is not defined: " language "pp." * * warning$ "pp."} + if$} + if$ +} + +FUNCTION {bbl.page} % { "\bblp." +{ curlanguage "english" = + {"p."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\cyrs.}"} + {"language is not defined: " language "p." * * warning$ "p."} + if$} + if$ +} + +FUNCTION {bbl.ppages}% { "\bblPp." } +{ curlanguage "english" = + {"Pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\CYRS.}"} + {"language is not defined: " language "Pp." * * warning$ "Pp."} + if$} + if$ +} + +FUNCTION {bbl.ppage} % { "\bblP." } +{ curlanguage "english" = + {"P."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\CYRS.}"} + {"language is not defined: " language "P." * * warning$ "P."} + if$} + if$ +} + + +FUNCTION {bbl.techrep} { "Tech. Rep." } +FUNCTION {bbl.mthesis} { "Master's thesis" } +FUNCTION {bbl.phdthesis} { "Ph.D. thesis" } + +INTEGERS { nameptr namesleft numnames } + + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{~jj}{~f.}" format.name$ 't := + nameptr #1 > + { + nameptr #4 = + numnames #4 > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + t "others" = + t "~others" = + or + { " " * bbl.etal * } + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + + +FUNCTION {format.names.rev} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.}{~vv}{~ll}{, jj}" + format.name$ 't := + nameptr #1 > + { + nameptr #4 = + numnames #4 > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + t "others" = + t "~others" = + or + { " " * bbl.etal * } + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names emphasize} + if$ +} + +FUNCTION {format.bookauthors} +{ bookauthor empty$ + { "" } + { bookauthor format.names} + if$ +} + +FUNCTION {format.authors.after} +{ author empty$ + { "" } + { author format.names.rev} + if$ +} + +FUNCTION {format.bookauthors.after} +{ bookauthor empty$ + { "" } + { bookauthor format.names.rev} + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby editor format.names.rev * + } + if$ +} + +FUNCTION {format.compiler.after} +{ compiler empty$ + { "" } + { bbl.cmplr compiler format.names.rev * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ + } + if$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { year ". " quote$ "--- " month * * * * } + if$ + } + if$ +} + +FUNCTION {output.address.publisher.date} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column + } + if$ + } + if$ + publisher output + format.date output +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + language empty$ + {"english" 'curlanguage :=} + {language 'curlanguage :=} + if$ + "\selectlanguageifdefined{" write$ + curlanguage write$ + "}" write$ newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ '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.iin + " " * } + +FUNCTION {format.btitle} +{ title +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {tie.connect} + {"~" + swap$ * * + } + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.vvol volume tie.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { "there's a number but no series in " cite$ * warning$ + bbl.nnr } + { + %new.dblslash + new.sentence + series + bbl.nr + tie.or.space.connect} + if$ + number tie.or.space.connect + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + + +FUNCTION {convert.edition} +{ edition +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { bbl.ppages pages n.dashify tie.connect } + { bbl.ppage pages tie.connect } + if$ + } + if$ +} + +FUNCTION {format.pages.page} +{ pages empty$ + { numpages empty$ + { "" } + { numpages bbl.pages tie.connect } + if$} + { format.pages} + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { + ", no." number tie.or.space.connect * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ": " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.volume} +{ volume empty$ + { "" } + { bbl.vvol volume tie.or.space.connect } + if$ +} + +FUNCTION {format.number} +{ number empty$ + { "" } + { bbl.nr number tie.or.space.connect } + if$ +} + + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +FUNCTION {bookauthor.before} +{ + bookauthor empty$ + 'skip$ + {bookauthor num.names$ #4 < + {format.bookauthors output + new.sentence} + 'skip$ + if$} + if$ +} + + +FUNCTION {author.after} +{ + author empty$ + 'skip$ + {author num.names$ #3 > + {format.authors.after output + new.semicolumn } + 'skip$ + if$} + if$ +} +FUNCTION {bookauthor.after} +{ + bookauthor empty$ + 'skip$ + {bookauthor num.names$ #3 > + {format.bookauthors.after output + new.semicolumn } + 'skip$ + if$} + if$ +} + +FUNCTION {editor.organization.after} +{ + compiler empty$ + {} + { format.compiler.after output + new.semicolumn + } + if$ + editor empty$ + {} + { format.editors.after output + new.semicolumn + } + if$ + organization empty$ + {} + {organization output + new.semicolumn + } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { after.sentence 'output.state := + "\BibUrl{ " url * "}" * + } + if$ +} + +FUNCTION {format.annote} +{ annote empty$ + { "" } +{ after.sentence 'output.state := + "\BibAnnote{" annote add.period$ * "}" * +} + if$ +} + +FUNCTION {article} +{ output.bibitem + author.before + format.title "title" output.check + new.slash + author.after + new.dblslash + journal emphasize "journal" output.check + new.block + format.date output + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + new.sentence + format.number.series output + new.block + format.edition output + new.block + output.address.publisher.date + new.block + format.bvolume output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + author.before + format.title "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + new.dblslash + bookauthor.before + booktitle "booktitle" output.check + new.slash + bookauthor.after + editor.organization.after + new.block + format.edition output + new.block + format.number.series output + new.sentence + output.address.publisher.date + new.block + format.bvolume output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher.date + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + new.block + address empty$ + { publisher output + format.date "year" output.check + } + { address output.nonnull + new.column + publisher output + format.date "year" output.check + } + if$ + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { + address new.block.checka + address output + } + 'skip$ + if$ + } + { + organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + new.block + format.url output + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title output + howpublished new.block.checka + howpublished output + new.block + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.slash + school "school" output.check + new.block + output.address.publisher.date + new.block + format.pages.page output + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.btitle "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + address empty$ + { publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + publisher output + } + if$ + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.column + format.tr.number output.nonnull + new.slash + author.after + editor.organization.after + new.block + address output + new.column + institution "institution" output.check + format.date "year" output.check + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + new.block + note "note" output.check + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\bbljan{}"} + +MACRO {feb} {"\bblfeb{}"} + +MACRO {mar} {"\bblmar{}"} + +MACRO {apr} {"\bblapr{}"} + +MACRO {may} {"\bblmay{}"} + +MACRO {jun} {"\bbljun{}"} + +MACRO {jul} {"\bbljul{}"} + +MACRO {aug} {"\bblaug{}"} + +MACRO {sep} {"\bblsep{}"} + +MACRO {oct} {"\bbloct{}"} + +MACRO {nov} {"\bblnov{}"} + +MACRO {dec} {"\bbldec{}"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} + +FUNCTION {author.title.sort} +{ author empty$ + { title empty$ + { key empty$ + { "to sort, need author, title, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { title sort.format.title } + if$ + } + { + author num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} + +FUNCTION {presort} +{ + author.title.sort + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + "\def\selectlanguageifdefined#1{" write$ newline$ + "\expandafter\ifx\csname date#1\endcsname\relax" write$ newline$ + "\else\language\csname l@#1\endcsname\fi}" write$ newline$ + "\ifx\undefined\url\def\url#1{{\small #1}}\else\fi" write$ newline$ + "\ifx\undefined\BibUrl\def\BibUrl#1{\url{#1}}\else\fi" write$ newline$ + "\ifx\undefined\BibAnnote\long\def\BibAnnote#1{}\else\fi" write$ newline$ + "\ifx\undefined\BibEmph\def\BibEmph#1{\emph{#1}}\else\fi" write$ newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + +%% +%% End of file `gost71s.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/gost71u.bst b/Master/texmf-dist/bibtex/bst/gost/gost71u.bst new file mode 100644 index 00000000000..1db7879e1e8 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/gost71u.bst @@ -0,0 +1,1465 @@ +%% +%% This is file `gost71u.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gost.dtx (with options: `gost71u') +%% +%% Copyright 1996-2005 Maksym Polyakov. +%% Version 2005.08.12 +%% +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.2 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% Please, send bug reports via e-mail: +%% polyama at auburn dot edu +%% +%% 2005.08.12 Bug fix (long annote) +%% +%% 2003.06.06 contributions by Konstantin Vorontsov: +%% New ENTRY "annote" added for output annotations. +%% New commands BibUrl, BibAnnote added for customize urls and annotations. +%% +%% 2003.08.10 +%% New command BibEmph added for customize emphasizing. +%% +%% 2003.10.07 +%% Some bug fixes in names and date formatting. +%% +%% 2003.10.07 +%% Bug fix in INPROCEEDINGS. +%% +%% +%% This bibliography style attempts +%% to format bibliography according to +%% GOST 7.1-84 vd970321 +%% +%% For the Ukrainian|Russian bibliographic entries +%% you need to create field +%% language = {ukrainian|russian}. +%% Default language is English. +%% Field numpages for books must contain number of pages. +%% Optional field url will format url (using hyperref, if loaded). +%% +%% See examples in gost71.pdf and gost780.pdf +%% +%% Requires 8-bit bibtex with switch -B and csf file supporting cyrillic. +%% bibtex8 -B -c .csf +%% + +ENTRY + { address + annote + author + booktitle + bookauthor + chapter + edition + editor + compiler + howpublished + institution + journal + key + month + note + number + organization + pages + numpages + publisher + school + series + title + type + volume + year + language + booklanguage + url + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block +after.dblslash after.slash after.column after.semicolumn} + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'after.dblslash := + #5 'after.slash := + #6 'after.column := + #7 'after.semicolumn := +} + +STRINGS { s t } + +STRINGS { curlanguage } + +FUNCTION {change.language} +{ booklanguage empty$ + {""} + {booklanguage 'curlanguage := + "\selectlanguageifdefined{" + curlanguage * + "}" * + } + if$ +} + +FUNCTION {output.nonnull} +%%%{ 's := +{ swap$ + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + " " quote$ "--- " * * write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.dblslash = + { "~//" * change.language * " " * write$ } + { output.state after.slash = + { "~/ " * write$ } + { output.state after.column = + { ": " * write$ } + { output.state after.semicolumn = + { "; " * write$ } + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + } + if$ + } + 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.dblslash} +{ output.state before.all = + 'skip$ + { after.dblslash 'output.state := } + if$ +} + +FUNCTION {new.slash} +{ output.state before.all = + 'skip$ + { after.slash 'output.state := } + if$ +} + +FUNCTION {new.column} +{ output.state before.all = + 'skip$ + { after.column 'output.state := } + if$ +} + +FUNCTION {new.semicolumn} +{ output.state before.all = + 'skip$ + { after.semicolumn '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 {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.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {space.word} +{ " " swap$ * " " * } + +FUNCTION {bbl.edby} % { "\bbledby{}" } +{ curlanguage "english" = + {"Ed. by "} + { curlanguage "ukrainian" = + {"{\cyr\CYRP\cyrii\cyrd\ \cyrr\cyre\cyrd.\ }"} + { curlanguage "russian" = + {"{\cyr\CYRP\cyro\cyrd\ \cyrr\cyre\cyrd.\ }"} + {"language is not defined: " language "edited by" * * warning$ "edited by"} + if$} + if$} + if$ +} + +FUNCTION {bbl.cmplr} +{ curlanguage "english" = + {"Compiler "} + { curlanguage "ukrainian" = + {"{\cyr\CYRU\cyrk\cyrl.\ }"} + { curlanguage "russian" = + {"{\cyr\CYRS\cyro\cyrs\cyrt.\ }"} + {"language is not defined: " language "compiler" * * warning$ "compiler"} + if$} + if$} + if$ +} + +FUNCTION {bbl.edition} % { "\bbledition{}" } +{ curlanguage "english" = + {"edition"} + { curlanguage "ukrainian" = + {"{\cyr\cyrv\cyri\cyrd.}"} + { curlanguage "russian" = + {"{\cyr\cyri\cyrz\cyrd.}"} + {"language is not defined: " language "edition" * * warning$ "edition"} + if$} + if$} + if$ +} + +FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +{ curlanguage "english" = + {"Volume"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"\CYRT\cyro\cyrm"} + {"language is not defined: " language "Volume" * * warning$ "Volume"} + if$} + if$ +} + +FUNCTION {bbl.vvol} % { "\bblVol{}" } +{ curlanguage "english" = + {"Vol."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"\CYRT."} + {"language is not defined: " language "Vol." * * warning$ "Vol."} + if$} + if$ +} + +FUNCTION {bbl.iissue} % { "\bblIssue{}" } +{ curlanguage "english" = + {"Issue"} + { curlanguage "ukrainian" = + {"\CYRV\cyri\cyrp\cyru\cyrs\cyrk"} + { curlanguage "russian" = + {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} + {"language is not defined: " language * warning$ "Issue"} + if$} + if$} + if$ +} + +FUNCTION {bbl.iiss} % { "\bblIss{}" } +{ curlanguage "english" = + {"Iss."} + { curlanguage "ukrainian" = + {"\CYRV\cyri\cyrp."} + { curlanguage "russian" = + {"\CYRV\cyrery\cyrp."} + {"language is not defined: " language * warning$ "Issue"} + if$} + if$} + if$ +} + +FUNCTION {bbl.of} % { "\bblof{}" } +{ curlanguage "english" = + {"of"} + { curlanguage "ukrainian" = + {"{\cyr\cyrii\cyrz}"} + { curlanguage "russian" = + {"{\cyr\cyri\cyrz}"} + {"language is not defined: " language "of" * * warning$ "of"} + if$} + if$} + if$ +} + +FUNCTION {bbl.etal} % { "\bblof{}" } +{ curlanguage "english" = + {"et~al."} + { curlanguage "ukrainian" = + {"{\cyr\cyrt\cyra~\cyrii\cyrn.}"} + { curlanguage "russian" = + {"{\cyr\cyri~\cyrd\cyrr.}"} + {"language is not defined: " language "at al" * * warning$ "at al."} + if$} + if$} + if$ +} + +FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +{ curlanguage "english" = + {"Number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"\CYRN\cyro\cyrm\cyre\cyrr"} + {"language is not defined: " language "Number" * * warning$ "Number"} + if$} + if$ +} + +FUNCTION {bbl.number} % { "\bblnumber{}" } +{ curlanguage "english" = + {"number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\cyrn\cyro\cyrm\cyre\cyrr}"} + {"language is not defined: " language "number" * * warning$ "number"} + if$} + if$ +} + +FUNCTION {bbl.nr} % { "\bblno{}" } +{ curlanguage "english" = + {"no."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\textnumero}"} + {"language is not defined: " language "no." * * warning$ "no."} + if$} + if$ +} + +FUNCTION {bbl.nnr} % { "\bblno{}" } +{ curlanguage "english" = + {"No."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\textnumero}"} + {"language is not defined: " language "No." * * warning$ "No."} + if$} + if$ +} + +FUNCTION {bbl.in} % { "\bblin{}" } +{ curlanguage "english" = + {"in"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\cyrv}"} + {"language is not defined: " language "in" * * warning$ "in"} + if$} + if$ +} + +FUNCTION {bbl.iin} % { "\bblIn{}" } +{ curlanguage "english" = + {"In"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"\CYRV"} + {"language is not defined: " language "In" * * warning$ "In"} + if$} + if$ +} + +FUNCTION {bbl.pages} % { "\bblpp." } +{ curlanguage "english" = + {"pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\cyrs.}"} + {"language is not defined: " language "pp." * * warning$ "pp."} + if$} + if$ +} + +FUNCTION {bbl.page} % { "\bblp." +{ curlanguage "english" = + {"p."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\cyrs.}"} + {"language is not defined: " language "p." * * warning$ "p."} + if$} + if$ +} + +FUNCTION {bbl.ppages}% { "\bblPp." } +{ curlanguage "english" = + {"Pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\CYRS.}"} + {"language is not defined: " language "Pp." * * warning$ "Pp."} + if$} + if$ +} + +FUNCTION {bbl.ppage} % { "\bblP." } +{ curlanguage "english" = + {"P."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\CYRS.}"} + {"language is not defined: " language "P." * * warning$ "P."} + if$} + if$ +} + + +FUNCTION {bbl.techrep} { "Tech. Rep." } +FUNCTION {bbl.mthesis} { "Master's thesis" } +FUNCTION {bbl.phdthesis} { "Ph.D. thesis" } + +INTEGERS { nameptr namesleft numnames } + + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{~jj}{~f.}" format.name$ 't := + nameptr #1 > + { + nameptr #4 = + numnames #4 > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + t "others" = + t "~others" = + or + { " " * bbl.etal * } + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + + +FUNCTION {format.names.rev} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.}{~vv}{~ll}{, jj}" + format.name$ 't := + nameptr #1 > + { + nameptr #4 = + numnames #4 > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + t "others" = + t "~others" = + or + { " " * bbl.etal * } + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names emphasize} + if$ +} + +FUNCTION {format.bookauthors} +{ bookauthor empty$ + { "" } + { bookauthor format.names} + if$ +} + +FUNCTION {format.authors.after} +{ author empty$ + { "" } + { author format.names.rev} + if$ +} + +FUNCTION {format.bookauthors.after} +{ bookauthor empty$ + { "" } + { bookauthor format.names.rev} + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby editor format.names.rev * + } + if$ +} + +FUNCTION {format.compiler.after} +{ compiler empty$ + { "" } + { bbl.cmplr compiler format.names.rev * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ + } + if$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { year ". " quote$ "--- " month * * * * } + if$ + } + if$ +} + +FUNCTION {output.address.publisher.date} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column + } + if$ + } + if$ + publisher output + format.date output +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + language empty$ + {"english" 'curlanguage :=} + {language 'curlanguage :=} + if$ + "\selectlanguageifdefined{" write$ + curlanguage write$ + "}" write$ newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ '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.iin + " " * } + +FUNCTION {format.btitle} +{ title +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {tie.connect} + {"~" + swap$ * * + } + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.vvol volume tie.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { "there's a number but no series in " cite$ * warning$ + bbl.nnr } + { + %new.dblslash + new.sentence + series + bbl.nr + tie.or.space.connect} + if$ + number tie.or.space.connect + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + + +FUNCTION {convert.edition} +{ edition +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { bbl.ppages pages n.dashify tie.connect } + { bbl.ppage pages tie.connect } + if$ + } + if$ +} + +FUNCTION {format.pages.page} +{ pages empty$ + { numpages empty$ + { "" } + { numpages bbl.pages tie.connect } + if$} + { format.pages} + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { + ", no." number tie.or.space.connect * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ": " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.volume} +{ volume empty$ + { "" } + { bbl.vvol volume tie.or.space.connect } + if$ +} + +FUNCTION {format.number} +{ number empty$ + { "" } + { bbl.nr number tie.or.space.connect } + if$ +} + + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +FUNCTION {bookauthor.before} +{ + bookauthor empty$ + 'skip$ + {bookauthor num.names$ #4 < + {format.bookauthors output + new.sentence} + 'skip$ + if$} + if$ +} + + +FUNCTION {author.after} +{ + author empty$ + 'skip$ + {author num.names$ #3 > + {format.authors.after output + new.semicolumn } + 'skip$ + if$} + if$ +} +FUNCTION {bookauthor.after} +{ + bookauthor empty$ + 'skip$ + {bookauthor num.names$ #3 > + {format.bookauthors.after output + new.semicolumn } + 'skip$ + if$} + if$ +} + +FUNCTION {editor.organization.after} +{ + compiler empty$ + {} + { format.compiler.after output + new.semicolumn + } + if$ + editor empty$ + {} + { format.editors.after output + new.semicolumn + } + if$ + organization empty$ + {} + {organization output + new.semicolumn + } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { after.sentence 'output.state := + "\BibUrl{ " url * "}" * + } + if$ +} + +FUNCTION {format.annote} +{ annote empty$ + { "" } +{ after.sentence 'output.state := + "\BibAnnote{" annote add.period$ * "}" * +} + if$ +} + +FUNCTION {article} +{ output.bibitem + author.before + format.title "title" output.check + new.slash + author.after + new.dblslash + journal emphasize "journal" output.check + new.block + format.date output + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + new.sentence + format.number.series output + new.block + format.edition output + new.block + output.address.publisher.date + new.block + format.bvolume output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + author.before + format.title "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + new.dblslash + bookauthor.before + booktitle "booktitle" output.check + new.slash + bookauthor.after + editor.organization.after + new.block + format.edition output + new.block + format.number.series output + new.sentence + output.address.publisher.date + new.block + format.bvolume output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher.date + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + new.block + address empty$ + { publisher output + format.date "year" output.check + } + { address output.nonnull + new.column + publisher output + format.date "year" output.check + } + if$ + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { + address new.block.checka + address output + } + 'skip$ + if$ + } + { + organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + new.block + format.url output + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title output + howpublished new.block.checka + howpublished output + new.block + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.slash + school "school" output.check + new.block + output.address.publisher.date + new.block + format.pages.page output + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.btitle "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + address empty$ + { publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + publisher output + } + if$ + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.column + format.tr.number output.nonnull + new.slash + author.after + editor.organization.after + new.block + address output + new.column + institution "institution" output.check + format.date "year" output.check + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + new.block + note "note" output.check + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\bbljan{}"} + +MACRO {feb} {"\bblfeb{}"} + +MACRO {mar} {"\bblmar{}"} + +MACRO {apr} {"\bblapr{}"} + +MACRO {may} {"\bblmay{}"} + +MACRO {jun} {"\bbljun{}"} + +MACRO {jul} {"\bbljul{}"} + +MACRO {aug} {"\bblaug{}"} + +MACRO {sep} {"\bblsep{}"} + +MACRO {oct} {"\bbloct{}"} + +MACRO {nov} {"\bblnov{}"} + +MACRO {dec} {"\bbldec{}"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + "\def\selectlanguageifdefined#1{" write$ newline$ + "\expandafter\ifx\csname date#1\endcsname\relax" write$ newline$ + "\else\language\csname l@#1\endcsname\fi}" write$ newline$ + "\ifx\undefined\url\def\url#1{{\small #1}}\else\fi" write$ newline$ + "\ifx\undefined\BibUrl\def\BibUrl#1{\url{#1}}\else\fi" write$ newline$ + "\ifx\undefined\BibAnnote\long\def\BibAnnote#1{}\else\fi" write$ newline$ + "\ifx\undefined\BibEmph\def\BibEmph#1{\emph{#1}}\else\fi" write$ newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + +%% +%% End of file `gost71u.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/gost780s.bst b/Master/texmf-dist/bibtex/bst/gost/gost780s.bst new file mode 100644 index 00000000000..9313731c324 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/gost780s.bst @@ -0,0 +1,1540 @@ +%% +%% This is file `gost780s.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gost.dtx (with options: `gost780s') +%% +%% Copyright 1996-2005 Maksym Polyakov. +%% Version 2005.08.12 +%% +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.2 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% Please, send bug reports via e-mail: +%% polyama at auburn dot edu +%% +%% 2005.08.12 Bug fix (long annote) +%% +%% 2003.06.06 contributions by Konstantin Vorontsov: +%% New ENTRY "annote" added for output annotations. +%% New commands BibUrl, BibAnnote added for customize urls and annotations. +%% +%% 2003.08.10 +%% New command BibEmph added for customize emphasizing. +%% +%% 2003.10.07 +%% Some bug fixes in names and date formatting. +%% +%% 2003.10.07 +%% Bug fix in INPROCEEDINGS. +%% +%% +%% This bibliography style attempts +%% to format bibliography according to +%% GOST 7.1-84 and GOST 7.80-00 +%% +%% For the Ukrainian|Russian bibliographic entries +%% you need to create field +%% language = {ukrainian|russian}. +%% Default language is English. +%% Field numpages for books must contain number of pages. +%% Optional field url will format url (using hyperref, if loaded). +%% +%% See examples in gost71.pdf and gost780.pdf +%% +%% Requires 8-bit bibtex with switch -B and csf file supporting cyrillic. +%% bibtex8 -B -c .csf +%% + +ENTRY + { address + annote + author + booktitle + bookauthor + chapter + edition + editor + compiler + howpublished + institution + journal + key + month + note + number + organization + pages + numpages + publisher + school + series + title + type + volume + year + language + booklanguage + url + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block +after.dblslash after.slash after.column after.semicolumn} + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'after.dblslash := + #5 'after.slash := + #6 'after.column := + #7 'after.semicolumn := +} + +STRINGS { s t } + +STRINGS { curlanguage } + +FUNCTION {change.language} +{ booklanguage empty$ + {""} + {booklanguage 'curlanguage := + "\selectlanguageifdefined{" + curlanguage * + "}" * + } + if$ +} + +FUNCTION {output.nonnull} +%%%{ 's := +{ swap$ + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + " " quote$ "--- " * * write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.dblslash = + { "~//" * change.language * " " * write$ } + { output.state after.slash = + { "~/ " * write$ } + { output.state after.column = + { ": " * write$ } + { output.state after.semicolumn = + { "; " * write$ } + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + } + if$ + } + 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.dblslash} +{ output.state before.all = + 'skip$ + { after.dblslash 'output.state := } + if$ +} + +FUNCTION {new.slash} +{ output.state before.all = + 'skip$ + { after.slash 'output.state := } + if$ +} + +FUNCTION {new.column} +{ output.state before.all = + 'skip$ + { after.column 'output.state := } + if$ +} + +FUNCTION {new.semicolumn} +{ output.state before.all = + 'skip$ + { after.semicolumn '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 {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.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {space.word} +{ " " swap$ * " " * } + +FUNCTION {bbl.edby} % { "\bbledby{}" } +{ curlanguage "english" = + {"Ed. by "} + { curlanguage "ukrainian" = + {"{\cyr\CYRP\cyrii\cyrd\ \cyrr\cyre\cyrd.\ }"} + { curlanguage "russian" = + {"{\cyr\CYRP\cyro\cyrd\ \cyrr\cyre\cyrd.\ }"} + {"language is not defined: " language "edited by" * * warning$ "edited by"} + if$} + if$} + if$ +} + +FUNCTION {bbl.cmplr} +{ curlanguage "english" = + {"Compiler "} + { curlanguage "ukrainian" = + {"{\cyr\CYRU\cyrk\cyrl.\ }"} + { curlanguage "russian" = + {"{\cyr\CYRS\cyro\cyrs\cyrt.\ }"} + {"language is not defined: " language "compiler" * * warning$ "compiler"} + if$} + if$} + if$ +} + +FUNCTION {bbl.edition} % { "\bbledition{}" } +{ curlanguage "english" = + {"edition"} + { curlanguage "ukrainian" = + {"{\cyr\cyrv\cyri\cyrd.}"} + { curlanguage "russian" = + {"{\cyr\cyri\cyrz\cyrd.}"} + {"language is not defined: " language "edition" * * warning$ "edition"} + if$} + if$} + if$ +} + +FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +{ curlanguage "english" = + {"Volume"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"\CYRT\cyro\cyrm"} + {"language is not defined: " language "Volume" * * warning$ "Volume"} + if$} + if$ +} + +FUNCTION {bbl.vvol} % { "\bblVol{}" } +{ curlanguage "english" = + {"Vol."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"\CYRT."} + {"language is not defined: " language "Vol." * * warning$ "Vol."} + if$} + if$ +} + +FUNCTION {bbl.iissue} % { "\bblIssue{}" } +{ curlanguage "english" = + {"Issue"} + { curlanguage "ukrainian" = + {"\CYRV\cyri\cyrp\cyru\cyrs\cyrk"} + { curlanguage "russian" = + {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} + {"language is not defined: " language * warning$ "Issue"} + if$} + if$} + if$ +} + +FUNCTION {bbl.iiss} % { "\bblIss{}" } +{ curlanguage "english" = + {"Iss."} + { curlanguage "ukrainian" = + {"\CYRV\cyri\cyrp."} + { curlanguage "russian" = + {"\CYRV\cyrery\cyrp."} + {"language is not defined: " language * warning$ "Issue"} + if$} + if$} + if$ +} + +FUNCTION {bbl.of} % { "\bblof{}" } +{ curlanguage "english" = + {"of"} + { curlanguage "ukrainian" = + {"{\cyr\cyrii\cyrz}"} + { curlanguage "russian" = + {"{\cyr\cyri\cyrz}"} + {"language is not defined: " language "of" * * warning$ "of"} + if$} + if$} + if$ +} + +FUNCTION {bbl.etal} % { "\bblof{}" } +{ curlanguage "english" = + {"et~al."} + { curlanguage "ukrainian" = + {"{\cyr\cyrt\cyra~\cyrii\cyrn.}"} + { curlanguage "russian" = + {"{\cyr\cyri~\cyrd\cyrr.}"} + {"language is not defined: " language "at al" * * warning$ "at al."} + if$} + if$} + if$ +} + +FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +{ curlanguage "english" = + {"Number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"\CYRN\cyro\cyrm\cyre\cyrr"} + {"language is not defined: " language "Number" * * warning$ "Number"} + if$} + if$ +} + +FUNCTION {bbl.number} % { "\bblnumber{}" } +{ curlanguage "english" = + {"number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\cyrn\cyro\cyrm\cyre\cyrr}"} + {"language is not defined: " language "number" * * warning$ "number"} + if$} + if$ +} + +FUNCTION {bbl.nr} % { "\bblno{}" } +{ curlanguage "english" = + {"no."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\textnumero}"} + {"language is not defined: " language "no." * * warning$ "no."} + if$} + if$ +} + +FUNCTION {bbl.nnr} % { "\bblno{}" } +{ curlanguage "english" = + {"No."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\textnumero}"} + {"language is not defined: " language "No." * * warning$ "No."} + if$} + if$ +} + +FUNCTION {bbl.in} % { "\bblin{}" } +{ curlanguage "english" = + {"in"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\cyrv}"} + {"language is not defined: " language "in" * * warning$ "in"} + if$} + if$ +} + +FUNCTION {bbl.iin} % { "\bblIn{}" } +{ curlanguage "english" = + {"In"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"\CYRV"} + {"language is not defined: " language "In" * * warning$ "In"} + if$} + if$ +} + +FUNCTION {bbl.pages} % { "\bblpp." } +{ curlanguage "english" = + {"pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\cyrs.}"} + {"language is not defined: " language "pp." * * warning$ "pp."} + if$} + if$ +} + +FUNCTION {bbl.page} % { "\bblp." +{ curlanguage "english" = + {"p."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\cyrs.}"} + {"language is not defined: " language "p." * * warning$ "p."} + if$} + if$ +} + +FUNCTION {bbl.ppages}% { "\bblPp." } +{ curlanguage "english" = + {"Pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\CYRS.}"} + {"language is not defined: " language "Pp." * * warning$ "Pp."} + if$} + if$ +} + +FUNCTION {bbl.ppage} % { "\bblP." } +{ curlanguage "english" = + {"P."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\CYRS.}"} + {"language is not defined: " language "P." * * warning$ "P."} + if$} + if$ +} + + +FUNCTION {bbl.techrep} { "Tech. Rep." } +FUNCTION {bbl.mthesis} { "Master's thesis" } +FUNCTION {bbl.phdthesis} { "Ph.D. thesis" } + +INTEGERS { nameptr namesleft numnames } + + +FUNCTION {format.names} +{ + #1 "{vv~}{ll}{~jj}{,~f.}" format.name$ +} + + +FUNCTION {format.names.rev} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.}{~vv}{~ll}{, jj}" + format.name$ 't := + nameptr #1 > + { + nameptr #4 = + numnames #4 > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + t "others" = + t "~others" = + or + { " " * bbl.etal * } + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names emphasize} + if$ +} + +FUNCTION {format.bookauthors} +{ bookauthor empty$ + { "" } + { bookauthor format.names} + if$ +} + +FUNCTION {format.authors.after} +{ author empty$ + { "" } + { author format.names.rev} + if$ +} + +FUNCTION {format.bookauthors.after} +{ bookauthor empty$ + { "" } + { bookauthor format.names.rev} + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby editor format.names.rev * + } + if$ +} + +FUNCTION {format.compiler.after} +{ compiler empty$ + { "" } + { bbl.cmplr compiler format.names.rev * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ + } + if$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { year ". " quote$ "--- " month * * * * } + if$ + } + if$ +} + +FUNCTION {output.address.publisher.date} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column + } + if$ + } + if$ + publisher output + format.date output +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + language empty$ + {"english" 'curlanguage :=} + {language 'curlanguage :=} + if$ + "\selectlanguageifdefined{" write$ + curlanguage write$ + "}" write$ newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ '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.iin + " " * } + +FUNCTION {format.btitle} +{ title +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {tie.connect} + {"~" + swap$ * * + } + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.vvol volume tie.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { "there's a number but no series in " cite$ * warning$ + bbl.nnr } + { + %new.dblslash + new.sentence + series + bbl.nr + tie.or.space.connect} + if$ + number tie.or.space.connect + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + + +FUNCTION {convert.edition} +{ edition +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { bbl.ppages pages n.dashify tie.connect } + { bbl.ppage pages tie.connect } + if$ + } + if$ +} + +FUNCTION {format.pages.page} +{ pages empty$ + { numpages empty$ + { "" } + { numpages bbl.pages tie.connect } + if$} + { format.pages} + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { + ", no." number tie.or.space.connect * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ": " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.volume} +{ volume empty$ + { "" } + { bbl.vvol volume tie.or.space.connect } + if$ +} + +FUNCTION {format.number} +{ number empty$ + { "" } + { bbl.nr number tie.or.space.connect } + if$ +} + + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +FUNCTION {bookauthor.before} +{ + bookauthor empty$ + 'skip$ + {bookauthor num.names$ #4 < + {format.bookauthors output + new.sentence} + 'skip$ + if$} + if$ +} + + +FUNCTION {author.after} +{ + author empty$ + 'skip$ + {format.authors.after output + new.semicolumn } + if$ +} +FUNCTION {bookauthor.after} +{ + bookauthor empty$ + 'skip$ + {format.bookauthors.after output + new.semicolumn } + if$ +} + +FUNCTION {editor.organization.after} +{ + compiler empty$ + {} + { format.compiler.after output + new.semicolumn + } + if$ + editor empty$ + {} + { format.editors.after output + new.semicolumn + } + if$ + organization empty$ + {} + {organization output + new.semicolumn + } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { after.sentence 'output.state := + "\BibUrl{ " url * "}" * + } + if$ +} + +FUNCTION {format.annote} +{ annote empty$ + { "" } +{ after.sentence 'output.state := + "\BibAnnote{" annote add.period$ * "}" * +} + if$ +} + +FUNCTION {article} +{ output.bibitem + author.before + format.title "title" output.check + new.slash + author.after + new.dblslash + journal emphasize "journal" output.check + new.block + format.date output + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + new.sentence + format.number.series output + new.block + format.edition output + new.block + output.address.publisher.date + new.block + format.bvolume output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + author.before + format.title "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + new.dblslash + bookauthor.before + booktitle "booktitle" output.check + new.slash + bookauthor.after + editor.organization.after + new.block + format.edition output + new.block + format.number.series output + new.sentence + output.address.publisher.date + new.block + format.bvolume output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher.date + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + new.block + address empty$ + { publisher output + format.date "year" output.check + } + { address output.nonnull + new.column + publisher output + format.date "year" output.check + } + if$ + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { + address new.block.checka + address output + } + 'skip$ + if$ + } + { + organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + new.block + format.url output + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title output + howpublished new.block.checka + howpublished output + new.block + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.slash + school "school" output.check + new.block + output.address.publisher.date + new.block + format.pages.page output + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.btitle "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + address empty$ + { publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + publisher output + } + if$ + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.column + format.tr.number output.nonnull + new.slash + author.after + editor.organization.after + new.block + address output + new.column + institution "institution" output.check + format.date "year" output.check + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + new.block + note "note" output.check + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\bbljan{}"} + +MACRO {feb} {"\bblfeb{}"} + +MACRO {mar} {"\bblmar{}"} + +MACRO {apr} {"\bblapr{}"} + +MACRO {may} {"\bblmay{}"} + +MACRO {jun} {"\bbljun{}"} + +MACRO {jul} {"\bbljul{}"} + +MACRO {aug} {"\bblaug{}"} + +MACRO {sep} {"\bblsep{}"} + +MACRO {oct} {"\bbloct{}"} + +MACRO {nov} {"\bblnov{}"} + +MACRO {dec} {"\bbldec{}"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} + +FUNCTION {author.title.sort} +{ author empty$ + { title empty$ + { key empty$ + { "to sort, need author, title, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { title sort.format.title } + if$ + } + { + author num.names$ #4 < + {author sort.format.names } + {title sort.format.title} + if$ + } + if$ +} + +FUNCTION {presort} +{ + author.title.sort + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + "\def\selectlanguageifdefined#1{" write$ newline$ + "\expandafter\ifx\csname date#1\endcsname\relax" write$ newline$ + "\else\language\csname l@#1\endcsname\fi}" write$ newline$ + "\ifx\undefined\url\def\url#1{{\small #1}}\else\fi" write$ newline$ + "\ifx\undefined\BibUrl\def\BibUrl#1{\url{#1}}\else\fi" write$ newline$ + "\ifx\undefined\BibAnnote\long\def\BibAnnote#1{}\else\fi" write$ newline$ + "\ifx\undefined\BibEmph\def\BibEmph#1{\emph{#1}}\else\fi" write$ newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + +%% +%% End of file `gost780s.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gost/gost780u.bst b/Master/texmf-dist/bibtex/bst/gost/gost780u.bst new file mode 100644 index 00000000000..c31165dea31 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gost/gost780u.bst @@ -0,0 +1,1428 @@ +%% +%% This is file `gost780u.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gost.dtx (with options: `gost780u') +%% +%% Copyright 1996-2005 Maksym Polyakov. +%% Version 2005.08.12 +%% +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.2 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% Please, send bug reports via e-mail: +%% polyama at auburn dot edu +%% +%% 2005.08.12 Bug fix (long annote) +%% +%% 2003.06.06 contributions by Konstantin Vorontsov: +%% New ENTRY "annote" added for output annotations. +%% New commands BibUrl, BibAnnote added for customize urls and annotations. +%% +%% 2003.08.10 +%% New command BibEmph added for customize emphasizing. +%% +%% 2003.10.07 +%% Some bug fixes in names and date formatting. +%% +%% 2003.10.07 +%% Bug fix in INPROCEEDINGS. +%% +%% +%% This bibliography style attempts +%% to format bibliography according to +%% GOST 7.1-84 and GOST 7.80-00 +%% +%% For the Ukrainian|Russian bibliographic entries +%% you need to create field +%% language = {ukrainian|russian}. +%% Default language is English. +%% Field numpages for books must contain number of pages. +%% Optional field url will format url (using hyperref, if loaded). +%% +%% See examples in gost71.pdf and gost780.pdf +%% +%% Requires 8-bit bibtex with switch -B and csf file supporting cyrillic. +%% bibtex8 -B -c .csf +%% + +ENTRY + { address + annote + author + booktitle + bookauthor + chapter + edition + editor + compiler + howpublished + institution + journal + key + month + note + number + organization + pages + numpages + publisher + school + series + title + type + volume + year + language + booklanguage + url + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block +after.dblslash after.slash after.column after.semicolumn} + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'after.dblslash := + #5 'after.slash := + #6 'after.column := + #7 'after.semicolumn := +} + +STRINGS { s t } + +STRINGS { curlanguage } + +FUNCTION {change.language} +{ booklanguage empty$ + {""} + {booklanguage 'curlanguage := + "\selectlanguageifdefined{" + curlanguage * + "}" * + } + if$ +} + +FUNCTION {output.nonnull} +%%%{ 's := +{ swap$ + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + " " quote$ "--- " * * write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.dblslash = + { "~//" * change.language * " " * write$ } + { output.state after.slash = + { "~/ " * write$ } + { output.state after.column = + { ": " * write$ } + { output.state after.semicolumn = + { "; " * write$ } + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + } + if$ + } + 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.dblslash} +{ output.state before.all = + 'skip$ + { after.dblslash 'output.state := } + if$ +} + +FUNCTION {new.slash} +{ output.state before.all = + 'skip$ + { after.slash 'output.state := } + if$ +} + +FUNCTION {new.column} +{ output.state before.all = + 'skip$ + { after.column 'output.state := } + if$ +} + +FUNCTION {new.semicolumn} +{ output.state before.all = + 'skip$ + { after.semicolumn '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 {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.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\BibEmph{" swap$ * "}" * } + if$ +} + +FUNCTION {space.word} +{ " " swap$ * " " * } + +FUNCTION {bbl.edby} % { "\bbledby{}" } +{ curlanguage "english" = + {"Ed. by "} + { curlanguage "ukrainian" = + {"{\cyr\CYRP\cyrii\cyrd\ \cyrr\cyre\cyrd.\ }"} + { curlanguage "russian" = + {"{\cyr\CYRP\cyro\cyrd\ \cyrr\cyre\cyrd.\ }"} + {"language is not defined: " language "edited by" * * warning$ "edited by"} + if$} + if$} + if$ +} + +FUNCTION {bbl.cmplr} +{ curlanguage "english" = + {"Compiler "} + { curlanguage "ukrainian" = + {"{\cyr\CYRU\cyrk\cyrl.\ }"} + { curlanguage "russian" = + {"{\cyr\CYRS\cyro\cyrs\cyrt.\ }"} + {"language is not defined: " language "compiler" * * warning$ "compiler"} + if$} + if$} + if$ +} + +FUNCTION {bbl.edition} % { "\bbledition{}" } +{ curlanguage "english" = + {"edition"} + { curlanguage "ukrainian" = + {"{\cyr\cyrv\cyri\cyrd.}"} + { curlanguage "russian" = + {"{\cyr\cyri\cyrz\cyrd.}"} + {"language is not defined: " language "edition" * * warning$ "edition"} + if$} + if$} + if$ +} + +FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +{ curlanguage "english" = + {"Volume"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"\CYRT\cyro\cyrm"} + {"language is not defined: " language "Volume" * * warning$ "Volume"} + if$} + if$ +} + +FUNCTION {bbl.vvol} % { "\bblVol{}" } +{ curlanguage "english" = + {"Vol."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"\CYRT."} + {"language is not defined: " language "Vol." * * warning$ "Vol."} + if$} + if$ +} + +FUNCTION {bbl.iissue} % { "\bblIssue{}" } +{ curlanguage "english" = + {"Issue"} + { curlanguage "ukrainian" = + {"\CYRV\cyri\cyrp\cyru\cyrs\cyrk"} + { curlanguage "russian" = + {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} + {"language is not defined: " language * warning$ "Issue"} + if$} + if$} + if$ +} + +FUNCTION {bbl.iiss} % { "\bblIss{}" } +{ curlanguage "english" = + {"Iss."} + { curlanguage "ukrainian" = + {"\CYRV\cyri\cyrp."} + { curlanguage "russian" = + {"\CYRV\cyrery\cyrp."} + {"language is not defined: " language * warning$ "Issue"} + if$} + if$} + if$ +} + +FUNCTION {bbl.of} % { "\bblof{}" } +{ curlanguage "english" = + {"of"} + { curlanguage "ukrainian" = + {"{\cyr\cyrii\cyrz}"} + { curlanguage "russian" = + {"{\cyr\cyri\cyrz}"} + {"language is not defined: " language "of" * * warning$ "of"} + if$} + if$} + if$ +} + +FUNCTION {bbl.etal} % { "\bblof{}" } +{ curlanguage "english" = + {"et~al."} + { curlanguage "ukrainian" = + {"{\cyr\cyrt\cyra~\cyrii\cyrn.}"} + { curlanguage "russian" = + {"{\cyr\cyri~\cyrd\cyrr.}"} + {"language is not defined: " language "at al" * * warning$ "at al."} + if$} + if$} + if$ +} + +FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +{ curlanguage "english" = + {"Number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"\CYRN\cyro\cyrm\cyre\cyrr"} + {"language is not defined: " language "Number" * * warning$ "Number"} + if$} + if$ +} + +FUNCTION {bbl.number} % { "\bblnumber{}" } +{ curlanguage "english" = + {"number"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\cyrn\cyro\cyrm\cyre\cyrr}"} + {"language is not defined: " language "number" * * warning$ "number"} + if$} + if$ +} + +FUNCTION {bbl.nr} % { "\bblno{}" } +{ curlanguage "english" = + {"no."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\textnumero}"} + {"language is not defined: " language "no." * * warning$ "no."} + if$} + if$ +} + +FUNCTION {bbl.nnr} % { "\bblno{}" } +{ curlanguage "english" = + {"No."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\textnumero}"} + {"language is not defined: " language "No." * * warning$ "No."} + if$} + if$ +} + +FUNCTION {bbl.in} % { "\bblin{}" } +{ curlanguage "english" = + {"in"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\cyrv}"} + {"language is not defined: " language "in" * * warning$ "in"} + if$} + if$ +} + +FUNCTION {bbl.iin} % { "\bblIn{}" } +{ curlanguage "english" = + {"In"} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"\CYRV"} + {"language is not defined: " language "In" * * warning$ "In"} + if$} + if$ +} + +FUNCTION {bbl.pages} % { "\bblpp." } +{ curlanguage "english" = + {"pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\cyrs.}"} + {"language is not defined: " language "pp." * * warning$ "pp."} + if$} + if$ +} + +FUNCTION {bbl.page} % { "\bblp." +{ curlanguage "english" = + {"p."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\cyrs.}"} + {"language is not defined: " language "p." * * warning$ "p."} + if$} + if$ +} + +FUNCTION {bbl.ppages}% { "\bblPp." } +{ curlanguage "english" = + {"Pp."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\CYRS.}"} + {"language is not defined: " language "Pp." * * warning$ "Pp."} + if$} + if$ +} + +FUNCTION {bbl.ppage} % { "\bblP." } +{ curlanguage "english" = + {"P."} + { curlanguage "ukrainian" = curlanguage "russian" = or + {"{\cyr\CYRS.}"} + {"language is not defined: " language "P." * * warning$ "P."} + if$} + if$ +} + + +FUNCTION {bbl.techrep} { "Tech. Rep." } +FUNCTION {bbl.mthesis} { "Master's thesis" } +FUNCTION {bbl.phdthesis} { "Ph.D. thesis" } + +INTEGERS { nameptr namesleft numnames } + + +FUNCTION {format.names} +{ + #1 "{vv~}{ll}{~jj}{,~f.}" format.name$ +} + + +FUNCTION {format.names.rev} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.}{~vv}{~ll}{, jj}" + format.name$ 't := + nameptr #1 > + { + nameptr #4 = + numnames #4 > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + t "others" = + t "~others" = + or + { " " * bbl.etal * } + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names emphasize} + if$ +} + +FUNCTION {format.bookauthors} +{ bookauthor empty$ + { "" } + { bookauthor format.names} + if$ +} + +FUNCTION {format.authors.after} +{ author empty$ + { "" } + { author format.names.rev} + if$ +} + +FUNCTION {format.bookauthors.after} +{ bookauthor empty$ + { "" } + { bookauthor format.names.rev} + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby editor format.names.rev * + } + if$ +} + +FUNCTION {format.compiler.after} +{ compiler empty$ + { "" } + { bbl.cmplr compiler format.names.rev * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ + } + if$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { year ". " quote$ "--- " month * * * * } + if$ + } + if$ +} + +FUNCTION {output.address.publisher.date} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column + } + if$ + } + if$ + publisher output + format.date output +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + language empty$ + {"english" 'curlanguage :=} + {language 'curlanguage :=} + if$ + "\selectlanguageifdefined{" write$ + curlanguage write$ + "}" write$ newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ '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.iin + " " * } + +FUNCTION {format.btitle} +{ title +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {tie.connect} + {"~" + swap$ * * + } + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.vvol volume tie.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { "there's a number but no series in " cite$ * warning$ + bbl.nnr } + { + %new.dblslash + new.sentence + series + bbl.nr + tie.or.space.connect} + if$ + number tie.or.space.connect + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + + +FUNCTION {convert.edition} +{ edition +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { bbl.ppages pages n.dashify tie.connect } + { bbl.ppage pages tie.connect } + if$ + } + if$ +} + +FUNCTION {format.pages.page} +{ pages empty$ + { numpages empty$ + { "" } + { numpages bbl.pages tie.connect } + if$} + { format.pages} + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { + ", no." number tie.or.space.connect * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ": " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.volume} +{ volume empty$ + { "" } + { bbl.vvol volume tie.or.space.connect } + if$ +} + +FUNCTION {format.number} +{ number empty$ + { "" } + { bbl.nr number tie.or.space.connect } + if$ +} + + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #4 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +FUNCTION {bookauthor.before} +{ + bookauthor empty$ + 'skip$ + {bookauthor num.names$ #4 < + {format.bookauthors output + new.sentence} + 'skip$ + if$} + if$ +} + + +FUNCTION {author.after} +{ + author empty$ + 'skip$ + {format.authors.after output + new.semicolumn } + if$ +} +FUNCTION {bookauthor.after} +{ + bookauthor empty$ + 'skip$ + {format.bookauthors.after output + new.semicolumn } + if$ +} + +FUNCTION {editor.organization.after} +{ + compiler empty$ + {} + { format.compiler.after output + new.semicolumn + } + if$ + editor empty$ + {} + { format.editors.after output + new.semicolumn + } + if$ + organization empty$ + {} + {organization output + new.semicolumn + } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { after.sentence 'output.state := + "\BibUrl{ " url * "}" * + } + if$ +} + +FUNCTION {format.annote} +{ annote empty$ + { "" } +{ after.sentence 'output.state := + "\BibAnnote{" annote add.period$ * "}" * +} + if$ +} + +FUNCTION {article} +{ output.bibitem + author.before + format.title "title" output.check + new.slash + author.after + new.dblslash + journal emphasize "journal" output.check + new.block + format.date output + new.block + format.volume output + format.number output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + new.sentence + format.number.series output + new.block + format.edition output + new.block + output.address.publisher.date + new.block + format.bvolume output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + author.before + format.title "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + new.dblslash + bookauthor.before + booktitle "booktitle" output.check + new.slash + bookauthor.after + editor.organization.after + new.block + format.edition output + new.block + format.number.series output + new.sentence + output.address.publisher.date + new.block + format.bvolume output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher.date + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + new.block + address empty$ + { publisher output + format.date "year" output.check + } + { address output.nonnull + new.column + publisher output + format.date "year" output.check + } + if$ + new.block + format.pages.page output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { + address new.block.checka + address output + } + 'skip$ + if$ + } + { + organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + new.block + format.url output + format.annote output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title output + howpublished new.block.checka + howpublished output + new.block + format.date output + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.slash + school "school" output.check + new.block + output.address.publisher.date + new.block + format.pages.page output + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.btitle "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + address empty$ + { publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + publisher output + } + if$ + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.column + format.tr.number output.nonnull + new.slash + author.after + editor.organization.after + new.block + address output + new.column + institution "institution" output.check + format.date "year" output.check + new.block + note output + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + new.block + note "note" output.check + new.sentence + format.url output + format.annote output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\bbljan{}"} + +MACRO {feb} {"\bblfeb{}"} + +MACRO {mar} {"\bblmar{}"} + +MACRO {apr} {"\bblapr{}"} + +MACRO {may} {"\bblmay{}"} + +MACRO {jun} {"\bbljun{}"} + +MACRO {jul} {"\bbljul{}"} + +MACRO {aug} {"\bblaug{}"} + +MACRO {sep} {"\bblsep{}"} + +MACRO {oct} {"\bbloct{}"} + +MACRO {nov} {"\bblnov{}"} + +MACRO {dec} {"\bbldec{}"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + "\def\selectlanguageifdefined#1{" write$ newline$ + "\expandafter\ifx\csname date#1\endcsname\relax" write$ newline$ + "\else\language\csname l@#1\endcsname\fi}" write$ newline$ + "\ifx\undefined\url\def\url#1{{\small #1}}\else\fi" write$ newline$ + "\ifx\undefined\BibUrl\def\BibUrl#1{\url{#1}}\else\fi" write$ newline$ + "\ifx\undefined\BibAnnote\long\def\BibAnnote#1{}\else\fi" write$ newline$ + "\ifx\undefined\BibEmph\def\BibEmph#1{\emph{#1}}\else\fi" write$ newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + +%% +%% End of file `gost780u.bst'. diff --git a/Master/texmf-dist/bibtex/bst/gustlib/plabbrv.bst b/Master/texmf-dist/bibtex/bst/gustlib/plabbrv.bst new file mode 100644 index 00000000000..22dc9ea0b21 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gustlib/plabbrv.bst @@ -0,0 +1,1209 @@ + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved by Oren Patashnik. + % Copyright (C) 1994, all rights reserved by Bogus/law Licho/nski. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % plbtxbst.doc, plplain.bst, plunsrt.bst, plalpha.bst, and plabbrv.bst. + % This restriction helps ensure that all standard polish styles are identical. + % The file plbtxbst.doc has the documentation for this style. + + + + + + + + + + + + + + + + + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + + { label } + + + +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 {output.bibitem} +{ newline$ + + "\bibitem{" write$ + + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + + nameptr #1 > + { numnames #2 = % %BL poprawka 22.10.97 (przecinek mi/edzy 2 autor/ow) + { ", " * } % + 'skip$ % + if$ % + namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " i~in." * } %BL + { " " * t * } %BL poprawka 9.10.97 + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", redaktorzy" * } %BL + { ", redaktor" * } %BL + if$ + } + if$ +} + + +FUNCTION {format.title} +{ title empty$ + { "" } + + { title "t" change.case$ } + + if$ +} + + + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + + +FUNCTION {format.btitle} +{ title emphasize +} + + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "wolumen" volume tie.or.space.connect %BL + series empty$ + 'skip$ + { " serii " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } %tu skon. + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " serii " * series * } + if$ + } + if$ + } + { "" } + if$ +} + + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { "wydanie " edition "l" change.case$ * } + { "wydanie " edition "t" change.case$ * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "strony" pages n.dashify tie.or.space.connect } + { "strona" pages tie.or.space.connect } + if$ + } + if$ +} + + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ } if$ pages empty$ 'skip$ { duplicate$ empty$ { pop$ + format.pages } { ":" * pages n.dashify * } if$ } if$ } + + + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "rozdzia/l" } %problem + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "" booktitle emphasize * } %BL wywaliem In + { "" format.editors * ", " * booktitle emphasize * } %BL + if$ + } + if$ +} + + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + + key empty$ not and + + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + + +FUNCTION {format.tr.number} +{ type empty$ + { "Raport instytutowy" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "Patrz {\em " journal * "\/}" * } %BL + if$ + } + { "Patrz " key * } + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " i~in." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " i~in." * } + { " i~" * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "Patrz " %BL + } + { "Wolumen" volume tie.or.space.connect + " serii " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "Patrz {\em " booktitle * "\/}" * } %BL + if$ + } + { "Patrz " key * } %BL + if$ + } + { "Patrz " format.crossref.editor * } %BL + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + + + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + + +FUNCTION {conference} { inproceedings } + + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Praca magisterska" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "Praca doktorska" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + + +FUNCTION {default.type} { misc } + + + + +MACRO {jan} {"Sty."} + +MACRO {feb} {"Luty"} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Kwi."} + +MACRO {may} {"Maj"} + +MACRO {jun} {"Czerw."} + +MACRO {jul} {"Lip."} + +MACRO {aug} {"Sier."} + +MACRO {sep} {"Wrze."} + +MACRO {oct} {"Paz."} + +MACRO {nov} {"List."} + +MACRO {dec} {"Gru."} + + + + + + +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. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + +MACRO {gust} {"G.U.S.T."} + + + + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + + nameptr numnames = t "others" = and + { "i~in" * } %BL + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + + +FUNCTION {presort} + +{ type$ "book" = + + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + + +SORT + + + + + + + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + + + + +FUNCTION {begin.bib} + +{ preamble$ empty$ + + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + + +ITERATE {call.type$} + + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/gustlib/plalpha.bst b/Master/texmf-dist/bibtex/bst/gustlib/plalpha.bst new file mode 100644 index 00000000000..24f21e21a83 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gustlib/plalpha.bst @@ -0,0 +1,1410 @@ + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved by Oren Patashnik. + % Copyright (C) 1994, all rights reserved by Bogus/law Licho/nski. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % plbtxbst.doc, plplain.bst, plunsrt.bst, plalpha.bst, and plabbrv.bst. + % This restriction helps ensure that all standard polish styles are identical. + % The file plbtxbst.doc has the documentation for this style. + + + + + + + + + + + + + + + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + + + { label extra.label sort.label } + + + + +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 {output.bibitem} +{ newline$ + + "\bibitem[" write$ + label write$ + "]{" write$ + + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + + nameptr #1 > + { numnames #2 = % %BL poprawka 22.10.97 (przecinek mi/edzy 2 autor/ow) + { ", " * } % + 'skip$ % + if$ % + namesleft #1 > + { ", " * t * } + { numnames #2 > + { ", " * } + 'skip$ + if$ + t "others" = + { " i~in." * } %BL + { " " * t * } %BL poprawka 9.10.97 + + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", redaktorzy" * } %BL + { ", redaktor" * } %BL + if$ + } + if$ +} + + +FUNCTION {format.title} +{ title empty$ + { "" } + + { title "t" change.case$ } + + if$ +} + + + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + + +FUNCTION {format.btitle} +{ title emphasize +} + + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "wolumen" volume tie.or.space.connect %BL + series empty$ + 'skip$ + { " serii " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } %tu skon. + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " serii " * series * } + if$ + } + if$ + } + { "" } + if$ +} + + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { "wydanie " edition "l" change.case$ * } + { "wydanie " edition "t" change.case$ * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "strony" pages n.dashify tie.or.space.connect } + { "strona" pages tie.or.space.connect } + if$ + } + if$ +} + + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ } if$ pages empty$ 'skip$ { duplicate$ empty$ { pop$ + format.pages } { ":" * pages n.dashify * } if$ } if$ } + + + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "rozdzia/l" } %problem + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "" booktitle emphasize * } %BL wywaliem In + { "" format.editors * ", " * booktitle emphasize * } %BL + if$ + } + if$ +} + + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + + key empty$ not and + + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + + +FUNCTION {format.tr.number} +{ type empty$ + { "Raport instytutowy" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "Patrz {\em " journal * "\/}" * } %BL + if$ + } + { "Patrz " key * } + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " i~in." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " i~in." * } + { " i~" * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "Patrz " %BL + } + { "Wolumen" volume tie.or.space.connect + " serii " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "Patrz {\em " booktitle * "\/}" * } %BL + if$ + } + { "Patrz " key * } %BL + if$ + } + { "Patrz " format.crossref.editor * } %BL + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + + + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + + +FUNCTION {conference} { inproceedings } + + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Praca magisterska" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "Praca doktorska" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + + +FUNCTION {default.type} { misc } + + + + +MACRO {jan} {"Stycze/n"} + +MACRO {feb} {"Luty"} + +MACRO {mar} {"Marzec"} + +MACRO {apr} {"Kwiecie/n"} + +MACRO {may} {"Maj"} + +MACRO {jun} {"Czerwiec"} + +MACRO {jul} {"Lipiec"} + +MACRO {aug} {"Sierpie/n"} + +MACRO {sep} {"Wrzesie/n"} + +MACRO {oct} {"Pa/xdziernik"} + +MACRO {nov} {"Listopad"} + +MACRO {dec} {"Grudzie/n"} + +MACRO {sty} {"Stycze/n"} + +MACRO {lut} {"Luty"} + + +MACRO {kwi} {"Kwiecie/n"} + +MACRO {maj} {"Maj"} + +MACRO {cze} {"Czerwiec"} + +MACRO {lip} {"Lipiec"} + +MACRO {sie} {"Sierpie/n"} + +MACRO {wrz} {"Wrzesie/n"} + +MACRO {paz} {"Pa/xdziernik"} + +MACRO {lis} {"Listopad"} + +MACRO {gru} {"Grudzie/n"} + + + + + + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +MACRO {gust} {"Grupa U/zytkownik/ow Systemu \TeX"} + + + + +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$ +} + + + + + + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + + { cite$ #1 #3 substring$ } + + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + + { cite$ #1 #3 substring$ } + + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + + { cite$ #1 #3 substring$ } + + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + + { cite$ #1 #3 substring$ } + + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + + + + + + + + + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + + nameptr numnames = t "others" = and + { "i~in" * } %BL + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + + +FUNCTION {presort} + +{ calc.label + sort.label + " " + * + type$ "book" = + + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + + * + + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + + +SORT + + + + + + + + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + + + + + + +FUNCTION {begin.bib} + +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + + +ITERATE {call.type$} + + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/gustlib/plplain.bst b/Master/texmf-dist/bibtex/bst/gustlib/plplain.bst new file mode 100644 index 00000000000..e1ed9f83330 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gustlib/plplain.bst @@ -0,0 +1,1234 @@ + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved by Oren Patashnik. + % Copyright (C) 1994, all rights reserved by Bogus/law Licho/nski. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % plbtxbst.doc, plplain.bst, plunsrt.bst, plalpha.bst, and plabbrv.bst. + % This restriction helps ensure that all standard polish styles are identical. + % The file plbtxbst.doc has the documentation for this style. + + + + + + + + + + + + + + + + + + + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + + { label } + + + +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 {output.bibitem} +{ newline$ + + "\bibitem{" write$ + + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + + nameptr #1 > + { numnames #2 = % %BL poprawka 22.10.97 (przecinek mi/edzy 2 autor/ow) + { ", " * } % + 'skip$ % + if$ % + namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " i~in." * } %BL + { " " * t * } %BL poprawka 9.10.97 + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", redaktorzy" * } %BL + { ", redaktor" * } %BL + if$ + } + if$ +} + + +FUNCTION {format.title} +{ title empty$ + { "" } + + { title "t" change.case$ } + + if$ +} + + + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + + +FUNCTION {format.btitle} +{ title emphasize +} + + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "wolumen" volume tie.or.space.connect %BL + series empty$ + 'skip$ + { " serii " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } %tu skon. + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " serii " * series * } + if$ + } + if$ + } + { "" } + if$ +} + + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { "wydanie " edition "l" change.case$ * } + { "wydanie " edition "t" change.case$ * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "strony" pages n.dashify tie.or.space.connect } + { "strona" pages tie.or.space.connect } + if$ + } + if$ +} + + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ } if$ pages empty$ 'skip$ { duplicate$ empty$ { pop$ + format.pages } { ":" * pages n.dashify * } if$ } if$ } + + + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "rozdzia/l" } %problem + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "" booktitle emphasize * } %BL wywaliem In + { "" format.editors * ", " * booktitle emphasize * } %BL + if$ + } + if$ +} + + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + + key empty$ not and + + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + + +FUNCTION {format.tr.number} +{ type empty$ + { "Raport instytutowy" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "Patrz {\em " journal * "\/}" * } %BL + if$ + } + { "Patrz " key * } + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " i~in." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " i~in." * } + { " i~" * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "Patrz " %BL + } + { "Wolumen" volume tie.or.space.connect + " serii " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "Patrz {\em " booktitle * "\/}" * } %BL + if$ + } + { "Patrz " key * } %BL + if$ + } + { "Patrz " format.crossref.editor * } %BL + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + + + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + + +FUNCTION {conference} { inproceedings } + + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Praca magisterska" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "Praca doktorska" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + + +FUNCTION {default.type} { misc } + + + + +MACRO {jan} {"Stycze/n"} + +MACRO {feb} {"Luty"} + +MACRO {mar} {"Marzec"} + +MACRO {apr} {"Kwiecie/n"} + +MACRO {may} {"Maj"} + +MACRO {jun} {"Czerwiec"} + +MACRO {jul} {"Lipiec"} + +MACRO {aug} {"Sierpie/n"} + +MACRO {sep} {"Wrzesie/n"} + +MACRO {oct} {"Pa/xdziernik"} + +MACRO {nov} {"Listopad"} + +MACRO {dec} {"Grudzie/n"} + +MACRO {sty} {"Stycze/n"} + +MACRO {lut} {"Luty"} + + +MACRO {kwi} {"Kwiecie/n"} + +MACRO {maj} {"Maj"} + +MACRO {cze} {"Czerwiec"} + +MACRO {lip} {"Lipiec"} + +MACRO {sie} {"Sierpie/n"} + +MACRO {wrz} {"Wrzesie/n"} + +MACRO {paz} {"Pa/xdziernik"} + +MACRO {lis} {"Listopad"} + +MACRO {gru} {"Grudzie/n"} + + + + + + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +MACRO {gust} {"Grupa U/zytkownik/ow Systemu \TeX"} + + + + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + + nameptr numnames = t "others" = and + { "i~in" * } %BL + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + + +FUNCTION {presort} + +{ type$ "book" = + + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + + +SORT + + + + + + + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + + + + +FUNCTION {begin.bib} + +{ preamble$ empty$ + + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + + +ITERATE {call.type$} + + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/gustlib/plunsrt.bst b/Master/texmf-dist/bibtex/bst/gustlib/plunsrt.bst new file mode 100644 index 00000000000..c5b3598de9c --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/gustlib/plunsrt.bst @@ -0,0 +1,1072 @@ + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved by Oren Patashnik. + % Copyright (C) 1994, all rights reserved by Bogus/law Licho/nski. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % plbtxbst.doc, plplain.bst, plunsrt.bst, plalpha.bst, and plabbrv.bst. + % This restriction helps ensure that all standard polish styles are identical. + % The file plbtxbst.doc has the documentation for this style. + + + + + + + + + + + + + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + + { label } + + + +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 {output.bibitem} +{ newline$ + + "\bibitem{" write$ + + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + + nameptr #1 > + { numnames #2 = % %BL poprawka 22.10.97 (przecinek mi/edzy 2 autor/ow) + { ", " * } % + 'skip$ % + if$ % + namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " i~in." * } %BL + { " " * t * } %BL poprawka 9.10.97 + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", redaktorzy" * } %BL + { ", redaktor" * } %BL + if$ + } + if$ +} + + +FUNCTION {format.title} +{ title empty$ + { "" } + + { title "t" change.case$ } + + if$ +} + + + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + + +FUNCTION {format.btitle} +{ title emphasize +} + + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "wolumen" volume tie.or.space.connect %BL + series empty$ + 'skip$ + { " serii " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } %tu skon. + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " serii " * series * } + if$ + } + if$ + } + { "" } + if$ +} + + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { "wydanie " edition "l" change.case$ * } + { "wydanie " edition "t" change.case$ * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "strony" pages n.dashify tie.or.space.connect } + { "strona" pages tie.or.space.connect } + if$ + } + if$ +} + + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ } if$ pages empty$ 'skip$ { duplicate$ empty$ { pop$ + format.pages } { ":" * pages n.dashify * } if$ } if$ } + + + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "rozdzia/l" } %problem + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "" booktitle emphasize * } %BL wywaliem In + { "" format.editors * ", " * booktitle emphasize * } %BL + if$ + } + if$ +} + + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + + + + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + + +FUNCTION {format.tr.number} +{ type empty$ + { "Raport instytutowy" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "Patrz {\em " journal * "\/}" * } %BL + if$ + } + { "Patrz " key * } + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " i~in." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " i~in." * } + { " i~" * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "Patrz " %BL + } + { "Wolumen" volume tie.or.space.connect + " serii " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "Patrz {\em " booktitle * "\/}" * } %BL + if$ + } + { "Patrz " key * } %BL + if$ + } + { "Patrz " format.crossref.editor * } %BL + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + + + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + + +FUNCTION {conference} { inproceedings } + + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Praca magisterska" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "Praca doktorska" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + + +FUNCTION {default.type} { misc } + + + + +MACRO {jan} {"Stycze/n"} + +MACRO {feb} {"Luty"} + +MACRO {mar} {"Marzec"} + +MACRO {apr} {"Kwiecie/n"} + +MACRO {may} {"Maj"} + +MACRO {jun} {"Czerwiec"} + +MACRO {jul} {"Lipiec"} + +MACRO {aug} {"Sierpie/n"} + +MACRO {sep} {"Wrzesie/n"} + +MACRO {oct} {"Pa/xdziernik"} + +MACRO {nov} {"Listopad"} + +MACRO {dec} {"Grudzie/n"} + +MACRO {sty} {"Stycze/n"} + +MACRO {lut} {"Luty"} + + +MACRO {kwi} {"Kwiecie/n"} + +MACRO {maj} {"Maj"} + +MACRO {cze} {"Czerwiec"} + +MACRO {lip} {"Lipiec"} + +MACRO {sie} {"Sierpie/n"} + +MACRO {wrz} {"Wrzesie/n"} + +MACRO {paz} {"Pa/xdziernik"} + +MACRO {lis} {"Listopad"} + +MACRO {gru} {"Grudzie/n"} + + + + + + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +MACRO {gust} {"Grupa U/zytkownik/ow Systemu \TeX"} + + + + +READ + + + + + + + + + + + + + + + + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + + + + +FUNCTION {begin.bib} + +{ preamble$ empty$ + + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + + +ITERATE {call.type$} + + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/harvard/agsm.bst b/Master/texmf-dist/bibtex/bst/harvard/agsm.bst new file mode 100644 index 00000000000..9ebcc9c7641 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/harvard/agsm.bst @@ -0,0 +1,1353 @@ +% BibTeX standard bibliography style `agsm' (one of the harvard family) + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1991, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, abbrv.bst, agsm.bst, + % dcu.bst or kluwer.bst. + % This restriction helps ensure that all standard styles are identical. + % The file harvard.tex has the documentation for this style. + +% ACKNOWLEDGEMENT: +% This document is a modified version of alpha.bst to which it owes much of +% its functionality. + +% AUTHOR +% Peter Williams, Key Centre for Design Quality, Sydney University +% e-mail: peterw@archsci.arch.su.oz.au + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + URL + volume + year + } + { field.used etal.allowed etal.required} %%%XXX change + { extra.label sort.label list.year } + +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 f } + +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 {item.check} +{ 't := + empty$ + { "empty " t * " in " * cite$ * warning$ } + { skip$ } + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {embolden} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {quote} +{ duplicate$ empty$ + { pop$ "" } + { "`" swap$ * "'" * } + if$ +} + +FUNCTION {write.url} +{ URL empty$ + { skip$ } + { "\newline\harvardurl{" URL * "}" * write$ newline$ } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + 'f := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr f format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " et~al." * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { "{vv~}{ll}{, jj}{, f.}" author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { "{vv~}{ll}{, jj}{, f.}" editor format.names + editor num.names$ #1 > + { ", eds" * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.editors.reverse} +{ editor empty$ + { "" } + { "{f.~}{vv~}{ll}{, jj}" editor format.names + editor num.names$ #1 > + { ", eds" * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Vol." volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " {\em in} " * series quote * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edn" * } + { edition "t" change.case$ " edn" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume embolden field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ",~" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "{\em in} " booktitle quote * } + { "{\em in} " format.editors.reverse * ", " * booktitle quote * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in {\em " journal * "\/} \cite{" * crossref * "}" *} + if$ + } + { "{\em in} \citeasnoun{" crossref * "}" * } + if$ + +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "Vol." volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/} \cite{" * crossref * "}" *} + if$ + } + { " \citeasnoun{" * crossref * "}" * } + if$ + } + { " \citeasnoun{" * crossref * "}" * } + if$ +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "in {\em " booktitle * "\/}" * " \cite{" * crossref * "}" *} + if$ + } + { "{\em in} \citeasnoun{" crossref * "}" * } + if$ + } + { "{\em in} \citeasnoun{" crossref * "}" * } + if$ + +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +INTEGERS { ind tsslen } + +STRINGS { tss ret rss istr } + +FUNCTION {replace.substring}{ + 'rss := + 'tss := + 'istr := + "" 'ret := + tss text.length$ 'tsslen := + #1 'ind := + { istr ind tsslen substring$ "" = not } + { istr ind tsslen substring$ tss = + { ret rss * 'ret := + ind tsslen + 'ind := + } + { ret istr ind #1 substring$ * 'ret := + ind #1 + 'ind := + } + if$ + } + while$ + ret +} + +FUNCTION {format.lab.names.abbr} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #2 > + { s #1 "{vv~}{ll}" format.name$ " et~al." * } + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { s #1 "{vv~}{ll}" format.name$ " et~al." * } + { s #1 "{vv~}{ll}" format.name$ " \harvardand\ " * + s #2 "{vv~}{ll}" format.name$ * + } + if$ + } + if$ + } + { s #1 "{vv~}{ll}" format.name$ } + if$ +} + +FUNCTION {format.lab.names.full} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " et~al." * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +INTEGERS { author.field editor.field organization.field title.field key.field } + +FUNCTION {init.field.constants} +{ #0 'author.field := + #1 'editor.field := + #2 'organization.field := + #3 'title.field := + #4 'key.field := +} + +FUNCTION {make.list.label} +{ author.field field.used = + { format.authors } + { editor.field field.used = + { format.editors } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {make.full.label} +{ author.field field.used = + { author format.lab.names.full } + { editor.field field.used = + { editor format.lab.names.full } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {make.abbr.label} %%%XXX change +{ + etal.allowed + { author.field field.used = + { author format.lab.names.abbr } + { editor.field field.used = + { editor format.lab.names.abbr } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + {"Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + { make.full.label } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + etal.allowed %%%XXX change + etal.required + and + { + "\harvarditem[" write$ + make.abbr.label write$ + "]{" write$ + } + { + "\harvarditem{" write$ + } + if$ + make.full.label write$ + "}{" write$ + list.year write$ + "}{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {list.label.output} +{ make.list.label " " * write$ +} + +FUNCTION {article} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title quote "title" output.check } + if$ + crossref missing$ + { journal emphasize "journal" duplicate$ item.check + " " * format.vol.num.pages * output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry + write.url +} + +FUNCTION {book} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + author empty$ + { editor "author and editor" item.check } + { crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + format.edition output + } + if$ + new.block + note output + fin.entry + write.url +} + +FUNCTION {booklet} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + title.field field.used = + { skip$ } + { format.title quote "title" output.check } + if$ + howpublished output + address output + new.block + note output + fin.entry + write.url +} + +FUNCTION {inbook} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + author empty$ + { editor "author and editor" item.check } + { crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + format.edition output + } + if$ + format.chapter.pages "chapter and pages" output.check + new.block + note output + fin.entry + write.url +} + +FUNCTION {incollection} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + author "author" item.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.edition output + format.bvolume output + format.number.series output + publisher "publisher" output.check + address output + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.chapter.pages output + new.block + note output + fin.entry + write.url +} + +FUNCTION {inproceedings} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + author "author" item.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + address empty$ + { organization output + publisher output + } + { organization output + publisher output + address output.nonnull + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.pages output + new.block + note output + fin.entry + write.url +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + format.edition output + author empty$ + { organization empty$ + { address output } + 'skip$ + if$ + } + { organization output + address output + } + if$ + new.block + note output + fin.entry + write.url +} + +FUNCTION {mastersthesis} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry + write.url +} + +FUNCTION {misc} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + title.field field.used = + { skip$ } + { format.title quote output } + if$ + howpublished output + new.block + note output + fin.entry + write.url + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { title "title" output.check } + if$ + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry + write.url +} + +FUNCTION {proceedings} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { skip$ } + { organization output + } + if$ + publisher output + } + { editor empty$ + 'skip$ + { organization output } + if$ + publisher output + address output.nonnull + } + if$ + new.block + note output + fin.entry + write.url +} + +FUNCTION {techreport} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry + write.url +} + +FUNCTION {unpublished} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + new.block + note "note" output.check + fin.entry + write.url +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +EXECUTE {init.field.constants} + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {sortify.names} +{ " \harvardand\ " " " replace.substring + " et~al." " zzz" replace.substring + sortify +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { title.field 'field.used := } + { key.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { title.field 'field.used := } + { key.field 'field.used := } + if$ + } + { editor.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { title.field 'field.used := } + { organization.field 'field.used := } + if$ + } + { key.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { title.field 'field.used := } + { organization.field 'field.used := } + if$ + } + { key.field 'field.used := } + if$ + } + { editor.field 'field.used := } + if$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {calc.label} %%%XXX change +{ make.abbr.label + title.field field.used = + { sort.format.title } + { sortify.names } + if$ + year field.or.null purify$ #-1 #4 substring$ sortify + * + 'sort.label := +} + +FUNCTION {preliminaries} %%%XXX change +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + author.field field.used = %%%XXX change + { + author num.names$ #2 > + { #1 } + { #0 } + if$ + 'etal.required := + } + { + editor.field field.used = + { + editor num.names$ #2 > + { #1 } + { #0 } + if$ + } + { #0 } + if$ + 'etal.required := + } + if$ + #1 'etal.allowed := +} + +FUNCTION {first.presort} +{ calc.label + sort.label + title.field field.used = + { skip$ } + { " " + * + make.list.label sortify.names + * + " " + * + title field.or.null + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {preliminaries} + +ITERATE {first.presort} + +SORT + +STRINGS { last.sort.label next.extra last.full.label} + +INTEGERS { last.extra.num last.etal.allowed} + +FUNCTION {initialize.confusion} +{ #0 int.to.chr$ 'last.sort.label := + #0 int.to.chr$ 'last.full.label := + #1 'last.etal.allowed := +} + +FUNCTION {confusion.pass} +{ last.sort.label sort.label = + { last.etal.allowed + { last.full.label make.full.label sortify.names = + { skip$ } + { #0 'etal.allowed := + #0 'last.etal.allowed := + } + if$ + } + { #0 'etal.allowed := } + if$ + } + { sort.label 'last.sort.label := + make.full.label sortify.names 'last.full.label := + #1 'last.etal.allowed := + } + if$ +} + +EXECUTE {initialize.confusion} + +ITERATE {confusion.pass} + +EXECUTE {initialize.confusion} + +REVERSE {confusion.pass} + +FUNCTION {initialize.last.extra.num} +{ #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + year empty$ + { "n.d." extra.label emphasize * 'list.year := } + { year extra.label emphasize * 'list.year := } + if$ + extra.label 'next.extra := +} + +ITERATE {first.presort} + +SORT + +EXECUTE {initialize.last.extra.num} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {second.presort} +{ make.list.label + title.field field.used = + { sort.format.title } + { sortify.names } + if$ + " " + * + list.year field.or.null sortify + * + " " + * + title.field field.used = + { skip$ } + { title field.or.null + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {second.presort} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { "\harvardpreambledefs{%" write$ newline$ + preamble$ write$ "}" write$ newline$ + "\harvardpreambletext{%" write$ newline$ + preamble$ write$ "}" write$ newline$ } + if$ + "\begin{thebibliography}{xx}" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/harvard/apsr.bst b/Master/texmf-dist/bibtex/bst/harvard/apsr.bst new file mode 100644 index 00000000000..2aa8cc94cd1 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/harvard/apsr.bst @@ -0,0 +1,1378 @@ +% BibTeX standard bibliography style `apsr' (one of the harvard family) + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1991, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, abbrv.bst, agsm.bst, + % dcu.bst or kluwer.bst, jmr.bst, apsr.bst. + % This restriction helps ensure that all standard styles are identical. + % The file harvard.tex has the documentation for this style. + +% ACKNOWLEDGEMENT: +% This document is a modified version of alpha.bst to which it owes much of +% its functionality. + +% AUTHOR +% Peter Williams, Key Centre for Design Quality, Sydney University +% e-mail: peterw@archsci.arch.su.oz.au + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + URL + volume + year + } + { field.used etal.allowed etal.required} %%%XXX change + { extra.label sort.label list.year } + +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 f } + +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 {item.check} +{ 't := + empty$ + { "empty " t * " in " * cite$ * warning$ } + { skip$ } + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {embolden} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {quote} +{ duplicate$ empty$ + { pop$ "" } + { "``" swap$ * "''" * } + if$ +} + +FUNCTION {write.url} +{ URL empty$ + { skip$ } + { "\newline\harvardurl{" URL * "}" * write$ newline$ } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.rem.names} +{ 's := + 'f := + #2 'nameptr := + s num.names$ 'numnames := + numnames #1 - 'namesleft := + { namesleft #0 > } + { s nameptr f format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " et~al." * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author #1 "{vv~}{ll}{, jj}{, ff}" format.name$ + "{ff }{vv~}{ll}{, jj}" author format.rem.names + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor #1 "{vv~}{ll}{, jj}{, ff}" format.name$ + "{ff }{vv~}{ll}{, jj}" editor format.rem.names + editor num.names$ #1 > + { ", eds" * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.editors.reverse} +{ editor empty$ + { "" } + { ", ed. " + editor #1 "{ff }{vv~}{ll}{, jj}" format.name$ * + "{ff }{vv~}{ll}{, jj}" editor format.rem.names + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title add.period$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Vol." volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " {\em in} " * series quote * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " ed." * } + { edition "t" change.case$ " ed." * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.address} +{ address empty$ + { "" } + { address ": " * + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { " In " booktitle emphasize * } + { " In " booktitle emphasize * format.editors.reverse * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in {\em " journal * "\/} \cite{" * crossref * "}" *} + if$ + } + { "{\em in} \citeasnoun{" crossref * "}" * } + if$ + +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "Vol." volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/} \cite{" * crossref * "}" *} + if$ + } + { " \citeasnoun{" * crossref * "}" * } + if$ + } + { " \citeasnoun{" * crossref * "}" * } + if$ +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "in {\em " booktitle * "\/}" * " \cite{" * crossref * "}" *} + if$ + } + { "{\em in} \citeasnoun{" crossref * "}" * } + if$ + } + { "{\em in} \citeasnoun{" crossref * "}" * } + if$ + +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +INTEGERS { ind tsslen } + +STRINGS { tss ret rss istr } + +FUNCTION {replace.substring}{ + 'rss := + 'tss := + 'istr := + "" 'ret := + tss text.length$ 'tsslen := + #1 'ind := + { istr ind tsslen substring$ "" = not } + { istr ind tsslen substring$ tss = + { ret rss * 'ret := + ind tsslen + 'ind := + } + { ret istr ind #1 substring$ * 'ret := + ind #1 + 'ind := + } + if$ + } + while$ + ret +} + +FUNCTION {format.lab.names.full} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " et~al." * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.lab.names.abbr} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #3 > + { s #1 "{vv~}{ll}" format.name$ " et~al." * } + { s format.lab.names.full } + if$ + } + { s #1 "{vv~}{ll}" format.name$ } + if$ +} + +INTEGERS { author.field editor.field organization.field title.field key.field } + +FUNCTION {init.field.constants} +{ #0 'author.field := + #1 'editor.field := + #2 'organization.field := + #3 'title.field := + #4 'key.field := +} + +FUNCTION {make.list.label} +{ author.field field.used = + { format.authors } + { editor.field field.used = + { format.editors } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {make.full.label} +{ author.field field.used = + { author format.lab.names.full } + { editor.field field.used = + { editor format.lab.names.full } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {make.abbr.label} %%%XXX change +{ + etal.allowed + { author.field field.used = + { author format.lab.names.abbr } + { editor.field field.used = + { editor format.lab.names.abbr } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + {"Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + { make.full.label } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + etal.allowed %%%XXX change + etal.required + and + { + "\harvarditem[" write$ + make.abbr.label write$ + "]{" write$ + } + { + "\harvarditem{" write$ + } + if$ + make.full.label write$ + "}{" write$ + list.year write$ + "}{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {list.label.output} +{ make.list.label add.period$ " " * write$ +} + +FUNCTION {article} +{ output.bibitem + list.label.output + list.year output.nonnull + new.block + author "author" item.check + title.field field.used = + { skip$ } + { format.title quote "title" output.check } + if$ + crossref missing$ + { journal emphasize "journal" duplicate$ item.check + year empty$ + { ". Forthcoming" * output new.block } + { " " * format.vol.num.pages * output } + if$ + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry + write.url +} + +FUNCTION {book} +{ output.bibitem + list.label.output + list.year output.nonnull + new.block + author empty$ + { editor "author and editor" item.check } + { crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + new.block + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + format.address output + publisher "publisher" output.check + } + { format.book.crossref output.nonnull + format.edition output + } + if$ + new.block + note output + fin.entry + write.url +} + +FUNCTION {booklet} +{ output.bibitem + list.label.output + list.year output.nonnull + new.block + title.field field.used = + { skip$ } + { format.title quote "title" output.check } + if$ + format.address output + howpublished output + new.block + note output + fin.entry + write.url +} + +FUNCTION {inbook} +{ output.bibitem + list.label.output + list.year output.nonnull + new.block + author empty$ + { editor "author and editor" item.check } + { crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + new.block + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + format.address output + publisher "publisher" output.check + } + { format.book.crossref output.nonnull + format.edition output + } + if$ + format.chapter.pages "chapter and pages" output.check + new.block + note output + fin.entry + write.url +} + +FUNCTION {incollection} +{ output.bibitem + list.label.output + list.year output.nonnull + new.block + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + author "author" item.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + new.block + format.edition output + format.bvolume output + format.number.series output + format.address output + publisher "publisher" output.check + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.chapter.pages output + new.block + note output + fin.entry + write.url +} + +FUNCTION {inproceedings} +{ output.bibitem + list.label.output + list.year output.nonnull + new.block + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + author "author" item.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + new.block + format.bvolume output + format.number.series output + address empty$ + { organization output + publisher output + } + { organization output + format.address output.nonnull + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.pages output + new.block + note output + fin.entry + write.url +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + list.label.output + list.year output.nonnull + new.block + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + new.block + format.edition output + new.block + author empty$ + { organization empty$ + { format.address output } + 'skip$ + if$ + } + { format.address output + organization output + } + if$ + new.block + note output + fin.entry + write.url +} + +FUNCTION {mastersthesis} +{ output.bibitem + list.label.output + list.year output.nonnull + new.block + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + format.address output + new.block + note output + fin.entry + write.url +} + +FUNCTION {misc} +{ output.bibitem + list.label.output + list.year output.nonnull + new.block + title.field field.used = + { skip$ } + { format.title quote output } + if$ + howpublished output + new.block + note output + fin.entry + write.url + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + list.label.output + list.year output.nonnull + new.block + author "author" item.check + title.field field.used = + { skip$ } + { title "title" output.check } + if$ + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + format.address output + new.block + note output + fin.entry + write.url +} + +FUNCTION {proceedings} +{ output.bibitem + list.label.output + list.year output.nonnull + new.block + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + new.block + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { skip$ } + { organization output + } + if$ + publisher output + } + { editor empty$ + 'skip$ + { organization output } + if$ + format.address output.nonnull + publisher output + } + if$ + new.block + note output + fin.entry + write.url +} + +FUNCTION {techreport} +{ output.bibitem + list.label.output + list.year output.nonnull + new.block + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + format.tr.number output.nonnull + institution "institution" output.check + format.address output + new.block + note output + fin.entry + write.url +} + +FUNCTION {unpublished} +{ output.bibitem + list.label.output + list.year output.nonnull + new.block + author "author" item.check + title.field field.used = + { skip$ } + { format.title quote "title" output.check } + if$ + note "note" output.check + fin.entry + write.url +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +EXECUTE {init.field.constants} + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {sortify.names} +{ " \harvardand\ " " " replace.substring + " et~al." " zzz" replace.substring + sortify +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { title.field 'field.used := } + { key.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { title.field 'field.used := } + { key.field 'field.used := } + if$ + } + { editor.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { title.field 'field.used := } + { organization.field 'field.used := } + if$ + } + { key.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { title.field 'field.used := } + { organization.field 'field.used := } + if$ + } + { key.field 'field.used := } + if$ + } + { editor.field 'field.used := } + if$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {calc.label} %%%XXX change +{ make.abbr.label + title.field field.used = + { sort.format.title } + { sortify.names } + if$ + year field.or.null purify$ #-1 #4 substring$ sortify + * + 'sort.label := +} + +FUNCTION {preliminaries} %%%XXX change +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + author.field field.used = %%%XXX change + { + author num.names$ #2 > + { #1 } + { #0 } + if$ + 'etal.required := + } + { + editor.field field.used = + { + editor num.names$ #2 > + { #1 } + { #0 } + if$ + } + { #0 } + if$ + 'etal.required := + } + if$ + #1 'etal.allowed := +} + +FUNCTION {first.presort} +{ calc.label + sort.label + title.field field.used = + { skip$ } + { " " + * + make.list.label sortify.names + * + " " + * + title field.or.null + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {preliminaries} + +ITERATE {first.presort} + +SORT + +STRINGS { last.sort.label next.extra last.full.label} + +INTEGERS { last.extra.num last.etal.allowed} + +FUNCTION {initialize.confusion} +{ #0 int.to.chr$ 'last.sort.label := + #0 int.to.chr$ 'last.full.label := + #1 'last.etal.allowed := +} + +FUNCTION {confusion.pass} +{ last.sort.label sort.label = + { last.etal.allowed + { last.full.label make.full.label sortify.names = + { skip$ } + { #0 'etal.allowed := + #0 'last.etal.allowed := + } + if$ + } + { #0 'etal.allowed := } + if$ + } + { sort.label 'last.sort.label := + make.full.label sortify.names 'last.full.label := + #1 'last.etal.allowed := + } + if$ +} + +EXECUTE {initialize.confusion} + +ITERATE {confusion.pass} + +EXECUTE {initialize.confusion} + +REVERSE {confusion.pass} + +FUNCTION {initialize.last.extra.num} +{ #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + year empty$ + { "N.d." extra.label emphasize * 'list.year := } + { year extra.label emphasize * 'list.year := } + if$ + extra.label 'next.extra := +} + +ITERATE {first.presort} + +SORT + +EXECUTE {initialize.last.extra.num} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {second.presort} +{ make.list.label + title.field field.used = + { sort.format.title } + { sortify.names } + if$ + " " + * + list.year field.or.null sortify + * + " " + * + title.field field.used = + { skip$ } + { title field.or.null + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {second.presort} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { "\harvardpreambledefs{%" write$ newline$ + preamble$ write$ "}" write$ newline$ + "\harvardpreambletext{%" write$ newline$ + preamble$ write$ "}" write$ newline$ } + if$ + "\begin{thebibliography}{xx}" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/harvard/jmr.bst b/Master/texmf-dist/bibtex/bst/harvard/jmr.bst new file mode 100644 index 00000000000..2f8259f877d --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/harvard/jmr.bst @@ -0,0 +1,1357 @@ +% BibTeX standard bibliography style `jmr' (one of the harvard family) + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1991, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, abbrv.bst, agsm.bst, + % dcu.bst or kluwer.bst, jmr.bst. + % This restriction helps ensure that all standard styles are identical. + % The file harvard.tex has the documentation for this style. + +% ACKNOWLEDGEMENT: +% This document is a modified version of alpha.bst to which it owes much of +% its functionality. + +% AUTHOR +% Peter Williams, Key Centre for Design Quality, Sydney University +% e-mail: peterw@archsci.arch.su.oz.au + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + URL + volume + year + } + { field.used etal.allowed etal.required} %%%XXX change + { extra.label sort.label list.year } + +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 f } + +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 {item.check} +{ 't := + empty$ + { "empty " t * " in " * cite$ * warning$ } + { skip$ } + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {embolden} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {quote} +{ duplicate$ empty$ + { pop$ "" } + { "`" swap$ * "'" * } + if$ +} + +FUNCTION {write.url} +{ URL empty$ + { skip$ } + { "\newline\harvardurl{" URL * "}" * write$ newline$ } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.rem.names} +{ 's := + 'f := + #2 'nameptr := + s num.names$ 'numnames := + numnames #1 - 'namesleft := + { namesleft #0 > } + { s nameptr f format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " et~al." * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author #1 "{vv~}{ll}{, jj}{, ff}" format.name$ + "{ff }{vv~}{ll}{, jj}" author format.rem.names + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor #1 "{vv~}{ll}{, jj}{, ff}" format.name$ + "{ff }{vv~}{ll}{, jj}" editor format.rem.names + editor num.names$ #1 > + { ", eds" * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.editors.reverse} +{ editor empty$ + { "" } + { editor #1 "{f.}{vv~}{ll}{, jj}" format.name$ + "{f.}{vv~}{ll}{, jj}" editor format.rem.names + editor num.names$ #1 > + { ", eds" * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Vol." volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " {\em in} " * series quote * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edn" * } + { edition "t" change.case$ " edn" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume embolden field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ",~" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "{\em in} " booktitle quote * } + { "{\em in} " format.editors.reverse * ", " * booktitle quote * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in {\em " journal * "\/} \cite{" * crossref * "}" *} + if$ + } + { "{\em in} \citeasnoun{" crossref * "}" * } + if$ + +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "Vol." volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/} \cite{" * crossref * "}" *} + if$ + } + { " \citeasnoun{" * crossref * "}" * } + if$ + } + { " \citeasnoun{" * crossref * "}" * } + if$ +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "in {\em " booktitle * "\/}" * " \cite{" * crossref * "}" *} + if$ + } + { "{\em in} \citeasnoun{" crossref * "}" * } + if$ + } + { "{\em in} \citeasnoun{" crossref * "}" * } + if$ + +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +INTEGERS { ind tsslen } + +STRINGS { tss ret rss istr } + +FUNCTION {replace.substring}{ + 'rss := + 'tss := + 'istr := + "" 'ret := + tss text.length$ 'tsslen := + #1 'ind := + { istr ind tsslen substring$ "" = not } + { istr ind tsslen substring$ tss = + { ret rss * 'ret := + ind tsslen + 'ind := + } + { ret istr ind #1 substring$ * 'ret := + ind #1 + 'ind := + } + if$ + } + while$ + ret +} + +FUNCTION {format.lab.names.abbr} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #2 > + { s #1 "{vv~}{ll}" format.name$ " et~al." * } + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { s #1 "{vv~}{ll}" format.name$ " et~al." * } + { s #1 "{vv~}{ll}" format.name$ " \harvardand\ " * + s #2 "{vv~}{ll}" format.name$ * + } + if$ + } + if$ + } + { s #1 "{ff }{vv~}{ll}" format.name$ } + if$ +} + +FUNCTION {format.lab.names.full} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " et~al." * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +INTEGERS { author.field editor.field organization.field title.field key.field } + +FUNCTION {init.field.constants} +{ #0 'author.field := + #1 'editor.field := + #2 'organization.field := + #3 'title.field := + #4 'key.field := +} + +FUNCTION {make.list.label} +{ author.field field.used = + { format.authors } + { editor.field field.used = + { format.editors } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {make.full.label} +{ author.field field.used = + { author format.lab.names.full } + { editor.field field.used = + { editor format.lab.names.full } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {make.abbr.label} %%%XXX change +{ + etal.allowed + { author.field field.used = + { author format.lab.names.abbr } + { editor.field field.used = + { editor format.lab.names.abbr } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + {"Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + { make.full.label } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + etal.allowed %%%XXX change + etal.required + and + { + "\harvarditem[" write$ + make.abbr.label write$ + "]{" write$ + } + { + "\harvarditem{" write$ + } + if$ + make.full.label write$ + "}{" write$ + list.year write$ + "}{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {list.label.output} +{ make.list.label " " * write$ +} + +FUNCTION {article} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title quote "title" output.check } + if$ + crossref missing$ + { journal emphasize "journal" duplicate$ item.check + " " * format.vol.num.pages * output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry + write.url +} + +FUNCTION {book} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + author empty$ + { editor "author and editor" item.check } + { crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + format.edition output + } + if$ + new.block + note output + fin.entry + write.url +} + +FUNCTION {booklet} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + title.field field.used = + { skip$ } + { format.title quote "title" output.check } + if$ + howpublished output + address output + new.block + note output + fin.entry + write.url +} + +FUNCTION {inbook} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + author empty$ + { editor "author and editor" item.check } + { crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + format.edition output + } + if$ + format.chapter.pages "chapter and pages" output.check + new.block + note output + fin.entry + write.url +} + +FUNCTION {incollection} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + author "author" item.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.edition output + format.bvolume output + format.number.series output + publisher "publisher" output.check + address output + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.chapter.pages output + new.block + note output + fin.entry + write.url +} + +FUNCTION {inproceedings} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + author "author" item.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + address empty$ + { organization output + publisher output + } + { organization output + publisher output + address output.nonnull + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.pages output + new.block + note output + fin.entry + write.url +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + format.edition output + author empty$ + { organization empty$ + { address output } + 'skip$ + if$ + } + { organization output + address output + } + if$ + new.block + note output + fin.entry + write.url +} + +FUNCTION {mastersthesis} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry + write.url +} + +FUNCTION {misc} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + title.field field.used = + { skip$ } + { format.title quote output } + if$ + howpublished output + new.block + note output + fin.entry + write.url + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { title "title" output.check } + if$ + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry + write.url +} + +FUNCTION {proceedings} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { skip$ } + { organization output + } + if$ + publisher output + } + { editor empty$ + 'skip$ + { organization output } + if$ + publisher output + address output.nonnull + } + if$ + new.block + note output + fin.entry + write.url +} + +FUNCTION {techreport} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry + write.url +} + +FUNCTION {unpublished} +{ output.bibitem + list.label.output + " \harvardyearleft " list.year * "\harvardyearright " * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + new.block + note "note" output.check + fin.entry + write.url +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +EXECUTE {init.field.constants} + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {sortify.names} +{ " \harvardand\ " " " replace.substring + " et~al." " zzz" replace.substring + sortify +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { title.field 'field.used := } + { key.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { title.field 'field.used := } + { key.field 'field.used := } + if$ + } + { editor.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { title.field 'field.used := } + { organization.field 'field.used := } + if$ + } + { key.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { title.field 'field.used := } + { organization.field 'field.used := } + if$ + } + { key.field 'field.used := } + if$ + } + { editor.field 'field.used := } + if$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {calc.label} %%%XXX change +{ make.abbr.label + title.field field.used = + { sort.format.title } + { sortify.names } + if$ + year field.or.null purify$ #-1 #4 substring$ sortify + * + 'sort.label := +} + +FUNCTION {preliminaries} %%%XXX change +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + author.field field.used = %%%XXX change + { + author num.names$ #2 > + { #1 } + { #0 } + if$ + 'etal.required := + } + { + editor.field field.used = + { + editor num.names$ #2 > + { #1 } + { #0 } + if$ + } + { #0 } + if$ + 'etal.required := + } + if$ + #1 'etal.allowed := +} + +FUNCTION {first.presort} +{ calc.label + sort.label + title.field field.used = + { skip$ } + { " " + * + make.list.label sortify.names + * + " " + * + title field.or.null + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {preliminaries} + +ITERATE {first.presort} + +SORT + +STRINGS { last.sort.label next.extra last.full.label} + +INTEGERS { last.extra.num last.etal.allowed} + +FUNCTION {initialize.confusion} +{ #0 int.to.chr$ 'last.sort.label := + #0 int.to.chr$ 'last.full.label := + #1 'last.etal.allowed := +} + +FUNCTION {confusion.pass} +{ last.sort.label sort.label = + { last.etal.allowed + { last.full.label make.full.label sortify.names = + { skip$ } + { #0 'etal.allowed := + #0 'last.etal.allowed := + } + if$ + } + { #0 'etal.allowed := } + if$ + } + { sort.label 'last.sort.label := + make.full.label sortify.names 'last.full.label := + #1 'last.etal.allowed := + } + if$ +} + +EXECUTE {initialize.confusion} + +ITERATE {confusion.pass} + +EXECUTE {initialize.confusion} + +REVERSE {confusion.pass} + +FUNCTION {initialize.last.extra.num} +{ #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + year empty$ + { "n.d." extra.label emphasize * 'list.year := } + { year extra.label emphasize * 'list.year := } + if$ + extra.label 'next.extra := +} + +ITERATE {first.presort} + +SORT + +EXECUTE {initialize.last.extra.num} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {second.presort} +{ make.list.label + title.field field.used = + { sort.format.title } + { sortify.names } + if$ + " " + * + list.year field.or.null sortify + * + " " + * + title.field field.used = + { skip$ } + { title field.or.null + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {second.presort} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { "\harvardpreambledefs{%" write$ newline$ + preamble$ write$ "}" write$ newline$ + "\harvardpreambletext{%" write$ newline$ + preamble$ write$ "}" write$ newline$ } + if$ + "\begin{thebibliography}{xx}" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/harvard/jphysicsB.bst b/Master/texmf-dist/bibtex/bst/harvard/jphysicsB.bst new file mode 100644 index 00000000000..4d116237407 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/harvard/jphysicsB.bst @@ -0,0 +1,1322 @@ +% BibTeX standard bibliography style `jphysicsB' (one of the harvard family) + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1991, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, abbrv.bst, agsm.bst, + % dcu.bst, kluwer.bst or jphysicsB.bst. + % This restriction helps ensure that all standard styles are identical. + % The file harvard.tex has the documentation for this style. + +% ACKNOWLEDGEMENT: +% This document is a modified version of alpha.bst to which it owes much of +% its functionality. + +% AUTHOR +% Peter Williams, Key Centre for Design Quality, Sydney University +% e-mail: peterw@archsci.arch.su.oz.au + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + URL + volume + year + } + { field.used etal.allowed etal.required} %%%XXX change + { extra.label sort.label list.year } + +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 f } + +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 {item.check} +{ 't := + empty$ + { "empty " t * " in " * cite$ * warning$ } + { skip$ } + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {embolden} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {quote} +{ duplicate$ empty$ + { pop$ "" } + { "`" swap$ * "'" * } + if$ +} + +FUNCTION {write.url} +{ URL empty$ + { skip$ } + { "\newline\harvardurl{" URL * "}" * write$ newline$ } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + 'f := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr f format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " et~al." * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { "{vv~}{ll}{, jj}{ f{~}}" author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { "{vv~}{ll}{, jj}{ f{~}}" editor format.names + editor num.names$ #1 > + { ", eds" * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.editors.reverse} +{ editor empty$ + { "" } + { "{f~}{vv~}{ll}{, jj}" editor format.names + editor num.names$ #1 > + { ", eds" * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Vol." volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " {\em in} " * series quote * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edn" * } + { edition "t" change.case$ " edn" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume embolden field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ",~" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "{\em in} " booktitle quote * } + { "{\em in} " format.editors.reverse * ", " * booktitle quote * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in {\em " journal * "\/} \cite{" * crossref * "}" *} + if$ + } + { "{\em in} \citeasnoun{" crossref * "}" * } + if$ + +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "Vol." volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/} \cite{" * crossref * "}" *} + if$ + } + { " \citeasnoun{" * crossref * "}" * } + if$ + } + { " \citeasnoun{" * crossref * "}" * } + if$ +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "in {\em " booktitle * "\/}" * " \cite{" * crossref * "}" *} + if$ + } + { "{\em in} \citeasnoun{" crossref * "}" * } + if$ + } + { "{\em in} \citeasnoun{" crossref * "}" * } + if$ + +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +INTEGERS { ind tsslen } + +STRINGS { tss ret rss istr } + +FUNCTION {replace.substring}{ + 'rss := + 'tss := + 'istr := + "" 'ret := + tss text.length$ 'tsslen := + #1 'ind := + { istr ind tsslen substring$ "" = not } + { istr ind tsslen substring$ tss = + { ret rss * 'ret := + ind tsslen + 'ind := + } + { ret istr ind #1 substring$ * 'ret := + ind #1 + 'ind := + } + if$ + } + while$ + ret +} + +FUNCTION {format.lab.names.abbr} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #2 > + { s #1 "{vv~}{ll}" format.name$ " et~al." * } + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { s #1 "{vv~}{ll}" format.name$ " et~al." * } + { s #1 "{vv~}{ll}" format.name$ " \harvardand\ " * + s #2 "{vv~}{ll}" format.name$ * + } + if$ + } + if$ + } + { s #1 "{vv~}{ll}" format.name$ } + if$ +} + +FUNCTION {format.lab.names.full} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " et~al." * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +INTEGERS { author.field editor.field organization.field title.field key.field } + +FUNCTION {init.field.constants} +{ #0 'author.field := + #1 'editor.field := + #2 'organization.field := + #3 'title.field := + #4 'key.field := +} + +FUNCTION {make.list.label} +{ author.field field.used = + { format.authors } + { editor.field field.used = + { format.editors } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {make.full.label} +{ author.field field.used = + { author format.lab.names.full } + { editor.field field.used = + { editor format.lab.names.full } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {make.abbr.label} %%%XXX change +{ + etal.allowed + { author.field field.used = + { author format.lab.names.abbr } + { editor.field field.used = + { editor format.lab.names.abbr } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + {"Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + { make.full.label } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\harvarditem{" write$ + make.abbr.label write$ + "}{" write$ + list.year write$ + "}{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {list.label.output} +{ make.list.label " " * write$ +} + +FUNCTION {article} +{ output.bibitem + list.label.output + " " list.year * output.nonnull + author "author" item.check + crossref missing$ + { journal emphasize "journal" duplicate$ item.check + " " * format.vol.num.pages * output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry + write.url +} + +FUNCTION {book} +{ output.bibitem + list.label.output + " " list.year * output.nonnull + author empty$ + { editor "author and editor" item.check } + { crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + format.edition output + } + if$ + new.block + note output + fin.entry + write.url +} + +FUNCTION {booklet} +{ output.bibitem + list.label.output + " " list.year * output.nonnull + title.field field.used = + { skip$ } + { format.title quote "title" output.check } + if$ + howpublished output + address output + new.block + note output + fin.entry + write.url +} + +FUNCTION {inbook} +{ output.bibitem + list.label.output + " " list.year * output.nonnull + author empty$ + { editor "author and editor" item.check } + { crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + format.edition output + } + if$ + format.chapter.pages "chapter and pages" output.check + new.block + note output + fin.entry + write.url +} + +FUNCTION {incollection} +{ output.bibitem + list.label.output + " " list.year * output.nonnull + author "author" item.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.edition output + format.bvolume output + format.number.series output + publisher "publisher" output.check + address output + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.chapter.pages output + new.block + note output + fin.entry + write.url +} + +FUNCTION {inproceedings} +{ output.bibitem + list.label.output + " " list.year * output.nonnull + author "author" item.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + address empty$ + { organization output + publisher output + } + { organization output + publisher output + address output.nonnull + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.pages output + new.block + note output + fin.entry + write.url +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + list.label.output + " " list.year * output.nonnull + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + format.edition output + author empty$ + { organization empty$ + { address output } + 'skip$ + if$ + } + { organization output + address output + } + if$ + new.block + note output + fin.entry + write.url +} + +FUNCTION {mastersthesis} +{ output.bibitem + list.label.output + " " list.year * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry + write.url +} + +FUNCTION {misc} +{ output.bibitem + list.label.output + " " list.year * output.nonnull + title.field field.used = + { skip$ } + { format.title quote output } + if$ + howpublished output + new.block + note output + fin.entry + write.url + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + list.label.output + " " list.year * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { title "title" output.check } + if$ + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry + write.url +} + +FUNCTION {proceedings} +{ output.bibitem + list.label.output + " " list.year * output.nonnull + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { skip$ } + { organization output + } + if$ + publisher output + } + { editor empty$ + 'skip$ + { organization output } + if$ + publisher output + address output.nonnull + } + if$ + new.block + note output + fin.entry + write.url +} + +FUNCTION {techreport} +{ output.bibitem + list.label.output + " " list.year * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry + write.url +} + +FUNCTION {unpublished} +{ output.bibitem + list.label.output + " " list.year * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + new.block + note "note" output.check + fin.entry + write.url +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +EXECUTE {init.field.constants} + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {sortify.names} +{ " \harvardand\ " " " replace.substring + " et~al." " zzz" replace.substring + sortify +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { title.field 'field.used := } + { key.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { title.field 'field.used := } + { key.field 'field.used := } + if$ + } + { editor.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { title.field 'field.used := } + { organization.field 'field.used := } + if$ + } + { key.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { title.field 'field.used := } + { organization.field 'field.used := } + if$ + } + { key.field 'field.used := } + if$ + } + { editor.field 'field.used := } + if$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {calc.label} %%%XXX change +{ make.abbr.label + title.field field.used = + { sort.format.title } + { sortify.names } + if$ + year field.or.null purify$ #-1 #4 substring$ sortify + * + 'sort.label := +} + +FUNCTION {preliminaries} %%%XXX change +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + author.field field.used = %%%XXX change + { + author num.names$ #2 > + { #1 } + { #0 } + if$ + 'etal.required := + } + { + editor.field field.used = + { + editor num.names$ #2 > + { #1 } + { #0 } + if$ + } + { #0 } + if$ + 'etal.required := + } + if$ + #1 'etal.allowed := +} + +FUNCTION {first.presort} +{ calc.label + sort.label + title.field field.used = + { skip$ } + { " " + * + make.list.label sortify.names + * + " " + * + title field.or.null + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {preliminaries} + +ITERATE {first.presort} + +SORT + +STRINGS { last.sort.label next.extra last.full.label} + +INTEGERS { last.extra.num last.etal.allowed} + +FUNCTION {initialize.confusion} +{ #0 int.to.chr$ 'last.sort.label := + #0 int.to.chr$ 'last.full.label := + #1 'last.etal.allowed := +} + +FUNCTION {confusion.pass} +{ last.sort.label sort.label = + { last.etal.allowed + { last.full.label make.full.label sortify.names = + { skip$ } + { #0 'etal.allowed := + #0 'last.etal.allowed := + } + if$ + } + { #0 'etal.allowed := } + if$ + } + { sort.label 'last.sort.label := + make.full.label sortify.names 'last.full.label := + #1 'last.etal.allowed := + } + if$ +} + +EXECUTE {initialize.confusion} + +ITERATE {confusion.pass} + +EXECUTE {initialize.confusion} + +REVERSE {confusion.pass} + +FUNCTION {initialize.last.extra.num} +{ #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + year empty$ + { "n.d." extra.label emphasize * 'list.year := } + { year extra.label emphasize * 'list.year := } + if$ + extra.label 'next.extra := +} + +ITERATE {first.presort} + +SORT + +EXECUTE {initialize.last.extra.num} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {second.presort} +{ make.list.label + title.field field.used = + { sort.format.title } + { sortify.names } + if$ + " " + * + list.year field.or.null sortify + * + " " + * + title.field field.used = + { skip$ } + { title field.or.null + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {second.presort} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { "\harvardpreambledefs{%" write$ newline$ + preamble$ write$ "}" write$ newline$ + "\harvardpreambletext{%" write$ newline$ + preamble$ write$ "}" write$ newline$ } + if$ + "\begin{thebibliography}{xx}" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/harvard/kluwer.bst b/Master/texmf-dist/bibtex/bst/harvard/kluwer.bst new file mode 100644 index 00000000000..bbcd6059173 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/harvard/kluwer.bst @@ -0,0 +1,1355 @@ +% BibTeX standard bibliography style `kluwer' (one of the harvard family) + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1991, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, abbrv.bst, agsm.bst, + % dcu.bst or kluwer.bst. + % This restriction helps ensure that all standard styles are identical. + % The file harvard.tex has the documentation for this style. + +% ACKNOWLEDGEMENT: +% This document is a modified version of alpha.bst to which it owes much of +% its functionality. + +% AUTHOR +% Peter Williams, Key Centre for Design Quality, Sydney University +% e-mail: peterw@archsci.arch.su.oz.au + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + URL + volume + year + } + { field.used etal.allowed etal.required } + { extra.label sort.label list.year } + +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 f } + +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 {item.check} +{ 't := + empty$ + { "empty " t * " in " * cite$ * warning$ } + { skip$ } + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {embolden} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {quote} +{ duplicate$ empty$ + { pop$ "" } + { "`" swap$ * "'" * } + if$ +} + +FUNCTION {write.url} +{ URL empty$ + { skip$ } + { "\newline\harvardurl{" URL * "}" * write$ newline$ } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + 'f := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr f format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { "{vv~}{ll}{, jj}{, f.}" author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { "{vv~}{ll}{, jj}{, f.}" editor format.names + editor num.names$ #1 > + { " (eds)" * } + { " (ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.editors.reverse} +{ editor empty$ + { "" } + { "{f.~}{vv~}{ll}{, jj}" editor format.names + editor num.names$ #1 > + { " (eds)" * } + { " (ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Vol." volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series emphasize * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edn" * } + { edition "t" change.case$ " edn" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume embolden field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ",~" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { booktitle emphasize } + { "{\em in} " format.editors.reverse * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in {\em " journal * "\/}" * " \cite{" * crossref * "}" * + } + if$ + } + { " {\em in} \citeasnoun{" crossref * "}" * } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "Vol." volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * " \cite{" * crossref * "}" *} + if$ + } + { " \citeasnoun{" * crossref * "}" * } + if$ + } + { " \citeasnoun{" * crossref * "}" * } + if$ +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { + key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "in {\em " booktitle * "\/}" * " \cite{" * crossref * "}" *} + if$ + } + { " {\em in} \citeasnoun{" crossref * "}" * } + if$ + } + { " {\em in} \citeasnoun{" crossref * "}" * } + if$ + +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +INTEGERS { ind tsslen } + +STRINGS { tss ret rss istr } + +FUNCTION {replace.substring}{ + 'rss := + 'tss := + 'istr := + "" 'ret := + tss text.length$ 'tsslen := + #1 'ind := + { istr ind tsslen substring$ "" = not } + { istr ind tsslen substring$ tss = + { ret rss * 'ret := + ind tsslen + 'ind := + } + { ret istr ind #1 substring$ * 'ret := + ind #1 + 'ind := + } + if$ + } + while$ + ret +} + +FUNCTION {format.lab.names.abbr} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #2 > + { s #1 "{vv~}{ll}" format.name$ " et~al." * } + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { s #1 "{vv~}{ll}" format.name$ " et~al." * } + { s #1 "{vv~}{ll}" format.name$ " and " * + s #2 "{vv~}{ll}" format.name$ * + } + if$ + } + if$ + } + { s #1 "{vv~}{ll}" format.name$ } + if$ +} + +FUNCTION {format.lab.names.full} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +INTEGERS { author.field editor.field organization.field title.field key.field } + +FUNCTION {init.field.constants} +{ #0 'author.field := + #1 'editor.field := + #2 'organization.field := + #3 'title.field := + #4 'key.field := +} + +FUNCTION {make.list.label} +{ author.field field.used = + { format.authors } + { editor.field field.used = + { format.editors } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {make.full.label} +{ author.field field.used = + { author format.lab.names.full } + { editor.field field.used = + { editor format.lab.names.full } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {make.abbr.label} +{ etal.allowed + { author.field field.used = + { author format.lab.names.abbr } + { editor.field field.used = + { editor format.lab.names.abbr } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + {"Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + { make.full.label } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + etal.allowed %%%XXX change + etal.required + and + { + "\harvarditem[" write$ + make.abbr.label write$ + "]{" write$ + } + { + "\harvarditem{" write$ + } + if$ + make.full.label write$ + "}{" write$ + list.year write$ + "}{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + + +FUNCTION {list.label.output} +{ make.list.label write$ +} + +FUNCTION {article} +{ output.bibitem + list.label.output + ": " list.year * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + crossref missing$ + { journal emphasize "journal" duplicate$ item.check + " " * format.vol.num.pages * output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry + write.url +} + +FUNCTION {book} +{ output.bibitem + list.label.output + ": " list.year * output.nonnull + author empty$ + { editor "author and editor" item.check } + { crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + format.edition output + } + if$ + new.block + note output + fin.entry + write.url +} + +FUNCTION {booklet} +{ output.bibitem + list.label.output + ": " list.year * output.nonnull + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + howpublished output + address output + new.block + note output + fin.entry + write.url +} + +FUNCTION {inbook} +{ output.bibitem + list.label.output + ": " list.year * output.nonnull + author empty$ + { editor "author and editor" item.check } + { crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + format.edition output + } + if$ + format.chapter.pages "chapter and pages" output.check + new.block + note output + fin.entry + write.url +} + +FUNCTION {incollection} +{ output.bibitem + list.label.output + ": " list.year * output.nonnull + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + author "author" item.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.edition output + format.bvolume output + format.number.series output + publisher "publisher" output.check + address output + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.chapter.pages output + new.block + note output + fin.entry + write.url +} + +FUNCTION {inproceedings} +{ output.bibitem + list.label.output + ": " list.year * output.nonnull + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + author "author" item.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + address empty$ + { organization output + publisher output + } + { organization output + publisher output + address output.nonnull + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.pages output + new.block + note output + fin.entry + write.url +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + list.label.output + ": " list.year * output.nonnull + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + format.edition output + author empty$ + { organization empty$ + { address output + } + 'skip$ + if$ + } + { organization output + address output + } + if$ + new.block + note output + fin.entry + write.url +} + +FUNCTION {mastersthesis} +{ output.bibitem + list.label.output + ": " list.year * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title emphasize "title" output.check } + if$ + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry + write.url +} + +FUNCTION {misc} +{ output.bibitem + list.label.output + ": " list.year * output.nonnull + title.field field.used = + { skip$ } + { format.title output } + if$ + howpublished output + new.block + note output + fin.entry + write.url + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + list.label.output + ": " list.year * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry + write.url +} + +FUNCTION {proceedings} +{ output.bibitem + list.label.output + ": " list.year * output.nonnull + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { skip$ } + { organization output + } + if$ + publisher output + } + { editor empty$ + 'skip$ + { organization output } + if$ + publisher output + address output.nonnull + } + if$ + new.block + note output + fin.entry + write.url +} + +FUNCTION {techreport} +{ output.bibitem + list.label.output + ": " list.year * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + format.tr.number emphasize output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry + write.url +} + +FUNCTION {unpublished} +{ output.bibitem + list.label.output + ": " list.year * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + new.block + note "note" output.check + fin.entry + write.url +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +EXECUTE {init.field.constants} + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {sortify.names} +{ " and " " " replace.substring + " et~al." " zzz" replace.substring + sortify +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { title.field 'field.used := } + { key.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { title.field 'field.used := } + { key.field 'field.used := } + if$ + } + { editor.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { title.field 'field.used := } + { organization.field 'field.used := } + if$ + } + { key.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { title.field 'field.used := } + { organization.field 'field.used := } + if$ + } + { key.field 'field.used := } + if$ + } + { editor.field 'field.used := } + if$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {calc.label} +{ make.abbr.label + title.field field.used = + { sort.format.title } + { sortify.names } + if$ + year field.or.null purify$ #-1 #4 substring$ sortify + * + 'sort.label := +} + +FUNCTION {preliminaries} %%%XXX change +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + author.field field.used = %%%XXX change + { + author num.names$ #2 > + { #1 } + { #0 } + if$ + 'etal.required := + } + { + editor.field field.used = + { + editor num.names$ #2 > + { #1 } + { #0 } + if$ + } + { #0 } + if$ + 'etal.required := + } + if$ + #1 'etal.allowed := +} + +FUNCTION {first.presort} +{ calc.label + sort.label + title.field field.used = + { skip$ } + { " " + * + make.list.label sortify.names + * + " " + * + title field.or.null + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {preliminaries} + +ITERATE {first.presort} + +SORT + +STRINGS { last.sort.label next.extra last.full.label } + +INTEGERS { last.extra.num last.etal.allowed } + +FUNCTION {initialize.confusion} +{ #0 int.to.chr$ 'last.sort.label := + #0 int.to.chr$ 'last.full.label := + #1 'last.etal.allowed := +} + +FUNCTION {confusion.pass} +{ last.sort.label sort.label = + { last.etal.allowed + { last.full.label make.full.label sortify.names = + { skip$ } + { #0 'etal.allowed := + #0 'last.etal.allowed := + } + if$ + } + { #0 'etal.allowed := } + if$ + } + { sort.label 'last.sort.label := + make.full.label sortify.names 'last.full.label := + #1 'last.etal.allowed := + } + if$ +} + +EXECUTE {initialize.confusion} + +ITERATE {confusion.pass} + +EXECUTE {initialize.confusion} + +REVERSE {confusion.pass} + +FUNCTION {initialize.last.extra.num} +{ #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + year empty$ + { "n.d." extra.label * 'list.year := } + { year extra.label * 'list.year := } + if$ + extra.label 'next.extra := +} + +ITERATE {first.presort} + +SORT + +EXECUTE {initialize.last.extra.num} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {second.presort} +{ make.list.label + title.field field.used = + { sort.format.title } + { sortify.names } + if$ + " " + * + list.year field.or.null sortify + * + " " + * + title.field field.used = + { skip$ } + { title field.or.null + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {second.presort} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { "\harvardpreambledefs{%" write$ newline$ + preamble$ write$ "}" write$ newline$ + "\harvardpreambletext{%" write$ newline$ + preamble$ write$ "}" write$ newline$ } + if$ + "\begin{thebibliography}{xx}" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/harvard/nederlands.bst b/Master/texmf-dist/bibtex/bst/harvard/nederlands.bst new file mode 100644 index 00000000000..c6c7b8dd872 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/harvard/nederlands.bst @@ -0,0 +1,1621 @@ +%%% ==================================================================== +%%% @BibTeX-style-file{ +%%% author = "Werenfried Spit", +%%% version = "2.5.1", +%%% date = "2 November 1993", +%%% time = "12:29:12 CET", +%%% filename = "nederlands.bst", +%%% address = "Departament de Fisica Teorica +%%% Universitat de Valencia +%%% c/ Moliner, 50 +%%% E-46100 Burjassot, Valencia +%%% Espanya", +%%% telephone = "+34-6-386 4551", +%%% email = "spit@vm.ci.uv.es +%%% spit@ific.uv.es", +%%% codetable = "ISO/ASCII", +%%% keywords = "BibTeX, Dutch", +%%% supported = "yes", +%%% checksum = "19068 1618 4873 37905", +%%% abstract = "In Dutch (and German, ...) names are sorted on their +%%% last part; prepositions (the `von-part') are not +%%% considered to be part of the last name for sorting +%%% purposes. Thus, J. van Dale will be listed under D. +%%% +%%% This style is part of the Harvard package that +%%% supports citations like `see Van Dale (1983)' in the +%%% text; harvard.sty is needed. Sorting is done +%%% according to dutch rules. The layout of the +%%% bibliography is adapted to conventions is historical +%%% linguistics. As of version 2.3 books may have both +%%% an author and an editor. +%%% +%%% More information in dutch in the file. ", +%%% docstring = "The checksum field above contains a CRC-16 +%%% checksum as the first value, followed by the +%%% equivalent of the standard UNIX wc (word +%%% count) utility output of lines, words, and +%%% characters. This is produced by Robert +%%% Solovay's checksum utility.", +%%% } +%%% ==================================================================== + FUNCTION {hello} +{ "BibTeX bibliography style `Nederlands' " top$ + "version <2.5> dated <1-6-93> (WS)" top$ +} +% (C) Werenfried Spit 04-10-90 +% +% Departament de F{\'\i}sica Te\`orica +% Universitat de Val\`encia +% c/ dr.Moliner, 50 +% 46100 Burjassot +% Val\`encia +% Espanya +% +% spit@vm.ci.uv.es +% +% +% Met gebruikmaking van veel werk van Piet v Oostrum en Oren Patashnik +% Met dank aan Paul Wackers en Peter Williams. +% Voor BibTeX 0.99a en LaTeX 2.09 +% +% +% In deze bibliografiestijl wordt ondersteuning gegeven om in de +% tekst citaties met de auteursnaam en het jaartal te laten verschijnen +% bv zie (Van Dale, 1982). Naar Nederlandse gewoonte gebeurt het +% sorteren op achternaam, hoewel het tussenvoegsel eerder geschreven +% wordt. (Van Dale staat dus onder de D.) De ietwat ingewikkelde regel +% uit de nederlandse grammatica voor het gebruik van hoofdletters in +% tussenvoegsels van namen wordt toegepast. (Zie hiervoor het Groene +% Boekje of de ANS, of natuurlijk Van Dale, 1982). +% +% In tegenstelling tot de standaard bibstijlen laat deze stijl toe dat +% een boek zowel een auteur als een redacteur heeft. In zulke gevallen +% wordt op redacteur gesorteerd. Er komt dan bv onder de H in de bibliografie +% W. Shakespeare, 1991. {\em Macbeth}, bezorgd door W. Hogan. .... +% en in de tekst zal `Hogan (1991)' voorkomen. +% +% Om deze bibliografiestijl te gebruiken moet de LaTeXstijl harvard.sty +% worden gebruikt. Deze definieert \harvarditem en \citeasnoun en +% herdefinieert \cite. Zie verder de bijbehorende documentatie +% +% Van deze stijl is ook versie 1.11 nog beschikbaar: deze werkt met +% citeauthoryear.sty ipv harvard.sty. +% +% +% +% wijzigingen: +% 02-11-93 fout in lidwoordafbreking verbeterd (dank aan Frank Poppe) +% 01-06-93 kruisreferenties veranderd +% 15-12-92 vermelding jaartal bij tijdschriftartikelen verdubbeld +% 14-12-92 vermelding jaartal bij tijdschriftartikelen verplaatst +% enkele niet gebruikte routines verwijderd +% 22-10-92 mogelijkheid om bij boeken zowel een `author' als een `editor' +% te vermelden toegevoegd +% vermelding uitgeversadres (`address') veranderd +% +% 18-05-92 foutje in de sorteerroutine verbeterd (dank aan Paul Wackers) +% 22-04-92 foutje in de behandeling van seriewerken verbeterd +% behandeling van het `editor'-veld vernederlandst +% (dank aan Ton vd Woude) +% 26-03-92 verschillende foutmeldingen verwijderd +% 20-03-92 mogelijk voorkomen van te lange outputregels voorkomen +% 17-03-92 verbetering van de verwerking van entries zonder year-veld +% 16-03-92 behandeling van labels veranderd om te lange strings te voorkomen +% jaartal voor alle soorten entries direct na de auteur geplaatst +% 12-03-92 label aan jaartal toegevoegd +% aanpassingen tbv Harvardstijlen +% 14-11-91 regels langer dan 80 tekens verwijderd (ivm met IBMse nukken) +% 27-05-91 karaktertabel toegevoegd +% 14-05-91 behandeling van tussenvoegsels in namen verbeterd +% +%% Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~ +%% +% +% Citation format: [author-last-name, year] +% [author-last-name \& author-last-name, year] +% [author-last-name {\em et~al.}, year] +% +% Reference list ordering: alphabetical by author or whatever passes +% for author in the absence of one. + + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + font + } + { title.used } + { label abbr.label full.label extra.label sort.label list.label year.string } + +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 {One.cap} %(WS) 14-05-91 capitalizes first letter of string + % leaves the rest the same +{ duplicate$ + #1 #1 substring$ "\uppercase{" swap$ * "}" * swap$ + #2 #200 substring$ * +} + +FUNCTION {output.bibitem} % (WS 12-03-92) \bibitem replaced by +{ newline$ % \harvarditem; + "\harvarditem[" write$ % (WS 22 10 92) label doubly written + label write$ % to prevent too long strings + "]%" write$ newline$ % (WS 20 03 92) newlines inserted + "{" write$ + label write$ + "}%" write$ newline$ + "{" write$ + year.string write$ + "}{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + + nameptr #1 > % in de referentie wordt de volledige naam + { namesleft #1 > % afgedrukt: "J.H. van Dale" (WS) + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " {\em ~et~al.}" * } + { " en " * t * } % hier wordt een tussenvoegsel + if$ % tussen auteursnamen gemaakt (WS) + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + font empty$ + { "{" swap$ * "}" * } + { "{" font * " " * swap$ * "}" * } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + + +% Een editor heet in het Nedelands redacteur, maar het is gebruikelijk +% dit aan te geven met ``redactie''. (230492). + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + ", redactie" * + } + if$ +} + +% Sommige boeken hebben behalve een auteur ook een redacteur; m.n. +% wanneer de tekst van een ouder werk opnieuw wordt uitgegeven. Voor +% dit soort gevallen is format.editortoo: +% +FUNCTION {format.editorstoo} +{ editor empty$ + { "" } + { " bezorgd door " editor format.names * + } + if$ +} + + + +FUNCTION {format.title} +{ title empty$ + { "" } + + { title } + + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + { year.string } % (WS 16 03 92) year.string ipv year extra.label * + { month " " * year.string * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} % in het Nederlands (WS) +{ volume empty$ + { "" } + { series empty$ + { " deel" } % zonder komma (WS;220492) + { " " series emphasize * ", deel" * } + if$ + volume tie.or.space.connect + } + if$ +} + +FUNCTION {format.number.series} % in het Nederlands (WS) +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { "there's a number but no series in " cite$ * warning$ } + { series number tie.or.space.connect } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} % in het Nederlands (WS) +{ edition empty$ + { "" } + { edition "1" = + { "Eerste" } + { edition "2" = + { "Tweede" } + { edition "3" = + { "Derde" } + { edition "$^{\rm e}$ " * } + if$ + } + if$ + } + if$ + output.state mid.sentence = + { "l" change.case$ " druk" * } + { "t" change.case$ " druk" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "p." pages n.dashify tie.or.space.connect } + { "p." pages tie.or.space.connect } + if$ + } + if$ +} + + +FUNCTION {format.vol.date.pages} % (14-12-1992) was: format.vol.pages +{ volume empty$ + { "empty volume in " cite$ * warning$ " " } + { volume } + if$ + number empty$ + 'skip$ + { "-" * number * } + if$ + year empty$ + { "empty year in " cite$ * warning$ " " } +%% { " (" * format.date * ")" * } % (15-12-1992) jaartal zonder + { " (" * year * ")" * } % volgletter + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.vol.pages} +{ volume empty$ + { "empty volume in " cite$ * warning$ " " } + { volume } + if$ + number empty$ + 'skip$ + { "-" * number * } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + + + + +FUNCTION {format.chapter.pages} % in het Nederlands (WS) +{ chapter empty$ + 'format.pages + { type empty$ + { output.state mid.sentence = + { "hoofdstuk" } + { "Hoofdstuk" } + if$ + } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} % in het Nederlands (WS) +{ booktitle empty$ % + { "" } + { editor empty$ + { output.state mid.sentence = + { "in " booktitle emphasize * } + { "In " booktitle emphasize * } + if$ } + { output.state mid.sentence = + { "in " booktitle emphasize * ", " * format.editors * } + { "In " booktitle emphasize * ", " * format.editors * } + if$ } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + + key empty$ not and + + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.preprint.number} +{ type empty$ + { "Preprint" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ One.cap + editor num.names$ duplicate$ + #2 > + { pop$ "{\em ~et~al.}" * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " {\em ~et~al.}" * } + { " en " * editor #2 "{vv~}{ll}" format.name$ One.cap * } + if$ + } + if$ + } + if$ +} + + +% v2.5 (1-6-93) crossreferencing changed: now uses \citeasnoun in case +% there is an editor (which is supposed to be the author/editor +% of the crossreferenced entry) +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + " \cite{" * crossref * "}" * + } + { " \citeasnoun{" * crossref * "}" * } + if$ +} + +FUNCTION {institution.or.organization.output} +{institution empty$ + {organization empty$ + { "Both organization and institution are missing in " cite$ * warning$ } + { organization output } + if$ + } + {institution output} +if$ +} + +% v2.5 (1-6-93) crossreferencing changed: uses \citeasnoun when possible +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * + } + { "In \citeasnoun{" crossref * "}" * } + if$ + +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.date "year" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.date.pages output % (14-12-1992) was: format.vol.pages + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull +% crossref missing$ +% { "author and editor" editor either.or.check } +% 'skip$ +% if$ + } + if$ + format.date "year" output.check + new.block + format.btitle "title" output.check + author empty$ + { skip$ } + { editor empty$ + 'skip$ + { format.editorstoo "editor" output.check } + if$ + } + if$ + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + address output + publisher "publisher" output.check + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.date output % no check on year (WS 26-03-92) + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + new.block + note output + fin.entry +} + +FUNCTION {inbook} % produceert zowel hoofdstuk- +{ output.bibitem % als boektitel (WS) + author empty$ % zie ook format.in.ed.booktitle + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + format.in.ed.booktitle output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.date "year" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.date "year" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + } + { address output.nonnull + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + format.date output % no check on year (WS 26-03-92) + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} % doctoraalscriptie (WS) +{ output.bibitem + format.authors "author" output.check + format.date "year" output.check + new.block + format.btitle "title" output.check + new.block + "Doctoraalscriptie" format.thesis.type output.nonnull + school "school" output.check + address output + number empty$ + { skip$ } + { " (Nr. " number * ")" * output } + if$ + new.block + note output + fin.entry +} + + +FUNCTION {phdthesis} % proefschrift (WS) +{ output.bibitem + format.authors "author" output.check + format.date "year" output.check + new.block + format.btitle "title" output.check + new.block + "Dissertatie" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {preprint} +{ output.bibitem + format.authors "author" output.check + format.date "year" output.check + new.block + format.title "title" output.check + new.block + format.preprint.number output.nonnull + institution.or.organization.output + publisher output + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.date "year" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.date output % no check on year (WS 26-03-92) + new.block + format.title "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.date output % no check on year (WS 26-03-92) + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {default.type} { misc } + +% +MACRO {tbp} {"verschijnt"} + +% De namen van de maanden in het Nederlands +% +MACRO {jan} {"januari"} +MACRO {feb} {"februari"} +MACRO {mar} {"maart"} +MACRO {apr} {"april"} +MACRO {may} {"mei"} +MACRO {jun} {"juni"} +MACRO {jul} {"juli"} +MACRO {aug} {"augustus"} +MACRO {sep} {"september"} +MACRO {oct} {"oktober"} +MACRO {nov} {"november"} +MACRO {dec} {"december"} + +% De Nederlanse universiteiten +% +MACRO {KUN} {"Katholieke Universiteit Nijmegen"} +MACRO {KUB} {"Katholieke Universiteit Brabant"} +MACRO {LUW} {"Landbouwuniversiteit Wageningen"} +MACRO {RL} {"Rijksuniversiteit Limburg"} +MACRO {RUG} {"Rijksuniversiteit te Groningen"} +MACRO {RUL} {"Rijksuniversiteit te Leiden"} +MACRO {RUU} {"Rijksuniversiteit te Utrecht"} +MACRO {TUD} {"Technische Universiteit Delft"} +MACRO {TUE} {"Technische Universiteit Eindhoven"} +MACRO {TUT} {"Universiteit Twente"} +MACRO {EUR} {"Erasmusuniversiteit Rotterdam"} +MACRO {UvA} {"Universiteit van Amsterdam"} +MACRO {VU} {"Vrije Universiteit"} + + + +% Een aantal natuurkundetijdschriften +% +MACRO {AcP} {"Acta Physica"} +MACRO {AcPA} {"Acta Physica Austriaca"} +MACRO {AcPP} {"Acta Physica Polonica"} +MACRO {AdP} {"Advances in Physics"} +MACRO {AdNP} {"Advances in Nuclear Physics"} +MACRO {AmJP} {"American Journal of Physics"} +MACRO {AnPDu} {"Annalen der Physik (Leipzig)"} +MACRO {AnPFr} {"Annales de Physique (Paris)"} +MACRO {AnPNY} {"Annals of Physics (NY)"} +MACRO {ARevNS} {"Annual Review of Nuclear Science"} +MACRO {ADNDT} {"Atomic Data and Nuclear Data Tables"} +MACRO {AusJP} {"Australian Journal of Physics"} +MACRO {CanJP} {"Canadian Journal Physics"} +MACRO {CPC} {"Computer Physics Communications"} +MACRO {EJP} {"European Journal of Physics"} +MACRO {EPL} {"Europhysics Letters"} +MACRO {FBS} {"Few Body Systems"} +MACRO {FBSSup} {"Few Body Systems Supplement"} +MACRO {FortP} {"Fortschritte der Physik"} +MACRO {HePA} {"Helvetica Physica Acta"} +MACRO {IEEE} {"IEEE Transactions"} +MACRO {IJMP} {"International Journal of Modern Physics"} +MACRO {JETP} {"JETP"} +MACRO {JETPL} {"JETP Letters"} +MACRO {JaFi} {"{\cyr {\Ja}derna\ja\ Fizika}"} +MACRO {JMP} {"Journal of Mathematical Physics"} +MACRO {JPFr} {"Journal de Physique (Paris)"} +MACRO {JP} {"Journal of Physics"} +MACRO {JPSJ} {"Journal of the Physical Society of Japan"} +MACRO {JPSJSup}{"Journal of the Physical Society of Japan Supplement"} +MACRO {MPL} {"Modern Physics Letters"} +MACRO {NCim} {"Il Nuovo Cimento"} +MACRO {NDS} {"Nuclear Data Sheets"} +MACRO {NP} {"Nuclear Physics"} +MACRO {NPSup} {"Nuclear Physics Supplements"} +MACRO {NTvN} {"Nederlands Tijdschrift voor Natuurkunde"} +MACRO {Phy} {"Physica"} +MACRO {PL} {"Physics Letters"} +MACRO {PRSLon} {"Proceedings of the Royal Society of London"} +MACRO {PR} {"Physical Review"} +MACRO {PRL} {"Physical Review Letters"} +MACRO {PRep} {"Physics Reports"} +MACRO {PScr} {"Physica Scripta"} +MACRO {PToday} {"Physics Today"} +MACRO {PTP} {"Progress of Theoretical Physics"} +MACRO {RMP} {"Reviews of Modern Physics"} +MACRO {RPP} {"Reports of Progress in Physics"} +MACRO {ScAm} {"Scientific American"} +MACRO {SSin} {"Scienta Sinica"} +MACRO {SovJNP} {"Soviet Journal of Nuclear Physics"} +MACRO {SovJPN} {"Soviet Journal of Particles and Nuclei"} +MACRO {SovPDo} {"Soviet Physics Doklady"} +MACRO {SovPUs} {"Soviet Physics Uspekhi"} +MACRO {SPAW} {"Sitzungsberichte der Preussische Akademie der Wissenschaften"} +MACRO {STS} {"Bulletin of Science, Technology and Social Affairs"} +MACRO {ZfN} {"Zeitschrift f{\H{u}}r Naturforschung"} +MACRO {ZfP} {"Zeitschrift f{\H{u}}r Physik"} + + + +READ + +EXECUTE {hello} + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { numberlen numberzero} + +FUNCTION {numsortify} +{ purify$ + "l" change.case$ + 's := + #1 'numberlen := + { s numberlen #1 substring$ "1" = + s numberlen #1 substring$ "2" = + s numberlen #1 substring$ "3" = + s numberlen #1 substring$ "4" = + s numberlen #1 substring$ "5" = + s numberlen #1 substring$ "6" = + s numberlen #1 substring$ "7" = + s numberlen #1 substring$ "8" = + s numberlen #1 substring$ "9" = + s numberlen #1 substring$ "0" = + or or or or or or or or or } + { numberlen #1 + 'numberlen := } + while$ + #6 numberlen - 'numberzero := + "000000" #1 numberzero substring$ + s * +} +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + + +% this function is provided twice (v2.3 22-10-92): once for the full label +% once for the abbreviated label +% the abbreviated version is the version from v2.1 +% +FUNCTION {format.lab.names.abbr} +{ 's := + s num.names$ 'numnames := + + numnames #1 = % maak het citatielabel dat + { s #1 "{vv~}{ll}" format.name$ One.cap} % wordt afgedrukt + { numnames #2 = % b.v. "van Dale" (WS) + {s #1 "{vv~}{ll} " format.name$ One.cap + s #2 "{ll}" format.name$ "others" = + { "{\em~et~al.}" * } + { " en " * s #2 "{vv~}{ll}" format.name$ One.cap * } + if$ + } + { s #1 "{vv~}{ll}" format.name$ One.cap "{\em~et~al.}" *} + if$ + } + if$ + +} + +FUNCTION {format.lab.names.full} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } % maak het citatielabel dat + { s nameptr "{vv~}{ll}" format.name$ One.cap 't := % wordt afgedrukt + nameptr > #1 % b.v. "van Dale" (WS) + { namesleft #1 > + { ", " * t * } + { s "others" = + { "{\em~et~al.}" * } + { " en " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + t +} + + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key } + if$ + } + { author format.lab.names.abbr } + if$ +} + + +%% (26-120-92): we proberen eerst de editor, dan de auteur +FUNCTION {author.editor.key.label} +{ editor empty$ + { author empty$ + { key empty$ + + { cite$ #1 #3 substring$ } + + { key } + if$ + } + { author format.lab.names.abbr } + if$ + } + { editor format.lab.names.abbr } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + + { cite$ #1 #3 substring$ } + + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key } + if$ + } + { author format.lab.names.abbr } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + + { cite$ #1 #3 substring$ } + + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key } + if$ + } + { editor format.lab.names.abbr } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year empty$ + { } + { year * extra.label * } + if$ + 'sort.label := + 'label := % maak het af te drukken citeerlabel label + % en het sorteerlabel sort.label (WS 16 03 92) +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ % het sorteerlabel begrijpt Nederlandse namen + % b.v "Dale van JH" (WS) + s nameptr "{ll{ }}{vv{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "{\em~et~al}" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "De " #3 % titels worden gesorteerd + "Een " #4 % op het lidwoord na (WS) + "A " #2 % verbeterd (2-11-93) + "An " #3 + "The " #4 t chop.word + chop.word + 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$ +} + + +%% (26-10-92: we proberen eerst op editor te sorteren, +%% als dat niet kan op author +FUNCTION {author.editor.sort} +{ editor empty$ + { author empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label % maak het label dat wordt afgedrukt + " " % + type$ "book" = % maak nu het sorteerlabel + type$ "inbook" = % (WS) + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " * + % this fills up the author-string with tabs for proper + % alphabetization: `Dale and Dale' should come after `Dale' + year field.or.null numsortify % year.string bestaat hier nog niet + * + type$ "article" = + { " " * + journal field.or.null sortify * + volume field.or.null numsortify * + pages field.or.null numsortify * } + { skip$ } + if$ + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} % (WS 16 03 92) sort.label instead of label +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + + +FUNCTION {reverse.pass} % (WS 16 03 92) year.string used +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + year empty$ + { "n.d." extra.label * 'year.string := } + { year extra.label * 'year.string := } + if$ + extra.label 'next.extra := +} + + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {begin.bib} + +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + + 'skip$ + { "\harvardpreambledefs{%" write$ newline$ + preamble$ write$ "}" write$ newline$ + "\harvardpreambletext{%" write$ newline$ + preamble$ write$ "}" write$ newline$ } + if$ + + "\begin{thebibliography}{}" write$ newline$ + +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/hc/hc-de.bst b/Master/texmf-dist/bibtex/bst/hc/hc-de.bst new file mode 100644 index 00000000000..53d826e93db --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/hc/hc-de.bst @@ -0,0 +1,1507 @@ +%% +%% This is file `hc-de.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `head,exlang,ay,nat,vonx,nm-revv1,aunm-semi,dt-beg,yr-par,aymth,yrp-col,note-yr,atit-u,trtit-b,pre-pub,edby,edbyx,in-col,german,pp,ed,abr,ord,and-xcom,nfss,{}') +%% german.mbs (with options: `exlang,ay,nat,vonx,nm-revv1,aunm-semi,dt-beg,yr-par,aymth,yrp-col,note-yr,atit-u,trtit-b,pre-pub,edby,edbyx,in-col,german,pp,ed,abr,ord,and-xcom,nfss,{}') +%% merlin.mbs (with options: `tail,exlang,ay,nat,vonx,nm-revv1,aunm-semi,dt-beg,yr-par,aymth,yrp-col,note-yr,atit-u,trtit-b,pre-pub,edby,edbyx,in-col,german,pp,ed,abr,ord,and-xcom,nfss,{}') +%% ---------------------------------------- +%% *** Bibliographie-Standard von Christian Siefkes *** +%% + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{merlin.mbs}[1998/02/25 3.85a (PWD)] + % + % NOTICE: + % This file may be used for non-profit purposes. + % It may not be distributed in exchange for money, + % other than distribution costs. + % + % The author provides it `as is' and does not guarantee it in any way. + % + % Copyright (C) 1994-98 Patrick W. Daly + %------------------------------------------------------------------- + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in + % GERMAN + % 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 + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + 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} +{ + ":" * + add.blank +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +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 {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. + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{german.mbs}[1995/11/02 1.5 (PWD)] + % Copyright (C) 1994, 1995 Patrick W. Daly + %------------------------------------------------------------------- + + % The language selected here is GERMAN +FUNCTION {bbl.and} +{ "und"} + +FUNCTION {bbl.editors} +{ "Hg." } + +FUNCTION {bbl.editor} +{ "Hg." } + +FUNCTION {bbl.edby} +{ "herausgegeben von" } + +FUNCTION {bbl.edition} +{ "Aufl." } + +FUNCTION {bbl.volume} +{ "Bd." } + +FUNCTION {bbl.of} +{ "von" } + +FUNCTION {bbl.number} +{ "Nr." } + +FUNCTION {bbl.nr} +{ "Nr." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "S." } + +FUNCTION {bbl.page} +{ "S." } + +FUNCTION {bbl.chapter} +{ "Kap." } + +FUNCTION {bbl.techrep} +{ "{Techn.\ Ber.}" } + +FUNCTION {bbl.mthesis} +{ "Diplomarbeit" } + +FUNCTION {bbl.phdthesis} +{ "Dissertation" } + +FUNCTION {bbl.first} +{ "1." } + +FUNCTION {bbl.second} +{ "2." } + +FUNCTION {bbl.third} +{ "3." } + +FUNCTION {bbl.fourth} +{ "4." } + +FUNCTION {bbl.fifth} +{ "5." } + +FUNCTION {bbl.th} +{ "." } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Febr."} + +MACRO {mar} {"M\^^b{a}rz"} + +MACRO {apr} {"Apr."} + +MACRO {may} {"Mai"} + +MACRO {jun} {"Juni"} + +MACRO {jul} {"Juli"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Okt."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dez."} + + % End of language definition file + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ } + { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ } + if$ + 't := + nameptr #1 > + { + namesleft #1 > + { "; " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " et~al." * + } + { bbl.and space.word * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {format.names.ed} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff~}{vv~}{ll}{, jj}" + format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { "; " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " et~al." * + } + { bbl.and space.word * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", " * bbl.editors * } + { ", " * bbl.editor * } + if$ + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + } + 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$ * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title + } + if$ +} + +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " et~al." * + } + { 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 {n.dashify} +{ + '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 capitalize + ":" * + " " * } + +FUNCTION {format.date} +{ year duplicate$ empty$ + { "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" } + 'skip$ + if$ + month empty$ + 'skip$ + { month + " " * swap$ * + } + if$ + extra.label * + before.all 'output.state := + " (" swap$ * ")" * +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s bbl.th * 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { bbl.pages pages n.dashify tie.or.space.connect } + { bbl.page pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.journal.pages} +{ pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { + ":" * + pages n.dashify * + } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { + "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + format.journal.pages +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in booktitle emphasize * + ", " * + editor num.names$ #1 > + { bbl.editors } + { bbl.editor } + if$ + * " " * + format.in.editors * + } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { bbl.volume capitalize + volume tie.or.space.connect + bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.publisher} +{ publisher empty$ + { "empty publisher in " cite$ * warning$ } + 'skip$ + if$ + "" + address empty$ publisher empty$ and + 'skip$ + { + publisher empty$ + { address empty$ + 'skip$ + { address * } + if$ + } + { publisher * + address empty$ + 'skip$ + { ", " * address * } + if$ + } + if$ + } + if$ + output +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { journal + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + 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.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + format.publisher + } + { + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + format.note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + howpublished output + address output + new.block + 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.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.publisher + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + } + { + format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.publisher + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + format.note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + new.sentence + publisher empty$ + { organization output + address output + } + { organization output + format.publisher + } + if$ + format.bvolume output + format.number.series output + format.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + format.note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + new.block + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + new.block + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title output + new.block + howpublished output + new.block + format.note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + new.block + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check + address output + new.block + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output + new.sentence + organization output + publisher output + new.block + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + 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 := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " et~al." * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " et~al." * + } + { 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$ + { pop$ "????" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll{ }}{ ff{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + 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$ + "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" + 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 `hc-de.bst'. diff --git a/Master/texmf-dist/bibtex/bst/hc/hc-en.bst b/Master/texmf-dist/bibtex/bst/hc/hc-en.bst new file mode 100644 index 00000000000..434b69a0195 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/hc/hc-en.bst @@ -0,0 +1,1539 @@ +%% +%% This is file `hc-en.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `,ay,nat,nm-revv1,aunm-semi,dt-beg,yr-par,aymth,yrp-col,note-yr,atit-u,trtit-b,pre-pub,edby,edbyx,in-col,pp,ed,abr,mth-bare,ord,nfss') +%% ---------------------------------------- +%% *** Christian Siefkes standard bibliography *** +%% + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{merlin.mbs}[1998/02/25 3.85a (PWD)] + % + % NOTICE: + % This file may be used for non-profit purposes. + % It may not be distributed in exchange for money, + % other than distribution costs. + % + % The author provides it `as is' and does not guarantee it in any way. + % + % Copyright (C) 1994-98 Patrick W. Daly + %------------------------------------------------------------------- + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % 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 + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + 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} +{ + ":" * + add.blank +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +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 {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. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edn." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ } + { s nameptr "{vv~}{ll}{, ff}{, jj}" format.name$ } + if$ + 't := + nameptr #1 > + { + namesleft #1 > + { "; " * t * } + { + numnames #2 > + { ";" * } + 'skip$ + if$ + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " et~al." * + } + { bbl.and space.word * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} +FUNCTION {format.names.ed} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff~}{vv~}{ll}{, jj}" + format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { "; " * t * } + { + numnames #2 > + { ";" * } + 'skip$ + if$ + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " et~al." * + } + { bbl.and space.word * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", " * bbl.editors * } + { ", " * bbl.editor * } + if$ + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + } + 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$ * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title + } + if$ +} + +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " et~al." * + } + { 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 {n.dashify} +{ + '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 capitalize + ":" * + " " * } + +FUNCTION {format.date} +{ year duplicate$ empty$ + { "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" } + 'skip$ + if$ + month empty$ + 'skip$ + { month + " " * swap$ * + } + if$ + purify$ + extra.label * + before.all 'output.state := + " (" swap$ * ")" * +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s eng.ord 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { bbl.pages pages n.dashify tie.or.space.connect } + { bbl.page pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.journal.pages} +{ pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { + ":" * + pages n.dashify * + } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { + "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + format.journal.pages +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in booktitle emphasize * + ", " * + editor num.names$ #1 > + { bbl.editors } + { bbl.editor } + if$ + * " " * + format.in.editors * + } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { bbl.volume capitalize + volume tie.or.space.connect + bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.publisher} +{ publisher empty$ + { "empty publisher in " cite$ * warning$ } + 'skip$ + if$ + "" + address empty$ publisher empty$ and + 'skip$ + { + publisher empty$ + { address empty$ + 'skip$ + { address * } + if$ + } + { publisher * + address empty$ + 'skip$ + { ", " * address * } + if$ + } + if$ + } + if$ + output +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { journal + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + 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.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + format.publisher + } + { + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + format.note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + howpublished output + address output + new.block + 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.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.publisher + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + } + { + format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.publisher + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + format.note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + new.sentence + publisher empty$ + { organization output + address output + } + { organization output + format.publisher + } + if$ + format.bvolume output + format.number.series output + format.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + format.note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + new.block + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + new.block + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title output + new.block + howpublished output + new.block + format.note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + new.block + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check + address output + new.block + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output + new.sentence + organization output + publisher output + new.block + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + new.block + 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 := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ + " et~al." * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " et~al." * + } + { 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$ + { pop$ "????" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + 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$ + "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" + 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 `hc-en.bst'. diff --git a/Master/texmf-dist/bibtex/bst/ieeepes/ieeepes.bst b/Master/texmf-dist/bibtex/bst/ieeepes/ieeepes.bst new file mode 100644 index 00000000000..ae435fa508a --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/ieeepes/ieeepes.bst @@ -0,0 +1,1014 @@ +%%%%% ieeepes.bst +% +% Bibliography Style file for articles according to IEEE instructions +% balemi@aut.ee.ethz.ch <22-JUN-93> +% modified from unsrt.bib. Contributions by Richard H. Roy +% +% Modified by Volker Kuhlmann , 14 Nov 95 +% Spelled out month names. Added some IEEE macros. +% + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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 = +% next line commented out by rhr and changed to write comma +% { add.period$ write$ + { ", " * 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +% 5/24/89 rhr +% modified fin.entry function - prints note field after body of entry +%FUNCTION {fin.entry} +%{ add.period$ +% note empty$ +% 'write$ +% { "\par\bgroup\parindent=0em " * annote * "\par\egroup " * write$ +% } +% if$ +% 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {boldface} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +%FUNCTION {boldface} +%{ 's swap$ := +% s "" = +% { "" } +% { "{\bf " s * "}" * } +% if$ +%} +% +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", Eds." * } + { ", Ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { "``" title "t" change.case$ * } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +% FUNCTION {format.date} +% { year empty$ +% 'year +% { " " year * } +% if$ +% } + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "vol." volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pp." pages n.dashify tie.or.space.connect } + { "p." pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ +volume empty$ + {"" } + {"vol. " volume *} +if$ +number empty$ + 'skip$ + {", no. " number * *} +if$ +pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", pp. " * pages n.dashify * } + if$ + } +if$ +} + +%FUNCTION {format.vol.num.pages} +%%boldface added 3/17/87 rhr +%{ volume field.or.null boldface +% number empty$ +% 'skip$ +% { "(" number * ")" * * +% volume empty$ +% { "there's a number but no volume in " cite$ * warning$ } +% 'skip$ +% if$ +% } +% if$ +% pages empty$ +% 'skip$ +% { duplicate$ empty$ +% { pop$ format.pages } +% { ":" * pages n.dashify * } +% if$ +% } +% if$ +%} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "in " booktitle emphasize * } + { "in " booktitle emphasize * ", " * format.editors * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. {R}ep." } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "vol." volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "''" * "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "''" * "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "''" * "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "''" * "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + address empty$ + { organization publisher new.sentence.checkb + organization output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + organization output + } + if$ + format.bvolume output + format.number.series output + format.pages output + publisher output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "''" * "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title "''" * output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "''" * "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "''" * "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +%% VK: +MACRO {ieeepes} {"IEEE Power Engineering Society"} +MACRO {ieeetec} {"IEEE Transactions on Energy Conversion"} +MACRO {ieeetpd} {"IEEE Transactions on Power Delivery"} +MACRO {ieeetps} {"IEEE Transactions on Power Systems"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + +%%%%% EOF ieeepes.bst diff --git a/Master/texmf-dist/bibtex/bst/ifacmtg/ifac.bst b/Master/texmf-dist/bibtex/bst/ifacmtg/ifac.bst new file mode 100644 index 00000000000..861adda7490 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/ifacmtg/ifac.bst @@ -0,0 +1,1294 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%% End of IFAC.bst %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% =========================================================================== +%%% @LaTeX-style-file{ +%%% author = "Silvano Balemi", +%%% version = "1.4", +%%% date = "12-MAR-1993", +%%% filename = "IFAC.bst", +%%% address = "Automatic Control Laboratory +%%% Swiss Federal Institute of Technology (ETH) +%%% 8092 Zurich, Switzerland", +%%% telephone = "+41 (1) 632.55.34", +%%% FAX = "+41 (1) 262.43.62", +%%% email = "balemi@aut.ee.ethz.ch (Internet)", +%%% keywords = "BibTeX, IFAC proceedings, Camera ready, +%%% publisher style", +%%% supported = "yes", +%%% docstring = "BibTeX style file for reference according to +%%% the instruction of the International Federation +%%% of Automatic Control (IFAC) (modified from +%%% alpha.bst) +%%% To be used with the style files +%%% IFACarticle.sty, automatica.sty or the substyle file +%%% harvard.sty . +%%% It is based on modified version of +%%% agsm.bst by Peter Williams +%%% peterw@archsci.arch.su.oz.au", +%%% } +%%% =========================================================================== + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + { field.used } + { extra.label sort.label list.year } + +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 f } + +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.yearnull} +{ '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 {item.check} +{ 't := + empty$ + { "empty " t * " in " * cite$ * warning$ } + { skip$ } + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {embolden} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {quote} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } +% { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + { ", " * t * } + { numnames #2 > + { "" * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + + +FUNCTION {format.editor.names} +{ 's := + 'f := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr f format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "(" } + { "{vv~}{ll}{, jj}{, ff}" editor format.editor.names + editor num.names$ #1 > + { ", Eds.)" * } + { ", Ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.editors.reverse} +{ editor empty$ + { "(" } + { "{ff~}{vv~}{ll}{, jj}" editor format.editor.names + editor num.names$ #1 > + { ", Eds.)" * } + { ", Ed.)" * } + if$ + } + if$ +} + + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Vol." volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " In: " * series quote * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " ed." * } + { edition "t" change.case$ " ed." * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume embolden field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ",~" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "Chap." } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In: " booktitle quote * } + { "In: " booktitle quote * " (" * format.editors.reverse * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in {\em " journal * "\/} \cite{" * crossref * "}" *} + if$ + } + { "In: \citeasnoun{" crossref * "}" * } + if$ + +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "Vol." volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/} \cite{" * crossref * "}" *} + if$ + } + { " \citeasnoun{" * crossref * "}" * } + if$ + } + { " \citeasnoun{" * crossref * "}" * } + if$ +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "in {\em " booktitle * "\/}" * " \cite{" * crossref * "}" *} + if$ + } + { "In: \citeasnoun{" crossref * "}" * } + if$ + } + { "In: \citeasnoun{" crossref * "}" * } + if$ + +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.lab.names.abbr} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #2 > + { s #1 "{vv~}{ll}" format.name$ " {\em et al.}" * } + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { s #1 "{vv~}{ll}" format.name$ " {\em et al.}" * } + { s #1 "{vv~}{ll}" format.name$ " and " * + s #2 "{vv~}{ll}" format.name$ * + } + if$ + } + if$ + } + { s #1 "{vv~}{ll}" format.name$ } + if$ +} + +FUNCTION {format.lab.names.full} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +INTEGERS { author.field editor.field organization.field title.field key.field } + +FUNCTION {init.field.constants} +{ #0 'author.field := + #1 'editor.field := + #2 'organization.field := + #3 'title.field := + #4 'key.field := +} + +FUNCTION {make.list.label} +{ author.field field.used = + { format.authors } + { editor.field field.used = + { format.editors } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {make.full.label} +{ author.field field.used = + { author format.lab.names.full } + { editor.field field.used = + { editor format.lab.names.full } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {make.abbr.label} +{ author.field field.used = + { author format.lab.names.abbr } + { editor.field field.used = + { editor format.lab.names.abbr } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\harvarditem[" write$ + make.abbr.label write$ + "]{" write$ + make.abbr.label write$ + "}{" write$ + list.year write$ + "}{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {list.label.output} +{ make.list.label " " * write$ +} + +FUNCTION {article} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + crossref missing$ + { journal emphasize "journal" duplicate$ item.check + pages empty$ + { + output + } + { + " " * + format.vol.num.pages * output + } + if$ + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + author empty$ + { editor "author and editor" item.check } + { crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + format.edition output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + howpublished output + address output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + author empty$ + { editor "author and editor" item.check } + { crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + format.chapter.pages "chapter and pages" output.check + new.block + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + format.edition output + } + if$ + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + author "author" item.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.edition output + format.bvolume output + format.chapter.pages output + new.block + format.number.series output + publisher "publisher" output.check + address output + } + { format.chapter.pages output + new.block + format.incoll.inproc.crossref output.nonnull + } + if$ + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + author "author" item.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + address empty$ + { organization output + publisher output + } + { organization output + publisher output + address output.nonnull + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.pages output + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + format.edition output + author empty$ + { organization empty$ + { address output } + 'skip$ + if$ + } + { organization output + address output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + title.field field.used = + { skip$ } + { format.title output } + if$ + howpublished output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + author "author" item.check + title.field field.used = + { skip$ } + { title "title" output.check } + if$ + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { skip$ } + { organization output + } + if$ + publisher output + } + { editor empty$ + 'skip$ + { organization output } + if$ + publisher output + address output.nonnull + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.yearnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +EXECUTE {init.field.constants} + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { title.field 'field.used := } + { key.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { title.field 'field.used := } + { key.field 'field.used := } + if$ + } + { editor.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { title.field 'field.used := } + { organization.field 'field.used := } + if$ + } + { key.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { title.field 'field.used := } + { organization.field 'field.used := } + if$ + } + { key.field 'field.used := } + if$ + } + { editor.field 'field.used := } + if$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + make.abbr.label + title.field field.used = + { sort.format.title } + { sortify } + if$ + year field.or.null purify$ #-1 #4 substring$ sortify + * + 'sort.label := +} + +FUNCTION {first.presort} +{ calc.label + sort.label + title.field field.used = + { skip$ } + { " " + * + make.list.label sortify + * + " " + * + title field.or.null + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {first.presort} + +SORT + +STRINGS { last.sort.label next.extra } + +INTEGERS { last.extra.num } + +FUNCTION {initialize.last.extra.num} +{ #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + year empty$ + { "n.d." extra.label emphasize * 'list.year := } + { year extra.label emphasize * 'list.year := } + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.last.extra.num} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {second.presort} +{ make.list.label + title.field field.used = + { sort.format.title } + { sortify } + if$ + " " + * + list.year field.or.null sortify + * + " " + * + title.field field.used = + { skip$ } + { title field.or.null + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {second.presort} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{xx}" 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 IFAC.bst %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/bibtex/bst/imac/imac.bst b/Master/texmf-dist/bibtex/bst/imac/imac.bst new file mode 100644 index 00000000000..ec7217f1f73 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/imac/imac.bst @@ -0,0 +1,1227 @@ +%% +%% This is file `imac.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `head,exlang,seq-no,nm-rev,ed-rev,nmft-bf,nmand-rm,yr-com,tit-it,atit-u,jttl-rm,vnum-nr,volp-com,jwdpg,jwdvol,btit-rm,edpar,edby,blk-com,in-x,english,pp,abr,ord,and-xcom,em-it,nfss,{}') +%% english.mbs (with options: `exlang,seq-no,nm-rev,ed-rev,nmft-bf,nmand-rm,yr-com,tit-it,atit-u,jttl-rm,vnum-nr,volp-com,jwdpg,jwdvol,btit-rm,edpar,edby,blk-com,in-x,english,pp,abr,ord,and-xcom,em-it,nfss,{}') +%% merlin.mbs (with options: `tail,exlang,seq-no,nm-rev,ed-rev,nmft-bf,nmand-rm,yr-com,tit-it,atit-u,jttl-rm,vnum-nr,volp-com,jwdpg,jwdvol,btit-rm,edpar,edby,blk-com,in-x,english,pp,abr,ord,and-xcom,em-it,nfss,{}') +%% ---------------------------------------- +%% *** Format for IMAC (International Modal Analysis Conference) *** +%% Generated Oct 5, 1997 by Joseph C. Slater +%% jslater@cs.wright.edu +%% + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{merlin.mbs}[1997/06/09 3.83 (PWD)] + % + % NOTICE: + % This file may be used for non-profit purposes. + % It may not be distributed in exchange for money, + % other than distribution costs. + % + % The author provides it `as is' and does not guarantee it in any way. + % + % Copyright (C) 1994-97 Patrick W. Daly + %------------------------------------------------------------------- + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in + % ENGLISH + % This is a numerical citation style, and as such is standard LaTeX. + % It requires no extra package to interface to the main text. + % The form of the \bibitem entries is + % \bibitem{key}... + % Usage of \cite is as follows: + % \cite{key} ==>> [#] + % \cite[chap. 2]{key} ==>> [#, chap. 2] + % where # is a number determined by the ordering in the reference list. + % The order in the reference list is that by which the works were originally + % cited in the text, or that in the database. + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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 {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\textit{" swap$ * "}" * } + if$ +} + +FUNCTION {bolden} +{ duplicate$ empty$ + { pop$ "" } + { "\textbf{" swap$ * "}" * } + if$ +} + +FUNCTION {roman.list} +{ duplicate$ empty$ + { pop$ "" } + { "{\mdseries " swap$ * "}" * } + if$ +} + +FUNCTION {roman.cite} +{ duplicate$ empty$ + { pop$ "" } + { "{\textsuperscript " swap$ * "}" * } + if$ +} + +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. + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{english.mbs}[1995/05/04 1.1 (PWD)] + % Copyright (C) 1994, 1995 Patrick W. Daly + %------------------------------------------------------------------- + + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.editors} +{ "editors" } + +FUNCTION {bbl.editor} +{ "editor" } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edn." } + +FUNCTION {bbl.volume} +{ "Vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "No." } + +FUNCTION {bbl.nr} +{ "No." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + + % End of language definition file + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, jj}{, f.}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " et~al." * } + { bbl.and roman.list space.word * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.names.ed} +{ format.names } +FUNCTION {format.authors} +{ author empty$ + { "" } + { + author format.names bolden + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { + editor format.names bolden + editor num.names$ #1 > + { " (" * bbl.editors * ")" * } + { " (" * bbl.editor * ")" * } + if$ + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + } + 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$ * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title + emphasize + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ '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} +{ "" } + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ + duplicate$ empty$ + 'skip$ + { + before.all 'output.state := + ", " swap$ * + } + if$ +} + +FUNCTION {format.btitle} +{ title +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s eng.ord 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { bbl.pages pages n.dashify tie.or.space.connect } + { bbl.page pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.journal.pages} +{ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * bbl.pages "~" * * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + volume empty$ + 'skip$ + { bbl.volume "~" * swap$ * } + if$ + number empty$ + 'skip$ + { + ", " bbl.nr * number tie.or.space.connect * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + format.journal.pages +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in booktitle emphasize * + ", " * + bbl.edby + * + " " * + format.in.editors * + } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { word.in journal emphasize * } + if$ + } + { word.in key * " " *} + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { bbl.and space.word * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { bbl.volume volume tie.or.space.connect + bbl.of space.word * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series emphasize * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { word.in booktitle emphasize * } + if$ + } + { word.in key * " " *} + if$ + } + { word.in format.crossref.editor * " " *} + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.publisher} +{ publisher empty$ + { "empty publisher in " cite$ * warning$ } + 'skip$ + if$ + "" + address empty$ publisher empty$ and + 'skip$ + { + publisher empty$ + { address empty$ + 'skip$ + { address * } + if$ + } + { publisher * + address empty$ + 'skip$ + { ", " * address * } + if$ + } + if$ + } + if$ + output +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { journal + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + } + { 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 + } + { + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.title "title" output.check + howpublished output + address output + format.date output + format.note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + } + { 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 + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + format.publisher + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + publisher empty$ + { organization output + address output + } + { organization output + format.publisher + } + if$ + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + format.btitle "title" output.check + author empty$ + { organization empty$ + { + address output + } + 'skip$ + if$ + } + { + organization output + address output + } + if$ + format.edition output + format.date output + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + howpublished output + format.date output + format.note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + format.note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * + 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 `imac.bst'. diff --git a/Master/texmf-dist/bibtex/bst/index/xagsm.bst b/Master/texmf-dist/bibtex/bst/index/xagsm.bst new file mode 100644 index 00000000000..1c98abcf200 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/index/xagsm.bst @@ -0,0 +1,1274 @@ +% BibTeX standard bibliography style `agsm' (one of the harvard family) + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1991, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, abbrv.bst, agsm.bst, + % dcu.bst or kluwer.bst. + % This restriction helps ensure that all standard styles are identical. + % The file harvard.tex has the documentation for this style. + +% ACKNOWLEDGEMENT: +% This document is a modified version of alpha.bst to which it owes much of +% its functionality. + +% AUTHOR +% Peter Williams, Key Centre for Design Quality, Sydney University +% e-mail: peterw@archsci.arch.su.oz.au + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + { field.used } + { extra.label sort.label list.year } + +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 f } + +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 {item.check} +{ 't := + empty$ + { "empty " t * " in " * cite$ * warning$ } + { skip$ } + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {embolden} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {quote} +{ duplicate$ empty$ + { pop$ "" } + { "`" swap$ * "'" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + 'f := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr f format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " et~al." * } + { " \& " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +%% begin modification + +FUNCTION {format.name.index.entry} +{ + "\do{" + s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ + duplicate$ purify$ swap$ "@" swap$ * * + "}" * * +} + +FUNCTION {format.author.index.entries} +{ + author empty$ + 'skip$ + { + author 's := + #1 'nameptr := + s num.names$ 'numnames := + "\authorindexentries{" + cite$ * + "}{" * + numnames 'namesleft := + { namesleft #0 > } + { format.name.index.entry * + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + "}" * write$ + newline$ + } + if$ +} + +%% FUNCTION {output.bibitem} +%% { newline$ +%% "\bibitem{" write$ +%% cite$ write$ +%% "}" write$ +%% newline$ +%% format.author.index.entries % modification +%% "" +%% before.all 'output.state := +%% } + +%% end modification + +FUNCTION {format.authors} +{ author empty$ + { "" } + { "{vv~}{ll}{, jj}{, f.}" author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { "{vv~}{ll}{, jj}{, f.}" editor format.names + editor num.names$ #1 > + { ", eds" * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.editors.reverse} +{ editor empty$ + { "" } + { "{f.~}{vv~}{ll}{, jj}" editor format.names + editor num.names$ #1 > + { ", eds" * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Vol." volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " {\em in} " * series quote * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edn" * } + { edition "t" change.case$ " edn" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume embolden field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ",~" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "{\em in} " booktitle quote * } + { "{\em in} " format.editors.reverse * ", " * booktitle quote * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "in {\em " journal * "\/} \cite{" * crossref * "}" *} + if$ + } + { "{\em in} \citeasnoun{" crossref * "}" * } + if$ + +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "Vol." volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/} \cite{" * crossref * "}" *} + if$ + } + { " \citeasnoun{" * crossref * "}" * } + if$ + } + { " \citeasnoun{" * crossref * "}" * } + if$ +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "in {\em " booktitle * "\/}" * " \cite{" * crossref * "}" *} + if$ + } + { "{\em in} \citeasnoun{" crossref * "}" * } + if$ + } + { "{\em in} \citeasnoun{" crossref * "}" * } + if$ + +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.lab.names.abbr} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #2 > + { s #1 "{vv~}{ll}" format.name$ " et al." * } + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { s #1 "{vv~}{ll}" format.name$ " et al." * } + { s #1 "{vv~}{ll}" format.name$ " \& " * + s #2 "{vv~}{ll}" format.name$ * + } + if$ + } + if$ + } + { s #1 "{vv~}{ll}" format.name$ } + if$ +} + +FUNCTION {format.lab.names.full} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " et~al." * } + { " \& " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +INTEGERS { author.field editor.field organization.field title.field key.field } + +FUNCTION {init.field.constants} +{ #0 'author.field := + #1 'editor.field := + #2 'organization.field := + #3 'title.field := + #4 'key.field := +} + +FUNCTION {make.list.label} +{ author.field field.used = + { format.authors } + { editor.field field.used = + { format.editors } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {make.full.label} +{ author.field field.used = + { author format.lab.names.full } + { editor.field field.used = + { editor format.lab.names.full } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {make.abbr.label} +{ author.field field.used = + { author format.lab.names.abbr } + { editor.field field.used = + { editor format.lab.names.abbr } + { organization.field field.used = + { "The " #4 organization chop.word #3 text.prefix$ } + { title.field field.used = + { format.btitle } + { key.field field.used = + { key #3 text.prefix$ } + { "Internal error :001 on " cite$ * " label" * warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\harvarditem[" write$ + make.abbr.label write$ + "]{" write$ + make.full.label write$ + "}{" write$ + list.year write$ + "}{" write$ + cite$ write$ + "}" write$ + newline$ + format.author.index.entries % modification + "" + before.all 'output.state := +} + +FUNCTION {list.label.output} +{ make.list.label " " * write$ +} + +FUNCTION {article} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title quote "title" output.check } + if$ + crossref missing$ + { journal emphasize "journal" duplicate$ item.check + pages empty$ + { + output + } + { + " " * + format.vol.num.pages * output + } + if$ + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.nonnull + author empty$ + { editor "author and editor" item.check } + { crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + format.edition output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.nonnull + title.field field.used = + { skip$ } + { format.title quote "title" output.check } + if$ + howpublished output + address output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.nonnull + author empty$ + { editor "author and editor" item.check } + { crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + format.edition output + } + if$ + format.chapter.pages "chapter and pages" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.nonnull + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + author "author" item.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.edition output + format.bvolume output + format.number.series output + publisher "publisher" output.check + address output + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.chapter.pages output + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.nonnull + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + author "author" item.check + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + address empty$ + { organization output + publisher output + } + { organization output + publisher output + address output.nonnull + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + format.pages output + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.nonnull + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + format.edition output + author empty$ + { organization empty$ + { address output } + 'skip$ + if$ + } + { organization output + address output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.nonnull + title.field field.used = + { skip$ } + { format.title quote output } + if$ + howpublished output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { title "title" output.check } + if$ + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.nonnull + title.field field.used = + { skip$ } + { format.btitle "title" output.check } + if$ + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { skip$ } + { organization output + } + if$ + publisher output + } + { editor empty$ + 'skip$ + { organization output } + if$ + publisher output + address output.nonnull + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + list.label.output + " (" list.year * ")" * output.nonnull + author "author" item.check + title.field field.used = + { skip$ } + { format.title "title" output.check } + if$ + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +EXECUTE {init.field.constants} + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { title.field 'field.used := } + { key.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { title.field 'field.used := } + { key.field 'field.used := } + if$ + } + { editor.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { title.field 'field.used := } + { organization.field 'field.used := } + if$ + } + { key.field 'field.used := } + if$ + } + { author.field 'field.used := } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { title.field 'field.used := } + { organization.field 'field.used := } + if$ + } + { key.field 'field.used := } + if$ + } + { editor.field 'field.used := } + if$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + make.abbr.label + title.field field.used = + { sort.format.title } + { sortify } + if$ + year field.or.null purify$ #-1 #4 substring$ sortify + * + 'sort.label := +} + +FUNCTION {first.presort} +{ calc.label + sort.label + title.field field.used = + { skip$ } + { " " + * + make.list.label sortify + * + " " + * + title field.or.null + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {first.presort} + +SORT + +STRINGS { last.sort.label next.extra } + +INTEGERS { last.extra.num } + +FUNCTION {initialize.last.extra.num} +{ #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + year empty$ + { "n.d." extra.label emphasize * 'list.year := } + { year extra.label emphasize * 'list.year := } + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.last.extra.num} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {second.presort} +{ make.list.label + title.field field.used = + { sort.format.title } + { sortify } + if$ + " " + * + list.year field.or.null sortify + * + " " + * + title.field field.used = + { skip$ } + { title field.or.null + sort.format.title + * + } + if$ + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {second.presort} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{xx}" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/index/xplain.bst b/Master/texmf-dist/bibtex/bst/index/xplain.bst new file mode 100644 index 00000000000..3cd7c4dc2ac --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/index/xplain.bst @@ -0,0 +1,1135 @@ +% BibTeX standard bibliography style `plain' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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$ + "\bibref{" cite$ "}" * * 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +%% begin modification + +FUNCTION {format.name.index.entry} +{ + "\do{" + s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ + duplicate$ purify$ swap$ "@" swap$ * * + "}" * * +} + +FUNCTION {format.author.index.entries} +{ + author empty$ + 'skip$ + { + author 's := + #1 'nameptr := + s num.names$ 'numnames := + "\authorindexentries{" + cite$ * + "}{" * + numnames 'namesleft := + { namesleft #0 > } + { format.name.index.entry * + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + "}" * write$ + newline$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + format.author.index.entries % modification + "" + before.all 'output.state := +} + +%% end modification + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/inlinebib/inlinebib.bst b/Master/texmf-dist/bibtex/bst/inlinebib/inlinebib.bst new file mode 100644 index 00000000000..8178a47a3f9 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/inlinebib/inlinebib.bst @@ -0,0 +1,1125 @@ +% Bibliography style for footnote references. The citation is the +% complete reference the first time, and a shorter reference the +% following times. It uses an optional shorttitle entry in the database +% for the short reference. For use with inlinebib.sty. + +% Changes made are Copyright (C) 1999 Ren Seindal + +% This program can 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 (at your option) any later version. + +% BibTeX standard bibliography style `plain' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + shortauthor + shorttitle + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block + before.note} + +INTEGERS { short.title.max.length } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'before.note := + + #50 'short.title.max.length := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := +% cite$ " >>>" * s * "<<< " * output.state int.to.str$ * warning$ + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { ", " * write$ % add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state before.note = + { write$ + " \note " add.period$ write$ + note missing$ + 'skip$ + { newline$ + "\newblock " write$ + } + if$ + } + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ +% cite$ "x >>>" * s * "<<< " * output.state int.to.str$ * warning$ + 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {output.note} +{ before.note 'output.state := + note missing$ + { "" } + { note } + if$ + output.nonnull +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " et al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", (eds.)" * } + { ", (ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ "``" swap$ * "''" * } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " by " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pp." pages n.dashify tie.or.space.connect } + { "p." pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "in: " booktitle emphasize * } + { "in: " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "in: \cite{" crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "in: " } + { "volume" volume tie.or.space.connect " of: " * + } + "\cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ "in: \cite{" crossref * "}" * +} + +FUNCTION {format.author.short} +{ "" + author empty$ + shortauthor empty$ + editor empty$ + and and +% { "no author or editor for short reference of " cite$ * warning$ } + 'skip$ + { shortauthor empty$ + { author empty$ + 'editor + 'author + if$ + } + { author empty$ + 'shortauthor + { author text.length$ + shortauthor text.length$ + < + 'author + 'shortauthor + if$ + } + if$ + } + if$ + + 's := + s num.names$ 'numnames := + numnames #0 > + { s #1 "{vv~}{ll}" format.name$ * + numnames #1 > + { " et al." * } + { "" * } + if$ + } + { "" * } + if$ + } + if$ +} + +INTEGERS { tmp title.length } + +FUNCTION {shorten.title} +{ 's := + s text.length$ 'title.length := +% "TITLE1=" quote$ * s * quote$ * warning$ + #2 'tmp := + { tmp title.length - #1 < } + { s tmp text.prefix$ 't := +% ">>>" t * "<<< " * tmp int.to.str$ * warning$ + t #-1 #2 substring$ ". " = + t #-1 #2 substring$ ": " = + or not + 'skip$ + { s tmp #2 - text.prefix$ 's := + title.length 'tmp := + } + if$ + tmp #1 + 'tmp := + } + while$ +% "TITLE2=" quote$ * s * quote$ * warning$ + s +} + +FUNCTION {format.title.short} +{ + shorttitle missing$ + { title field.or.null + shorten.title + duplicate$ text.length$ 'tmp := + tmp short.title.max.length > + { "shortened title for " cite$ * " is still " * + tmp short.title.max.length - int.to.str$ * + " characters too long" * warning$ + } + 'skip$ + if$ + } + { shorttitle + duplicate$ + text.length$ 'tmp := + tmp short.title.max.length > + { "specified shorttitle for " cite$ * " is " * + tmp short.title.max.length - int.to.str$ * + " characters too long" * warning$ + } + 'skip$ + if$ + } + if$ + + duplicate$ empty$ + { "no short title for " cite$ * " screwing up." * warning$ } + { "\/" * emphasize } + if$ + + volume missing$ + 'skip$ + { type$ "book" = + { ", vol.~" * volume * + } + 'skip$ + if$ + } + if$ +} + +FUNCTION {format.shortref} +{ before.all 'output.state := + "\short " + format.author.short output + format.title.short " \end" * output +% duplicate$ ">>>> " swap$ * " <<<<" * warning$ + write$ + newline$ +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + output.note + fin.entry + format.shortref +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + output.note + fin.entry + format.shortref +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + output.note + fin.entry + format.shortref +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + output.note + fin.entry + format.shortref +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output + format.chapter.pages output + } + if$ + new.block + output.note + fin.entry + format.shortref +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + output.note + fin.entry + format.shortref +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + output.note + fin.entry + format.shortref +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Speciale" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + output.note + fin.entry + format.shortref +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + output.note + fin.entry + format.shortref + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + output.note + fin.entry + format.shortref +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + 'skip$ + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { % organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + new.block + output.note + fin.entry + format.shortref +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + output.note + fin.entry + format.shortref +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry + format.shortref +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "mfl." * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.title.sort} +{ editor empty$ + { key empty$ + { title field.or.null sortify } + { key sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.title.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/iopart-num/iopart-num.bst b/Master/texmf-dist/bibtex/bst/iopart-num/iopart-num.bst new file mode 100755 index 00000000000..a88722c32b6 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/iopart-num/iopart-num.bst @@ -0,0 +1,1512 @@ +% iopart-num.bst -- BibTeX style for IOP journals (Harvard-like numeric style) +% +% M. A. Caprio, Yale University +% July 11, 2005 +% Version 1.0 +% +% DESCRIPTION +% +% The formatting implemented is based upon the specification +% "Preparing an article for publication in an Institute +% of Physics Publishing journal using LaTeX2e", by Neil Scriven +% and Romneya Robertson. +% +% INSTRUCTIONS +% +% If natbib is *not* used, under the iopart document class the +% biblography section should be started with \section*{References}. +% +% If natbib *is* used, it should be loaded with the option "square" +% to produce citations in square brackets, e.g., +% \usepackage[square,sort&compress]{natbib}. +% +% TECHNICAL NOTES +% +% Created using custom-bib, with following manual modifications: +% -- remove trailing period from predefined volume, page, etc., abbreviations +% -- provide command \newblock to fix incompatibility between natbib +% and iopart (1996/06/10) +% -- move edition after booktitle +% -- add version identifier to generated output +% -- for incollection and inproceedings, move volume from after publisher to before +% -- for any series with number, number after series +% +% COMMENTS ON CONFORMANCE TO IOP STYLE +% +% -- If journal section letters are to be typeset upright, this must be done +% manually in the database entry. +% -- The e-print number (specified as eprint) is typeset parenthetically at +% end of an entry (as currently encountered in J. Phys.) rather than as a +% separate entry (as described in the Scriven and Robertson specification). + +%% This is file `iopart-num.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `seq-no,nm-rv,dt-beg,yr-blk,xmth,yrp-x,jtit-x,vol-bf,volp-blk,num-xser,jnm-x,add-pub,pub-par,pre-pub,isbn,issn,blk-com,com-blank,fin-bare,pp,ed,abr,ednx,mth-bare,ord,jabr,and-xcom,etal-it,revdata,eprint,url,url-blk') +%% ---------------------------------------- +%% *** Institute of Physics (IOP) journals; Harvard-like numeric style *** +%% +%% Copyright 1994-2002 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}[2002/10/21 4.05 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is a numerical citation style, and as such is standard LaTeX. + % It requires no extra package to interface to the main text. + % The form of the \bibitem entries is + % \bibitem{key}... + % Usage of \cite is as follows: + % \cite{key} ==>> [#] + % \cite[chap. 2]{key} ==>> [#, chap. 2] + % where # is a number determined by the ordering in the reference list. + % The order in the reference list is that by which the works were originally + % cited in the text, or that in the database. + %--------------------------------------------------------------------- + +ENTRY + { address + archive + author + booktitle + chapter + collaboration + edition + editor + eid + eprint + howpublished + institution + isbn + issn + journal + key + month + note + number + numpages + organization + pages + publisher + school + series + title + type + url + volume + year + } + {} + { label } +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} +{ duplicate$ empty$ + 'pop$ + 'write$ + if$ + 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} +{ + add.blank +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +STRINGS {z} +FUNCTION {remove.dots} +{ 'z := + "" + { z empty$ not } + { z #1 #1 substring$ + z #2 global.max$ substring$ 'z := + duplicate$ "." = 'pop$ + { * } + if$ + } + while$ +} +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "\/}" * } + if$ +} +FUNCTION {bolden} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} +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. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds" } + +FUNCTION {bbl.editor} +{ "ed" } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "ed" } + +FUNCTION {bbl.volume} +{ "vol" } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no" } + +FUNCTION {bbl.nr} +{ "no" } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp" } + +FUNCTION {bbl.page} +{ "p" } + +FUNCTION {bbl.eidpp} +{ "pages" } + +FUNCTION {bbl.chapter} +{ "chap" } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +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.eprint} +%% { eprint duplicate$ empty$ +%% 'skip$ +%% { "\eprint" +%% archive empty$ +%% 'skip$ +%% { "[" * archive * "]" * } +%% if$ +%% "{" * swap$ * "}" * +%% } +%% if$ +%% } +FUNCTION {format.eprint} +{ eprint duplicate$ empty$ + 'skip$ + { + "(\textit{Preprint} " + swap$ + "\eprint" + archive empty$ + 'skip$ + { "[" * archive * "]" * } + if$ + "{" * swap$ * "}" * + * + ")" + * + } + 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 + "{vv~}{ll}{ jj}{ f{~}}" + format.name$ + remove.dots + bibinfo bibinfo.check + 't := + nameptr #1 > + { + 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} +{ + 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f{~}~}{vv~}{ll}{ jj}" + format.name$ + remove.dots + bibinfo bibinfo.check + 't := + nameptr #1 > + { + 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.authors} +{ author "author" format.names + duplicate$ empty$ 'skip$ + { collaboration "collaboration" bibinfo.check + duplicate$ empty$ 'skip$ + { " (" swap$ * ")" * } + if$ + * + } + if$ +} +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 {format.isbn} +{ isbn "isbn" bibinfo.check + duplicate$ empty$ 'skip$ + { + "ISBN " swap$ * + } + if$ +} + +FUNCTION {format.issn} +{ issn "issn" bibinfo.check + duplicate$ empty$ 'skip$ + { + "ISSN " swap$ * + } + 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 + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "title" bibinfo.check +} +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + '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} +{ + "" + duplicate$ empty$ + year "year" bibinfo.check duplicate$ empty$ + { swap$ 'skip$ + { "there's a month but no year in " cite$ * warning$ } + if$ + * + } + { swap$ 'skip$ + { + swap$ + " " * swap$ + } + if$ + * + remove.dots + } + if$ + duplicate$ empty$ + 'skip$ + { + before.all 'output.state := + " " swap$ * + } + if$ +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } + 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 * + series "series" bibinfo.check + " " * bbl.number * + number tie.or.space.prefix "number" bibinfo.check * * + } + if$ + } + if$ + } + { "" } + if$ +} + + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s eng.ord 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + convert.edition + 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" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.journal.eid} +{ eid "eid" bibinfo.check + duplicate$ empty$ 'skip$ + { swap$ duplicate$ empty$ 'skip$ + { + " " * + } + if$ + swap$ + numpages empty$ 'skip$ + { bbl.eidpp numpages tie.or.space.prefix + "numpages" bibinfo.check * * + " (" swap$ * ")" * * + } + if$ + } + if$ * +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + bolden + 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 {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + emphasize +} +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 {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + 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} +{ + key duplicate$ empty$ + { pop$ + journal duplicate$ empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * warning$ } + { "journal" bibinfo.check emphasize word.in swap$ * } + if$ + } + { word.in swap$ * " " *} + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + "editor" bibinfo.check + editor num.names$ duplicate$ + #2 > + { pop$ + "editor" bibinfo.check + " " * bbl.etal + emphasize + * + } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + "editor" bibinfo.check + " " * bbl.etal + emphasize + * + } + { + bbl.and space.word + * editor #2 "{vv~}{ll}" format.name$ + "editor" bibinfo.check + * + } + if$ + } + if$ + } + if$ +} +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$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series emphasize * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { format.booktitle duplicate$ empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + } + { word.in swap$ * } + if$ + } + { word.in key * " " *} + if$ + } + { word.in format.crossref.editor * " " *} + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + add.blank "(" * + address "address" bibinfo.check * + t empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + t * + } + if$ + ")" * + } + 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 + format.date "year" output.check + date.block + crossref missing$ + { + journal + "journal" bibinfo.check + emphasize + "journal" output.check + add.blank + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn output + format.note output + format.eprint output + format.url output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + format.edition output + crossref missing$ + { format.bvolume output + format.number.series output + format.publisher.address output + } + { + format.book.crossref output.nonnull + } + if$ + %% format.edition output + format.isbn output + format.note output + format.eprint output + format.url output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.date output + date.block + format.title "title" output.check + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.isbn output + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.publisher.address output + %% format.bvolume output + format.chapter.pages "chapter and pages" output.check + format.number.series output + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.edition output + crossref missing$ + { format.isbn output } + 'skip$ + if$ + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.date "year" output.check + date.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.publisher.address output + %% format.bvolume output + format.number.series output + format.chapter.pages output + format.edition output + format.isbn output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.note output + format.eprint output + format.url output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.date "year" output.check + date.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.bvolume output + format.number.series output + format.pages output + format.isbn output + format.issn output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.note output + format.eprint output + format.url output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization "organization" bibinfo.check + duplicate$ empty$ 'pop$ + { output + address "address" bibinfo.check output + } + if$ + } + { format.authors output.nonnull } + if$ + format.date output + date.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { + address "address" bibinfo.check output + } + 'skip$ + if$ + } + { + organization "organization" bibinfo.check output + address "address" bibinfo.check output + } + if$ + format.edition output + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.date "year" output.check + date.block + format.btitle + "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.date output + format.title output + howpublished "howpublished" bibinfo.check output + format.note output + format.eprint output + format.url output + fin.entry + empty.misc.check +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.date "year" output.check + date.block + format.btitle + "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization "organization" bibinfo.check output + } + { format.editors output.nonnull } + if$ + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + editor empty$ + { publisher empty$ + 'skip$ + { + format.publisher.address output + } + if$ + } + { publisher empty$ + { + format.organization.address output } + { + organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + } + if$ + format.isbn output + format.issn output + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.date "year" output.check + date.block + format.title + "title" output.check + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.date output + date.block + format.title "title" output.check + format.note "note" output.check + format.eprint output + format.url output + fin.entry +} + +FUNCTION {default.type} { misc } +READ +STRINGS { longest.label } +INTEGERS { number.label longest.label.width } +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\providecommand{\newblock}{}" + write$ newline$ + "\begin{thebibliography}{" longest.label * "}" * + write$ newline$ + "\expandafter\ifx\csname url\endcsname\relax" + write$ newline$ + " \def\url#1{{\tt #1}}\fi" + write$ newline$ + "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi" + write$ newline$ + "\providecommand{\eprint}[2][]{\url{#2}}" + write$ newline$ + "% Bibliography created with iopart-num.bst, v1.0" + 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 `iopart-num.bst'. diff --git a/Master/texmf-dist/bibtex/bst/jurabib/jox.bst b/Master/texmf-dist/bibtex/bst/jurabib/jox.bst new file mode 100644 index 00000000000..c7842ef7c3c --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/jurabib/jox.bst @@ -0,0 +1,2397 @@ +%% +%% This is file `jox.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% jurabib.dtx (with options: `joxbst') +%% ---------------------------------------- +%% BibTeX style for use with the jurabib package version v0.6 +%% Copyright (C) 1999-2004 Jens Berger (http://www.jurabib.org) +%% See jurabib.ins for the copyright details. +%% +FUNCTION {version} { " v0.1k" } + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + stitle + title + type + volume + year + url + urldate + volumetitle + juratitle + shorttitle + juraauthor + shortauthor + howcited + ssedition + language + titleaddon + booktitleaddon + editortype + sortkey + annote + gender + translator + flanguage + oyear + oaddress + opublisher + pseudonym + volformat + noed + } + { repeat-authors } + { label dummy.label extra.label sort.label short.list current-authors } + +INTEGERS { output.state before.all mid.sentence } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := +} + +STRINGS { s t u v w x } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { write$ 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 {format.endnote} +{ note empty$ + { "" } + { " \jbendnote {" note * "}" * } + if$ +} + +FUNCTION {format.howcited}{ before.all 'output.state := "} {\bibhowcited}" format.endnote * * } + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.name.sig} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff}{ vv}{ ll}{ jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { "sssss" * t * } + { t "others" = + { " et al." * } + { "" * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.snd.editors} +{ editor empty$ + { "" * } + { author empty$ + { editortype empty$ + { editor num.names$ #1 > + { "\snded {\sndeditorsname}" * } + { "\snded {\sndeditorname}" * } + if$ + } + { "\snded {(" editortype * ")}" * * } + if$ + } + 'skip$ + if$ + } + if$ +} + +FUNCTION {count.authors.or.editors} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { "" 't := + nameptr #1 > + { namesleft #1 > + { "" * } + { "s" * } % more than one author/editor, append `s' + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {set.after.author.sep} +{ before.all 'output.state := + author missing$ + { editor missing$ + { organization missing$ + { "} {empty} {} {" } + { "} {" organization "} {org} {" * * } + if$ + } + { "} {" editor format.name.sig * "} {ed" editor count.authors.or.editors "} {" * * * } + if$ + } + { "} {" author format.name.sig * "} {au" author count.authors.or.editors "} {" * * * } + if$ + author empty$ + { format.snd.editors } + 'skip$ + if$ + "" * +} + +FUNCTION {format.note} +{ note empty$ + 'skip$ + { output.state before.all = + { "\jbnote {}{" * note * "}" * } + { " \jbnote {1}{" * note * "}" * } + if$ + } + if$ +} + + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {non.stop} +{ duplicate$ + "}" * + #-1 #1 substring$ "." = +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {capitalize} +{ "u" change.case$ "t" change.case$ } + +FUNCTION {space.word} +{ " " swap$ * " " * } + +FUNCTION {bbl.edition} +{ "\editionname {} " } + +FUNCTION {bbl.vol} +{ "\volname {}" } + +FUNCTION {bbl.volume} +{ "\volumename {}" } + +FUNCTION {bbl.of} +{ " \volumeofname {} " } + +FUNCTION {bbl.number} +{ "\numbername" } + +FUNCTION {bbl.in} +{ "\incollinname {} " } + +FUNCTION {bbl.in.series} +{ "\inseriesname {}" } + +FUNCTION {bbl.chapter} +{ "\bibchaptername {}" } + +FUNCTION {bbl.techrep} +{ "\technicalreportname {}" } + +FUNCTION {bbl.mthesis} +{ "\mastersthesisname {}" } + +FUNCTION {bbl.phdthesis} +{ "\phdthesisname {}"} + +MACRO {jan} {"\janname"} +MACRO {feb} {"\febname"} +MACRO {mar} {"\marname"} +MACRO {apr} {"\aprname"} +MACRO {may} {"\mayname"} +MACRO {jun} {"\junname"} +MACRO {jul} {"\julname"} +MACRO {aug} {"\augname"} +MACRO {sep} {"\sepname"} +MACRO {oct} {"\octname"} +MACRO {nov} {"\novname"} +MACRO {dec} {"\decname"} + +FUNCTION {checked.emph.format} +{ type$ "book" = type$ "inbook" = type$ "proceedings" = type$ "inproceedings" = or or or + { "\bibtfont {" } + { "\bibapifont {" } + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { checked.emph.format swap$ * "}" * } + if$ +} + +FUNCTION {b.emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\bibbtfont {" swap$ * "}" * } + if$ +} + +FUNCTION {write.url} +{ url empty$ + { urldate empty$ + 'skip$ + { "there's an urldate, but no url in " cite$ * warning$ } + if$ + } + { type$ "www" = + 'skip$ + { ", " * } + if$ + title empty$ output.state before.all = and + { "" * mid.sentence 'output.state := } + { " " * } + if$ + urldate empty$ + { "\jburluse {" cite$ * "}" * * } + { "\jburluse {" cite$ * "}\bibbudcsep {}\urldatecomment " * urldate * * } + if$ + } + if$ +} + +FUNCTION {lastnamemarkup} +{ duplicate$ empty$ + { pop$ "" } + { "\bibnf {" swap$ * "}" * } + if$ +} + +FUNCTION {editorlastnamemarkup} +{ duplicate$ empty$ + { pop$ "" } + { author empty$ + { "\biblenf {" swap$ * "}" * } + { "\bibenf {" swap$ * "}" * } + if$ + } + if$ +} + +FUNCTION {othermarkup} +{ duplicate$ empty$ + { pop$ " {}" } + { " {" swap$ * "}" * } + if$ +} + +FUNCTION {indexmarkup} +{ duplicate$ empty$ + { pop$ "{}" } + { "{" swap$ * "}" * } + if$ +} + +FUNCTION {format.names.for.index} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ll}" format.name$ 't := t indexmarkup 't := + s nameptr "{ff}" format.name$ indexmarkup 'u := + s nameptr "{f.}" format.name$ indexmarkup 'v := + s nameptr "{vv}" format.name$ indexmarkup 'w := + s nameptr "{jj}" format.name$ indexmarkup 'x := + t u * v * w * x * 't := + t "{others}{}{}{}{}" = + 'skip$ + { nameptr #1 > + { namesleft #1 > + { "; " * t * } + { + t "others" = + 'skip$ + { "; " * t * } + if$ + } + if$ + } + 't + if$ + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ll}" format.name$ 't := t lastnamemarkup 't := + s nameptr "{ff}" format.name$ othermarkup 'u := + s nameptr "{f.}" format.name$ othermarkup 'v := + s nameptr "{vv}" format.name$ othermarkup 'w := + s nameptr "{jj}" format.name$ othermarkup 'x := + t u * v * w * x * 't := + nameptr #1 > + { namesleft #1 > + { numnames #3 > + { "" * } + { numnames #3 < + { "\Bibbtasep " * t * } + { "\Bibbfsasep " * t * } + if$ + } + if$ + } + { t "\bibnf {others} {} {} {} {}" = + numnames #3 > or + { "\bibimfont {\Bibetal}" * } + { numnames #3 < + { "\Bibbtasep " * t * } + { "\Bibbstasep " * t * } + if$ + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.editor.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ll}" format.name$ 't := t editorlastnamemarkup 't := + s nameptr "{ff}" format.name$ othermarkup 'u := + s nameptr "{f.}" format.name$ othermarkup 'v := + s nameptr "{vv}" format.name$ othermarkup 'w := + s nameptr "{jj}" format.name$ othermarkup 'x := + t u * v * w * x * 't := + nameptr #1 > + { namesleft #1 > + { numnames #3 > + { "" * } + { numnames #3 < + { "\Bibbtasep " * t * } + { "\Bibbfsasep " * t * } + if$ + } + if$ + } + { t "\bibenf {others} {} {} {} {}" = + t "\biblenf {others} {} {} {} {}" = or + t "\bibenf {others} {} {} {} {} \editorsname" = or + t "\biblenf {others} {} {} {} {} \editorsname" = or + numnames #3 > or + { "\bibimfont {\Bibetal}" * } + { numnames #3 < + { "\Bibbtasep " * t * } + { "\Bibbstasep " * t * } + if$ + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { pseudonym empty$ + { "" } + { "[" pseudonym format.names * "]" * } + if$ + } + { author format.names + pseudonym empty$ + 'skip$ + { " [" * pseudonym format.names * "]" * } + if$ + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { pseudonym empty$ + { "" } + { "[" pseudonym format.editor.names * "]" * } + if$ + } + { editor format.editor.names + pseudonym empty$ + 'skip$ + { " [" * pseudonym format.editor.names * "]" * } + if$ + noed missing$ + { editor num.names$ #1 > + { editortype empty$ + { "\bibedformat {\editorsname}" * } + { "\bibedformat {" * editortype * "}" * } + if$ + } + { editortype empty$ + { "\bibedformat {\editorname}" * } + { "\bibedformat {" * editortype * "}" * } + if$ + } + if$ + } + { noed 's := + s "1" = + 'skip$ + { editor num.names$ #1 > + { editortype empty$ + { "\bibedformat {\editorsname}" * } + { "\bibedformat {" * editortype * "}" * } + if$ + } + { editortype empty$ + { "\bibedformat {\editorname}" * } + { "\bibedformat {" * editortype * "}" * } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { pseudonym empty$ + 'skip$ + { "[" pseudonym format.editor.names * "]" * } + if$ + } + { editor format.editor.names + pseudonym empty$ + 'skip$ + { " [" * pseudonym format.editor.names * "]" * } + if$ + noed missing$ + { editor num.names$ #1 > + { editortype empty$ + { " \bibedinformat {\editorsname}" * } + { " \bibedinformat {" * editortype * "}" * } + if$ + } + { editortype empty$ + { " \bibedinformat {\editorname}" * } + { " \bibedinformat {" * editortype * "}" * } + if$ + } + if$ + } + { noed 's := + s "1" = + 'skip$ + { editor num.names$ #1 > + { editortype empty$ + { " \bibedinformat {\editorsname}" * } + { " \bibedinformat {" * editortype * "}" * } + if$ + } + { editortype empty$ + { " \bibedinformat {\editorname}" * } + { " \bibedinformat {" * editortype * "}" * } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {fin.entry} +{ format.howcited + " \jbdoitem {" * + author empty$ + 'skip$ + { author format.names.for.index * } + if$ + "} {" + editor empty$ + 'skip$ + { editor format.names.for.index * } + if$ + "} {" * + organization empty$ + 'skip$ + { "{" organization * "}{}{}{}{}" * * } + if$ + "}" * * write$ + annote missing$ + { " \bibAnnoteFile {" cite$ * "}" * write$ newline$ } + { " \bibAnnote {" annote * "}" * write$ newline$ } + if$ +} + +FUNCTION {format.titleaddon} +{ title empty$ + 'skip$ + { titleaddon empty$ + 'skip$ + { ", " * titleaddon * } + if$ + } + if$ +} + +FUNCTION {format.booktitleaddon} +{ booktitle empty$ + 'skip$ + { booktitleaddon empty$ + 'skip$ + { ", " * booktitleaddon * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ before.all 'output.state := + title empty$ + { "" } + { title checked.emph.format swap$ * non.stop + { before.all 'output.state := "}" * } + { before.all 'output.state := "}" * } + if$ + } + if$ +} + +FUNCTION {journalnamemarkup} +{ duplicate$ empty$ + { pop$ "" } + { "\bibJTsep \bibjtfont {" swap$ * "}" * } + if$ +} + +FUNCTION {seriesformat} +{ duplicate$ empty$ + { pop$ "" } + { "\bibsnfont {" swap$ * "}" * } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition.superscript} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or s "erste" = or + { "1" 't := } + { s "second" = s "2" = or s "zweite" = or + { "2" 't := } + { s "third" = s "3" = or s "dritte" = or + { "3" 't := } + { s "fourth" = s "4" = or s "vierte" = or + { "4" 't := } + { s "fifth" = s "5" = or s "fuenfte" = or + { "5" 't := } + { s "sixth" = s "6" = or s "sechste" = or + { "6" 't := } + { s "seventh" = s "7" = or s "siebte" = or s "siebente" = or + { "7" 't := } + { s "eighth" = s "8" = or s "achte" = or + { "8" 't := } + { s "nineth" = s "9" = or s "neunte" = or + { "9" 't := } + { s #1 #1 substring$ is.num + { s "" * 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {n.dashify} +{ '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 {output.bibitem.fst} +{ newline$ + "\bibitem[{" write$ + shortauthor empty$ + { juraauthor empty$ + { author empty$ + { editor empty$ + { organization empty$ + { "empty" write$ } + { organization write$ } + if$ + } + { label write$ } + if$ + } + { label write$ } + if$ + } + { juraauthor write$ } + if$ + } + { shortauthor write$ } + if$ + "}%" write$ + sortkey empty$ + 'skip$ + { newline$ "% SORTKEY: [" sortkey * "]" * write$ } + if$ + newline$ + shorttitle empty$ + { juratitle empty$ + { journal empty$ + { " {}%" write$ } + { title empty$ + { key empty$ + { " {}%" write$ } + { " {" key * "}%" * write$ } + if$ + } + { " {" title * "}%" * write$ } + if$ + } + if$ + } + { " {" juratitle * "}%" * write$ } + if$ + } + { " {" shorttitle * "}%" * write$ } + if$ + newline$ + repeat-authors + { " {{1}" write$ } + { " {{0}" write$ } + if$ + howcited empty$ + { "{}" write$ } + { "{" howcited * "}" * write$ } + if$ + type$ empty$ + { "{}" write$ } + { "{" type$ * "}" * write$ } + if$ + year empty$ + { "{}" write$ } + { "{" year * write$ + extra.label "" = + 'skip$ + { "\el {" write$ extra.label write$ "}" write$ } + if$ + "}" write$ + } + if$ + edition empty$ + { "{}" write$ } + { "{" convert.edition.superscript extract.num * "}" * write$ } + if$ + ssedition empty$ + { "{}" write$ } + { "{" ssedition * "}" * write$ } + if$ + language empty$ + { "{}" write$ } + { "{" language * "}" * write$ } + if$ + pages empty$ + { "{}%" write$ } + { "{" write$ pages n.dashify write$ "}%" write$ } + if$ + newline$ +} + +FUNCTION {output.bibitem.snd} +{ publisher empty$ + { address empty$ + { year empty$ + { " {" write$ } + { " {" write$ + year write$ + extra.label "" = + 'skip$ + { "\el {" write$ extra.label write$ "}" write$ } + if$ + } + if$ + } + { year empty$ + { " {" write$ address write$ } + { " {" write$ address write$ "\bibbdsep {} " write$ + year write$ + extra.label "" = + 'skip$ + { "\el {" write$ extra.label write$ "}" write$ } + if$ + } + if$ + } + if$ + } + { address empty$ + { year empty$ + { " {" write$ publisher write$ } + { " {" write$ publisher write$ "\bibbdsep {} " write$ + year write$ + extra.label "" = + 'skip$ + { "\el {" write$ extra.label write$ "}" write$ } + if$ + } + if$ + } + { year empty$ + { " {" write$ address write$ "\bpubaddr {} " write$ publisher write$ } + { " {" write$ address write$ "\bpubaddr {} " write$ publisher write$ "\bibbdsep {} " write$ + year write$ + extra.label "" = + 'skip$ + { "\el {" write$ extra.label write$ "}" write$ } + if$ + } + if$ + } + if$ + } + if$ + "}}%" write$ newline$ + " {" write$ + title empty$ + { "{}%" write$ newline$ } + { "{" title * "}%" * write$ newline$ } + if$ + gender empty$ + { " {}" write$ } + { " {" gender * "}" * write$ } + if$ + oyear empty$ + { "{}" write$ } + { "{" oyear * "}" * write$ } + if$ + author empty$ + { editor empty$ + { "{4}" write$ }% author and editor empty + { "{3}" write$ }% author empty, editor not + if$ + } + { editor empty$ + { "{2}" write$ }% editor empty, author not + { "{1}" write$ }% both author and editor given + if$ + } + if$ + "{}{}{}{}{}}%" write$ newline$ + " ]{" write$ + cite$ write$ + "}" write$ + url empty$ + 'skip$ + { newline$ " \jburldef {" write$ cite$ write$ "}{" write$ url write$ "}%" write$ } + if$ + newline$ + " \jbbibargs {" write$ + "" + before.all 'output.state := +} + +FUNCTION {output.bibitem}{ output.bibitem.fst output.bibitem.snd } + +FUNCTION {word.in} +{ bbl.in + " " * } + +FUNCTION {add.extra.label} +{extra.label "" = + 'skip$ + { "\bibel {" extra.label * "}" * * } + if$ +} + +FUNCTION {format.date} +{ year empty$ + 'skip$ + { output.state before.all = + { "" * mid.sentence 'output.state := } + { " " * } + if$ + "\dateldelim {}" * + month empty$ + 'skip$ + { month "{} " * * } + if$ + year * add.extra.label "\daterdelim {}" * + } + if$ +} + +FUNCTION {format.btitle} +{ before.all 'output.state := + title emphasize +} + +FUNCTION {format.booktitle} +{ before.all 'output.state := + booktitle b.emphasize +} + +FUNCTION {format.booklet.title} +{ before.all 'output.state := + title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { " " } + { + volumetitle empty$ + { crossref missing$ + { bbl.volume volume tie.or.space.connect } + { bbl.vol volume tie.or.space.connect } + if$ + } + { + crossref missing$ + { bbl.volume volume tie.or.space.connect } + { bbl.vol volume tie.or.space.connect } + if$ + ": \bibvtfont {" * volumetitle "}" * * + } + if$ + } + if$ +} + +FUNCTION {format.bvolume.btitle.reversed} +{ volume empty$ + { title empty$ + 'skip$ + { + before.all 'output.state := + title emphasize + } + if$ + } + { volumetitle empty$ + { title empty$ + 'skip$ + { + before.all 'output.state := + title emphasize + } + if$ + } + { "\bibvtfont {" volumetitle * "}" * * + bbl.volume volume tie.or.space.connect + title empty$ + 'skip$ + { bbl.of title emphasize * * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.bvolume.btitle} +{ volformat missing$ + { + format.btitle "title" output.check format.bvolume output + } + { volformat 's := + s "reversed" = + { volumetitle empty$ + { + "volformat given but no volumetitle in " cite$ * warning$ + format.bvolume.btitle.reversed output + } + { + volume empty$ + { "there's a volumetitle but no volume in " cite$ * warning$ * } + 'skip$ + if$ + title empty$ + { + "volformat given but no title in " cite$ * warning$ + } + { + format.bvolume.btitle.reversed output + } + if$ + } + if$ + } + { + format.btitle "title" output.check format.bvolume output + } + if$ + } + if$ +} + +FUNCTION {format.bvolume.booktitle.reversed} +{ volume empty$ + { booktitle empty$ + 'skip$ + { + before.all 'output.state := + booktitle b.emphasize + } + if$ + } + { volumetitle empty$ + { booktitle empty$ + 'skip$ + { + before.all 'output.state := + bbl.volume volume tie.or.space.connect + booktitle empty$ + 'skip$ + { bbl.of booktitle b.emphasize * * } + if$ + } + if$ + } + { "\bibvtfont {" volumetitle * "}" * * + bbl.volume volume tie.or.space.connect + booktitle empty$ + 'skip$ + { bbl.of booktitle b.emphasize * * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.in.editor.booktitle.volume.voltitle} +{ editor empty$ + { chapter empty$ + { ", " * } + { " " * } + if$ + word.in * + } + { chapter empty$ + { ", " * } + { " " * } + if$ + word.in format.in.editors * ", " * * + } + if$ + volformat missing$ + { + format.booktitle "booktitle" output.check + format.bvolume output + format.booktitleaddon + } + { volformat 's := + s "reversed" = + { volumetitle empty$ + { + "volformat given but no volumetitle in " cite$ * warning$ + format.bvolume.booktitle.reversed output + format.booktitleaddon + } + { + volume empty$ + { "there's a volumetitle but no volume in " cite$ * warning$ * } + 'skip$ + if$ + booktitle empty$ + { + "volformat given but no booktitle in " cite$ * warning$ + } + { + format.bvolume.booktitle.reversed output + format.booktitleaddon + } + if$ + } + if$ + } + { format.booktitle "booktitle" output.check + format.bvolume output + format.booktitleaddon + } + if$ + } + if$ +} + +FUNCTION {format.number.series.book.old} +{ number empty$ + { series seriesformat field.or.null } + { series empty$ + { "there's a number but no series in " cite$ * warning$ number } + { series seriesformat number tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.number.series.book} +{ volume empty$ + { number empty$ + { series empty$ + { "" } + { " \numberandseries {}{" series * "}" * } + if$ + } + { series empty$ + { " \numberandseries {" number * "}{}" * "There's a number but no series in " cite$ * warning$ } + { " \numberandseries {" number * "}{" * series "}" * * } + if$ + } + if$ + } + { series empty$ + { "" } + { type$ "proceedings" = + { " \numberandseries {}{" series * "}" * } % { " (" series * ")" * } + { "" } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series seriesformat field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in.series space.word * series seriesformat * } + if$ + } + if$ + } + { type$ "incollection" = crossref missing$ and + { format.number.series.book } + { "" } + if$ + } + if$ +} + +FUNCTION {first.ed} { "\firstedname" } +FUNCTION {second.ed}{ "\secondedname" } +FUNCTION {third.ed} { "\thirdedname" } +FUNCTION {fourth.ed}{ "\fourthedname" } +FUNCTION {fifth.ed} { "\fifthedname" } +FUNCTION {th.ed} { "\thedname" } + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { first.ed 't := } + { s "second" = s "2" = or + { second.ed 't := } + { s "third" = s "3" = or + { third.ed 't := } + { s "fourth" = s "4" = or + { fourth.ed 't := } + { s "fifth" = s "5" = or + { fifth.ed 't := } + { s #1 #1 substring$ is.num + { s th.ed * 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { convert.edition "~\editionname {}" * } + 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 empty$ + { "" } + { before.all 'output.state := + "\jbPages {" pages n.dashify * "}" * + } + if$ +} + +FUNCTION {format.journal.pages} +{ pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { " \jbartPages {" pages n.dashify * "}" * * } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ before.all 'output.state := + volume empty$ + { year empty$ not + { "there's a year but no volume in " cite$ * warning$ } + 'skip$ + if$ + number empty$ + { "" } + { "there's a number but no volume in " cite$ * warning$ + type$ "periodical" = + { "~\per" * } + { "~\art" * } + if$ + "volnumformat {}{" number * "}" * + } + if$ + } + { type$ "periodical" = + { "~\per" * } + { "~\art" * } + if$ + number empty$ + { "volnumformat {" volume * "}{}" * } + { "volnumformat {" volume * "}{" number * "}" * * } + if$ + } + if$ + year empty$ + { month empty$ not + { "there's a month but no year in " cite$ * warning$ } + 'skip$ + if$ + } + { type$ "periodical" = + { " \per" * } + { " \art" * } + if$ + month empty$ + { "yearformat {" year * add.extra.label "}" * * } + { "yearformat {" month * "{} " * year * add.extra.label "}" * * } + if$ + } + if$ +} + +FUNCTION {format.chapter.inbook.incoll} +{ chapter empty$ + { "" } + { before.all 'output.state := + type empty$ + { ", " bbl.chapter * } + { ", " type * "l" change.case$ } + if$ + chapter tie.or.space.connect + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { before.all 'output.state := ", " bbl.chapter * } + { ", " type * "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle b.emphasize format.booktitleaddon * } + { word.in format.in.editors * ", " * booktitle b.emphasize format.booktitleaddon * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ " \protect\jbartcrossrefchecked {" crossref * "}" * } + +FUNCTION {format.book.crossref} +{ type$ "book" = + { volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\protect\jbcrossrefchecked {" crossref * "}" * } + { "\protect\jbcrossrefchecked[" volume * "]{" * crossref "}" * * } + if$ + } + { "\protect\jbcrossrefchecked {" crossref * "}" * } + if$ +} + +FUNCTION {format.incoll.inproc.crossref} +{ " \protect\jbincollcrossref {" crossref * "}" * + editor empty$ + { "{}" * } + { "{1}" * } + if$ +} + +FUNCTION {oaddress.opublisher.oyear.format} +{ type$ "book" = + { oyear empty$ + { opublisher empty$ + { oaddress empty$ + 'skip$ + { oaddress "\osep {} " * * } + if$ + } + { oaddress empty$ + { opublisher "\osep {} " * * } + { oaddress "\bpubaddr {} " * opublisher "\osep {} " * * * } + if$ + } + if$ + } + { year empty$ + { "oyear without year in " cite$ * warning$ } + 'skip$ + if$ + opublisher empty$ + { oaddress empty$ + { oyear * "\osep {} \reprintname {}, " * } + { oaddress "\bibbdsep {} " * oyear "\osep {} " * * * } + if$ + } + { oaddress empty$ + { opublisher * "\bibbdsep {} " * oyear "\osep {} " * * } + { oaddress "\bpubaddr {} " * opublisher "\bibbdsep {} " * * oyear "\osep {} " * * * } + if$ + } + if$ + } + if$ + } + 'skip$ + if$ +} + +FUNCTION {format.publisher} +{ year empty$ month empty$ not and + { "there's a month but no year in " cite$ * warning$ } + 'skip$ + if$ + address empty$ publisher empty$ year empty$ and and + 'skip$ + { " \apyformat {" * } + if$ + oaddress.opublisher.oyear.format + address empty$ + { + publisher empty$ + { + year empty$ + 'skip$ + { month empty$ + { year * add.extra.label } + { month "{} " * year * * add.extra.label } + if$ + } + if$ + } + { + year empty$ + { month empty$ + { publisher * } + 'skip$ + if$ + } + { month empty$ + { publisher "\bibbdsep {} " * year * * add.extra.label } + { publisher "\bibbdsep {} " * month "{} " * year * * * add.extra.label } + if$ + } + if$ + } + if$ + } + { + publisher empty$ + { + year empty$ + { address * } + { month empty$ + { address "\bibbdsep {} " * year * * add.extra.label } + { address "\bibbdsep {} " * month "{} " * year * * * add.extra.label } + if$ + } + if$ + } + { + year empty$ + { month empty$ + { address "\bpubaddr {} " * publisher * * } + 'skip$ + if$ + } + { month empty$ + { address "\bpubaddr {} " * publisher "\bibbdsep {} " * year * * * add.extra.label } + { address "\bpubaddr {} " * publisher "\bibbdsep {} " * month "{} " * year * * * * add.extra.label } + if$ + } + if$ + } + if$ + } + if$ + address empty$ publisher empty$ year empty$ and and + 'skip$ + { "}" * } + if$ +} + +FUNCTION {format.publisher.manual} +{ year empty$ month empty$ not and + { "there's a month but no year in " cite$ * warning$ } + 'skip$ + if$ + address empty$ organization empty$ year empty$ and and + 'skip$ + { " \apyformat {" * } + if$ + address empty$ + { + organization empty$ + { + year empty$ + 'skip$ + { month empty$ + { year * add.extra.label } + { month "{} " * year * * add.extra.label } + if$ + } + if$ + } + { + year empty$ + { month empty$ + { organization * } + 'skip$ + if$ + } + { month empty$ + { organization "\bibbdsep {} " * year * * add.extra.label } + { organization "\bibbdsep {} " * month "{} " * year * * * add.extra.label } + if$ + } + if$ + } + if$ + } + { organization empty$ + { year empty$ + { address * } + { month empty$ + { address "\bibbdsep {} " * year * * add.extra.label } + { address "\bpubaddr {} " * month "{} " * year * * * add.extra.label } + if$ + } + if$ + } + { year empty$ + { month empty$ + { address "\bpubaddr {} " * organization * * } + 'skip$ + if$ + } + { month empty$ + { address "\bpubaddr {} " * organization "\bibbdsep {} " * year * * * add.extra.label } + { address "\bpubaddr {} " * organization "\bibbdsep {} " * month "{} " * year * * * * add.extra.label } + if$ + } + if$ + } + if$ + } + if$ + address empty$ organization empty$ year empty$ and and + 'skip$ + { "}" * } + if$ +} + +FUNCTION {format.publisher.techreport} +{ year empty$ month empty$ not and + { "there's a month but no year in " cite$ * warning$ } + 'skip$ + if$ + address empty$ institution empty$ year empty$ and and + 'skip$ + { " \apyformat {" * } + if$ + address empty$ + { + institution empty$ + { + year empty$ + 'skip$ + { month empty$ + { year * add.extra.label } + { month "{} " * year * * add.extra.label } + if$ + } + if$ + } + { + year empty$ + { month empty$ + { institution * } + 'skip$ + if$ + } + { month empty$ + { institution "\bibbdsep {} " * year * * add.extra.label } + { institution "\bibbdsep {} " * month "{} " * year * * * add.extra.label } + if$ + } + if$ + } + if$ + } + { institution empty$ + { year empty$ + { address * } + { month empty$ + { address "\bibbdsep {} " * year * * add.extra.label } + { address "\bpubaddr {} " * month "{} " * year * * * add.extra.label } + if$ + } + if$ + } + { year empty$ + { month empty$ + { address "\bpubaddr {} " * institution * * } + 'skip$ + if$ + } + { month empty$ + { address "\bpubaddr {} " * institution "\bibbdsep {} " * year * * * add.extra.label } + { address "\bpubaddr {} " * institution "\bibbdsep {} " * month "{} " * year * * * * add.extra.label } + if$ + } + if$ + } + if$ + } + if$ + address empty$ institution empty$ year empty$ and and + 'skip$ + { "}" * } + if$ +} + +FUNCTION {format.edby.editors} +{ author empty$ + 'skip$ + { editor empty$ + 'skip$ + { "\edbyname {} " editor format.editor.names * output } + if$ + } + if$ +} + +FUNCTION {make.translators} +{ translator empty$ + { flanguage empty$ + { "" } + { "\translator {}{" flanguage "l" change.case$ * "}{1}" * } + if$ + } + { "\translator {" translator * "}" * + flanguage empty$ + { "{}{1}" * } + { "{" * flanguage "l" change.case$ * "}{1}" * } + if$ + } + if$ +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.title "title" output.check + format.titleaddon + crossref missing$ + { journal journalnamemarkup + "journal" output.check + format.vol.num.pages output + write.url + format.journal.pages + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.note + fin.entry +} + +FUNCTION {periodical} {article} + +FUNCTION {review} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.title "title" output.check + format.titleaddon + crossref missing$ + { journal journalnamemarkup + "journal" output.check + format.vol.num.pages output + write.url + format.journal.pages + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.note + fin.entry +} + +FUNCTION {format.editors.last} +{ editor empty$ + { "" before.all 'output.state := } + { author empty$ not + { " \edbyname{} " editor format.editor.names * } + { "" before.all 'output.state := } + if$ + } + if$ +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { editor empty$ not + { format.editors output.nonnull } + { "neither author nor editor in " cite$ * warning$ } + if$ + } + { format.authors output.nonnull } + if$ + set.after.author.sep output + crossref missing$ + { format.bvolume.btitle + format.editors.last output.nonnull + make.translators output + format.titleaddon + format.number.series.book output + format.edition output + format.pages output + format.publisher + write.url + format.note + } + { format.btitle "title" output.check + format.book.crossref output.nonnull + } + if$ + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + set.after.author.sep output + format.btitle "title" output.check + format.titleaddon + howpublished output + format.publisher + format.pages output + write.url + format.note + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + crossref missing$ + { format.bvolume.btitle + format.titleaddon + make.translators output + format.number.series output + format.edition output + format.publisher + write.url + format.chapter.inbook.incoll output + format.pages output + format.note + } + { format.btitle "title" output.check + format.chapter.inbook.incoll output + format.incoll.inproc.crossref output.nonnull + format.bvolume output + format.pages output + } + if$ + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + crossref missing$ + { format.btitle "title" output.check + format.titleaddon + format.chapter.inbook.incoll output + format.in.editor.booktitle.volume.voltitle + make.translators output + format.number.series.book output + format.edition output + format.publisher + write.url + format.note + format.pages output + } + { format.title "title" output.check + format.chapter.inbook.incoll output + format.incoll.inproc.crossref output.nonnull + format.bvolume output + format.pages output + } + if$ + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.title "title" output.check + format.titleaddon + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + publisher empty$ + { organization output + format.publisher + } + { organization output + format.publisher + } + if$ + write.url + format.note + format.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + set.after.author.sep output + format.btitle "title" output.check + format.titleaddon + format.edition output + format.publisher.manual + write.url + format.note + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.btitle "title" output.check + format.titleaddon + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + format.publisher + write.url + format.note + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + set.after.author.sep output + format.btitle output + format.titleaddon + howpublished output + format.date + write.url + format.note + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.btitle "title" output.check + format.titleaddon + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check + format.publisher + write.url + format.note + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + set.after.author.sep output + format.btitle "title" output.check + format.titleaddon + format.number.series.book output + organization output + format.publisher + write.url + format.note + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.title "title" output.check + format.tr.number output.nonnull + format.publisher.techreport + write.url + format.note + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.title "title" output.check + format.titleaddon + format.date + write.url + format.note + fin.entry +} + +FUNCTION {www} +{ output.bibitem + format.authors output.nonnull + set.after.author.sep output + format.title output.nonnull + write.url + format.note + 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$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +INTEGERS { nextchar-ptr } % points just past 1st "text" char + +FUNCTION {get.nextchar.ptr} % set nextchar-ptr to be just past +{ #1 'nextchar-ptr := % the first "text" char---this will + { duplicate$ % be not quite trivial if + nextchar-ptr #1 substring$ % the first "text" char is a + "" = not % special characters like {\'E} + } + { nextchar-ptr #1 + 'nextchar-ptr := } + while$ + pop$ + nextchar-ptr +} + +STRINGS { first-char } % the to-be-capitalized character + +FUNCTION {capitalize.von.part} % capitalize 1st character of string +{ duplicate$ #1 text.prefix$ % get 1st character + duplicate$ get.nextchar.ptr + swap$ "u" change.case$ % capitalize it + 'first-char := + global.max$ substring$ % get rest of string + first-char swap$ * % append the two +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +FUNCTION {format.lab.names} +{ 's := % for two: (Jones/de~Bruijn) + s #1 "{vv~}{ll}" format.name$ capitalize.von.part % for three: (Jones/de~Bruijn/Smith) + s num.names$ duplicate$ % for more: (Jones et~al.) + #2 < + 'pop$ % for just one person + { duplicate$ duplicate$ + #2 > + swap$ s swap$ "{ff }{vv }{ll}{ jj}" format.name$ "others" = + or + { pop$ "\Bibetal" * } % for 4 or more, or last is `others' + { #2 = + { "\jbbtasep " * s #2 "{vv~}{ll}" format.name$ capitalize.von.part * } % for (exactly) two + { "\jbbfsasep " * s #2 "{vv~}{ll}" format.name$ capitalize.von.part * % for three + "\jbbstasep " * s #3 "{vv~}{ll}" format.name$ capitalize.von.part * + } + if$ + } + if$ + } + if$ + year missing$ + 'skip$ + { "\jbdy {" year * "}" * * }% dummy year to prevent from `1993a' and `2001b' for works by the same author + 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.label} +{ type$ "book" = type$ "inbook" = or type$ "incollection" = or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'label := +} + +FUNCTION {calc.dummy.label} +{ type$ "book" = type$ "inbook" = or type$ "incollection" = or type$ "commented" = or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'dummy.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ ff{ }}{ vv{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "\bibnf {others} {} {} {} {}" = and + { "\Bibetal" * } + { 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$ + { pseudonym empty$ + { key empty$ + { "to sort, need author, pseudonym or key in " cite$ * warning$ "" } + { key sortify } + if$ + } + { pseudonym sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { pseudonym empty$ + { key empty$ + { "to sort, need author, editor, pseudonym or key in " cite$ * warning$ "" } + { key sortify } + if$ + } + { pseudonym sort.format.names } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.sort} +{ editor empty$ + { pseudonym empty$ + { key empty$ + { "to sort, need author, editor, pseudonym or key in " cite$ * warning$ "" } + { key sortify } + if$ + } + { pseudonym sort.format.names } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label + calc.dummy.label + dummy.label sortify " " * + sortkey empty$ + { type$ "book" = + type$ "incollection" = or + type$ "inbook" = or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + } + { sortkey sort.format.names } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.label := + sort.label * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + + +SORT + + +STRINGS { last.dummy.label next.extra } + +INTEGERS { last.extra.num number.label } + +FUNCTION {forward.pass} +{ last.dummy.label dummy.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 := + dummy.label 'last.dummy.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$ + { "" swap$ * } + if$ + 'extra.label := + dummy.label extra.label * 'dummy.label := +} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} { sort.label 'sort.key$ := } + +ITERATE {bib.sort.order} + +SORT + +FUNCTION {set.current.authors} +{ author empty$ + { editor empty$ + { organization empty$ + { cite$ 'current-authors := } + { organization 'current-authors := } + if$ + } + { editor format.names #1 entry.max$ substring$ 'current-authors := } + if$ + } + { author format.names #1 entry.max$ substring$ 'current-authors := } + if$ +} + +STRINGS { previous-authors } + +FUNCTION {initialize.previous.authors} { "" 'previous-authors := } + +FUNCTION {mark.repeat.authors} +{ current-authors previous-authors = + { #1 'repeat-authors := } + 'skip$ + if$ + current-authors 'previous-authors := +} + +ITERATE {set.current.authors} + +EXECUTE {initialize.previous.authors} + +ITERATE {mark.repeat.authors} + +EXECUTE {initialize.previous.authors} + +REVERSE {mark.repeat.authors} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "%" write$ newline$ + "% This bibliography was produced by using jox.bst" write$ version write$ newline$ + "%" write$ newline$ + "\begin{thebibliography}{}" 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 file `jox.bst'. diff --git a/Master/texmf-dist/bibtex/bst/jurabib/jurabib.bst b/Master/texmf-dist/bibtex/bst/jurabib/jurabib.bst new file mode 100644 index 00000000000..eda2dfbcdd1 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/jurabib/jurabib.bst @@ -0,0 +1,2894 @@ +%% +%% This is file `jurabib.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% jurabib.dtx (with options: `jurabst') +%% ---------------------------------------- +%% BibTeX style for use with the jurabib package version v0.6 +%% Copyright (C) 1999-2004 Jens Berger (http://www.jurabib.org) +%% See jurabib.ins for the copyright details. +%% +ENTRY{ + address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + volume + year +%% + url + urldate + volumetitle + dissyear + howcited + juratitle + juraauthor + shorttitle + shortauthor + ssedition + titleaddon + booktitleaddon + editortype + sortkey + annote + gender + translator + flanguage + oyear + oaddress + opublisher + updated + totalpages + founder + archive + subarchive + shortarchive + shortsubarchive + sig1 + sig2 + sig3 + sig4 + archname + } + { repeat-authors repeat-titles } + { label dummy.label extra.label sort.label current-authors } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +INTEGERS { colon.after period.dash } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'colon.after := + #5 'period.dash := +} + +STRINGS { s t u v w x } + +FUNCTION {output.nonnull} +{ 's := + output.state after.block = + { write$ } + { output.state before.all = + { write$ } + { output.state colon.after = + { "" * write$ } + { output.state period.dash = + { ", " * write$ } + { output.state mid.sentence = + { " " * write$ } + { write$ } + if$ + } + if$ + } + if$ + } + if$ + after.block '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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition.superscript} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or s "erste" = or + { "1" 't := } + { s "second" = s "2" = or s "zweite" = or + { "2" 't := } + { s "third" = s "3" = or s "dritte" = or + { "3" 't := } + { s "fourth" = s "4" = or s "vierte" = or + { "4" 't := } + { s "fifth" = s "5" = or s "fuenfte" = or + { "5" 't := } + { s "sixth" = s "6" = or s "sechste" = or + { "6" 't := } + { s "seventh" = s "7" = or s "siebte" = or s "siebente" = or + { "7" 't := } + { s "eighth" = s "8" = or s "achte" = or + { "8" 't := } + { s "nineth" = s "9" = or s "neunte" = or + { "9" 't := } + { s #1 #1 substring$ is.num + { s "" * 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {n.dashify} +{ '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 {output.bibitem.fst} +{ newline$ + "\bibitem[{" write$ + shortauthor empty$ + { juraauthor empty$ + { author empty$ + { editor empty$ + { organization empty$ + { archive empty$ + { "empty" write$ } + { archive write$ } + if$ + } + { organization write$ } + if$ + } + { label write$ } + if$ + } + { label write$ } + if$ + } + { juraauthor write$ } + if$ + } + { shortauthor write$ } + if$ + "}%" write$ + sortkey empty$ + 'skip$ + { newline$ "% SORTKEY: [" sortkey * "]" * write$ } + if$ + newline$ + shorttitle empty$ + { juratitle empty$ + { journal empty$ + { " {}%" write$ } + { volume empty$ + { year empty$ + { " {" journal * "}%" * write$ } + { " {" journal * "\jbsy {" * year * "}}%" * write$ } + if$ + } + { year empty$ + { " {" journal * "}%" * write$ } + { " {" journal * " " * volume * " " * " \peryearformat {" year * "}}%" * * write$ } + if$ + } + if$ + } + if$ + } + { " {" juratitle * "}%" * write$ } + if$ + } + { " {" shorttitle * "}%" * write$ } + if$ + newline$ + repeat-authors + { " {{1}" write$ } + { " {{0}" write$ } + if$ + howcited empty$ + { "{}" write$ } + { "{" howcited * "}" * write$ } + if$ + type$ empty$ + { "{}" write$ } + { "{" type$ * "}" * write$ } + if$ + year empty$ + { type$ "book" = dissyear empty$ not and + { "{" dissyear * write$ + extra.label "" = + skip$ + { "\el {" write$ extra.label write$ "}" write$ } + if$ + "}" write$ + } + { "{}" write$ } + if$ + } + { "{" year * write$ + extra.label "" = + 'skip$ + { "\el {" write$ extra.label write$ "}" write$ } + if$ + "}" write$ + } + if$ + edition empty$ + { "{}" write$ } + { "{" convert.edition.superscript extract.num * "}" * write$ } + if$ + ssedition empty$ + { "{}" write$ } + { "{" ssedition * "}" * write$ } + if$ + language empty$ + { "{}" write$ } + { "{" language * "}" * write$ } + if$ + pages empty$ + { "{}%" write$ } + { "{" write$ pages n.dashify write$ "}%" write$ } + if$ +} + +FUNCTION {output.bibitem.snd} +{ newline$ + publisher empty$ + { address empty$ + { year empty$ + { " {" write$ } + { " {" write$ + year write$ + extra.label "" = + 'skip$ + { "\el {" write$ extra.label write$ "}" write$ } + if$ + } + if$ + } + { year empty$ + { " {" write$ address write$ } + { " {" write$ address write$ "\bibbdsep {} " write$ + year write$ + extra.label "" = + 'skip$ + { "\el {" write$ extra.label write$ "}" write$ } + if$ + } + if$ + } + if$ + } + { address empty$ + { year empty$ + { " {" write$ publisher write$ } + { " {" write$ publisher write$ "\bibbdsep {} " write$ + year write$ + extra.label "" = + 'skip$ + { "\el {" write$ extra.label write$ "}" write$ } + if$ + } + if$ + } + { year empty$ + { " {" write$ address write$ "\bpubaddr {} " write$ publisher write$ } + { " {" write$ address write$ "\bpubaddr {} " write$ publisher write$ "\bibbdsep {} " write$ + year write$ + extra.label "" = + 'skip$ + { "\el {" write$ extra.label write$ "}" write$ } + if$ + } + if$ + } + if$ + } + if$ + "}}%" write$ newline$ + " {" write$ + title empty$ + { "{}%" write$ newline$ } + { "{" title * + type$ "archival" = + { shortarchive empty$ not + { ", In: " shortarchive * * } + { archive empty$ not + { ", In: " archive * * } + 'skip$ + if$ + } + if$ + shortsubarchive empty$ + 'skip$ + { ", " shortsubarchive * * } + if$ + sig1 empty$ + 'skip$ + { ", " sig1 * * + sig2 empty$ + 'skip$ + { ". " sig2 * * + sig3 empty$ + 'skip$ + { ". " sig3 * * + sig4 empty$ + 'skip$ + { ". " sig4 * * } + if$ + } + if$ + } + if$ + } + if$ + pages empty$ + 'skip$ + { " \jbArchPages {" pages n.dashify * "}" * * } + if$ + } + 'skip$ + if$ + "}%" * write$ newline$ } + if$ + gender empty$ + { " {}" write$ } + { " {" gender * "}" * write$ } + if$ + oyear empty$ + { "{}" write$ } + { "{" oyear * "}" * write$ } + if$ + author empty$ + { editor empty$ + { "{4}" write$ }% author and editor empty + { "{3}" write$ }% author empty, editor not + if$ + } + { editor empty$ + { "{2}" write$ }% editor empty, author not + { "{1}" write$ }% both author and editor given + if$ + } + if$ + "{}{}{}{}{}}%" write$ newline$ + " ]{" write$ + cite$ write$ + "}" write$ + url empty$ + 'skip$ + { newline$ " \jburldef {" write$ cite$ write$ "}{" write$ url write$ "}%" write$ } + if$ + newline$ + " \jbbibargs {" write$ + "" + before.all 'output.state := +} + +FUNCTION {output.bibitem} +{ output.bibitem.fst + output.bibitem.snd +} + +FUNCTION {format.note} +{ note empty$ + 'skip$ + { output.state before.all = + {" \jbnote {} {" * note * "} " * } + {" \jbnote {1} {" * note * "} " * } + if$ + } + if$ +} + +FUNCTION {format.endnote} +{ note empty$ + { "" } + { " \jbendnote {" note * "}" * } + if$ +} + + +FUNCTION {format.juradiss.book} +{ dissyear empty$ + { "" } + { type empty$ + { school empty$ + { "Dissyear but no school in " cite$ * warning$ + " (\alsothesisname {} \jurthesisname" * + year empty$ not year missing$ not and + { "\bibbdsep {} " dissyear * } + 'skip$ + if$ + ")" * + } + { " (\alsothesisname {} \jurthesisname, " school * + year empty$ not year missing$ not and + { "\bibbdsep {} " dissyear * * } + 'skip$ + if$ + ")" * + } + if$ + } + { school empty$ + { "Dissyear but no school in " cite$ * warning$ + " (\alsothesisname {} " type * + year empty$ not year missing$ not and + { "\bibbdsep {} " dissyear * } + 'skip$ + if$ + ")" * + } + { " (\alsothesisname {} " type * + ", " school * * + year empty$ not year missing$ not and + { "\bibbdsep {} " dissyear * * } + 'skip$ + if$ + ")" * + } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.thesis} +{ year empty$ + { school empty$ + { "No universtiy in " cite$ * warning$ } + { "There's a university, but no year in " cite$ * warning$ } + if$ + "" + } + { type empty$ + { school empty$ + { "No university in " cite$ * warning$ + type$ "mastersthesis" = + { "\apyformat {\mastersthesisname" * address empty$ 'skip$ { ", " address * * } if$ "\bibbdsep {} " year * "}" * } + { type$ "jurthesis" = + { "\apyformat {\jurthesisname" * address empty$ 'skip$ { ", " address * * } if$ "\bibbdsep {} " year * "}" * } + { "\apyformat {\phdthesisname" * address empty$ 'skip$ { ", " address * * } if$ "\bibbdsep {} " year * "}" * } + if$ + } + if$ + } + { type$ "mastersthesis" = + { "\mastersthesisname, \apyformat {" school * address empty$ 'skip$ { ", " address * * } if$ "\bibbdsep {} " year * * "}" * } + { type$ "jurthesis" = + { "\jurthesisname, \apyformat {" school * address empty$ 'skip$ { ", " address * * } if$ "\bibbdsep {} " year * * "}" * } + { "\phdthesisname, \apyformat {" school * address empty$ 'skip$ { ", " address * * } if$ "\bibbdsep {} " year * * "}" * } + if$ + } + if$ + } + if$ + } + { school empty$ + { "No university in " cite$ * warning$ type + address empty$ 'skip$ { " \apyformat {" address * } if$ "\bibbdsep {} " * * year * "}" * } + { type " \apyformat {" * school * address empty$ 'skip$ { ", " address * * } if$ "\bibbdsep {} " year * * "}" * } + if$ + } + if$ + } + if$ +} + +FUNCTION {set.comma.pages.check} +{ year empty$ + 'skip$ + { pages empty$ + { url empty$ + 'skip$ + { ", " * } + if$ + } + { ", " * } + if$ + } + if$ +} + +FUNCTION {set.period.dash} +{ output.state before.all = + 'skip$ + { period.dash 'output.state := } + if$ +} + +FUNCTION {set.period.dash.check} +{ empty$ + 'skip$ + 'set.period.dash + if$ +} + +FUNCTION {new.sentence} +{ output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ +} + +FUNCTION {part.of.sentence} +{ output.state before.all = + 'skip$ + { mid.sentence 'output.state := } + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + + +FUNCTION {get.final.nonrightbrace.char} +{ { duplicate$ + #-1 #1 substring$ + duplicate$ + "}" = + } + { pop$ + #-2 global.max$ substring$ + } + while$ + swap$ pop$ +} + + +FUNCTION {check.punct.instead.of.add.period} +{ duplicate$ + get.final.nonrightbrace.char + duplicate$ "." = swap$ + duplicate$ "!" = swap$ + "?" = or or + { "} " * } + { "}\bibatsep\ " * } + if$ +} + +FUNCTION {check.punct.instead.of.add.period.art} +{ duplicate$ + get.final.nonrightbrace.char + duplicate$ "." = swap$ + duplicate$ "!" = swap$ + "?" = or or + { "} " * } + { pages empty$ note empty$ url empty$ and and + { "} " * } + { volume empty$ + { pages empty$ + { "}\ajtsep\ " * } + { crossref missing$ + { month empty$ + { "}\ajtsep\ " * } + { "}\ajtsep " * } + if$ + } + { "}\ajtsep " * } + if$ + } + if$ + } + { "}\ajtsep\ " * } + if$ + } + if$ + } + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\bibtfont {" swap$ check.punct.instead.of.add.period * } + if$ +} + +FUNCTION {journaltitlemarkup} +{ duplicate$ empty$ + { pop$ "" } + { "\bibJTsep \bibjtfont {" swap$ check.punct.instead.of.add.period.art * } + if$ +} + +FUNCTION {incollbooktitlemarkup} +{ duplicate$ empty$ + { pop$ "" } + { "\bibbtfont {" swap$ check.punct.instead.of.add.period * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION { lastnamemarkup } +{ duplicate$ empty$ + { pop$ "" } + { "\bibnf {" swap$ * "}" * } + if$ +} + +FUNCTION { editorlastnamemarkup } + { duplicate$ empty$ + { pop$ "" } + { author empty$ + { "\biblenf {" swap$ * "}" * } % lonely editor(s)! + { "\bibenf {" swap$ * "}" * } + if$ + } + if$ +} + +FUNCTION { othermarkup } + { duplicate$ empty$ + { pop$ " {}" } + { " {" swap$ * "}" * } + if$ +} + +FUNCTION {article.in.journal} +{ duplicate$ empty$ + { pop$ "" } + { author missing$ + { title missing$ + 'skip$ + { journaltitlemarkup "" swap$ * } + if$ + } + { journaltitlemarkup "" swap$ * } + if$ + } + if$ +} + +FUNCTION {format.names} % NEW v0.5 +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ll}" format.name$ 't := t lastnamemarkup 't := + s nameptr "{ff}" format.name$ othermarkup 'u := + s nameptr "{f.}" format.name$ othermarkup 'v := + s nameptr "{vv}" format.name$ othermarkup 'w := + s nameptr "{jj}" format.name$ othermarkup 'x := + t u * v * w * x * 't := + nameptr #1 > + { namesleft #1 > + { numnames #3 > + { "" * } + { numnames #3 < + { "\Bibbtasep " * t * } % between (exactly) two authors + { "\Bibbfsasep " * t * } % between first and second author (if more than two) + if$ + } + if$ + } + { t "\bibnf {others} {} {} {} {}" = + t "\bibnf {others} {} {} {} {} \edfont {\editorsname}" = or + numnames #3 > or + { "\bibIMfont {\Bibetal}" * } + { numnames #3 < + { "\Bibbtasep " * t * } % between (exactly) two authors + { "\Bibbstasep " * t * } % between second and third author + if$ + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.editor.names} % NEW v0.5 +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ll}" format.name$ 't := t editorlastnamemarkup 't := + s nameptr "{ff}" format.name$ othermarkup 'u := + s nameptr "{f.}" format.name$ othermarkup 'v := + s nameptr "{vv}" format.name$ othermarkup 'w := + s nameptr "{jj}" format.name$ othermarkup 'x := + t u * v * w * x * 't := + nameptr #1 > + { namesleft #1 > + { numnames #3 > + { "" * } + { numnames #3 < + { "\Bibbtesep " * t * } % between (exactly) two editors + { "\Bibbfsesep " * t * } % between first and second editor (if more than two) + if$ + } + if$ + } + { t "\bibenf {others} {} {} {} {}" = + t "\biblenf {others} {} {} {} {}" = or + t "\bibenf {others} {} {} {} {} \edfont {\editorsname}" = or + t "\biblenf {others} {} {} {} {} \edfont {\editorsname}" = or + numnames #3 > or + { "\bibIMfont {\Bibetal}" * } + { numnames #3 < + { "\Bibbtesep " * t * } % between (exactly) two editors + { "\Bibbstesep " * t * } % between second and third editor + if$ + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.name.sig} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff}{ vv}{ ll}{ jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { "" * t * } + { t "others" = + { " et al." * } + { "" * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {indexmarkup} +{ duplicate$ empty$ + { pop$ "{}" } + { "{" swap$ * "}" * } + if$ +} + +FUNCTION {format.names.for.index} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ll}" format.name$ 't := t indexmarkup 't := + s nameptr "{ff}" format.name$ indexmarkup 'u := + s nameptr "{f.}" format.name$ indexmarkup 'v := + s nameptr "{vv}" format.name$ indexmarkup 'w := + s nameptr "{jj}" format.name$ indexmarkup 'x := + t u * v * w * x * 't := + t "{others}{}{}{}{}" = + 'skip$ + { nameptr #1 > + { namesleft #1 > + { "; " * t * } + { + t "others" = + 'skip$ + { "; " * t * } + if$ + } + if$ + } + 't + if$ + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.founders} +{ founder empty$ + 'skip$ + { author empty$ + 'skip$ + { " in: " * } + if$ + founder format.names "\foundername" * * + editor empty$ + 'skip$ + { author empty$ + { "\afterfoundersep {}" * } + 'skip$ + if$ + } + if$ + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { author empty$ + { editor format.editor.names + editortype empty$ + { editor num.names$ #1 > + { "\fsted {\editorsname}" * } + { "\fsted {\editorname}" * } + if$ + } + { "\fsted {(" editortype * ")}" * * } + if$ + } + { founder empty$ + { "\bibfnfont {;} " * } + { type$ "commented" = + { "\afterfoundersep {}" * } + { "\bibfnfont {;} " * } + if$ + } + if$ + editor format.editor.names * + editortype empty$ + { editor num.names$ #1 > + { " \edfont {\editorsname}" * } + { " \edfont {\editorname}" * } + if$ + } + { " \edfont {(" editortype * ")}" * * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.snd.editors} +{ editor empty$ + { "" * } + { author empty$ + { editortype empty$ + { editor num.names$ #1 > + { "\snded {\sndeditorsname}" * } + { "\snded {\sndeditorname}" * } + if$ + } + { "\snded {(" editortype * ")}" * * } + if$ + } + 'skip$ + if$ + } + if$ +} + +FUNCTION { format.howcited } +{ "} {\bibhowcited}" format.endnote * } + +FUNCTION {fin.entry.endnote} +{ " \jbdoitem {" * + author empty$ + 'skip$ + { author format.names.for.index * } + if$ + "} {" + editor empty$ + 'skip$ + { editor format.names.for.index * } + if$ + "} {" * + organization empty$ + 'skip$ + { "{" organization * "}{}{}{}{}" * * } + if$ + "}" * * write$ + annote missing$ + { " \bibAnnoteFile {" cite$ * "}" * write$ newline$ } + { " \bibAnnote {" annote * "}" * write$ newline$ } + if$ +} + +FUNCTION {count.authors.or.editors} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { "" 't := + nameptr #1 > + { namesleft #1 > + { "" * } + { "s" * } % more than one author/editor, append `s' + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION { set.after.author.sep } +{ author missing$ + { editor missing$ + { organization missing$ + { archive missing$ + { "} {empty} {} {" } + { "} {" archive format.name.sig * "} {} {" * } + if$ + } + { "} {" organization "} {org} {" * * } + if$ + } + { "} {" editor format.name.sig * "} {ed" editor count.authors.or.editors "} {" * * * } + if$ + } + { "} {" author format.name.sig * "} {au" author count.authors.or.editors "} {" * * * } + if$ + author empty$ + { format.snd.editors } + 'skip$ + if$ + "" * +} + + +FUNCTION {format.names.info} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff }{vv }{ll}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { " " * t * } + { t "others" = + { " et al." * } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION { format.howcited.comment } +{ edition empty$ + { "} {\bibcommenthowcited}" format.endnote * } + { "} {\bibcommenthowcited}" format.endnote * * + author empty$ editor empty$ not and + { " \jbauthorinfo {" editor format.names.info " " title * * * "}{" cite$ "}" * * * } + { author empty$ shortauthor empty$ not and + { " \jbauthorinfo {" shortauthor format.names.info " " title * * * "}{" cite$ "}" * * * } + { " \jbauthorinfo {" author format.names.info " " title * * * "}{" cite$ "}" * * * } + if$ + } + if$ + } + if$ +} + +FUNCTION { format.howcited.artperiod } +{ "} {\bibartperiodhowcited}" format.endnote * } + +FUNCTION {format.proceed.organization} +{ organization empty$ + { "" } + { organization " \organizationname {}" * } + if$ +} + +FUNCTION {format.titleaddon} +{ title empty$ + { "" } + { titleaddon empty$ + { "" } + { titleaddon "\bibatsep\ " * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { "\bibtfont {" title check.punct.instead.of.add.period * format.titleaddon * } + if$ +} + +FUNCTION {format.artperiodincoll.title} +{ title empty$ + { "" } + { "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * } + if$ +} + +FUNCTION {format.volumetitle} +{ volumetitle empty$ + { "" } + { volume empty$ + { "There's a volumetitle but no volume in " cite$ * warning$ volumetitle ", " * } + { volumetitle ", " * } + if$ + } + if$ +} + +FUNCTION {add.extra.label} +{ extra.label "" = + 'skip$ + { "\bibel {" extra.label * "}" * * } + if$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "There's a month but no year in " cite$ * warning$ month } + if$ + } + { month empty$ + { edition empty$ + 'skip$ + { "\jbssedbd {" convert.edition.superscript extract.num * "}" * * } + if$ + year + add.extra.label + } + { month " " * + edition empty$ + 'skip$ + { "\jbssedbd {" convert.edition.superscript extract.num * "}" * * } + if$ + year * + add.extra.label + } + if$ + } + if$ +} + +FUNCTION {format.update} +{ updated missing$ not + { "\updatesep {} \updatename {} " * updated * } + 'skip$ + if$ +} + +FUNCTION {oaddress.opublisher.oyear.format} +{ type$ "book" = type$ "inbook" = type$ "incollection" = or or + { oyear empty$ + { opublisher empty$ + { oaddress empty$ + 'skip$ + { oaddress "\osep {} " * * } + if$ + } + { oaddress empty$ + { opublisher "\osep {} " * * } + { oaddress "\bpubaddr {} " * opublisher "\osep {} " * * * } + if$ + } + if$ + } + { year empty$ + { "oyear without year in " cite$ * warning$ } + 'skip$ + if$ + opublisher empty$ + { oaddress empty$ + { oyear * "\osep {} \reprintname {}, " * } + { oaddress "\bibbdsep {} " * oyear "\osep {} " * * * } + if$ + } + { oaddress empty$ + { opublisher * "\bibbdsep {} " * oyear "\osep {} " * * } + { oaddress "\bpubaddr {} " * opublisher "\bibbdsep {} " * * oyear "\osep {} " * * * } + if$ + } + if$ + } + if$ + } + 'skip$ + if$ +} + +FUNCTION {make.translators} +{ before.all 'output.state := + translator empty$ + { flanguage empty$ + { "" } + { "\translator {}{" flanguage "l" change.case$ * "}" * + type$ "incollection" = not + type$ "article" = not + and + { "{1} " * } + { type$ "incollection" = + { booktitle empty$ + { "{} " * } + { "{1} " * } + if$ + } + { type$ "article" = + { "{1}" * } + { series empty$ + { "{} " * } + { "{1} " * } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + { "\translator {" translator * "}" * + flanguage empty$ + { "{}" * } + { "{" * flanguage "l" change.case$ * "}" * } + if$ + type$ "incollection" = not + type$ "article" = not + and + { "{1} " * } + { + type$ "incollection" = + { booktitle empty$ + { "{} " * } + { "{1} " * } + if$ + } + { type$ "article" = + { "{1} " * } + { series empty$ + { "{} " * } + { "{1} " * } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + before.all 'output.state := +} + + +FUNCTION {checked.inst} +{ institution empty$ + { " \apyformat {" * + oaddress.opublisher.oyear.format + } + { address empty$ not + { " \apyformat {" * } + 'skip$ + if$ + } + if$ +} + +FUNCTION {format.address.publisher.year} +{ publisher empty$ + { address empty$ + { year empty$ + { "Neither address nor year in " cite$ * warning$ "" } + { "No address in " cite$ * warning$ + institution empty$ + { " \apyformat {" oaddress.opublisher.oyear.format format.date * "}" * } + { " \apyformat {" institution * "\bibbdsep {} " * format.date "}" * * } + if$ + } + if$ + } + { year empty$ + { checked.inst address "}" * } + { checked.inst address "\bibbdsep {} " format.date * "}" * * } + if$ + } + if$ + } + { address empty$ + { year empty$ + { "There's only a publisher (no address, no year) in " cite$ * warning$ publisher } + { checked.inst publisher "\bibbdsep {} " * format.date "}" * * } + if$ + } + { year empty$ + { checked.inst address * "\bpubaddr {} " publisher "}" * * }% + { checked.inst address * "\bpubaddr {} " publisher "\bibbdsep {} " * format.date "}" * * * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.howpublished.address.year} +{ howpublished empty$ + { address empty$ + { year empty$ + { "Neither address nor year in " cite$ * warning$ "" } + { "No address in " cite$ * warning$ format.date } + if$ + } + { " \apyformat {" oaddress.opublisher.oyear.format address * "\bibbdsep {} " * format.date "}" * * } + if$ + } + { address empty$ + { year empty$ + { "There's only a howpublished (no address, no year) in " cite$ * warning$ howpublished } + { " \apyformat {" oaddress.opublisher.oyear.format howpublished * "\bibbdsep {} " * format.date "}" * * } + if$ + } + { year empty$ + { " \apyformat {" oaddress.opublisher.oyear.format address * "\bpubaddr {} " * howpublished "}" * * } + { " \apyformat {" oaddress.opublisher.oyear.format address * "\bpubaddr {} " * howpublished * "\bibbdsep {} " * format.date "}" * * } + if$ + } + if$ + } + if$ +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #4 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {bibvol.tie.or.space.connect} +{ duplicate$ text.length$ #4 < + { "~" } + { "{} " } + if$ + swap$ * * +} + +FUNCTION {format.btitle}{ title emphasize format.titleaddon * } + +FUNCTION {format.btitle.vol} +{ number empty$ + { series empty$ + { volume empty$ + { title emphasize format.titleaddon * } + { + title emphasize format.titleaddon * " \volumeformat {" volume * "} " * * + } + if$ + } + { volume empty$ + { title emphasize format.titleaddon * } + { + title emphasize format.titleaddon * "\volumeformat {" volume * "} " * * series "\bibatsep\ " * * + } + if$ + } + if$ + } + { title emphasize format.titleaddon * } + if$ +} + +FUNCTION {format.btitle.vol.inbook} +{ number empty$ + { series empty$ + { volume empty$ + { "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * } + { "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * + " \volumeformat {" volume * "} " * * + } + if$ + } + { volume empty$ + { "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * } + { series emphasize + "\volumeformat {" volume * "} " * * + "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * * } + if$ + } + if$ + } + { "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { author empty$ title empty$ and + 'skip$ + { " " * } + if$ + urldate empty$ + {"\jburluse {" cite$ * "}" * } + {"\jburluse {" cite$ * "}\bibbudcsep {}\urldatecomment " * urldate * } + if$ + } + if$ +} + +FUNCTION {format.naked.url} +{ url empty$ + { "" } + { urldate empty$ + { title empty$ + 'skip$ + { title emphasize * } + if$ + "\jburluse {" cite$ * "}" * + } + { title empty$ + 'skip$ + { title emphasize * } + if$ + "\jburluse {" cite$ * "}\bibbudcsep {}\urldatecomment " * urldate * + } + if$ + } + if$ +} + +FUNCTION {format.series.number} +{ volume empty$ + { number empty$ + { series empty$ + { "" } + { " \numberandseries {}{" series * "}" * } + if$ + } + { series empty$ + { " \numberandseries {" number * "}{}" * "There's a number but no series in " cite$ * warning$ } + { " \numberandseries {" number * "}{" * series "}" * * } + if$ + } + if$ + } + { series empty$ + { "" } + { type$ "proceedings" = + { " \numberandseries {}{" series * "}" * } % { " (" series * ")" * } + { "" } + if$ + } + if$ + } + if$ +} + +FUNCTION {first.ed} { "\firstedname" } +FUNCTION {second.ed}{ "\secondedname" } +FUNCTION {third.ed} { "\thirdedname" } +FUNCTION {fourth.ed}{ "\fourthedname" } +FUNCTION {fifth.ed} { "\fifthedname" } +FUNCTION {th.ed} { "\thedname" } + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { first.ed 't := } + { s "second" = s "2" = or + { second.ed 't := } + { s "third" = s "3" = or + { third.ed 't := } + { s "fourth" = s "4" = or + { fourth.ed 't := } + { s "fifth" = s "5" = or + { fifth.ed 't := } + { s #1 #1 substring$ is.num + { s th.ed * 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { "\jbedition {" * convert.edition "~\editionname {}\jbaensep} " * }% dot or not ??????? + if$ +} + +FUNCTION { format.isbn.issn } +{ isbn empty$ + { issn empty$ + { "" } + { "\jbissn {" issn n.dashify * "}" * } + if$ + } + { "\jbisbn {" isbn n.dashify * "}" * } + 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 empty$ + { "" } + { " \jbPages{" pages n.dashify * "}" * } + if$ +} + +FUNCTION {multi.pagerange.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "b" = + swap$ "/" = or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {check.missing.pages} +{ pages empty$ + { "Empty pages in " cite$ * warning$ } + { pages multi.pagerange.check + { "" * } + { type$ "article" = type$ "periodical" = or + { "There's only a starting page, no pagerange in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + } + if$ +} + +FUNCTION {format.pages.book} +{ pages empty$ + { "" } + { " \jbpages {" pages " \bibtotalpagesname}" *} + if$ +} + +FUNCTION {format.totalpages} +{ totalpages empty$ + { "" } + { + ", " totalpages "~\bibtotalpagesname" * * + } + if$ +} + +FUNCTION {format.vol.year.num.pages} +{ volume empty$ + { "" } + { " \artvolumeformat {" volume * "}" * + year empty$ + { "There's a volume but no year in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + month empty$ + 'skip$ + { "\ " month * * } + if$ + year empty$ + 'skip$ + { " \artyearformat {" year * add.extra.label "}" * * } + if$ + number empty$ + 'skip$ + { "\artnumberformat {" number * "}" * * } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { "" format.pages * * } + if$ + } + if$ +} + +FUNCTION {format.vol.bracedyear.num.pages} +{ volume empty$ + { "" } + { " \pervolumeformat {" volume * "}" * + year empty$ + { "There's a volume but no year in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + year empty$ + 'skip$ + { " \peryearformat {" year * add.extra.label "}" * * } + if$ + month empty$ + 'skip$ + { ", " month * * } + if$ + number empty$ + 'skip$ + { ", \pernumberformat {" number * "}" * * } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { "" format.pages * * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\unskip.\,-- \bibchapterlongname" } + { "\unskip.\,-- " type * } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { format.pages * } + if$ + } + if$ +} + +FUNCTION {format.booktitleaddon} +{ booktitle empty$ + { "" } + { booktitleaddon empty$ + { "" } + { booktitleaddon } + if$ + } + if$ +} + +FUNCTION {format.incoll.editor.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { volume empty$ + { "\incolledformat {}{}{" booktitle incollbooktitlemarkup format.booktitleaddon * * "}{}" * + booktitleaddon empty$ + { "{} " * } + { "{1} " * } + if$ + } + { "\incolledformat {}{}{" booktitle incollbooktitlemarkup format.booktitleaddon * * "}{" * volume * "}" * + booktitleaddon empty$ + { "{} " * } + { "{1} " * } + if$ + } + if$ + } + { volume empty$ + { "\incolledformat {" + editor empty$ + { "" } + { editor format.editor.names "}" * * + editortype empty$ + { editor num.names$ #1 > + { "{\edfont {\editorsname}}{" * } + { "{\edfont {\editorname}}{" * } + if$ + } + { "{\edfont {(" * editortype * ")}}{" * } + if$ + } + if$ + booktitle incollbooktitlemarkup * format.booktitleaddon * "}{}" * + booktitleaddon empty$ + { "{} " * } + { "{1} " * } + if$ + } + { "\incolledformat {" * + editor empty$ + { "" } + { editor format.editor.names "}" * * + editortype empty$ + { editor num.names$ #1 > + { "{\edfont {\editorsname}}{" * } + { "{\edfont {\editorname}}{" * } + if$ + } + { "{\edfont {(" * editortype * ")}}{" * } + if$ + } + if$ + booktitle incollbooktitlemarkup * format.booktitleaddon * "}{" volume * "}" * + booktitleaddon empty$ + { "{} " * } + { "{1} " * } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.tr.number.jur} +{ type empty$ + { number empty$ + { " -- \technicalreportname {} " } + { "~(" number * ").\,-- \technicalreportname {} " * } + if$ + } + { number empty$ + { " -- " type * } + { "~(" number * ").\,-- " type * " " * * } + if$ + } + if$ +} + +FUNCTION {format.article.crossref.bracedyear} +{ key empty$ + { journal empty$ + { "Need key or journal for " cite$ * " to crossref " * crossref * warning$ "" } + { "\bibJTsep\bibjtfont {" journal * check.punct.instead.of.add.period.art * } + if$ + volume empty$ + { "No volume in " cite$ * warning$ } + { " \pervolumeformat {" volume * "} " * } + if$ + year empty$ + { "No year in " cite$ * warning$ } + { "\peryearformat {" year * add.extra.label "}" * * } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { format.pages * } + if$ + } + if$ + } + { "" key * } + if$ + "\ \protect\jbcrossrefchecked {" * crossref * "}\unskip" * +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "Need key or journal for " cite$ * " to crossref " * crossref * warning$ "" } + { "\bibJTsep\bibjtfont {" journal * check.punct.instead.of.add.period.art * } + if$ + } + { "" key * } + if$ + year empty$ + 'skip$ + { year * } + if$ + " \protect\jbcrossrefchecked {" crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "Need editor, key, or series for " cite$ * " to crossref " * crossref * warning$ "" * } + { "" * } + if$ + } + { key * } + if$ + } + { "" * } + if$ + volume empty$ + { "Empty volume in " cite$ * "'s crossref of " * crossref * warning$ "" + " \protect\jbcrossrefchecked {" * crossref * "}\unskip" * } + { " \protect\jbcrossrefchecked[" * volume * "]{" * crossref "}\unskip" * } + if$ +} + +FUNCTION {format.incoll.inproc.crossref} +{ " \protect\jbincollcrossref {" * crossref * "}" * + editor empty$ + { "{}" * } + { "{1}" * } + if$ + format.pages % *<== 0.5f removed too. +} + +FUNCTION { format.editors.organization } +{ organization empty$ + 'skip$ + { type$ "misc" = + { organization } + { author empty$ + { editor empty$ + { " " organization * " \organizationname {}" * } + { "; " organization * " \organizationname {}" * } + if$ + } + { "; " organization * " \organizationname {}" * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.address.organization.manual} +{ author empty$ + { organization empty$ + { address empty$ + 'skip$ + { address output part.of.sentence + year empty$ not { "\bibbdsep {}" *} 'skip$ if$ + } + if$ + } + 'skip$ + if$ + } + { address empty$ + { organization empty$ + 'skip$ + { organization output part.of.sentence + year empty$ not { "\bibbdsep {}" *} 'skip$ if$ + } + if$ + } + { organization empty$ + { address output part.of.sentence } + { address "\bpubaddr {} " * organization * output part.of.sentence } + if$ + year empty$ not { "\bibbdsep {}" *} 'skip$ if$ + } + if$ + } + if$ +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.artperiodincoll.title "title" output.check + crossref missing$ + { journal article.in.journal output.nonnull + new.sentence + format.vol.year.num.pages output + } + { format.article.crossref output.nonnull } + if$ + format.url output + format.note + format.isbn.issn output + format.howcited.artperiod output + check.missing.pages + fin.entry.endnote +} + +FUNCTION {commented} +{ output.bibitem + author empty$ + { editor empty$ + { format.founders } + { format.founders format.editors "editor" output.check } + if$ + } + { editor empty$ + { format.authors format.founders output.nonnull } + { format.authors format.founders format.editors output.nonnull } + if$ + } + if$ + set.after.author.sep output + crossref missing$ + { format.btitle.vol "title" output.check } + { format.btitle "title" output.check } + if$ + format.volumetitle output + format.edition output + format.address.publisher.year "publisher" output.check + format.update + new.sentence + crossref missing$ + { format.series.number output } + { format.book.crossref output.nonnull } + if$ + format.url output + format.pages output + format.note + format.howcited.comment output + fin.entry.endnote +} + +FUNCTION {periodical} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.artperiodincoll.title "title" output.check + crossref missing$ + { journal article.in.journal output.nonnull + new.sentence + format.vol.bracedyear.num.pages output + } + { new.sentence format.article.crossref.bracedyear output.nonnull } + if$ + format.url output + format.note + format.isbn.issn output + format.howcited.artperiod output + fin.entry.endnote +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { editor empty$ + { "" "author and editor" output.check } + { format.editors output.nonnull } + if$ + } + { editor empty$ + { format.authors output.nonnull } + { format.authors "\jbtiafed {" format.editors * "}" * output.nonnull } + if$ + } + if$ + set.after.author.sep output + crossref missing$ + { format.btitle.vol "title" output.check } + { format.btitle "title" output.check } + if$ + author empty$ not editor empty$ not and + { "\jbedafti {\edbyname {} " editor * "," * * "} " * } + 'skip$ + if$ + make.translators output + format.volumetitle output + format.edition output + format.address.publisher.year "publisher" output.check + new.sentence + format.juradiss.book output + crossref missing$ + { format.series.number output } + { format.book.crossref output.nonnull } + if$ + format.url output + format.pages output + format.totalpages output + format.note + format.isbn.issn output + format.howcited output + fin.entry.endnote +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { editor empty$ + { format.authors output.nonnull } + { format.authors format.editors output.nonnull } + if$ + } + if$ + set.after.author.sep output + crossref missing$ + { chapter empty$ + { "There's no chapter in " cite$ * warning$ "" * } + { type empty$ + { "\Bibchaptername{}" } + { type } + if$ + chapter tie.or.space.connect " In " * * + } + if$ + format.btitle.vol.inbook "title" output.check + make.translators output + format.volumetitle output + format.edition output + format.address.publisher.year "publisher" output.check + new.sentence + format.series.number output + format.url output + format.pages "pages" output.check + format.note + format.isbn.issn output + } + { chapter empty$ + { "There's no chapter in " cite$ * warning$ "" * + format.btitle.vol.inbook "title" output.check + } + { type empty$ + { "\Bibchaptername{}" } + { type } + if$ + chapter tie.or.space.connect "" * * + } + if$ + format.volumetitle output + format.book.crossref output.nonnull + format.url output + format.pages "pages" output.check + format.note + } + if$ + part.of.sentence + format.howcited output + fin.entry.endnote +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.artperiodincoll.title "title" output.check + make.translators output + crossref missing$ + { format.incoll.editor.booktitle "booktitle" output.check + format.volumetitle output + format.edition output + format.address.publisher.year "publisher" output.check + new.sentence + format.series.number output + format.url output + format.isbn.issn output + part.of.sentence + format.chapter.pages output + format.note + } + { format.volumetitle output + format.incoll.inproc.crossref output.nonnull + format.url output + format.note + } + if$ + format.howcited output + check.missing.pages + fin.entry.endnote +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.artperiodincoll.title "title" output.check + crossref missing$ + { format.incoll.editor.booktitle "booktitle" output.check + address empty$ + { organization new.sentence.checka + organization output + part.of.sentence + format.address.publisher.year output + } + { format.address.publisher.year "publisher" output.check } + if$ + new.sentence + series empty$ + 'skip$ + { format.series.number output } + if$ + format.url output + format.note + format.isbn.issn output + part.of.sentence + format.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.url output + format.note + } + if$ + format.howcited output + fin.entry.endnote +} + +FUNCTION {conference}{inproceedings} + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { "\bibnf{" organization * "} {} {} {} {}" * output.nonnull } + if$ + } + { format.authors output.nonnull } + if$ + set.after.author.sep output + format.btitle "title" output.check + format.edition output + format.address.organization.manual + format.date output + pages set.period.dash.check + format.pages.book output + format.url output + format.note + format.howcited output + fin.entry.endnote +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.btitle "title" output.check + format.thesis output + set.comma.pages.check + pages new.sentence.checka + format.pages output + format.url output + format.note + format.howcited output + fin.entry.endnote +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.btitle "title" output.check + format.thesis output + set.comma.pages.check + pages new.sentence.checka + format.pages output + format.url output + format.note + format.howcited output + fin.entry.endnote +} + +FUNCTION {jurthesis} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.btitle "title" output.check + format.thesis output + set.comma.pages.check + pages new.sentence.checka + format.pages output + format.url output + format.note + format.howcited output + fin.entry.endnote +} + +FUNCTION {booklet} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.title "title" output.check + format.howpublished.address.year output + format.note + format.url output + format.howcited output + fin.entry.endnote +} + +FUNCTION {misc} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.title output + format.howpublished.address.year output + format.note + format.url output + format.howcited output + fin.entry.endnote +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization empty$ + 'skip$ + { "\biblnfont {" organization * " \organizationname}" * output } + if$ + } + { format.editors output.nonnull } + if$ + set.after.author.sep output + format.btitle "title" output.check + new.sentence + editor empty$ + 'skip$ + { format.proceed.organization output } + if$ + new.sentence + format.series.number output.nonnull + volume empty$ + { "" output.nonnull } + { "\volumeformat {" volume * "} " * "volume" output.check } + if$ + format.address.publisher.year "publisher" output.check + pages set.period.dash.check + format.pages.book output + format.url output + format.note + format.isbn.issn output + format.howcited output + fin.entry.endnote +} + +FUNCTION {techreport} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { editor empty$ + { format.authors output.nonnull } + { format.authors format.editors output.nonnull } + if$ + } + if$ + set.after.author.sep output + format.title "title" output.check + institution new.sentence.checka + format.address.publisher.year output + number new.sentence.checka + format.tr.number.jur "number" output.check + pages set.period.dash.check + format.pages.book output + format.url output + format.note + format.isbn.issn output + format.howcited output + fin.entry.endnote +} + +FUNCTION {www} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.naked.url output + format.howcited output + fin.entry.endnote +} + +FUNCTION {lexicon} +{ output.bibitem + set.after.author.sep output + crossref missing$ + { format.btitle.vol "title" output.check } + { format.btitle "title" output.check } + if$ + author empty$ + { editor empty$ + 'skip$ + { "\edbyname{} " * editor format.editor.names "," * * } + if$ + } + { "\byname{} " author format.names * "," * * } + if$ + make.translators output + format.volumetitle output + format.edition output + format.address.publisher.year "publisher" output.check + new.sentence + format.juradiss.book output + crossref missing$ + { format.series.number output } + { format.book.crossref output.nonnull } + if$ + format.url output + format.pages output + format.totalpages output + format.note + format.isbn.issn output + format.howcited output + fin.entry.endnote +} + +STRINGS { last.archive last.subarchive } + +FUNCTION {init.last.archive } +{ "" 'last.archive := + "" 'last.subarchive := } + +FUNCTION {archival} +{ output.bibitem + archive empty$ + { "" 'last.archive := } + { archive last.archive = + { "} {" archive format.name.sig * "} {} {\jbsamearch{} " * * } + { "\bibanfont{" archive * "archive" output.check + shortarchive empty$ + 'skip$ + { " \jbshortarchformat{" shortarchive * "}" * * } + if$ + "}" * + "} {" archive format.name.sig * "} {} {\jbnotsamearch{} " * * + } + if$ + archive 'last.archive := + } + if$ + subarchive empty$ + { "" 'last.subarchive := } + { subarchive last.subarchive = + 'skip$ + { subarchive output + shortsubarchive empty$ + 'skip$ + { " \jbshortsubarchformat{" shortsubarchive * "}" * * } + if$ + "\jbsubarchsep{} " * + } + if$ + subarchive 'last.subarchive := + } + if$ + sig1 empty$ + 'skip$ + { "\jbarchsig {" * + subarchive empty$ + 'skip$ + { "\jbsamesubarchindent{} " * } + if$ + sig1 * + sig2 empty$ + 'skip$ + { ". " sig2 * * + sig3 empty$ + 'skip$ + { ". " sig3 * * + sig4 empty$ + 'skip$ + { ". " sig4 * * } + if$ + } + if$ + } + if$ + "} {" * + } + if$ + archname missing$ + { "}" * } + { archname "}" * output } + if$ + format.howcited output + fin.entry.endnote +} + +FUNCTION {unpublished}{misc} + +FUNCTION {default.type}{misc} + +MACRO {jan} {"\janname\ "} +MACRO {feb} {"\febname\ "} +MACRO {mar} {"\marname\ "} +MACRO {apr} {"\aprname\ "} +MACRO {may} {"\mayname\ "} +MACRO {jun} {"\junname\ "} +MACRO {jul} {"\julname\ "} +MACRO {aug} {"\augname\ "} +MACRO {sep} {"\sepname\ "} +MACRO {oct} {"\octname\ "} +MACRO {nov} {"\novname\ "} +MACRO {dec} {"\decname\ "} + +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 := % for two: (Jones/de~Bruijn) + s #1 "{vv~}{ll}" format.name$ % for three: (Jones/de~Bruijn/Smith) + s num.names$ duplicate$ % for more: (Jones et\,al.) + #2 < + 'pop$ % for just one person + { duplicate$ duplicate$ + #3 > + swap$ s swap$ "{ff }{vv }{ll}{ jj}" format.name$ "others" = + or + { pop$ "\Bibetal" * } % for 4 or more, or last is `others' + { #2 = + { "\jbbtasep " * s #2 "{vv~}{ll}" format.name$ * } % for (exactly) two + { "\jbbfsasep " * s #2 "{vv~}{ll}" format.name$ * % for three + "\jbbstasep " * s #3 "{vv~}{ll}" format.name$ * + } + if$ + } + if$ + } + if$ + year missing$ + 'skip$ + { "\jbdy {" year * "}" * * }% dummy year to prevent from `1993a' and `2001b' for works by the same author + if$ +} + +FUNCTION {format.editor.lab.names} +{ 's := % for two: (Jones/de~Bruijn) + s #1 "{vv~}{ll}" format.name$ % for three: (Jones/de~Bruijn/Smith) + s num.names$ duplicate$ % for more: (Jones et\,al.) + #2 < + 'pop$ % for just one person + { duplicate$ duplicate$ + #3 > + swap$ s swap$ "{ff }{vv }{ll}{ jj}" format.name$ "others" = + or + { pop$ "\Bibetal" * } % for 4 or more, or last is `others' + { #2 = + { "\jbbtesep " * s #2 "{vv~}{ll}" format.name$ * } % for (exactly) two + { "\jbbfsesep " * s #2 "{vv~}{ll}" format.name$ * % for three + "\jbbstesep " * s #3 "{vv~}{ll}" format.name$ * + } + if$ + } + if$ + } + if$ + year missing$ + 'skip$ + { "\jbdy {" year * "}" * * }% dummy year to prevent from `1993a' and `2001b' for works by the same author + 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.editor.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.editor.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = type$ "inbook" = or type$ "incollection" = or type$ "commented" = or type$ "lexicon" = or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'label := +} + +FUNCTION {calc.dummy.label} +{ type$ "book" = type$ "inbook" = or type$ "incollection" = or type$ "commented" = or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'dummy.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ ff{ }}{ vv{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "\bibnf {others} {} {} {} {}" = and + { "\Bibetal" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "Der " #4 + "Die " #4 + "Das " #4 + "Ein " #4 + "Eine " #5 + "The " #4 t chop.word + chop.word + chop.word + chop.word + chop.word + 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 {archival.sort} +{ archive empty$ + { shortarchive empty$ + { "to sort, need archive or shortarchive in " cite$ * warning$ "" } + { shortarchive sortify } + if$ + } + { archive sortify } + if$ +} + +FUNCTION {presort} +{ calc.label + calc.dummy.label + dummy.label sortify " " * + sortkey empty$ + { type$ "book" = + type$ "incollection" = or + type$ "inbook" = or + type$ "commented" = or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + { type$ "archival" = + 'archival.sort + 'author.sort + if$ + } + if$ + } + if$ + } + { sortkey sort.format.names } + if$ + type$ "archival" = not + { " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + } + { " " + * + subarchive field.or.null sortify + * + " " + * + sig1 field.or.null sortify + * + " " + * + sig2 field.or.null sortify + * + " " + * + sig3 field.or.null sortify + * + " " + * + sig4 field.or.null sortify + * + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +%% FUNCTION {before.sort} { "BEFORE SORT:" top$ } +%% EXECUTE {before.sort} +%% FUNCTION {print.sort.keys} {sort.key$ top$} +%% ITERATE {print.sort.keys} + +SORT + +%% FUNCTION {after.sort} {"AFTER SORT:" top$} +%% EXECUTE {after.sort} +%% ITERATE {print.sort.keys} + + +INTEGERS { last.extra.num number.label extra.extra.num } + +FUNCTION {make.extra.label} +{ last.extra.num #122 < + { last.extra.num #1 + } + { extra.extra.num #0 = + { "a" chr.to.int$ } + { extra.extra.num #1 + } + if$ + 'extra.extra.num := + "a" chr.to.int$ } + if$ + 'last.extra.num := + extra.extra.num #0 = + { last.extra.num int.to.chr$ } + { extra.extra.num int.to.chr$ 'extra.label := + extra.label last.extra.num int.to.chr$ * } + if$ +} + +FUNCTION {forward.pass} +{ w dummy.label = + { make.extra.label 'extra.label := } + { "a" chr.to.int$ 'last.extra.num := + #0 'extra.extra.num := + "" 'extra.label := + dummy.label 'w := + } + if$ + number.label #1 + 'number.label := +} + +FUNCTION {reverse.pass} +{ x "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'x := + extra.label + duplicate$ empty$ + 'skip$ + { "" swap$ * } + if$ + 'extra.label := + dummy.label extra.label * 'dummy.label := +} + +ITERATE {forward.pass} +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} { sort.label 'sort.key$ := } + +ITERATE {bib.sort.order} + +SORT + +FUNCTION {set.current.authors} +{ author empty$ + { editor empty$ + { organization empty$ + { cite$ 'current-authors := } + { organization 'current-authors := } + if$ + } + { editor format.names #1 entry.max$ substring$ 'current-authors := } +%% ^^^^^^^^^^^^ NOT format.editor.names, otherwise \jb@@arg is always = 0!!! + if$ + } + { author format.names #1 entry.max$ substring$ 'current-authors := } + if$ +} + +STRINGS { previous-authors } + +FUNCTION {initialize.previous.authors} { "" 'previous-authors := } + +FUNCTION {mark.repeat.authors} +{ current-authors previous-authors = + { #1 'repeat-authors := } + 'skip$ + if$ + current-authors 'previous-authors := +} + +ITERATE {set.current.authors} + +EXECUTE {initialize.previous.authors} + +ITERATE {mark.repeat.authors} + +EXECUTE {initialize.previous.authors} + +REVERSE {mark.repeat.authors} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "%" write$ newline$ + "% This bibliography was produced by using jurabib.bst" write$ newline$ + "%" write$ newline$ + "\begin{thebibliography}{}" 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 file `jurabib.bst'. diff --git a/Master/texmf-dist/bibtex/bst/jurabib/jureco.bst b/Master/texmf-dist/bibtex/bst/jurabib/jureco.bst new file mode 100644 index 00000000000..3c8dcc60ca0 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/jurabib/jureco.bst @@ -0,0 +1,2809 @@ +%% +%% This is file `jureco.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% jurabib.dtx (with options: `jurecobst') +%% ---------------------------------------- +%% BibTeX style for use with the jurabib package version v0.6 +%% Copyright (C) 1999-2004 Jens Berger (http://www.jurabib.org) +%% See jurabib.ins for the copyright details. +%% +ENTRY{ + address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + volume + year +%% + url + urldate + volumetitle + dissyear + howcited + juratitle + juraauthor + shorttitle + shortauthor + ssedition + titleaddon + booktitleaddon + editortype + sortkey + annote + gender + translator + flanguage + oyear + oaddress + opublisher + updated + totalpages + founder + archive + subarchive + shortarchive + shortsubarchive + sig1 + sig2 + sig3 + sig4 + archname + } + { repeat-authors repeat-titles } + { label dummy.label extra.label sort.label current-authors } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +INTEGERS { colon.after period.dash } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'colon.after := + #5 'period.dash := +} + +STRINGS { s t u v w x } + +FUNCTION {output.nonnull} +{ 's := + output.state after.block = + { write$ } + { output.state before.all = + { write$ } + { output.state colon.after = + { "" * write$ } + { output.state period.dash = + { ", " * write$ } + { output.state mid.sentence = + { " " * write$ } + { write$ } + if$ + } + if$ + } + if$ + } + if$ + after.block '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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition.superscript} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or s "erste" = or + { "1" 't := } + { s "second" = s "2" = or s "zweite" = or + { "2" 't := } + { s "third" = s "3" = or s "dritte" = or + { "3" 't := } + { s "fourth" = s "4" = or s "vierte" = or + { "4" 't := } + { s "fifth" = s "5" = or s "fuenfte" = or + { "5" 't := } + { s "sixth" = s "6" = or s "sechste" = or + { "6" 't := } + { s "seventh" = s "7" = or s "siebte" = or s "siebente" = or + { "7" 't := } + { s "eighth" = s "8" = or s "achte" = or + { "8" 't := } + { s "nineth" = s "9" = or s "neunte" = or + { "9" 't := } + { s #1 #1 substring$ is.num + { s "" * 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {n.dashify} +{ '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 {output.bibitem.fst} +{ newline$ + "\bibitem[{" write$ + shortauthor empty$ + { juraauthor empty$ + { author empty$ + { editor empty$ + { organization empty$ + { archive empty$ + { "empty" write$ } + { archive write$ } + if$ + } + { organization write$ } + if$ + } + { label write$ } + if$ + } + { label write$ } + if$ + } + { juraauthor write$ } + if$ + } + { shortauthor write$ } + if$ + "}%" write$ + sortkey empty$ + 'skip$ + { newline$ "% SORTKEY: [" sortkey * "]" * write$ } + if$ + newline$ + shorttitle empty$ + { juratitle empty$ + { journal empty$ + { " {}%" write$ } + { " {" journal * "}%" * write$ } + if$ + } + { " {" juratitle * "}%" * write$ } + if$ + } + { " {" shorttitle * "}%" * write$ } + if$ + newline$ + repeat-authors + { " {{1}" write$ } + { " {{0}" write$ } + if$ + howcited empty$ + { "{}" write$ } + { "{" howcited * "}" * write$ } + if$ + type$ empty$ + { "{}" write$ } + { "{" type$ * "}" * write$ } + if$ + year empty$ + { type$ "book" = dissyear empty$ not and + { "{" dissyear * write$ + extra.label "" = + skip$ + { "\el {" write$ extra.label write$ "}" write$ } + if$ + "}" write$ + } + { "{}" write$ } + if$ + } + { "{" year * write$ + extra.label "" = + 'skip$ + { "\el {" write$ extra.label write$ "}" write$ } + if$ + "}" write$ + } + if$ + edition empty$ + { "{}" write$ } + { "{" convert.edition.superscript extract.num * "}" * write$ } + if$ + ssedition empty$ + { "{}" write$ } + { "{" ssedition * "}" * write$ } + if$ + language empty$ + { "{}" write$ } + { "{" language * "}" * write$ } + if$ + pages empty$ + { "{}%" write$ } + { "{" write$ pages n.dashify write$ "}%" write$ } + if$ +} + +FUNCTION {output.bibitem.snd} +{ newline$ + publisher empty$ + { address empty$ + { " {" write$ } + { " {" write$ address write$ } + if$ + } + { address empty$ + { " {" write$ } + { " {" write$ address write$ "\bpubaddr {} " write$ publisher write$ } + if$ + } + if$ + "}}%" write$ newline$ + " {" write$ + title empty$ + { "{}%" write$ newline$ } + { "{" title * + type$ "archival" = + { shortarchive empty$ not + { ", In: " shortarchive * * } + { archive empty$ not + { ", In: " archive * * } + 'skip$ + if$ + } + if$ + shortsubarchive empty$ + 'skip$ + { ", " shortsubarchive * * } + if$ + sig1 empty$ + 'skip$ + { ", " sig1 * * + sig2 empty$ + 'skip$ + { ". " sig2 * * + sig3 empty$ + 'skip$ + { ". " sig3 * * + sig4 empty$ + 'skip$ + { ". " sig4 * * } + if$ + } + if$ + } + if$ + } + if$ + pages empty$ + 'skip$ + { " \jbArchPages {" pages n.dashify * "}" * * } + if$ + } + 'skip$ + if$ + "}%" * write$ newline$ } + if$ + gender empty$ + { " {}" write$ } + { " {" gender * "}" * write$ } + if$ + oyear empty$ + { "{}" write$ } + { "{" oyear * "}" * write$ } + if$ + author empty$ + { editor empty$ + { "{4}" write$ }% author and editor empty + { "{3}" write$ }% author empty, editor not + if$ + } + { editor empty$ + { "{2}" write$ }% editor empty, author not + { "{1}" write$ }% both author and editor given + if$ + } + if$ + "{}{}{}{}{}}%" write$ newline$ + " ]{" write$ + cite$ write$ + "}" write$ + url empty$ + 'skip$ + { newline$ " \jburldef {" write$ cite$ write$ "}{" write$ url write$ "}%" write$ } + if$ + newline$ + " \jbbibargs {" write$ + "" + before.all 'output.state := +} + +FUNCTION {output.bibitem} +{ output.bibitem.fst + output.bibitem.snd +} + +FUNCTION {format.note} +{ note empty$ + 'skip$ + { output.state before.all = + {" \jbnote {} {" * note * "} " * } + {" \jbnote {1} {" * note * "} " * } + if$ + } + if$ +} + +FUNCTION {format.endnote} +{ note empty$ + { "" } + { " \jbendnote {" note * "}" * } + if$ +} + + +FUNCTION {format.juradiss.book} +{ dissyear empty$ + { "" } + { type empty$ + { school empty$ + { "Dissyear but no school in " cite$ * warning$ + " (\alsothesisname {} \jurthesisname" * + year empty$ not year missing$ not and + { "\bibbdsep {} " dissyear * } + 'skip$ + if$ + ")" * + } + { " (\alsothesisname {} \jurthesisname, " school * + year empty$ not year missing$ not and + { "\bibbdsep {} " dissyear * * } + 'skip$ + if$ + ")" * + } + if$ + } + { school empty$ + { "Dissyear but no school in " cite$ * warning$ + " (\alsothesisname {} " type * + year empty$ not year missing$ not and + { "\bibbdsep {} " dissyear * } + 'skip$ + if$ + ")" * + } + { " (\alsothesisname {} " type * + ", " school * * + year empty$ not year missing$ not and + { "\bibbdsep {} " dissyear * * } + 'skip$ + if$ + ")" * + } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.thesis} +{ year empty$ + { school empty$ + { "No universtiy in " cite$ * warning$ } + { "There's a university, but no year in " cite$ * warning$ } + if$ + "" + } + { type empty$ + { school empty$ + { "No university in " cite$ * warning$ + type$ "mastersthesis" = + { "\apyformat {\mastersthesisname" address empty$ 'skip$ { ", " address * * } if$ "}" * } + { type$ "jurthesis" = + { "\apyformat {\jurthesisname" address empty$ 'skip$ { ", " address * * } if$ "}" * } + { "\apyformat {\phdthesisname" address empty$ 'skip$ { ", " address * * } if$ "}" * } + if$ + } + if$ + } + { type$ "mastersthesis" = + { "\mastersthesisname, \apyformat {" school * address empty$ 'skip$ { ", " address * * } if$ "}" * } + { type$ "jurthesis" = + { "\jurthesisname, \apyformat {" school * address empty$ 'skip$ { ", " address * * } if$ "}" * } + { "\phdthesisname, \apyformat {" school * address empty$ 'skip$ { ", " address * * } if$ "}" * } + if$ + } + if$ + } + if$ + } + { school empty$ + { "No university in " cite$ * warning$ type } + { type " \apyformat {" * school * address empty$ 'skip$ { ", " address * * } if$ "}" * } + if$ + } + if$ + } + if$ +} + +FUNCTION {set.comma.pages.check} +{ year empty$ + 'skip$ + { pages empty$ + { url empty$ + 'skip$ + { ", " * } + if$ + } + { ", " * } + if$ + } + if$ +} + +FUNCTION {set.period.dash} +{ output.state before.all = + 'skip$ + { period.dash 'output.state := } + if$ +} + +FUNCTION {set.period.dash.check} +{ empty$ + 'skip$ + 'set.period.dash + if$ +} + +FUNCTION {new.sentence} +{ output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ +} + +FUNCTION {part.of.sentence} +{ output.state before.all = + 'skip$ + { mid.sentence 'output.state := } + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + + +FUNCTION {get.final.nonrightbrace.char} +{ { duplicate$ + #-1 #1 substring$ + duplicate$ + "}" = + } + { pop$ + #-2 global.max$ substring$ + } + while$ + swap$ pop$ +} + + +FUNCTION {check.punct.instead.of.add.period} +{ duplicate$ + get.final.nonrightbrace.char + duplicate$ "." = swap$ + duplicate$ "!" = swap$ + "?" = or or + { "} " * } + { "}\bibatsep\ " * } + if$ +} + +FUNCTION {check.punct.instead.of.add.period.art} +{ duplicate$ + get.final.nonrightbrace.char + duplicate$ "." = swap$ + duplicate$ "!" = swap$ + "?" = or or + { "} " * } + { pages empty$ note empty$ url empty$ and and + { "} " * } + { volume empty$ + { pages empty$ + { "}\ajtsep\ " * } + { crossref missing$ + { month empty$ + { "}\ajtsep\ " * } + { "}\ajtsep " * } + if$ + } + { "}\ajtsep " * } + if$ + } + if$ + } + { "}\ajtsep\ " * } + if$ + } + if$ + } + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\bibtfont {" swap$ check.punct.instead.of.add.period * } + if$ +} + +FUNCTION {journaltitlemarkup} +{ duplicate$ empty$ + { pop$ "" } + { "\bibJTsep \bibjtfont {" swap$ check.punct.instead.of.add.period.art * } + if$ +} + +FUNCTION {incollbooktitlemarkup} +{ duplicate$ empty$ + { pop$ "" } + { "\bibbtfont {" swap$ check.punct.instead.of.add.period * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION { lastnamemarkup } +{ duplicate$ empty$ + { pop$ "" } + { "\bibnf {" swap$ * "}" * } + if$ +} + +FUNCTION { editorlastnamemarkup } + { duplicate$ empty$ + { pop$ "" } + { author empty$ + { "\biblenf {" swap$ * "}" * } % lonely editor(s)! + { "\bibenf {" swap$ * "}" * } + if$ + } + if$ +} + +FUNCTION { othermarkup } + { duplicate$ empty$ + { pop$ " {}" } + { " {" swap$ * "}" * } + if$ +} + +FUNCTION {article.in.journal} +{ duplicate$ empty$ + { pop$ "" } + { author missing$ + { title missing$ + 'skip$ + { journaltitlemarkup "" swap$ * } + if$ + } + { journaltitlemarkup "" swap$ * } + if$ + } + if$ +} + +FUNCTION {format.names} % NEW v0.5 +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ll}" format.name$ 't := t lastnamemarkup 't := + s nameptr "{ff}" format.name$ othermarkup 'u := + s nameptr "{f.}" format.name$ othermarkup 'v := + s nameptr "{vv}" format.name$ othermarkup 'w := + s nameptr "{jj}" format.name$ othermarkup 'x := + t u * v * w * x * 't := + nameptr #1 > + { namesleft #1 > + { numnames #3 > + { "" * } + { numnames #3 < + { "\Bibbtasep " * t * } % between (exactly) two authors + { "\Bibbfsasep " * t * } % between first and second author (if more than two) + if$ + } + if$ + } + { t "\bibnf {others} {} {} {} {}" = + t "\bibnf {others} {} {} {} {} \edfont {\editorsname}" = or + numnames #3 > or + { "\bibIMfont {\Bibetal}" * } + { numnames #3 < + { "\Bibbtasep " * t * } % between (exactly) two authors + { "\Bibbstasep " * t * } % between second and third author + if$ + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.editor.names} % NEW v0.5 +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ll}" format.name$ 't := t editorlastnamemarkup 't := + s nameptr "{ff}" format.name$ othermarkup 'u := + s nameptr "{f.}" format.name$ othermarkup 'v := + s nameptr "{vv}" format.name$ othermarkup 'w := + s nameptr "{jj}" format.name$ othermarkup 'x := + t u * v * w * x * 't := + nameptr #1 > + { namesleft #1 > + { numnames #3 > + { "" * } + { numnames #3 < + { "\Bibbtesep " * t * } % between (exactly) two editors + { "\Bibbfsesep " * t * } % between first and second editor (if more than two) + if$ + } + if$ + } + { t "\bibenf {others} {} {} {} {}" = + t "\biblenf {others} {} {} {} {}" = or + t "\bibenf {others} {} {} {} {} \edfont {\editorsname}" = or + t "\biblenf {others} {} {} {} {} \edfont {\editorsname}" = or + numnames #3 > or + { "\bibIMfont {\Bibetal}" * } + { numnames #3 < + { "\Bibbtesep " * t * } % between (exactly) two editors + { "\Bibbstesep " * t * } % between second and third editor + if$ + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.name.sig} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff}{ vv}{ ll}{ jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { "" * t * } + { t "others" = + { " et al." * } + { "" * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {indexmarkup} +{ duplicate$ empty$ + { pop$ "{}" } + { "{" swap$ * "}" * } + if$ +} + +FUNCTION {format.names.for.index} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ll}" format.name$ 't := t indexmarkup 't := + s nameptr "{ff}" format.name$ indexmarkup 'u := + s nameptr "{f.}" format.name$ indexmarkup 'v := + s nameptr "{vv}" format.name$ indexmarkup 'w := + s nameptr "{jj}" format.name$ indexmarkup 'x := + t u * v * w * x * 't := + t "{others}{}{}{}{}" = + 'skip$ + { nameptr #1 > + { namesleft #1 > + { "; " * t * } + { + t "others" = + 'skip$ + { "; " * t * } + if$ + } + if$ + } + 't + if$ + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.founders} +{ founder empty$ + 'skip$ + { author empty$ + 'skip$ + { " in: " * } + if$ + founder format.names "\foundername" * * + editor empty$ + 'skip$ + { author empty$ + { "\afterfoundersep {}" * } + 'skip$ + if$ + } + if$ + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { author empty$ + { editor format.editor.names + editortype empty$ + { editor num.names$ #1 > + { "\fsted {\editorsname}" * } + { "\fsted {\editorname}" * } + if$ + } + { "\fsted {(" editortype * ")}" * * } + if$ + } + { founder empty$ + { "\bibfnfont {;} " * } + { type$ "commented" = + { "\afterfoundersep {}" * } + { "\bibfnfont {;} " * } + if$ + } + if$ + editor format.editor.names * + editortype empty$ + { editor num.names$ #1 > + { " \edfont {\editorsname}" * } + { " \edfont {\editorname}" * } + if$ + } + { " \edfont {(" editortype * ")}" * * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.snd.editors} +{ editor empty$ + { "" * } + { author empty$ + { editortype empty$ + { editor num.names$ #1 > + { "\snded {\sndeditorsname}" * } + { "\snded {\sndeditorname}" * } + if$ + } + { "\snded {(" editortype * ")}" * * } + if$ + } + 'skip$ + if$ + } + if$ +} + +FUNCTION { format.howcited } +{ "} {\bibhowcited}" format.endnote * } + +FUNCTION {fin.entry.endnote} +{ " \jbdoitem {" * + author empty$ + 'skip$ + { author format.names.for.index * } + if$ + "} {" + editor empty$ + 'skip$ + { editor format.names.for.index * } + if$ + "} {" * + organization empty$ + 'skip$ + { "{" organization * "}{}{}{}{}" * * } + if$ + "}" * * write$ + annote missing$ + { " \bibAnnoteFile {" cite$ * "}" * write$ newline$ } + { " \bibAnnote {" annote * "}" * write$ newline$ } + if$ +} + +FUNCTION {count.authors.or.editors} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { "" 't := + nameptr #1 > + { namesleft #1 > + { "" * } + { "s" * } % more than one author/editor, append `s' + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + + +FUNCTION { set.after.author.sep } +{ author empty$ editor empty$ and + { "}{jureco} {} {" "" * } + { year empty$ + { type$ "book" = dissyear empty$ not and + { "\bibYear {" dissyear * + extra.label "" = + 'skip$ + { "\el {" extra.label * "}" * * } + if$ + "}" * * + } + { year missing$ + { "\bibYear {}" * } + 'skip$ + if$ + } + if$ + } + { year missing$ + { "\bibYear {}" * } + { "\bibYear {" year * + extra.label "" = + 'skip$ + { "\el {" extra.label * "}" * * } + if$ + "}" * * + } + if$ + } + if$ + "}{jureco} {} {" "" * + } + if$ +} + +FUNCTION {format.names.info} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff }{vv }{ll}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { " " * t * } + { t "others" = + { " et al." * } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION { format.howcited.comment } +{ edition empty$ + { "} {\bibcommenthowcited}" format.endnote * } + { "} {\bibcommenthowcited}" format.endnote * * + author empty$ editor empty$ not and + { " \jbauthorinfo {" editor format.names.info " " title * * * "}{" cite$ "}" * * * } + { author empty$ shortauthor empty$ not and + { " \jbauthorinfo {" shortauthor format.names.info " " title * * * "}{" cite$ "}" * * * } + { " \jbauthorinfo {" author format.names.info " " title * * * "}{" cite$ "}" * * * } + if$ + } + if$ + } + if$ +} + +FUNCTION { format.howcited.artperiod } +{ "} {\bibartperiodhowcited}" format.endnote * } + +FUNCTION {format.proceed.organization} +{ organization empty$ + { "" } + { organization " \organizationname {}" * } + if$ +} + +FUNCTION {format.titleaddon} +{ title empty$ + { "" } + { titleaddon empty$ + { "" } + { titleaddon "\bibatsep\ " * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { "\bibtfont {" title check.punct.instead.of.add.period * format.titleaddon * } + if$ +} + +FUNCTION {format.artperiodincoll.title} +{ title empty$ + { "" } + { "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * } + if$ +} + +FUNCTION {format.volumetitle} +{ volumetitle empty$ + { "" } + { volume empty$ + { "There's a volumetitle but no volume in " cite$ * warning$ volumetitle ", " * } + { volumetitle ", " * } + if$ + } + if$ +} + +FUNCTION {add.extra.label} +{ extra.label "" = + 'skip$ + { "\bibel {" extra.label * "}" * * } + if$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "There's a month but no year in " cite$ * warning$ month } + if$ + } + { month empty$ + { edition empty$ + 'skip$ + { "\jbssedbd {" convert.edition.superscript extract.num * "}" * * } + if$ + year + add.extra.label + } + { month " " * + edition empty$ + 'skip$ + { "\jbssedbd {" convert.edition.superscript extract.num * "}" * * } + if$ + year * + add.extra.label + } + if$ + } + if$ +} + +FUNCTION {format.update} +{ updated missing$ not + { "\updatesep {} \updatename {} " * updated * } + 'skip$ + if$ +} + +FUNCTION {oaddress.opublisher.oyear.format} +{ type$ "book" = type$ "inbook" = type$ "incollection" = or or + { oyear empty$ + { opublisher empty$ + { oaddress empty$ + 'skip$ + { oaddress "\osep {} " * * } + if$ + } + { oaddress empty$ + { opublisher "\osep {} " * * } + { oaddress "\bpubaddr {} " * opublisher "\osep {} " * * * } + if$ + } + if$ + } + { year empty$ + { "oyear without year in " cite$ * warning$ } + 'skip$ + if$ + opublisher empty$ + { oaddress empty$ + { oyear * "\osep {} \reprintname {}, " * } + { oaddress "\bibbdsep {} " * oyear "\osep {} " * * * } + if$ + } + { oaddress empty$ + { opublisher * "\bibbdsep {} " * oyear "\osep {} " * * } + { oaddress "\bpubaddr {} " * opublisher "\bibbdsep {} " * * oyear "\osep {} " * * * } + if$ + } + if$ + } + if$ + } + 'skip$ + if$ +} + +FUNCTION {make.translators} +{ before.all 'output.state := + translator empty$ + { flanguage empty$ + { "" } + { "\translator {}{" flanguage "l" change.case$ * "}" * + type$ "incollection" = not + type$ "article" = not + and + { "{1} " * } + { type$ "incollection" = + { booktitle empty$ + { "{} " * } + { "{1} " * } + if$ + } + { type$ "article" = + { "{1}" * } + { series empty$ + { "{} " * } + { "{1} " * } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + { "\translator {" translator * "}" * + flanguage empty$ + { "{}" * } + { "{" * flanguage "l" change.case$ * "}" * } + if$ + type$ "incollection" = not + type$ "article" = not + and + { "{1} " * } + { + type$ "incollection" = + { booktitle empty$ + { "{} " * } + { "{1} " * } + if$ + } + { type$ "article" = + { "{1} " * } + { series empty$ + { "{} " * } + { "{1} " * } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + before.all 'output.state := +} + +FUNCTION {format.address.publisher.year} +{ publisher empty$ + { address empty$ + { institution empty$ + { "" } + { " \apyformat {" oaddress.opublisher.oyear.format * institution "}" * } + if$ + } + { institution empty$ + { " \apyformat {" oaddress.opublisher.oyear.format * address "}" * } + { " \apyformat {" oaddress.opublisher.oyear.format * address "\bpubaddr {} " * institution "}" * * } + if$ + } + if$ + } + { address empty$ + { institution empty$ + { "There's only a publisher (no address) in " cite$ * warning$ + " \apyformat {" oaddress.opublisher.oyear.format * publisher "}" * } + { " \apyformat {" oaddress.opublisher.oyear.format * publisher ", " * institution "}" * * } + if$ + } + { institution empty$ + { " \apyformat {" oaddress.opublisher.oyear.format * address "\bpubaddr {} " * publisher "}" * * } + { " \apyformat {" oaddress.opublisher.oyear.format * address "\bpubaddr {} " * publisher ", " * institution "}" * * * } + if$ + } + if$ + } + if$ +} + + +FUNCTION {format.howpublished.address.year} +{ howpublished empty$ + { address empty$ + { "No address in " cite$ warning$ } + { " \apyformat {" oaddress.opublisher.oyear.format address * "}" * } + if$ + } + { address empty$ + { "There's only a howpublished (no address) in " cite$ * warning$ " \apyformat {" oaddress.opublisher.oyear.format howpublished * "}" * } + { " \apyformat {" oaddress.opublisher.oyear.format address * "\bpubaddr {} " * howpublished "}" * * } + if$ + } + if$ +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #4 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {bibvol.tie.or.space.connect} +{ duplicate$ text.length$ #4 < + { "~" } + { "{} " } + if$ + swap$ * * +} + +FUNCTION {format.btitle}{ title emphasize format.titleaddon * } + +FUNCTION {format.btitle.vol} +{ number empty$ + { series empty$ + { volume empty$ + { title emphasize format.titleaddon * } + { + title emphasize format.titleaddon * " \volumeformat {" volume * "} " * * + } + if$ + } + { volume empty$ + { title emphasize format.titleaddon * } + { + title emphasize format.titleaddon * "\volumeformat {" volume * "} " * * series "\bibatsep\ " * * + } + if$ + } + if$ + } + { title emphasize format.titleaddon * } + if$ +} + +FUNCTION {format.btitle.vol.inbook} +{ number empty$ + { series empty$ + { volume empty$ + { "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * } + { "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * + " \volumeformat {" volume * "} " * * + } + if$ + } + { volume empty$ + { "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * } + { series emphasize + "\volumeformat {" volume * "} " * * + "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * * } + if$ + } + if$ + } + { "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { author empty$ title empty$ and + 'skip$ + { " " * } + if$ + urldate empty$ + {"\jburluse {" cite$ * "}" * } + {"\jburluse {" cite$ * "}\bibbudcsep {}\urldatecomment " * urldate * } + if$ + } + if$ +} + +FUNCTION {format.naked.url} +{ url empty$ + { "" } + { urldate empty$ + { title empty$ + 'skip$ + { title emphasize * } + if$ + "\jburluse {" cite$ * "}" * + } + { title empty$ + 'skip$ + { title emphasize * } + if$ + "\jburluse {" cite$ * "}\bibbudcsep {}\urldatecomment " * urldate * + } + if$ + } + if$ +} + +FUNCTION {format.series.number} +{ volume empty$ + { number empty$ + { series empty$ + { "" } + { " \numberandseries {}{" series * "}" * } + if$ + } + { series empty$ + { " \numberandseries {" number * "}{}" * "There's a number but no series in " cite$ * warning$ } + { " \numberandseries {" number * "}{" * series "}" * * } + if$ + } + if$ + } + { series empty$ + { "" } + { type$ "proceedings" = + { " \numberandseries {}{" series * "}" * } % { " (" series * ")" * } + { "" } + if$ + } + if$ + } + if$ +} + +FUNCTION {first.ed} { "\firstedname" } +FUNCTION {second.ed}{ "\secondedname" } +FUNCTION {third.ed} { "\thirdedname" } +FUNCTION {fourth.ed}{ "\fourthedname" } +FUNCTION {fifth.ed} { "\fifthedname" } +FUNCTION {th.ed} { "\thedname" } + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { first.ed 't := } + { s "second" = s "2" = or + { second.ed 't := } + { s "third" = s "3" = or + { third.ed 't := } + { s "fourth" = s "4" = or + { fourth.ed 't := } + { s "fifth" = s "5" = or + { fifth.ed 't := } + { s #1 #1 substring$ is.num + { s th.ed * 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { "\jbedition {" * convert.edition "~\editionname {}\jbaensep} " * }% dot or not ??????? + if$ +} + +FUNCTION { format.isbn.issn } +{ isbn empty$ + { issn empty$ + { "" } + { "\jbissn {" issn n.dashify * "}" * } + if$ + } + { "\jbisbn {" isbn n.dashify * "}" * } + 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 empty$ + { "" } + { " \jbPages{" pages n.dashify * "}" * } + if$ +} + +FUNCTION {multi.pagerange.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "b" = + swap$ "/" = or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {check.missing.pages} +{ pages empty$ + { "Empty pages in " cite$ * warning$ } + { pages multi.pagerange.check + { "" * } + { type$ "article" = type$ "periodical" = or + { "There's only a starting page, no pagerange in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + } + if$ +} + +FUNCTION {format.pages.book} +{ pages empty$ + { "" } + { " \jbpages {" pages " \bibtotalpagesname}" *} + if$ +} + +FUNCTION {format.totalpages} +{ totalpages empty$ + { "" } + { + ", " totalpages "~\bibtotalpagesname" * * + } + if$ +} + +FUNCTION {format.vol.year.num.pages} +{ volume empty$ + { "" } + { " \artvolumeformat {" volume * "}" * + year empty$ + { "There's a volume but no year in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + number empty$ + 'skip$ + { "\artnumberformat {" number * "}" * * } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { "" format.pages * * } + if$ + } + if$ +} + +FUNCTION {format.vol.bracedyear.num.pages} +{ volume empty$ + { "" } + { " \pervolumeformat {" volume * "}" * + year empty$ + { "There's a volume but no year in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + number empty$ + 'skip$ + { volume empty$ + { "" * } + { ", " * } + if$ + "\pernumberformat {" number * "}" * * + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { "" format.pages * * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\unskip.\,-- \bibchapterlongname" } + { "\unskip.\,-- " type * } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { format.pages * } + if$ + } + if$ +} + +FUNCTION {format.booktitleaddon} +{ booktitle empty$ + { "" } + { booktitleaddon empty$ + { "" } + { booktitleaddon } + if$ + } + if$ +} + +FUNCTION {format.incoll.editor.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { volume empty$ + { "\incolledformat {}{}{" booktitle incollbooktitlemarkup format.booktitleaddon * * "}{}" * + booktitleaddon empty$ + { "{} " * } + { "{1} " * } + if$ + } + { "\incolledformat {}{}{" booktitle incollbooktitlemarkup format.booktitleaddon * * "}{" * volume * "}" * + booktitleaddon empty$ + { "{} " * } + { "{1} " * } + if$ + } + if$ + } + { volume empty$ + { "\incolledformat {" + editor empty$ + { "" } + { editor format.editor.names "}" * * + editortype empty$ + { editor num.names$ #1 > + { "{\edfont {\editorsname}}{" * } + { "{\edfont {\editorname}}{" * } + if$ + } + { "{\edfont {(" * editortype * ")}}{" * } + if$ + } + if$ + booktitle incollbooktitlemarkup * format.booktitleaddon * "}{}" * + booktitleaddon empty$ + { "{} " * } + { "{1} " * } + if$ + } + { "\incolledformat {" * + editor empty$ + { "" } + { editor format.editor.names "}" * * + editortype empty$ + { editor num.names$ #1 > + { "{\edfont {\editorsname}}{" * } + { "{\edfont {\editorname}}{" * } + if$ + } + { "{\edfont {(" * editortype * ")}}{" * } + if$ + } + if$ + booktitle incollbooktitlemarkup * format.booktitleaddon * "}{" volume * "}" * + booktitleaddon empty$ + { "{} " * } + { "{1} " * } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.tr.number.jur} +{ type empty$ + { number empty$ + { " -- \technicalreportname {} " } + { "~(" number * ").\,-- \technicalreportname {} " * } + if$ + } + { number empty$ + { " -- " type * } + { "~(" number * ").\,-- " type * " " * * } + if$ + } + if$ +} + +FUNCTION {format.article.crossref.bracedyear} +{ key empty$ + { journal empty$ + { "Need key or journal for " cite$ * " to crossref " * crossref * warning$ "" } + { "\bibJTsep\bibjtfont {" journal * check.punct.instead.of.add.period.art * } + if$ + volume empty$ + { "No volume in " cite$ * warning$ } + { " \pervolumeformat {" volume * "} " * } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { format.pages * } + if$ + } + if$ + } + { "" key * } + if$ + "\ \protect\jbcrossrefchecked {" * crossref * "}\unskip" * +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "Need key or journal for " cite$ * " to crossref " * crossref * warning$ "" } + { "\bibJTsep\bibjtfont {" journal * check.punct.instead.of.add.period.art * } + if$ + } + { "" key * } + if$ + year empty$ + 'skip$ + { year * } + if$ + " \protect\jbcrossrefchecked {" crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "Need editor, key, or series for " cite$ * " to crossref " * crossref * warning$ "" * } + { "" * } + if$ + } + { key * } + if$ + } + { "" * } + if$ + volume empty$ + { "Empty volume in " cite$ * "'s crossref of " * crossref * warning$ "" + " \protect\jbcrossrefchecked {" * crossref * "}\unskip" * } + { " \protect\jbcrossrefchecked[" * volume * "]{" * crossref "}\unskip" * } + if$ +} + +FUNCTION {format.incoll.inproc.crossref} +{ " \protect\jbincollcrossref {" * crossref * "}" * + editor empty$ + { "{}" * } + { "{1}" * } + if$ + format.pages % *<== 0.5f removed too. +} + +FUNCTION { format.editors.organization } +{ organization empty$ + 'skip$ + { type$ "misc" = + { organization } + { author empty$ + { editor empty$ + { " " organization * " \organizationname {}" * } + { "; " organization * " \organizationname {}" * } + if$ + } + { "; " organization * " \organizationname {}" * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.address.organization.manual} +{ author empty$ + { organization empty$ + { address empty$ + 'skip$ + { address output part.of.sentence + year empty$ not { "\bibbdsep {}" *} 'skip$ if$ + } + if$ + } + 'skip$ + if$ + } + { address empty$ + { organization empty$ + 'skip$ + { organization output part.of.sentence + year empty$ not { "\bibbdsep {}" *} 'skip$ if$ + } + if$ + } + { organization empty$ + { address output part.of.sentence } + { address "\bpubaddr {} " * organization * output part.of.sentence } + if$ + year empty$ not { "\bibbdsep {}" *} 'skip$ if$ + } + if$ + } + if$ +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.artperiodincoll.title "title" output.check + crossref missing$ + { journal article.in.journal output.nonnull + new.sentence + format.vol.year.num.pages output + } + { format.article.crossref output.nonnull } + if$ + format.url output + format.note + format.isbn.issn output + format.howcited.artperiod output + check.missing.pages + fin.entry.endnote +} + +FUNCTION {commented} +{ output.bibitem + author empty$ + { editor empty$ + { format.founders } + { format.founders format.editors "editor" output.check } + if$ + } + { editor empty$ + { format.authors format.founders output.nonnull } + { format.authors format.founders format.editors output.nonnull } + if$ + } + if$ + set.after.author.sep output + crossref missing$ + { format.btitle.vol "title" output.check } + { format.btitle "title" output.check } + if$ + format.volumetitle output + format.edition output + format.address.publisher.year "publisher" output.check + format.update + new.sentence + crossref missing$ + { format.series.number output } + { format.book.crossref output.nonnull } + if$ + format.url output + format.pages output + format.note + format.howcited.comment output + fin.entry.endnote +} + +FUNCTION {periodical} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.artperiodincoll.title "title" output.check + crossref missing$ + { journal article.in.journal output.nonnull + new.sentence + format.vol.bracedyear.num.pages output + } + { new.sentence format.article.crossref.bracedyear output.nonnull } + if$ + format.url output + format.note + format.isbn.issn output + format.howcited.artperiod output + fin.entry.endnote +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { editor empty$ + { "" "author and editor" output.check } + { format.editors output.nonnull } + if$ + } + { editor empty$ + { format.authors output.nonnull } + { format.authors "\jbtiafed {" format.editors * "}" * output.nonnull } + if$ + } + if$ + set.after.author.sep output + crossref missing$ + { format.btitle.vol "title" output.check } + { format.btitle "title" output.check } + if$ + author empty$ not editor empty$ not and + { "\jbedafti {\edbyname {} " editor * "," * * "} " * } + 'skip$ + if$ + make.translators output + format.volumetitle output + format.edition output + format.address.publisher.year "publisher" output.check + new.sentence + format.juradiss.book output + crossref missing$ + { format.series.number output } + { format.book.crossref output.nonnull } + if$ + format.url output + format.pages output + format.totalpages output + format.note + format.isbn.issn output + format.howcited output + fin.entry.endnote +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { editor empty$ + { format.authors output.nonnull } + { format.authors format.editors output.nonnull } + if$ + } + if$ + set.after.author.sep output + crossref missing$ + { chapter empty$ + { "There's no chapter in " cite$ * warning$ "" * } + { type empty$ + { "\Bibchaptername{}" } + { type } + if$ + chapter tie.or.space.connect " In " * * + } + if$ + format.btitle.vol.inbook "title" output.check + make.translators output + format.volumetitle output + format.edition output + format.address.publisher.year "publisher" output.check + new.sentence + format.series.number output + format.url output + format.pages "pages" output.check + format.note + format.isbn.issn output + } + { chapter empty$ + { "There's no chapter in " cite$ * warning$ "" * + format.btitle.vol.inbook "title" output.check + } + { type empty$ + { "\Bibchaptername{}" } + { type } + if$ + chapter tie.or.space.connect "" * * + } + if$ + format.volumetitle output + format.book.crossref output.nonnull + format.url output + format.pages "pages" output.check + format.note + } + if$ + part.of.sentence + format.howcited output + fin.entry.endnote +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.artperiodincoll.title "title" output.check + make.translators output + crossref missing$ + { format.incoll.editor.booktitle "booktitle" output.check + format.volumetitle output + format.edition output + format.address.publisher.year "publisher" output.check + new.sentence + format.series.number output + format.url output + format.isbn.issn output + part.of.sentence + format.chapter.pages output + format.note + } + { format.volumetitle output + format.incoll.inproc.crossref output.nonnull + format.url output + format.note + } + if$ + format.howcited output + check.missing.pages + fin.entry.endnote +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.artperiodincoll.title "title" output.check + crossref missing$ + { format.incoll.editor.booktitle "booktitle" output.check + address empty$ + { organization new.sentence.checka + organization output + part.of.sentence + format.address.publisher.year output + } + { format.address.publisher.year "publisher" output.check } + if$ + new.sentence + series empty$ + 'skip$ + { format.series.number output } + if$ + format.url output + format.note + format.isbn.issn output + part.of.sentence + format.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.url output + format.note + } + if$ + format.howcited output + fin.entry.endnote +} + +FUNCTION {conference}{inproceedings} + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { "\bibnf{" organization * "} {} {} {} {}" * output.nonnull } + if$ + } + { format.authors output.nonnull } + if$ + set.after.author.sep output + format.btitle "title" output.check + format.edition output + format.address.organization.manual + format.date output + pages set.period.dash.check + format.pages.book output + format.url output + format.note + format.howcited output + fin.entry.endnote +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.btitle "title" output.check + format.thesis output + set.comma.pages.check + pages new.sentence.checka + format.pages output + format.url output + format.note + format.howcited output + fin.entry.endnote +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.btitle "title" output.check + format.thesis output + set.comma.pages.check + pages new.sentence.checka + format.pages output + format.url output + format.note + format.howcited output + fin.entry.endnote +} + +FUNCTION {jurthesis} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.btitle "title" output.check + format.thesis output + set.comma.pages.check + pages new.sentence.checka + format.pages output + format.url output + format.note + format.howcited output + fin.entry.endnote +} + +FUNCTION {booklet} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.title "title" output.check + format.howpublished.address.year output + format.note + format.url output + format.howcited output + fin.entry.endnote +} + +FUNCTION {misc} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.title output + format.howpublished.address.year output + format.note + format.url output + format.howcited output + fin.entry.endnote +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization empty$ + 'skip$ + { "\biblnfont {" organization * " \organizationname}" * output } + if$ + } + { format.editors output.nonnull } + if$ + set.after.author.sep output + format.btitle "title" output.check + new.sentence + editor empty$ + 'skip$ + { format.proceed.organization output } + if$ + new.sentence + format.series.number output.nonnull + volume empty$ + { "" output.nonnull } + { "\volumeformat {" volume * "} " * "volume" output.check } + if$ + format.address.publisher.year "publisher" output.check + pages set.period.dash.check + format.pages.book output + format.url output + format.note + format.isbn.issn output + format.howcited output + fin.entry.endnote +} + +FUNCTION {techreport} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { editor empty$ + { format.authors output.nonnull } + { format.authors format.editors output.nonnull } + if$ + } + if$ + set.after.author.sep output + format.title "title" output.check + institution new.sentence.checka + format.address.publisher.year output + number new.sentence.checka + format.tr.number.jur "number" output.check + pages set.period.dash.check + format.pages.book output + format.url output + format.note + format.isbn.issn output + format.howcited output + fin.entry.endnote +} + +FUNCTION {www} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.naked.url output + format.howcited output + fin.entry.endnote +} + +FUNCTION {lexicon} +{ output.bibitem + set.after.author.sep output + crossref missing$ + { format.btitle.vol "title" output.check } + { format.btitle "title" output.check } + if$ + author empty$ + { editor empty$ + 'skip$ + { "\edbyname{} " * editor format.editor.names "," * * } + if$ + } + { "\byname{} " author format.names * "," * * } + if$ + make.translators output + format.volumetitle output + format.edition output + format.address.publisher.year "publisher" output.check + new.sentence + format.juradiss.book output + crossref missing$ + { format.series.number output } + { format.book.crossref output.nonnull } + if$ + format.url output + format.pages output + format.totalpages output + format.note + format.isbn.issn output + format.howcited output + fin.entry.endnote +} + +STRINGS { last.archive last.subarchive } + +FUNCTION {init.last.archive } +{ "" 'last.archive := + "" 'last.subarchive := } + +FUNCTION {archival} +{ output.bibitem + archive empty$ + { "" 'last.archive := } + { archive last.archive = + { "} {" archive format.name.sig * "} {} {\jbsamearch{} " * * } + { "\bibanfont{" archive * "archive" output.check + shortarchive empty$ + 'skip$ + { " \jbshortarchformat{" shortarchive * "}" * * } + if$ + "}" * + "} {" archive format.name.sig * "} {} {\jbnotsamearch{} " * * + } + if$ + archive 'last.archive := + } + if$ + subarchive empty$ + { "" 'last.subarchive := } + { subarchive last.subarchive = + 'skip$ + { subarchive output + shortsubarchive empty$ + 'skip$ + { " \jbshortsubarchformat{" shortsubarchive * "}" * * } + if$ + "\jbsubarchsep{} " * + } + if$ + subarchive 'last.subarchive := + } + if$ + sig1 empty$ + 'skip$ + { "\jbarchsig {" * + subarchive empty$ + 'skip$ + { "\jbsamesubarchindent{} " * } + if$ + sig1 * + sig2 empty$ + 'skip$ + { ". " sig2 * * + sig3 empty$ + 'skip$ + { ". " sig3 * * + sig4 empty$ + 'skip$ + { ". " sig4 * * } + if$ + } + if$ + } + if$ + "} {" * + } + if$ + archname missing$ + { "}" * } + { archname "}" * output } + if$ + format.howcited output + fin.entry.endnote +} + +FUNCTION {unpublished}{misc} + +FUNCTION {default.type}{misc} + +MACRO {jan} {"\janname\ "} +MACRO {feb} {"\febname\ "} +MACRO {mar} {"\marname\ "} +MACRO {apr} {"\aprname\ "} +MACRO {may} {"\mayname\ "} +MACRO {jun} {"\junname\ "} +MACRO {jul} {"\julname\ "} +MACRO {aug} {"\augname\ "} +MACRO {sep} {"\sepname\ "} +MACRO {oct} {"\octname\ "} +MACRO {nov} {"\novname\ "} +MACRO {dec} {"\decname\ "} + +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 := % for two: (Jones/de~Bruijn) + s #1 "{vv~}{ll}" format.name$ % for three: (Jones/de~Bruijn/Smith) + s num.names$ duplicate$ % for more: (Jones et\,al.) + #2 < + 'pop$ % for just one person + { duplicate$ duplicate$ + #3 > + swap$ s swap$ "{ff }{vv }{ll}{ jj}" format.name$ "others" = + or + { pop$ "\Bibetal" * } % for 4 or more, or last is `others' + { #2 = + { "\jbbtasep " * s #2 "{vv~}{ll}" format.name$ * } % for (exactly) two + { "\jbbfsasep " * s #2 "{vv~}{ll}" format.name$ * % for three + "\jbbstasep " * s #3 "{vv~}{ll}" format.name$ * + } + if$ + } + if$ + } + if$ + year missing$ + 'skip$ + { "\jbdy {" year * "}" * * }% dummy year to prevent from `1993a' and `2001b' for works by the same author + if$ +} + +FUNCTION {format.editor.lab.names} +{ 's := % for two: (Jones/de~Bruijn) + s #1 "{vv~}{ll}" format.name$ % for three: (Jones/de~Bruijn/Smith) + s num.names$ duplicate$ % for more: (Jones et\,al.) + #2 < + 'pop$ % for just one person + { duplicate$ duplicate$ + #3 > + swap$ s swap$ "{ff }{vv }{ll}{ jj}" format.name$ "others" = + or + { pop$ "\Bibetal" * } % for 4 or more, or last is `others' + { #2 = + { "\jbbtesep " * s #2 "{vv~}{ll}" format.name$ * } % for (exactly) two + { "\jbbfsesep " * s #2 "{vv~}{ll}" format.name$ * % for three + "\jbbstesep " * s #3 "{vv~}{ll}" format.name$ * + } + if$ + } + if$ + } + if$ + year missing$ + 'skip$ + { "\jbdy {" year * "}" * * }% dummy year to prevent from `1993a' and `2001b' for works by the same author + 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.editor.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.editor.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = type$ "inbook" = or type$ "incollection" = or type$ "commented" = or type$ "lexicon" = or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'label := +} + +FUNCTION {calc.dummy.label} +{ type$ "book" = type$ "inbook" = or type$ "incollection" = or type$ "commented" = or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'dummy.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ ff{ }}{ vv{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "\bibnf {others} {} {} {} {}" = and + { "\Bibetal" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "Der " #4 + "Die " #4 + "Das " #4 + "Ein " #4 + "Eine " #5 + "The " #4 t chop.word + chop.word + chop.word + chop.word + chop.word + 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 {archival.sort} +{ archive empty$ + { shortarchive empty$ + { "to sort, need archive or shortarchive in " cite$ * warning$ "" } + { shortarchive sortify } + if$ + } + { archive sortify } + if$ +} + +FUNCTION {presort} +{ calc.label + calc.dummy.label + dummy.label sortify " " * + sortkey empty$ + { type$ "book" = + type$ "incollection" = or + type$ "inbook" = or + type$ "commented" = or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + { type$ "archival" = + 'archival.sort + 'author.sort + if$ + } + if$ + } + if$ + } + { sortkey sort.format.names } + if$ + type$ "archival" = not + { " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + } + { " " + * + subarchive field.or.null sortify + * + " " + * + sig1 field.or.null sortify + * + " " + * + sig2 field.or.null sortify + * + " " + * + sig3 field.or.null sortify + * + " " + * + sig4 field.or.null sortify + * + } + if$ + #1 entry.max$ substring$ + 'sort.label := + sort.label * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +%% FUNCTION {before.sort} { "BEFORE SORT:" top$ } +%% EXECUTE {before.sort} +%% FUNCTION {print.sort.keys} {sort.key$ top$} +%% ITERATE {print.sort.keys} + +SORT + +%% FUNCTION {after.sort} {"AFTER SORT:" top$} +%% EXECUTE {after.sort} +%% ITERATE {print.sort.keys} + + +INTEGERS { last.extra.num number.label extra.extra.num } + +FUNCTION {make.extra.label} +{ last.extra.num #122 < + { last.extra.num #1 + } + { extra.extra.num #0 = + { "a" chr.to.int$ } + { extra.extra.num #1 + } + if$ + 'extra.extra.num := + "a" chr.to.int$ } + if$ + 'last.extra.num := + extra.extra.num #0 = + { last.extra.num int.to.chr$ } + { extra.extra.num int.to.chr$ 'extra.label := + extra.label last.extra.num int.to.chr$ * } + if$ +} + +FUNCTION {forward.pass} +{ w dummy.label = + { make.extra.label 'extra.label := } + { "a" chr.to.int$ 'last.extra.num := + #0 'extra.extra.num := + "" 'extra.label := + dummy.label 'w := + } + if$ + number.label #1 + 'number.label := +} + +FUNCTION {reverse.pass} +{ x "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'x := + extra.label + duplicate$ empty$ + 'skip$ + { "" swap$ * } + if$ + 'extra.label := + dummy.label extra.label * 'dummy.label := +} + +ITERATE {forward.pass} +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} { sort.label 'sort.key$ := } + +ITERATE {bib.sort.order} + +SORT + +FUNCTION {set.current.authors} +{ author empty$ + { editor empty$ + { organization empty$ + { cite$ 'current-authors := } + { organization 'current-authors := } + if$ + } + { editor format.names #1 entry.max$ substring$ 'current-authors := } +%% ^^^^^^^^^^^^ NOT format.editor.names, otherwise \jb@@arg is always = 0!!! + if$ + } + { author format.names #1 entry.max$ substring$ 'current-authors := } + if$ +} + +STRINGS { previous-authors } + +FUNCTION {initialize.previous.authors} { "" 'previous-authors := } + +FUNCTION {mark.repeat.authors} +{ current-authors previous-authors = + { #1 'repeat-authors := } + 'skip$ + if$ + current-authors 'previous-authors := +} + +ITERATE {set.current.authors} + +EXECUTE {initialize.previous.authors} + +ITERATE {mark.repeat.authors} + +EXECUTE {initialize.previous.authors} + +REVERSE {mark.repeat.authors} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "%" write$ newline$ + "% This bibliography was produced by using jureco.bst" write$ newline$ + "%" write$ newline$ + "\begin{thebibliography}{}" 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 file `jureco.bst'. diff --git a/Master/texmf-dist/bibtex/bst/jurabib/jurunsrt.bst b/Master/texmf-dist/bibtex/bst/jurabib/jurunsrt.bst new file mode 100644 index 00000000000..071e1102b00 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/jurabib/jurunsrt.bst @@ -0,0 +1,2835 @@ +%% +%% This is file `jurunsrt.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% jurabib.dtx (with options: `jurunsrt') +%% ---------------------------------------- +%% BibTeX style for use with the jurabib package version v0.6 +%% Copyright (C) 1999-2004 Jens Berger (http://www.jurabib.org) +%% See jurabib.ins for the copyright details. +%% +ENTRY{ + address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + volume + year +%% + url + urldate + volumetitle + dissyear + howcited + juratitle + juraauthor + shorttitle + shortauthor + ssedition + titleaddon + booktitleaddon + editortype + sortkey + annote + gender + translator + flanguage + oyear + oaddress + opublisher + updated + totalpages + founder + archive + subarchive + shortarchive + shortsubarchive + sig1 + sig2 + sig3 + sig4 + archname + } + { repeat-authors repeat-titles } + { label dummy.label extra.label sort.label current-authors } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +INTEGERS { colon.after period.dash } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'colon.after := + #5 'period.dash := +} + +STRINGS { s t u v w x } + +FUNCTION {output.nonnull} +{ 's := + output.state after.block = + { write$ } + { output.state before.all = + { write$ } + { output.state colon.after = + { "" * write$ } + { output.state period.dash = + { ", " * write$ } + { output.state mid.sentence = + { " " * write$ } + { write$ } + if$ + } + if$ + } + if$ + } + if$ + after.block '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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition.superscript} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or s "erste" = or + { "1" 't := } + { s "second" = s "2" = or s "zweite" = or + { "2" 't := } + { s "third" = s "3" = or s "dritte" = or + { "3" 't := } + { s "fourth" = s "4" = or s "vierte" = or + { "4" 't := } + { s "fifth" = s "5" = or s "fuenfte" = or + { "5" 't := } + { s "sixth" = s "6" = or s "sechste" = or + { "6" 't := } + { s "seventh" = s "7" = or s "siebte" = or s "siebente" = or + { "7" 't := } + { s "eighth" = s "8" = or s "achte" = or + { "8" 't := } + { s "nineth" = s "9" = or s "neunte" = or + { "9" 't := } + { s #1 #1 substring$ is.num + { s "" * 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {n.dashify} +{ '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 {output.bibitem.fst} +{ newline$ + "\bibitem[{" write$ + shortauthor empty$ + { juraauthor empty$ + { author empty$ + { editor empty$ + { organization empty$ + { archive empty$ + { "empty" write$ } + { archive write$ } + if$ + } + { organization write$ } + if$ + } + { label write$ } + if$ + } + { label write$ } + if$ + } + { juraauthor write$ } + if$ + } + { shortauthor write$ } + if$ + "}%" write$ + sortkey empty$ + 'skip$ + { newline$ "% SORTKEY: [" sortkey * "]" * write$ } + if$ + newline$ + shorttitle empty$ + { juratitle empty$ + { journal empty$ + { " {}%" write$ } + { volume empty$ + { year empty$ + { " {" journal * "}%" * write$ } + { " {" journal * "\jbsy {" * year * "}}%" * write$ } + if$ + } + { year empty$ + { " {" journal * "}%" * write$ } + { " {" journal * " " * volume * " " * " \peryearformat {" year * "}}%" * * write$ } + if$ + } + if$ + } + if$ + } + { " {" juratitle * "}%" * write$ } + if$ + } + { " {" shorttitle * "}%" * write$ } + if$ + newline$ + repeat-authors + { " {{1}" write$ } + { " {{0}" write$ } + if$ + howcited empty$ + { "{}" write$ } + { "{" howcited * "}" * write$ } + if$ + type$ empty$ + { "{}" write$ } + { "{" type$ * "}" * write$ } + if$ + year empty$ + { type$ "book" = dissyear empty$ not and + { "{" dissyear * write$ + extra.label "" = + skip$ + { "\el {" write$ extra.label write$ "}" write$ } + if$ + "}" write$ + } + { "{}" write$ } + if$ + } + { "{" year * write$ + extra.label "" = + 'skip$ + { "\el {" write$ extra.label write$ "}" write$ } + if$ + "}" write$ + } + if$ + edition empty$ + { "{}" write$ } + { "{" convert.edition.superscript extract.num * "}" * write$ } + if$ + ssedition empty$ + { "{}" write$ } + { "{" ssedition * "}" * write$ } + if$ + language empty$ + { "{}" write$ } + { "{" language * "}" * write$ } + if$ + pages empty$ + { "{}%" write$ } + { "{" write$ pages n.dashify write$ "}%" write$ } + if$ +} + +FUNCTION {output.bibitem.snd} +{ newline$ + publisher empty$ + { address empty$ + { year empty$ + { " {" write$ } + { " {" write$ + year write$ + extra.label "" = + 'skip$ + { "\el {" write$ extra.label write$ "}" write$ } + if$ + } + if$ + } + { year empty$ + { " {" write$ address write$ } + { " {" write$ address write$ "\bibbdsep {} " write$ + year write$ + extra.label "" = + 'skip$ + { "\el {" write$ extra.label write$ "}" write$ } + if$ + } + if$ + } + if$ + } + { address empty$ + { year empty$ + { " {" write$ publisher write$ } + { " {" write$ publisher write$ "\bibbdsep {} " write$ + year write$ + extra.label "" = + 'skip$ + { "\el {" write$ extra.label write$ "}" write$ } + if$ + } + if$ + } + { year empty$ + { " {" write$ address write$ "\bpubaddr {} " write$ publisher write$ } + { " {" write$ address write$ "\bpubaddr {} " write$ publisher write$ "\bibbdsep {} " write$ + year write$ + extra.label "" = + 'skip$ + { "\el {" write$ extra.label write$ "}" write$ } + if$ + } + if$ + } + if$ + } + if$ + "}}%" write$ newline$ + " {" write$ + title empty$ + { "{}%" write$ newline$ } + { "{" title * + type$ "archival" = + { shortarchive empty$ not + { ", In: " shortarchive * * } + { archive empty$ not + { ", In: " archive * * } + 'skip$ + if$ + } + if$ + shortsubarchive empty$ + 'skip$ + { ", " shortsubarchive * * } + if$ + sig1 empty$ + 'skip$ + { ", " sig1 * * + sig2 empty$ + 'skip$ + { ". " sig2 * * + sig3 empty$ + 'skip$ + { ". " sig3 * * + sig4 empty$ + 'skip$ + { ". " sig4 * * } + if$ + } + if$ + } + if$ + } + if$ + pages empty$ + 'skip$ + { " \jbArchPages {" pages n.dashify * "}" * * } + if$ + } + 'skip$ + if$ + "}%" * write$ newline$ } + if$ + gender empty$ + { " {}" write$ } + { " {" gender * "}" * write$ } + if$ + oyear empty$ + { "{}" write$ } + { "{" oyear * "}" * write$ } + if$ + author empty$ + { editor empty$ + { "{4}" write$ }% author and editor empty + { "{3}" write$ }% author empty, editor not + if$ + } + { editor empty$ + { "{2}" write$ }% editor empty, author not + { "{1}" write$ }% both author and editor given + if$ + } + if$ + "{}{}{}{}{}}%" write$ newline$ + " ]{" write$ + cite$ write$ + "}" write$ + url empty$ + 'skip$ + { newline$ " \jburldef {" write$ cite$ write$ "}{" write$ url write$ "}%" write$ } + if$ + newline$ + " \jbbibargs {" write$ + "" + before.all 'output.state := +} + +FUNCTION {output.bibitem} +{ output.bibitem.fst + output.bibitem.snd +} + +FUNCTION {format.note} +{ note empty$ + 'skip$ + { output.state before.all = + {" \jbnote {} {" * note * "} " * } + {" \jbnote {1} {" * note * "} " * } + if$ + } + if$ +} + +FUNCTION {format.endnote} +{ note empty$ + { "" } + { " \jbendnote {" note * "}" * } + if$ +} + + +FUNCTION {format.juradiss.book} +{ dissyear empty$ + { "" } + { type empty$ + { school empty$ + { "Dissyear but no school in " cite$ * warning$ + " (\alsothesisname {} \jurthesisname" * + year empty$ not year missing$ not and + { "\bibbdsep {} " dissyear * } + 'skip$ + if$ + ")" * + } + { " (\alsothesisname {} \jurthesisname, " school * + year empty$ not year missing$ not and + { "\bibbdsep {} " dissyear * * } + 'skip$ + if$ + ")" * + } + if$ + } + { school empty$ + { "Dissyear but no school in " cite$ * warning$ + " (\alsothesisname {} " type * + year empty$ not year missing$ not and + { "\bibbdsep {} " dissyear * } + 'skip$ + if$ + ")" * + } + { " (\alsothesisname {} " type * + ", " school * * + year empty$ not year missing$ not and + { "\bibbdsep {} " dissyear * * } + 'skip$ + if$ + ")" * + } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.thesis} +{ year empty$ + { school empty$ + { "No universtiy in " cite$ * warning$ } + { "There's a university, but no year in " cite$ * warning$ } + if$ + "" + } + { type empty$ + { school empty$ + { "No university in " cite$ * warning$ + type$ "mastersthesis" = + { "\apyformat {\mastersthesisname" * address empty$ 'skip$ { ", " address * * } if$ "\bibbdsep {} " year * "}" * } + { type$ "jurthesis" = + { "\apyformat {\jurthesisname" * address empty$ 'skip$ { ", " address * * } if$ "\bibbdsep {} " year * "}" * } + { "\apyformat {\phdthesisname" * address empty$ 'skip$ { ", " address * * } if$ "\bibbdsep {} " year * "}" * } + if$ + } + if$ + } + { type$ "mastersthesis" = + { "\mastersthesisname, \apyformat {" school * address empty$ 'skip$ { ", " address * * } if$ "\bibbdsep {} " year * * "}" * } + { type$ "jurthesis" = + { "\jurthesisname, \apyformat {" school * address empty$ 'skip$ { ", " address * * } if$ "\bibbdsep {} " year * * "}" * } + { "\phdthesisname, \apyformat {" school * address empty$ 'skip$ { ", " address * * } if$ "\bibbdsep {} " year * * "}" * } + if$ + } + if$ + } + if$ + } + { school empty$ + { "No university in " cite$ * warning$ type + address empty$ 'skip$ { " \apyformat {" address * } if$ "\bibbdsep {} " * * year * "}" * } + { type " \apyformat {" * school * address empty$ 'skip$ { ", " address * * } if$ "\bibbdsep {} " year * * "}" * } + if$ + } + if$ + } + if$ +} + +FUNCTION {set.comma.pages.check} +{ year empty$ + 'skip$ + { pages empty$ + { url empty$ + 'skip$ + { ", " * } + if$ + } + { ", " * } + if$ + } + if$ +} + +FUNCTION {set.period.dash} +{ output.state before.all = + 'skip$ + { period.dash 'output.state := } + if$ +} + +FUNCTION {set.period.dash.check} +{ empty$ + 'skip$ + 'set.period.dash + if$ +} + +FUNCTION {new.sentence} +{ output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ +} + +FUNCTION {part.of.sentence} +{ output.state before.all = + 'skip$ + { mid.sentence 'output.state := } + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + + +FUNCTION {get.final.nonrightbrace.char} +{ { duplicate$ + #-1 #1 substring$ + duplicate$ + "}" = + } + { pop$ + #-2 global.max$ substring$ + } + while$ + swap$ pop$ +} + + +FUNCTION {check.punct.instead.of.add.period} +{ duplicate$ + get.final.nonrightbrace.char + duplicate$ "." = swap$ + duplicate$ "!" = swap$ + "?" = or or + { "} " * } + { "}\bibatsep\ " * } + if$ +} + +FUNCTION {check.punct.instead.of.add.period.art} +{ duplicate$ + get.final.nonrightbrace.char + duplicate$ "." = swap$ + duplicate$ "!" = swap$ + "?" = or or + { "} " * } + { pages empty$ note empty$ url empty$ and and + { "} " * } + { volume empty$ + { pages empty$ + { "}\ajtsep\ " * } + { crossref missing$ + { month empty$ + { "}\ajtsep\ " * } + { "}\ajtsep " * } + if$ + } + { "}\ajtsep " * } + if$ + } + if$ + } + { "}\ajtsep\ " * } + if$ + } + if$ + } + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\bibtfont {" swap$ check.punct.instead.of.add.period * } + if$ +} + +FUNCTION {journaltitlemarkup} +{ duplicate$ empty$ + { pop$ "" } + { "\bibJTsep \bibjtfont {" swap$ check.punct.instead.of.add.period.art * } + if$ +} + +FUNCTION {incollbooktitlemarkup} +{ duplicate$ empty$ + { pop$ "" } + { "\bibbtfont {" swap$ check.punct.instead.of.add.period * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION { lastnamemarkup } +{ duplicate$ empty$ + { pop$ "" } + { "\bibnf {" swap$ * "}" * } + if$ +} + +FUNCTION { editorlastnamemarkup } + { duplicate$ empty$ + { pop$ "" } + { author empty$ + { "\biblenf {" swap$ * "}" * } % lonely editor(s)! + { "\bibenf {" swap$ * "}" * } + if$ + } + if$ +} + +FUNCTION { othermarkup } + { duplicate$ empty$ + { pop$ " {}" } + { " {" swap$ * "}" * } + if$ +} + +FUNCTION {article.in.journal} +{ duplicate$ empty$ + { pop$ "" } + { author missing$ + { title missing$ + 'skip$ + { journaltitlemarkup "" swap$ * } + if$ + } + { journaltitlemarkup "" swap$ * } + if$ + } + if$ +} + +FUNCTION {format.names} % NEW v0.5 +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ll}" format.name$ 't := t lastnamemarkup 't := + s nameptr "{ff}" format.name$ othermarkup 'u := + s nameptr "{f.}" format.name$ othermarkup 'v := + s nameptr "{vv}" format.name$ othermarkup 'w := + s nameptr "{jj}" format.name$ othermarkup 'x := + t u * v * w * x * 't := + nameptr #1 > + { namesleft #1 > + { numnames #3 > + { "" * } + { numnames #3 < + { "\Bibbtasep " * t * } % between (exactly) two authors + { "\Bibbfsasep " * t * } % between first and second author (if more than two) + if$ + } + if$ + } + { t "\bibnf {others} {} {} {} {}" = + t "\bibnf {others} {} {} {} {} \edfont {\editorsname}" = or + numnames #3 > or + { "\bibIMfont {\Bibetal}" * } + { numnames #3 < + { "\Bibbtasep " * t * } % between (exactly) two authors + { "\Bibbstasep " * t * } % between second and third author + if$ + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.editor.names} % NEW v0.5 +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ll}" format.name$ 't := t editorlastnamemarkup 't := + s nameptr "{ff}" format.name$ othermarkup 'u := + s nameptr "{f.}" format.name$ othermarkup 'v := + s nameptr "{vv}" format.name$ othermarkup 'w := + s nameptr "{jj}" format.name$ othermarkup 'x := + t u * v * w * x * 't := + nameptr #1 > + { namesleft #1 > + { numnames #3 > + { "" * } + { numnames #3 < + { "\Bibbtesep " * t * } % between (exactly) two editors + { "\Bibbfsesep " * t * } % between first and second editor (if more than two) + if$ + } + if$ + } + { t "\bibenf {others} {} {} {} {}" = + t "\biblenf {others} {} {} {} {}" = or + t "\bibenf {others} {} {} {} {} \edfont {\editorsname}" = or + t "\biblenf {others} {} {} {} {} \edfont {\editorsname}" = or + numnames #3 > or + { "\bibIMfont {\Bibetal}" * } + { numnames #3 < + { "\Bibbtesep " * t * } % between (exactly) two editors + { "\Bibbstesep " * t * } % between second and third editor + if$ + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.name.sig} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff}{ vv}{ ll}{ jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { "" * t * } + { t "others" = + { " et al." * } + { "" * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {indexmarkup} +{ duplicate$ empty$ + { pop$ "{}" } + { "{" swap$ * "}" * } + if$ +} + +FUNCTION {format.names.for.index} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ll}" format.name$ 't := t indexmarkup 't := + s nameptr "{ff}" format.name$ indexmarkup 'u := + s nameptr "{f.}" format.name$ indexmarkup 'v := + s nameptr "{vv}" format.name$ indexmarkup 'w := + s nameptr "{jj}" format.name$ indexmarkup 'x := + t u * v * w * x * 't := + t "{others}{}{}{}{}" = + 'skip$ + { nameptr #1 > + { namesleft #1 > + { "; " * t * } + { + t "others" = + 'skip$ + { "; " * t * } + if$ + } + if$ + } + 't + if$ + } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.founders} +{ founder empty$ + 'skip$ + { author empty$ + 'skip$ + { " in: " * } + if$ + founder format.names "\foundername" * * + editor empty$ + 'skip$ + { author empty$ + { "\afterfoundersep {}" * } + 'skip$ + if$ + } + if$ + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { author empty$ + { editor format.editor.names + editortype empty$ + { editor num.names$ #1 > + { "\fsted {\editorsname}" * } + { "\fsted {\editorname}" * } + if$ + } + { "\fsted {(" editortype * ")}" * * } + if$ + } + { founder empty$ + { "\bibfnfont {;} " * } + { type$ "commented" = + { "\afterfoundersep {}" * } + { "\bibfnfont {;} " * } + if$ + } + if$ + editor format.editor.names * + editortype empty$ + { editor num.names$ #1 > + { " \edfont {\editorsname}" * } + { " \edfont {\editorname}" * } + if$ + } + { " \edfont {(" editortype * ")}" * * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.snd.editors} +{ editor empty$ + { "" * } + { author empty$ + { editortype empty$ + { editor num.names$ #1 > + { "\snded {\sndeditorsname}" * } + { "\snded {\sndeditorname}" * } + if$ + } + { "\snded {(" editortype * ")}" * * } + if$ + } + 'skip$ + if$ + } + if$ +} + +FUNCTION { format.howcited } +{ "} {\bibhowcited}" format.endnote * } + +FUNCTION {fin.entry.endnote} +{ " \jbdoitem {" * + author empty$ + 'skip$ + { author format.names.for.index * } + if$ + "} {" + editor empty$ + 'skip$ + { editor format.names.for.index * } + if$ + "} {" * + organization empty$ + 'skip$ + { "{" organization * "}{}{}{}{}" * * } + if$ + "}" * * write$ + annote missing$ + { " \bibAnnoteFile {" cite$ * "}" * write$ newline$ } + { " \bibAnnote {" annote * "}" * write$ newline$ } + if$ +} + +FUNCTION {count.authors.or.editors} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { "" 't := + nameptr #1 > + { namesleft #1 > + { "" * } + { "s" * } % more than one author/editor, append `s' + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION { set.after.author.sep } +{ author missing$ + { editor missing$ + { organization missing$ + { archive missing$ + { "} {empty} {} {" } + { "} {" archive format.name.sig * "} {} {" * } + if$ + } + { "} {" organization "} {org} {" * * } + if$ + } + { "} {" editor format.name.sig * "} {ed" editor count.authors.or.editors "} {" * * * } + if$ + } + { "} {" author format.name.sig * "} {au" author count.authors.or.editors "} {" * * * } + if$ + author empty$ + { format.snd.editors } + 'skip$ + if$ + "" * +} + + +FUNCTION {format.names.info} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff }{vv }{ll}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { " " * t * } + { t "others" = + { " et al." * } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION { format.howcited.comment } +{ edition empty$ + { "} {\bibcommenthowcited}" format.endnote * } + { "} {\bibcommenthowcited}" format.endnote * * + author empty$ editor empty$ not and + { " \jbauthorinfo {" editor format.names.info " " title * * * "}{" cite$ "}" * * * } + { author empty$ shortauthor empty$ not and + { " \jbauthorinfo {" shortauthor format.names.info " " title * * * "}{" cite$ "}" * * * } + { " \jbauthorinfo {" author format.names.info " " title * * * "}{" cite$ "}" * * * } + if$ + } + if$ + } + if$ +} + +FUNCTION { format.howcited.artperiod } +{ "} {\bibartperiodhowcited}" format.endnote * } + +FUNCTION {format.proceed.organization} +{ organization empty$ + { "" } + { organization " \organizationname {}" * } + if$ +} + +FUNCTION {format.titleaddon} +{ title empty$ + { "" } + { titleaddon empty$ + { "" } + { titleaddon "\bibatsep\ " * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { "\bibtfont {" title check.punct.instead.of.add.period * format.titleaddon * } + if$ +} + +FUNCTION {format.artperiodincoll.title} +{ title empty$ + { "" } + { "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * } + if$ +} + +FUNCTION {format.volumetitle} +{ volumetitle empty$ + { "" } + { volume empty$ + { "There's a volumetitle but no volume in " cite$ * warning$ volumetitle ", " * } + { volumetitle ", " * } + if$ + } + if$ +} + +FUNCTION {add.extra.label} +{ extra.label "" = + 'skip$ + { "\bibel {" extra.label * "}" * * } + if$ +} + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "There's a month but no year in " cite$ * warning$ month } + if$ + } + { month empty$ + { edition empty$ + 'skip$ + { "\jbssedbd {" convert.edition.superscript extract.num * "}" * * } + if$ + year + add.extra.label + } + { month " " * + edition empty$ + 'skip$ + { "\jbssedbd {" convert.edition.superscript extract.num * "}" * * } + if$ + year * + add.extra.label + } + if$ + } + if$ +} + +FUNCTION {format.update} +{ updated missing$ not + { "\updatesep {} \updatename {} " * updated * } + 'skip$ + if$ +} + +FUNCTION {oaddress.opublisher.oyear.format} +{ type$ "book" = type$ "inbook" = type$ "incollection" = or or + { oyear empty$ + { opublisher empty$ + { oaddress empty$ + 'skip$ + { oaddress "\osep {} " * * } + if$ + } + { oaddress empty$ + { opublisher "\osep {} " * * } + { oaddress "\bpubaddr {} " * opublisher "\osep {} " * * * } + if$ + } + if$ + } + { year empty$ + { "oyear without year in " cite$ * warning$ } + 'skip$ + if$ + opublisher empty$ + { oaddress empty$ + { oyear * "\osep {} \reprintname {}, " * } + { oaddress "\bibbdsep {} " * oyear "\osep {} " * * * } + if$ + } + { oaddress empty$ + { opublisher * "\bibbdsep {} " * oyear "\osep {} " * * } + { oaddress "\bpubaddr {} " * opublisher "\bibbdsep {} " * * oyear "\osep {} " * * * } + if$ + } + if$ + } + if$ + } + 'skip$ + if$ +} + +FUNCTION {make.translators} +{ before.all 'output.state := + translator empty$ + { flanguage empty$ + { "" } + { "\translator {}{" flanguage "l" change.case$ * "}" * + type$ "incollection" = not + type$ "article" = not + and + { "{1} " * } + { type$ "incollection" = + { booktitle empty$ + { "{} " * } + { "{1} " * } + if$ + } + { type$ "article" = + { "{1}" * } + { series empty$ + { "{} " * } + { "{1} " * } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + { "\translator {" translator * "}" * + flanguage empty$ + { "{}" * } + { "{" * flanguage "l" change.case$ * "}" * } + if$ + type$ "incollection" = not + type$ "article" = not + and + { "{1} " * } + { + type$ "incollection" = + { booktitle empty$ + { "{} " * } + { "{1} " * } + if$ + } + { type$ "article" = + { "{1} " * } + { series empty$ + { "{} " * } + { "{1} " * } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + before.all 'output.state := +} + + +FUNCTION {checked.inst} +{ institution empty$ + { " \apyformat {" * + oaddress.opublisher.oyear.format + } + { address empty$ not + { " \apyformat {" * } + 'skip$ + if$ + } + if$ +} + +FUNCTION {format.address.publisher.year} +{ publisher empty$ + { address empty$ + { year empty$ + { "Neither address nor year in " cite$ * warning$ "" } + { "No address in " cite$ * warning$ + institution empty$ + { " \apyformat {" oaddress.opublisher.oyear.format format.date * "}" * } + { " \apyformat {" institution * "\bibbdsep {} " * format.date "}" * * } + if$ + } + if$ + } + { year empty$ + { checked.inst address "}" * } + { checked.inst address "\bibbdsep {} " format.date * "}" * * } + if$ + } + if$ + } + { address empty$ + { year empty$ + { "There's only a publisher (no address, no year) in " cite$ * warning$ publisher } + { checked.inst publisher "\bibbdsep {} " * format.date "}" * * } + if$ + } + { year empty$ + { checked.inst address * "\bpubaddr {} " publisher "}" * * }% + { checked.inst address * "\bpubaddr {} " publisher "\bibbdsep {} " * format.date "}" * * * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.howpublished.address.year} +{ howpublished empty$ + { address empty$ + { year empty$ + { "Neither address nor year in " cite$ * warning$ "" } + { "No address in " cite$ * warning$ format.date } + if$ + } + { " \apyformat {" oaddress.opublisher.oyear.format address * "\bibbdsep {} " * format.date "}" * * } + if$ + } + { address empty$ + { year empty$ + { "There's only a howpublished (no address, no year) in " cite$ * warning$ howpublished } + { " \apyformat {" oaddress.opublisher.oyear.format howpublished * "\bibbdsep {} " * format.date "}" * * } + if$ + } + { year empty$ + { " \apyformat {" oaddress.opublisher.oyear.format address * "\bpubaddr {} " * howpublished "}" * * } + { " \apyformat {" oaddress.opublisher.oyear.format address * "\bpubaddr {} " * howpublished * "\bibbdsep {} " * format.date "}" * * } + if$ + } + if$ + } + if$ +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #4 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {bibvol.tie.or.space.connect} +{ duplicate$ text.length$ #4 < + { "~" } + { "{} " } + if$ + swap$ * * +} + +FUNCTION {format.btitle}{ title emphasize format.titleaddon * } + +FUNCTION {format.btitle.vol} +{ number empty$ + { series empty$ + { volume empty$ + { title emphasize format.titleaddon * } + { + title emphasize format.titleaddon * " \volumeformat {" volume * "} " * * + } + if$ + } + { volume empty$ + { title emphasize format.titleaddon * } + { + title emphasize format.titleaddon * "\volumeformat {" volume * "} " * * series "\bibatsep\ " * * + } + if$ + } + if$ + } + { title emphasize format.titleaddon * } + if$ +} + +FUNCTION {format.btitle.vol.inbook} +{ number empty$ + { series empty$ + { volume empty$ + { "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * } + { "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * + " \volumeformat {" volume * "} " * * + } + if$ + } + { volume empty$ + { "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * } + { series emphasize + "\volumeformat {" volume * "} " * * + "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * * } + if$ + } + if$ + } + { "\bibapifont {" title check.punct.instead.of.add.period * format.titleaddon * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { author empty$ title empty$ and + 'skip$ + { " " * } + if$ + urldate empty$ + {"\jburluse {" cite$ * "}" * } + {"\jburluse {" cite$ * "}\bibbudcsep {}\urldatecomment " * urldate * } + if$ + } + if$ +} + +FUNCTION {format.naked.url} +{ url empty$ + { "" } + { urldate empty$ + { title empty$ + 'skip$ + { title emphasize * } + if$ + "\jburluse {" cite$ * "}" * + } + { title empty$ + 'skip$ + { title emphasize * } + if$ + "\jburluse {" cite$ * "}\bibbudcsep {}\urldatecomment " * urldate * + } + if$ + } + if$ +} + +FUNCTION {format.series.number} +{ volume empty$ + { number empty$ + { series empty$ + { "" } + { " \numberandseries {}{" series * "}" * } + if$ + } + { series empty$ + { " \numberandseries {" number * "}{}" * "There's a number but no series in " cite$ * warning$ } + { " \numberandseries {" number * "}{" * series "}" * * } + if$ + } + if$ + } + { series empty$ + { "" } + { type$ "proceedings" = + { " \numberandseries {}{" series * "}" * } % { " (" series * ")" * } + { "" } + if$ + } + if$ + } + if$ +} + +FUNCTION {first.ed} { "\firstedname" } +FUNCTION {second.ed}{ "\secondedname" } +FUNCTION {third.ed} { "\thirdedname" } +FUNCTION {fourth.ed}{ "\fourthedname" } +FUNCTION {fifth.ed} { "\fifthedname" } +FUNCTION {th.ed} { "\thedname" } + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { first.ed 't := } + { s "second" = s "2" = or + { second.ed 't := } + { s "third" = s "3" = or + { third.ed 't := } + { s "fourth" = s "4" = or + { fourth.ed 't := } + { s "fifth" = s "5" = or + { fifth.ed 't := } + { s #1 #1 substring$ is.num + { s th.ed * 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { "\jbedition {" * convert.edition "~\editionname {}\jbaensep} " * }% dot or not ??????? + if$ +} + +FUNCTION { format.isbn.issn } +{ isbn empty$ + { issn empty$ + { "" } + { "\jbissn {" issn n.dashify * "}" * } + if$ + } + { "\jbisbn {" isbn n.dashify * "}" * } + 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 empty$ + { "" } + { " \jbPages{" pages n.dashify * "}" * } + if$ +} + +FUNCTION {multi.pagerange.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "b" = + swap$ "/" = or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {check.missing.pages} +{ pages empty$ + { "Empty pages in " cite$ * warning$ } + { pages multi.pagerange.check + { "" * } + { type$ "article" = type$ "periodical" = or + { "There's only a starting page, no pagerange in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + } + if$ +} + +FUNCTION {format.pages.book} +{ pages empty$ + { "" } + { " \jbpages {" pages " \bibtotalpagesname}" *} + if$ +} + +FUNCTION {format.totalpages} +{ totalpages empty$ + { "" } + { + ", " totalpages "~\bibtotalpagesname" * * + } + if$ +} + +FUNCTION {format.vol.year.num.pages} +{ volume empty$ + { "" } + { " \artvolumeformat {" volume * "}" * + year empty$ + { "There's a volume but no year in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + month empty$ + 'skip$ + { "\ " month * * } + if$ + year empty$ + 'skip$ + { " \artyearformat {" year * add.extra.label "}" * * } + if$ + number empty$ + 'skip$ + { "\artnumberformat {" number * "}" * * } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { "" format.pages * * } + if$ + } + if$ +} + +FUNCTION {format.vol.bracedyear.num.pages} +{ volume empty$ + { "" } + { " \pervolumeformat {" volume * "}" * + year empty$ + { "There's a volume but no year in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + year empty$ + 'skip$ + { " \peryearformat {" year * add.extra.label "}" * * } + if$ + month empty$ + 'skip$ + { ", " month * * } + if$ + number empty$ + 'skip$ + { ", \pernumberformat {" number * "}" * * } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { "" format.pages * * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\unskip.\,-- \bibchapterlongname" } + { "\unskip.\,-- " type * } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { format.pages * } + if$ + } + if$ +} + +FUNCTION {format.booktitleaddon} +{ booktitle empty$ + { "" } + { booktitleaddon empty$ + { "" } + { booktitleaddon } + if$ + } + if$ +} + +FUNCTION {format.incoll.editor.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { volume empty$ + { "\incolledformat {}{}{" booktitle incollbooktitlemarkup format.booktitleaddon * * "}{}" * + booktitleaddon empty$ + { "{} " * } + { "{1} " * } + if$ + } + { "\incolledformat {}{}{" booktitle incollbooktitlemarkup format.booktitleaddon * * "}{" * volume * "}" * + booktitleaddon empty$ + { "{} " * } + { "{1} " * } + if$ + } + if$ + } + { volume empty$ + { "\incolledformat {" + editor empty$ + { "" } + { editor format.editor.names "}" * * + editortype empty$ + { editor num.names$ #1 > + { "{\edfont {\editorsname}}{" * } + { "{\edfont {\editorname}}{" * } + if$ + } + { "{\edfont {(" * editortype * ")}}{" * } + if$ + } + if$ + booktitle incollbooktitlemarkup * format.booktitleaddon * "}{}" * + booktitleaddon empty$ + { "{} " * } + { "{1} " * } + if$ + } + { "\incolledformat {" * + editor empty$ + { "" } + { editor format.editor.names "}" * * + editortype empty$ + { editor num.names$ #1 > + { "{\edfont {\editorsname}}{" * } + { "{\edfont {\editorname}}{" * } + if$ + } + { "{\edfont {(" * editortype * ")}}{" * } + if$ + } + if$ + booktitle incollbooktitlemarkup * format.booktitleaddon * "}{" volume * "}" * + booktitleaddon empty$ + { "{} " * } + { "{1} " * } + if$ + } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.tr.number.jur} +{ type empty$ + { number empty$ + { " -- \technicalreportname {} " } + { "~(" number * ").\,-- \technicalreportname {} " * } + if$ + } + { number empty$ + { " -- " type * } + { "~(" number * ").\,-- " type * " " * * } + if$ + } + if$ +} + +FUNCTION {format.article.crossref.bracedyear} +{ key empty$ + { journal empty$ + { "Need key or journal for " cite$ * " to crossref " * crossref * warning$ "" } + { "\bibJTsep\bibjtfont {" journal * check.punct.instead.of.add.period.art * } + if$ + volume empty$ + { "No volume in " cite$ * warning$ } + { " \pervolumeformat {" volume * "} " * } + if$ + year empty$ + { "No year in " cite$ * warning$ } + { "\peryearformat {" year * add.extra.label "}" * * } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { format.pages * } + if$ + } + if$ + } + { "" key * } + if$ + "\ \protect\jbcrossrefchecked {" * crossref * "}\unskip" * +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "Need key or journal for " cite$ * " to crossref " * crossref * warning$ "" } + { "\bibJTsep\bibjtfont {" journal * check.punct.instead.of.add.period.art * } + if$ + } + { "" key * } + if$ + year empty$ + 'skip$ + { year * } + if$ + " \protect\jbcrossrefchecked {" crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "Need editor, key, or series for " cite$ * " to crossref " * crossref * warning$ "" * } + { "" * } + if$ + } + { key * } + if$ + } + { "" * } + if$ + volume empty$ + { "Empty volume in " cite$ * "'s crossref of " * crossref * warning$ "" + " \protect\jbcrossrefchecked {" * crossref * "}\unskip" * } + { " \protect\jbcrossrefchecked[" * volume * "]{" * crossref "}\unskip" * } + if$ +} + +FUNCTION {format.incoll.inproc.crossref} +{ " \protect\jbincollcrossref {" * crossref * "}" * + editor empty$ + { "{}" * } + { "{1}" * } + if$ + format.pages % *<== 0.5f removed too. +} + +FUNCTION { format.editors.organization } +{ organization empty$ + 'skip$ + { type$ "misc" = + { organization } + { author empty$ + { editor empty$ + { " " organization * " \organizationname {}" * } + { "; " organization * " \organizationname {}" * } + if$ + } + { "; " organization * " \organizationname {}" * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.address.organization.manual} +{ author empty$ + { organization empty$ + { address empty$ + 'skip$ + { address output part.of.sentence + year empty$ not { "\bibbdsep {}" *} 'skip$ if$ + } + if$ + } + 'skip$ + if$ + } + { address empty$ + { organization empty$ + 'skip$ + { organization output part.of.sentence + year empty$ not { "\bibbdsep {}" *} 'skip$ if$ + } + if$ + } + { organization empty$ + { address output part.of.sentence } + { address "\bpubaddr {} " * organization * output part.of.sentence } + if$ + year empty$ not { "\bibbdsep {}" *} 'skip$ if$ + } + if$ + } + if$ +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.artperiodincoll.title "title" output.check + crossref missing$ + { journal article.in.journal output.nonnull + new.sentence + format.vol.year.num.pages output + } + { format.article.crossref output.nonnull } + if$ + format.url output + format.note + format.isbn.issn output + format.howcited.artperiod output + check.missing.pages + fin.entry.endnote +} + +FUNCTION {commented} +{ output.bibitem + author empty$ + { editor empty$ + { format.founders } + { format.founders format.editors "editor" output.check } + if$ + } + { editor empty$ + { format.authors format.founders output.nonnull } + { format.authors format.founders format.editors output.nonnull } + if$ + } + if$ + set.after.author.sep output + crossref missing$ + { format.btitle.vol "title" output.check } + { format.btitle "title" output.check } + if$ + format.volumetitle output + format.edition output + format.address.publisher.year "publisher" output.check + format.update + new.sentence + crossref missing$ + { format.series.number output } + { format.book.crossref output.nonnull } + if$ + format.url output + format.pages output + format.note + format.howcited.comment output + fin.entry.endnote +} + +FUNCTION {periodical} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.artperiodincoll.title "title" output.check + crossref missing$ + { journal article.in.journal output.nonnull + new.sentence + format.vol.bracedyear.num.pages output + } + { new.sentence format.article.crossref.bracedyear output.nonnull } + if$ + format.url output + format.note + format.isbn.issn output + format.howcited.artperiod output + fin.entry.endnote +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { editor empty$ + { "" "author and editor" output.check } + { format.editors output.nonnull } + if$ + } + { editor empty$ + { format.authors output.nonnull } + { format.authors "\jbtiafed {" format.editors * "}" * output.nonnull } + if$ + } + if$ + set.after.author.sep output + crossref missing$ + { format.btitle.vol "title" output.check } + { format.btitle "title" output.check } + if$ + author empty$ not editor empty$ not and + { "\jbedafti {\edbyname {} " editor * "," * * "} " * } + 'skip$ + if$ + make.translators output + format.volumetitle output + format.edition output + format.address.publisher.year "publisher" output.check + new.sentence + format.juradiss.book output + crossref missing$ + { format.series.number output } + { format.book.crossref output.nonnull } + if$ + format.url output + format.pages output + format.totalpages output + format.note + format.isbn.issn output + format.howcited output + fin.entry.endnote +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { editor empty$ + { format.authors output.nonnull } + { format.authors format.editors output.nonnull } + if$ + } + if$ + set.after.author.sep output + crossref missing$ + { chapter empty$ + { "There's no chapter in " cite$ * warning$ "" * } + { type empty$ + { "\Bibchaptername{}" } + { type } + if$ + chapter tie.or.space.connect " In " * * + } + if$ + format.btitle.vol.inbook "title" output.check + make.translators output + format.volumetitle output + format.edition output + format.address.publisher.year "publisher" output.check + new.sentence + format.series.number output + format.url output + format.pages "pages" output.check + format.note + format.isbn.issn output + } + { chapter empty$ + { "There's no chapter in " cite$ * warning$ "" * + format.btitle.vol.inbook "title" output.check + } + { type empty$ + { "\Bibchaptername{}" } + { type } + if$ + chapter tie.or.space.connect "" * * + } + if$ + format.volumetitle output + format.book.crossref output.nonnull + format.url output + format.pages "pages" output.check + format.note + } + if$ + part.of.sentence + format.howcited output + fin.entry.endnote +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.artperiodincoll.title "title" output.check + make.translators output + crossref missing$ + { format.incoll.editor.booktitle "booktitle" output.check + format.volumetitle output + format.edition output + format.address.publisher.year "publisher" output.check + new.sentence + format.series.number output + format.url output + format.isbn.issn output + part.of.sentence + format.chapter.pages output + format.note + } + { format.volumetitle output + format.incoll.inproc.crossref output.nonnull + format.url output + format.note + } + if$ + format.howcited output + check.missing.pages + fin.entry.endnote +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.artperiodincoll.title "title" output.check + crossref missing$ + { format.incoll.editor.booktitle "booktitle" output.check + address empty$ + { organization new.sentence.checka + organization output + part.of.sentence + format.address.publisher.year output + } + { format.address.publisher.year "publisher" output.check } + if$ + new.sentence + series empty$ + 'skip$ + { format.series.number output } + if$ + format.url output + format.note + format.isbn.issn output + part.of.sentence + format.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.url output + format.note + } + if$ + format.howcited output + fin.entry.endnote +} + +FUNCTION {conference}{inproceedings} + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { "\bibnf{" organization * "} {} {} {} {}" * output.nonnull } + if$ + } + { format.authors output.nonnull } + if$ + set.after.author.sep output + format.btitle "title" output.check + format.edition output + format.address.organization.manual + format.date output + pages set.period.dash.check + format.pages.book output + format.url output + format.note + format.howcited output + fin.entry.endnote +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.btitle "title" output.check + format.thesis output + set.comma.pages.check + pages new.sentence.checka + format.pages output + format.url output + format.note + format.howcited output + fin.entry.endnote +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.btitle "title" output.check + format.thesis output + set.comma.pages.check + pages new.sentence.checka + format.pages output + format.url output + format.note + format.howcited output + fin.entry.endnote +} + +FUNCTION {jurthesis} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.btitle "title" output.check + format.thesis output + set.comma.pages.check + pages new.sentence.checka + format.pages output + format.url output + format.note + format.howcited output + fin.entry.endnote +} + +FUNCTION {booklet} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.title "title" output.check + format.howpublished.address.year output + format.note + format.url output + format.howcited output + fin.entry.endnote +} + +FUNCTION {misc} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.title output + format.howpublished.address.year output + format.note + format.url output + format.howcited output + fin.entry.endnote +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization empty$ + 'skip$ + { "\biblnfont {" organization * " \organizationname}" * output } + if$ + } + { format.editors output.nonnull } + if$ + set.after.author.sep output + format.btitle "title" output.check + new.sentence + editor empty$ + 'skip$ + { format.proceed.organization output } + if$ + new.sentence + format.series.number output.nonnull + volume empty$ + { "" output.nonnull } + { "\volumeformat {" volume * "} " * "volume" output.check } + if$ + format.address.publisher.year "publisher" output.check + pages set.period.dash.check + format.pages.book output + format.url output + format.note + format.isbn.issn output + format.howcited output + fin.entry.endnote +} + +FUNCTION {techreport} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { editor empty$ + { format.authors output.nonnull } + { format.authors format.editors output.nonnull } + if$ + } + if$ + set.after.author.sep output + format.title "title" output.check + institution new.sentence.checka + format.address.publisher.year output + number new.sentence.checka + format.tr.number.jur "number" output.check + pages set.period.dash.check + format.pages.book output + format.url output + format.note + format.isbn.issn output + format.howcited output + fin.entry.endnote +} + +FUNCTION {www} +{ output.bibitem + format.authors "author" output.check + set.after.author.sep output + format.naked.url output + format.howcited output + fin.entry.endnote +} + +FUNCTION {lexicon} +{ output.bibitem + set.after.author.sep output + crossref missing$ + { format.btitle.vol "title" output.check } + { format.btitle "title" output.check } + if$ + author empty$ + { editor empty$ + 'skip$ + { "\edbyname{} " * editor format.editor.names "," * * } + if$ + } + { "\byname{} " author format.names * "," * * } + if$ + make.translators output + format.volumetitle output + format.edition output + format.address.publisher.year "publisher" output.check + new.sentence + format.juradiss.book output + crossref missing$ + { format.series.number output } + { format.book.crossref output.nonnull } + if$ + format.url output + format.pages output + format.totalpages output + format.note + format.isbn.issn output + format.howcited output + fin.entry.endnote +} + +STRINGS { last.archive last.subarchive } + +FUNCTION {init.last.archive } +{ "" 'last.archive := + "" 'last.subarchive := } + +FUNCTION {archival} +{ output.bibitem + archive empty$ + { "" 'last.archive := } + { archive last.archive = + { "} {" archive format.name.sig * "} {} {\jbsamearch{} " * * } + { "\bibanfont{" archive * "archive" output.check + shortarchive empty$ + 'skip$ + { " \jbshortarchformat{" shortarchive * "}" * * } + if$ + "}" * + "} {" archive format.name.sig * "} {} {\jbnotsamearch{} " * * + } + if$ + archive 'last.archive := + } + if$ + subarchive empty$ + { "" 'last.subarchive := } + { subarchive last.subarchive = + 'skip$ + { subarchive output + shortsubarchive empty$ + 'skip$ + { " \jbshortsubarchformat{" shortsubarchive * "}" * * } + if$ + "\jbsubarchsep{} " * + } + if$ + subarchive 'last.subarchive := + } + if$ + sig1 empty$ + 'skip$ + { "\jbarchsig {" * + subarchive empty$ + 'skip$ + { "\jbsamesubarchindent{} " * } + if$ + sig1 * + sig2 empty$ + 'skip$ + { ". " sig2 * * + sig3 empty$ + 'skip$ + { ". " sig3 * * + sig4 empty$ + 'skip$ + { ". " sig4 * * } + if$ + } + if$ + } + if$ + "} {" * + } + if$ + archname missing$ + { "}" * } + { archname "}" * output } + if$ + format.howcited output + fin.entry.endnote +} + +FUNCTION {unpublished}{misc} + +FUNCTION {default.type}{misc} + +MACRO {jan} {"\janname\ "} +MACRO {feb} {"\febname\ "} +MACRO {mar} {"\marname\ "} +MACRO {apr} {"\aprname\ "} +MACRO {may} {"\mayname\ "} +MACRO {jun} {"\junname\ "} +MACRO {jul} {"\julname\ "} +MACRO {aug} {"\augname\ "} +MACRO {sep} {"\sepname\ "} +MACRO {oct} {"\octname\ "} +MACRO {nov} {"\novname\ "} +MACRO {dec} {"\decname\ "} + +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 := % for two: (Jones/de~Bruijn) + s #1 "{vv~}{ll}" format.name$ % for three: (Jones/de~Bruijn/Smith) + s num.names$ duplicate$ % for more: (Jones et\,al.) + #2 < + 'pop$ % for just one person + { duplicate$ duplicate$ + #3 > + swap$ s swap$ "{ff }{vv }{ll}{ jj}" format.name$ "others" = + or + { pop$ "\Bibetal" * } % for 4 or more, or last is `others' + { #2 = + { "\jbbtasep " * s #2 "{vv~}{ll}" format.name$ * } % for (exactly) two + { "\jbbfsasep " * s #2 "{vv~}{ll}" format.name$ * % for three + "\jbbstasep " * s #3 "{vv~}{ll}" format.name$ * + } + if$ + } + if$ + } + if$ + year missing$ + 'skip$ + { "\jbdy {" year * "}" * * }% dummy year to prevent from `1993a' and `2001b' for works by the same author + if$ +} + +FUNCTION {format.editor.lab.names} +{ 's := % for two: (Jones/de~Bruijn) + s #1 "{vv~}{ll}" format.name$ % for three: (Jones/de~Bruijn/Smith) + s num.names$ duplicate$ % for more: (Jones et\,al.) + #2 < + 'pop$ % for just one person + { duplicate$ duplicate$ + #3 > + swap$ s swap$ "{ff }{vv }{ll}{ jj}" format.name$ "others" = + or + { pop$ "\Bibetal" * } % for 4 or more, or last is `others' + { #2 = + { "\jbbtesep " * s #2 "{vv~}{ll}" format.name$ * } % for (exactly) two + { "\jbbfsesep " * s #2 "{vv~}{ll}" format.name$ * % for three + "\jbbstesep " * s #3 "{vv~}{ll}" format.name$ * + } + if$ + } + if$ + } + if$ + year missing$ + 'skip$ + { "\jbdy {" year * "}" * * }% dummy year to prevent from `1993a' and `2001b' for works by the same author + 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.editor.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.editor.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = type$ "inbook" = or type$ "incollection" = or type$ "commented" = or type$ "lexicon" = or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'label := +} + +FUNCTION {calc.dummy.label} +{ type$ "book" = type$ "inbook" = or type$ "incollection" = or type$ "commented" = or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + 'dummy.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{ ff{ }}{ vv{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "\bibnf {others} {} {} {} {}" = and + { "\Bibetal" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "Der " #4 + "Die " #4 + "Das " #4 + "Ein " #4 + "Eine " #5 + "The " #4 t chop.word + chop.word + chop.word + chop.word + chop.word + 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 {archival.sort} +{ archive empty$ + { shortarchive empty$ + { "to sort, need archive or shortarchive in " cite$ * warning$ "" } + { shortarchive sortify } + if$ + } + { archive sortify } + if$ +} + +FUNCTION {presort} +{ calc.label + calc.dummy.label +} + +ITERATE {presort} + +%% FUNCTION {before.sort} { "BEFORE SORT:" top$ } +%% EXECUTE {before.sort} +%% FUNCTION {print.sort.keys} {sort.key$ top$} +%% ITERATE {print.sort.keys} + + +%% FUNCTION {after.sort} {"AFTER SORT:" top$} +%% EXECUTE {after.sort} +%% ITERATE {print.sort.keys} + + +INTEGERS { last.extra.num number.label extra.extra.num } + +FUNCTION {make.extra.label} +{ last.extra.num #122 < + { last.extra.num #1 + } + { extra.extra.num #0 = + { "a" chr.to.int$ } + { extra.extra.num #1 + } + if$ + 'extra.extra.num := + "a" chr.to.int$ } + if$ + 'last.extra.num := + extra.extra.num #0 = + { last.extra.num int.to.chr$ } + { extra.extra.num int.to.chr$ 'extra.label := + extra.label last.extra.num int.to.chr$ * } + if$ +} + +FUNCTION {forward.pass} +{ w dummy.label = + { make.extra.label 'extra.label := } + { "a" chr.to.int$ 'last.extra.num := + #0 'extra.extra.num := + "" 'extra.label := + dummy.label 'w := + } + if$ + number.label #1 + 'number.label := +} + +FUNCTION {reverse.pass} +{ x "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'x := + extra.label + duplicate$ empty$ + 'skip$ + { "" swap$ * } + if$ + 'extra.label := + dummy.label extra.label * 'dummy.label := +} + +ITERATE {forward.pass} +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} { sort.label 'sort.key$ := } + +ITERATE {bib.sort.order} + +SORT + +FUNCTION {set.current.authors} +{ author empty$ + { editor empty$ + { organization empty$ + { cite$ 'current-authors := } + { organization 'current-authors := } + if$ + } + { editor format.names #1 entry.max$ substring$ 'current-authors := } +%% ^^^^^^^^^^^^ NOT format.editor.names, otherwise \jb@@arg is always = 0!!! + if$ + } + { author format.names #1 entry.max$ substring$ 'current-authors := } + if$ +} + +STRINGS { previous-authors } + +FUNCTION {initialize.previous.authors} { "" 'previous-authors := } + +FUNCTION {mark.repeat.authors} +{ current-authors previous-authors = + { #1 'repeat-authors := } + 'skip$ + if$ + current-authors 'previous-authors := +} + +ITERATE {set.current.authors} + +EXECUTE {initialize.previous.authors} + +ITERATE {mark.repeat.authors} + +EXECUTE {initialize.previous.authors} + +REVERSE {mark.repeat.authors} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "%" write$ newline$ + "% This bibliography was produced by using jurabib.bst" write$ newline$ + "%" write$ newline$ + "\begin{thebibliography}{}" 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 file `jurunsrt.bst'. diff --git a/Master/texmf-dist/bibtex/bst/kluwer/klunamed.bst b/Master/texmf-dist/bibtex/bst/kluwer/klunamed.bst new file mode 100644 index 00000000000..81e9bd52201 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/kluwer/klunamed.bst @@ -0,0 +1,1181 @@ +% This style produces citations in the `author-year' format. +% It supports two forms of citation: the \cite command produces: (Author, year) +% in the text; the \cite* command only: (year) . + + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +INTEGERS { output.state before.all mid.sentence after.sentence + after.block after.colon } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'after.colon := +} + +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$ + { output.state after.colon = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output.nonnull.extra} +{ 's := + output.state mid.sentence = + { " " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.colon = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.extra} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull.extra + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.check.extra} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull.extra + if$ +} + +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ + ": " year * extra.label * + mid.sentence 'output.state := + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {boldface} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { s nameptr "{f. }{vv~}{ll}{, jj}" format.name$ 't := } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := } + if$ + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.ed.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { s nameptr "{f. }{vv~}{ll}{, jj}" format.name$ 't := } + { s nameptr "{f. }{vv~}{ll}{, jj}" format.name$ 't := } + if$ + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { " (eds.)" * } + { " (ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.editors.extra} +{ editor empty$ + { "" } + { editor format.ed.names + editor num.names$ #1 > + { " (eds.)" * } + { " (ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { "`" title "'" * * } + if$ +} + +FUNCTION {n.dashify} +{ '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 {first.page.number} +{ 't := + "" + { t "" = + { #0 } + { t #1 #1 substring$ "-" = not } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + while$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Vol." volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "No." } + { "No." } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pp." pages n.dashify tie.or.space.connect } + { "p." pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.page} +{ pages empty$ + { "" } + { "p.~" pages first.page.number * } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + volume empty$ + 'skip$ + { boldface } + if$ + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.vol.num.page} +{ volume field.or.null + volume empty$ + 'skip$ + { boldface } + if$ + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages first.page.number * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "Chapt." } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In: " booktitle emphasize * } + { "In: " format.editors.extra * ": " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.in.booktitle.or.series} +{ booktitle empty$ + { series empty$ + { "" } + { "In: " series emphasize * } + if$ + } + { editor empty$ + { "In: " booktitle emphasize * } + { "In: " format.editors.extra * ": " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "In" + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Vol." volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ "In" + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.check + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check.extra + format.vol.num.pages output.extra + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + 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$ + output.year.check + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + new.block + address empty$ + 'skip$ + { address ": " * output + after.colon 'output.state := + } + if$ + publisher "publisher" output.check.extra + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + output.year.check + format.btitle "title" output.check + new.block + howpublished output + address output + new.block + 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$ + output.year.check + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + format.number.series output + new.block + address empty$ + 'skip$ + { address ": " * output + after.colon 'output.state := + } + if$ + publisher "publisher" output.check.extra + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.check + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + new.block + address empty$ + 'skip$ + { address ": " * output + after.colon 'output.state := + } + if$ + publisher "publisher" output.check.extra + format.edition output + format.chapter.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.check + format.title "title" output.check + new.block + crossref missing$ + { format.in.booktitle.or.series "booktitle or series" output.check + format.bvolume output + new.sentence + address output + format.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + publisher output + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + output.year.check + format.title "title" output.check + new.block + organization output + address output + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.check + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + output.year.check + format.title output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.check + format.title "title" output.check + new.block + "Ph.D. thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + output.year.check + format.title "title" output.check + format.bvolume output + format.number.series output + new.block + address empty$ + 'skip$ + { address ": " * output + after.colon 'output.state := + } + if$ + organization output.extra + publisher output + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.check + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.check + format.title "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr,"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +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 := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * 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.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + "\protect\citeauthoryear{" swap$ * "}{" + * + year field.or.null purify$ #-1 #4 substring$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 % by label, sort.label, title---for final label calculation + +STRINGS { last.label next.extra } + +INTEGERS { last.extra.num } + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +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$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * "}" * 'label := + extra.label 'next.extra := +} + +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 % by sort.label, year, title---giving final bibliography order + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + + diff --git a/Master/texmf-dist/bibtex/bst/kluwer/klunum.bst b/Master/texmf-dist/bibtex/bst/kluwer/klunum.bst new file mode 100644 index 00000000000..3b931cbae1f --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/kluwer/klunum.bst @@ -0,0 +1,1159 @@ +% This style produces citations in the `author-year' format. +% It supports two forms of citation: the \cite command produces: (Author, year) +% in the text; the \cite* command only: (year) . + + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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.nonnull.extra} +{ '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.extra} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull.extra + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.check.extra} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull.extra + if$ +} + +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ + ": " year * extra.label * + mid.sentence 'output.state := + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {boldface} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { s nameptr "{f. }{vv~}{ll}{, jj}" format.name$ 't := } + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := } + if$ + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.ed.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { s nameptr "{f. }{vv~}{ll}{, jj}" format.name$ 't := } + { s nameptr "{f. }{vv~}{ll}{, jj}" format.name$ 't := } + if$ + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { " (eds.)" * } + { " (ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.editors.extra} +{ editor empty$ + { "" } + { editor format.ed.names + editor num.names$ #1 > + { " (eds.)" * } + { " (ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { "`" title "'" * * } + if$ +} + +FUNCTION {n.dashify} +{ '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 {first.page.number} +{ 't := + "" + { t "" = + { #0 } + { t #1 #1 substring$ "-" = not } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + while$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Vol." volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "No." } + { "No." } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pp." pages n.dashify tie.or.space.connect } + { "p." pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.page} +{ pages empty$ + { "" } + { "p.~" pages first.page.number * } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + volume empty$ + 'skip$ + { boldface } + if$ + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.vol.num.page} +{ volume field.or.null + volume empty$ + 'skip$ + { boldface } + if$ + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages first.page.number * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "Chapt." } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In: " booktitle emphasize * } + { "In: " format.editors.extra * ": " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.in.booktitle.or.series} +{ booktitle empty$ + { series empty$ + { "" } + { "In: " series emphasize * } + if$ + } + { editor empty$ + { "In: " booktitle emphasize * } + { "In: " format.editors.extra * ": " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "in" + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "Vol." volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ "in" + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.check + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check.extra + format.vol.num.pages output.extra + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + 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$ + output.year.check + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + new.block + address empty$ + 'skip$ + { address ":" * output } + if$ + publisher "publisher" output.check.extra + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + output.year.check + format.btitle "title" output.check + new.block + howpublished output + address output + new.block + 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$ + output.year.check + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + format.number.series output + new.block + address empty$ + 'skip$ + { address ":" * output } + if$ + publisher "publisher" output.check.extra + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.check + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + new.block + address empty$ + 'skip$ + { address ":" * output } + if$ + publisher "publisher" output.check.extra + format.edition output + format.chapter.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.check + format.title "title" output.check + new.block + crossref missing$ + { format.in.booktitle.or.series "booktitle or series" output.check + format.bvolume output + new.sentence + address output + format.pages output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + output.year.check + format.title "title" output.check + new.block + organization output + address output + format.edition output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.check + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + output.year.check + format.title output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.check + format.title "title" output.check + new.block + "Ph.D. thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + output.year.check + format.title "title" output.check + format.bvolume output + format.number.series output + new.block + address empty$ + 'skip$ + { address ":" * output } + if$ + organization output.extra + publisher output + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.check + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + output.year.check + format.title "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr,"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +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 := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * 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.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + "" swap$ * "}{" + * + year field.or.null purify$ #-1 #4 substring$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 % by label, sort.label, title---for final label calculation + +STRINGS { last.label next.extra } + +INTEGERS { last.extra.num } + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +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$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * "}" * 'label := + extra.label 'next.extra := +} + +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 % by sort.label, year, title---giving final bibliography order + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{00}" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/minitoc/frplain1.bst b/Master/texmf-dist/bibtex/bst/minitoc/frplain1.bst new file mode 100644 index 00000000000..8b98fd409b4 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/minitoc/frplain1.bst @@ -0,0 +1,1129 @@ +% J'ai modifie' le style pour qu'il soit plus international. +% En plus les titres sont laisse's tels quels, avec majuscules/minuscules. +% +% Ronan Keryell@cri.ensmp.fr. +% +% 01/02/1995 : utilisation des macros de frbib.sty pour avoir des noms +% francise's pour les << editeur >>, << et >>, etc. +% +% 26/04/1994 : les noms passent en petites capitales. +% modification de la cle' dans format.lab.names +% et rajout des fonctions output.guillemet et +% output.check.guillemet. +% ??/02/2005 : (Jean-Pierre F. Drucbert) suppression d'une +% virgule avant et dans une liste. + +% BibTeX standard bibliography style `plain' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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.guillemet} +{ duplicate$ empty$ + 'pop$ + { "<<~" swap$ * "~>>" * output.nonnull } + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.check.guillemet} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + { "<<~" swap$ * "~>>" * output.nonnull } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}\bgroup\scshape {ll}\egroup{{}}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > +% { "," * } + { " " * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " \andname{} " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", \editornames{}" * } + { ", \editorname{}" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + %{ title "t" change.case$ } On laisse le titre tel quel. + { title } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "\volumename{}" volume tie.or.space.connect + series empty$ + 'skip$ + { " \ofname{} " * series emphasize * } + if$ + "\volumename{} \andname{} \numbername{}" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "\numbername{}" } + { "\Numbername{}" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " \inname{} " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " \editionname{}" * } + { edition "t" change.case$ " \editionname{}" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "\pagesname{}" pages n.dashify tie.or.space.connect } + { "\pagename{}" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { "{\froff:}" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "\chaptername{}" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "\Inname{} " booktitle emphasize * } + { "\Inname{} " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "\technicalreportname{}" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "\Inname{} {\em " journal * "\/}" * } + if$ + } + { "\Inname{} " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " \andname{} " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "\Inname{} " + } + { "\Volumename{}" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "\Inname{} {\em " booktitle * "\/}" * } + if$ + } + { "\Inname{} " key * } + if$ + } + { "\Inname{} " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check.guillemet + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check.guillemet + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check.guillemet + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check.guillemet + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check.guillemet + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output.guillemet + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check.guillemet + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check.guillemet + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check.guillemet + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\janname{}"} + +MACRO {feb} {"\febname{}"} + +MACRO {mar} {"\marname{}"} + +MACRO {apr} {"\aprname{}"} + +MACRO {may} {"\mayname{}"} + +MACRO {jun} {"\junname{}"} + +MACRO {jul} {"\julname{}"} + +MACRO {aug} {"\augname{}"} + +MACRO {sep} {"\sepname{}"} + +MACRO {oct} {"\octname{}"} + +MACRO {nov} {"\novname{}"} + +MACRO {dec} {"\decname{}"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/mslapa/mslapa.bst b/Master/texmf-dist/bibtex/bst/mslapa/mslapa.bst new file mode 100644 index 00000000000..a44b59cc125 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/mslapa/mslapa.bst @@ -0,0 +1,1604 @@ +%$$$ mslapa.bst $$$ +% +% Slightly modified version by Michael Landy - 7/29/94 +% This file should be used with style `mslapa.sty' +% +% This pair of files automates most (although not all) of the bibliographic +% and citation formatting of APA (American Psychological Association) style. +% The various citations formats that you want are things like: +% 1 `in the work of Landy (1985, 1989a,b)' +% 2 `in the work of Landy, Dosher and Sperling (1989)' +% 3 `in the work of Landy and colleagues (1989)' +% 4 `it has been shown (Landy, 1989) that ...' +% 5 `it has been shown (Landy, 1989a, 1990; Sperling, 1991) that ...' +% 6 `it has been shown (Landy, Dosher & Sperling, 1989a) that ...' +% 7 `it has been shown (Landy et al., 1989a) that ...' +% 8 `it has been shown (e.g., Landy et al., 1989a) that ...' +% 9 `it has been shown (see, e.g., Landy et al., 1989a, for discussion) ...' +% +% These are achieved by a number of citation macros: +% +% \cite(PRENOTE)[NOTE]{KEY1,KEY2} - for cases 4, 5 and 6 +% \shortcite(PRENOTE)[NOTE]{KEY1,KEY2} - for case 7, 8 and 9 +% \citeyear(PRENOTE)[NOTE]{KEY1,KEY2} - for cases 1, 2 and 3 +% +% Note that PRENOTE will be put in the parentheses preceding the citations +% (and followed by a blank), and NOTE will follow the citations (preceded by +% a comma). Both PRENOTE and NOTE are (independently) optional arguments. +% Thus, number 8 above was produced by +% +% \shortcite(e.g.,){LANDYETAL89A}, +% +% and number 9 was produced by +% +% \shortcite(see, e.g.,)[for discussion]{LANDYETAL89A}. +% +% \shortcite will use `et al.' for all citations of 3 or more authors. If +% you have a string of citations with more than one citation of 3 or more +% authors, and you want some of those to have et al. and others to be spelled +% out, then you will have to use \nocite{KEY1,KEY2} and format the citation +% yourself by hand: +% +% `it has been shown (Landy, Dosher & Sperling, 1989a; Sperling et al., +% 1990\nocite{LANDETAL89A,SPERETAL90}) that ...' +% +% There are also macros which insert only the author text without the year +% (\fullciteA and \shortciteA), although it's not clear to me where one would +% want to use that. If you want to format things in any other way, you are +% stuck formatting the citation yourself, e.g.: +% +% In 1989, Landy and colleagues\nocite{LANDETAL89} discovered... +% +% The style macros for cite/shortcite/citeyear will lay things out as +% described above, so that if two citations in a row have the same authors, +% the authors are listed once, and if the same year as well, only the letter +% names are added (as in 1989a,b). The algorithm recognizes that the form +% `Landy et al.' can refer to any articles with 3 or more authors beginning +% with Landy, and hence all such cited articles require letters after the year +% (just in case you happen to cite them using `et al.'). The letters are +% added in such a way that the citation letters for a given shortauthor/year +% combination appear in order in the references section. Also, in the reference +% section, and author such as `von Helmholtz' will be alphabetized under H +% and printed as `von Helmholtz, H. (1866). ...'. If you prefer to +% alphabetize this under V you can either put the name in braces {von Helmholtz} +% in your bibliography file (to make it look like a last name), or you can +% alter the function `sort.format.names' below as indicated in the comment to +% be found there. +% +% Things this style won't do for you: +% +% Citations come out in the order you put them in the argument +% to cite/shortcite/citeyear. So, if you want them sorted a +% particular way (alphabetically within year or vice versa), you have +% to do that yourself. +% +% APA specifies that full author order should be used the first time +% a reference is cited, and et al. (for 3 or more authors) thereafter. +% You have to do this yourself by using \cite or \citeyear the first +% time and \shortcite thereafter. +% +% +% BibTeX `mslapa' style file for BibTeX version 0.99c, LaTeX version 2.09 +% Place it in a file called mslapa.bst in the BibTeX search path. +% (Placing it in the same directory as the LaTeX document should also work.) +% Support for named citations is provided by mslapa.sty + +% This version was made by modifying the master file made by +% Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU), and the 'named' BibTeX +% style of Peter F. Patel-Schneider. + +% Copyright (C) 1985, all rights reserved. +% Copying of this file is authorized only if either +% (1) you make absolutely no changes to your copy, including name, or +% (2) if you do make changes, you name it something other than 'newapa.bst'. +% There are undoubtably bugs in this style. If you make bug fixes, +% improvements, etc. please let me know. My e-mail address is: +% spencer@cgrg.ohio.state.edu or 71160.3141@compuserve.com +% +% This style was made from 'plain.bst', 'named.bst', and 'apalike.bst', +% with lots of tweaking to make it look like APA style, along with tips +% from Young Ryu and Brian Reiser's modifications of 'apalike.bst'. +% +% Reference list ordering: alphabetical by author or whatever passes +% for author in the absence of one. +% +% The LaTeX style has to have the following (these are far simplified from +% what's in mslapa.sty): +% +% \let\@internalcite\cite +% \def\fullcite{\def\citeauthoryear##1##2##3##4{##1, ##3##4}\@internalcite} +% \def\fullciteA{\def\citeauthoryear##1##2##3##4{##1}\@internalcite} +% \def\shortcite{\def\citeauthoryear##1##2##3##4{##2, ##3##4}\@internalcite} +% \def\shortciteA{\def\citeauthoryear##1##2##3##4{##2}\@internalcite} +% \def\citeyear{\def\citeauthoryear##1##2##3##4{##3##4}\@internalcite} +% + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key +% month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label1 label2 extra.label sort.label } + +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 u } + +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 {special.output.nonnull} +{ 's := + output.state mid.sentence = + { " " * write$ } + { output.state after.block = + { ": " write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { ": " * write$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output.nonnull.colon} +{ '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.nonnull.space} +{ '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 {special.output} +{ duplicate$ empty$ + 'pop$ + 'special.output.nonnull + if$ +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.check.colon} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull.colon + if$ +} + +FUNCTION {output.check.space} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull.space + if$ +} + +FUNCTION {output.year.check} +{ year empty$ + { "empty year in " cite$ * warning$ } + { write$ + " (" year * extra.label * ")" * + mid.sentence 'output.state := + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + + "\bibitem[\protect\citeauthoryear{" write$ + label1 write$ + "}{" write$ + label2 write$ + "}]{" write$ + + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {underline} +{ duplicate$ empty$ + { pop$ "" } + { "\underline{" swap$ * "}" * } + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {emphasize.space} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "\/}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := % nameptr = 1; + s num.names$ 'numnames := % numnames = num.name$(s); + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { % numnames #2 > + % { "," * } + % 'skip$ + % if$ + t "others" = + { " et~al." * } +% { " and " * t * } +% { ", \& " * t * } + { " \& " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := % nameptr += 1; + namesleft #1 - 'namesleft := % namesleft =- 1; + } + while$ +} + +FUNCTION {format.names.fml} +{ 's := + #1 'nameptr := % nameptr = 1; + s num.names$ 'numnames := % numnames = num.name$(s); + numnames 'namesleft := + { namesleft #0 > } + + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { % numnames #2 > + % { "," * } + % 'skip$ + % if$ + t "others" = + { " et~al." * } +% { " and " * t * } + { " \& " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := % nameptr += 1; + namesleft #1 - 'namesleft := % namesleft =- 1; + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.editors.fml} +{ editor empty$ + { "" } + { editor format.names.fml + editor num.names$ #1 > + { " (Eds.)" * } + { " (Ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { " (Eds.)" * } + { " (Ed.)" * } + if$ + } + if$ +} + +FUNCTION {format.editors.dot} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { " (Eds.)." * } + { " (Ed.)." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +% Note that the APA style requres case changes +% in article titles. The following does not +% change cases. If you perfer it, uncomment the +% following and comment out the above. + +%FUNCTION {format.title} +%{ title empty$ +% { "" } +% { title } +% if$ +%} + +FUNCTION {n.dashify} +{ '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 {format.btitle} +{ edition empty$ + { title emphasize } + { title empty$ + { title emphasize } + { "{\em " title * "\/} (" * edition * " Ed.)" * } +% msl 9/94 - deleted `.' after `Ed.)' + if$ + } + if$ +} + +FUNCTION {format.emphasize.booktitle} +{ edition empty$ + { booktitle emphasize } + { booktitle empty$ + { booktitle emphasize } + { "{\em " booktitle * "\/} (" * edition * " Ed.)" * } +% msl 9/94 - deleted `.' after `Ed.)' + if$ + } + if$ +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "Volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "Volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check +% { "pages" pages n.dashify tie.or.space.connect } +% { "page" pages tie.or.space.connect } + { " (pp.\" pages n.dashify tie.or.space.connect } + { " (p.\" pages tie.or.space.connect } +% msl 10/94 - added blank before `('s +% msl 9/94 - changed `pp.' to `p.' for single page references + if$ + ")" * +% msl 9/94 - deleted `.' after `)' + } + if$ +} + +% By Young (and Spencer) +FUNCTION {format.vol.num.pages} +{ number empty$ + { volume empty$ + { "" } + { "{\em " volume * "}" * } + if$ + } + { volume empty$ + {"there's a number but no volume in " cite$ * warning$ + "{\em (" number * ")}" * } + { "{\em " volume * "(" * number * ")}" * } + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " format.emphasize.booktitle * } + { "In " format.editors * ", " * format.emphasize.booktitle * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle.incoll} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " format.emphasize.booktitle * } + { "In " format.editors.fml * ", " * format.emphasize.booktitle * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ "In" + "\cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ "In" + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + number empty$ volume empty$ and + { format.pages * } + { format.vol.num.pages output } + if$ +% msl 10/94 - if pages with no volume, get rid of extra `,' before `(pp. 1-5)' + } + { format.article.crossref output.nonnull + format.pages * +% msl 10/94 - use `*' instead of `output' so `(pp. 1-5)' isn't preceded by +% a comma + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors.dot + "author and editor" output.check } + { format.authors + output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + output.year.check % added + new.block + format.btitle + "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + address output + publisher "publisher" output.check.colon + } + { new.block + format.book.crossref output.nonnull + } + if$ +% format.edition output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + howpublished output + address output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors.dot + "author and editor" output.check + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + output.year.check % added + new.block + format.btitle + "title" output.check + crossref missing$ + { format.bvolume output + chapter empty$ + {format.pages *} + {format.chapter.pages output} + if$ + chapter empty$ pages empty$ and + {"empty chapter and pages in " cite$ * warning$} + 'skip$ + if$ +% msl 10/94 - changed above so don't get extra `,' before `(pp. 1-5)' + new.block + format.number.series output + new.sentence + address output + publisher + "publisher" output.check.colon + } + { chapter empty$ + {format.pages *} + {format.chapter.pages output} + if$ + chapter empty$ pages empty$ and + {"empty chapter and pages in " cite$ * warning$} + 'skip$ + if$ +% msl 10/94 - changed above so don't get extra `,' before `(pp. 1-5)' + new.block + format.book.crossref output.nonnull + } + if$ +% format.edition output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle.incoll + "booktitle" output.check.colon + format.bvolume output + format.number.series output +% format.chapter.pages special.output + chapter empty$ + {format.pages *} + {format.chapter.pages special.output} + if$ + chapter empty$ pages empty$ and + {"empty chapter and pages in " cite$ * warning$} + 'skip$ + if$ +% msl 10/94 - changed above so don't get extra `,' before `(pp. 1-5)' + new.sentence + address output + publisher "publisher" output.check.colon + } + { format.incoll.inproc.crossref + output.nonnull + chapter empty$ + {format.pages *} + {format.chapter.pages output} + if$ + chapter empty$ pages empty$ and + {"empty chapter and pages in " cite$ * warning$} + 'skip$ + if$ +% msl 10/94 - changed above so don't get extra `,' before `(pp. 1-5)' + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle + "booktitle" output.check + format.bvolume output + format.number.series output + format.pages * +% msl 10/94 - use `*' instead of `output' so `(pp. 1-5)' isn't preceded by +% a comma +% address output +% new.sentence +% organization output +% publisher output + new.sentence + address output + publisher "publisher" output.check.colon +% msl 10/94 - changed to APA standard + } + { format.incoll.inproc.crossref output.nonnull + format.pages * +% msl 10/94 - use `*' instead of `output' so `(pp. 1-5)' isn't preceded by +% a comma + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output % added + output.year.check % added + new.block + format.btitle + "title" output.check + organization address new.block.checkb +% Reversed the order of "address" and "organization", added the ":". + address output + organization "organization" output.check.colon +% address output +% ":" output +% organization output +% format.edition output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output % added + output.year.check % added + title howpublished new.block.checkb + format.title output + new.block + howpublished output + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.btitle + "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors.dot output.nonnull } + if$ + author format.key output % added + output.year.check % added + new.block + format.btitle + "title" output.check + format.bvolume output + format.number.series output + organization output + new.sentence + address output + publisher "publisher" output.check.colon + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + format.tr.number output.nonnull + institution + "institution" output.check + address output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors + "author" output.check + author format.key output % added + output.year.check % added + new.block + format.title + "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {ai} {"Artificial Intelligence"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +INTEGERS { fullptr numfull fullsleft } + +STRINGS { u1 u2 } + +FUNCTION {my.full.label} +{ +% Initialize 'u1','u2','s'. + "" 'u1 := + "" 'u2 := + 's := + +% Initialize 'fullptr','numfull','fullsleft'. + #1 'fullptr := + s num.names$ 'numfull := + numfull 'fullsleft := + +% enter the while loop which generates the first-citation information. +% while we have names left, +% format the next name +% if this is the next-to-last name, tack the ampersand on the end +% else if this isn't the last name, tack the comma on the end. +% concatenate the next name onto the first-citation string. +% update the counters. + + { fullsleft #0 > } + { s fullptr "{vv~}{ll}" format.name$ 'u1 := + fullsleft #2 = + { u1 " \& " * 'u1 := } + { fullsleft #2 > + { u1 ", " * 'u1 := } + 'skip$ + if$ + } + if$ + u2 u1 * 'u2 := + fullptr #1 + 'fullptr := + fullsleft #1 - 'fullsleft := + } + while$ + +% push 'u2' onto the stack -- our first-citation information. + u2 +} + +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "et~al. " * } +% { " and " * s #2 "{vv~}{ll}" format.name$ * } + { " \& " * 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 {editor.key.label} +{ editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor 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 {grab.author.editor.key} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor } + if$ + } + { author } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.label + 'author.key.label + if$ + } + if$ + duplicate$ + +% msl 10/94 - sort on author or editor if there is no author + grab.author.editor.key my.full.label % generate the first-citation info + + 'label1 := + "}{" * +% year field.or.null purify$ #-1 #4 substring$ * +% msl 12/94 - allow year specifications for translations like `1906/1966' + year field.or.null * + 'label2 := +% msl 12/94 - allow year specifications for translations like `1906/1966' +% year field.or.null purify$ #-1 #4 substring$ * + year field.or.null * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{ll{ }}{vv{ } }{ f{ }}{ jj{ }}" format.name$ 't := +% use next line instead of previous to let +% `von Helmholtz' be alphabetized under V rather than H +% s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {editor.sort} +{ editor empty$ + { key empty$ + { "to sort, need editor or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor 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 {presort} +{ calc.label +% Michael Landy - reworked this to use the short citation format +% (e.g. `Name et al.') as the major sort key, and then the same order as +% used in the final output within that + sort.label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT % by sort.label, full author list, title --- for final label calculation + +STRINGS { last.label next.extra } + +INTEGERS { last.extra.num } + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +% Michael Landy - modified to use sort.label for the matching +FUNCTION {forward.pass} +{ last.label sort.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 := + sort.label 'last.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label2 "}{" * extra.label * 'label2 := + extra.label 'next.extra := +} + +EXECUTE {initialize.extra.label.stuff} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +% Michael Landy - changed to use long authors as major sort key instead of label +FUNCTION {bib.sort.order} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.sort + 'author.sort + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {bib.sort.order} + +SORT % by long authors, year, title --- giving final bib. order. + +FUNCTION {begin.bib} + +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ +} + + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/Master/texmf-dist/bibtex/bst/multibib/mbplain.bst b/Master/texmf-dist/bibtex/bst/multibib/mbplain.bst new file mode 100644 index 00000000000..7fddc45dba2 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/multibib/mbplain.bst @@ -0,0 +1,1107 @@ +% +% This is file `mbplain.bst', modified from file `plain.bst' +% to be used with package multibib. +% +% 1999/12/28 Thorsten Hansen, hansen@neuro.informatik.uni-ulm.de +% +% Changes: +% . Function longest.label.pass modified to count the labels. +% + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + label width$ longest.label.width = %% added to count the labels + or %% added to count the labels + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/natbib/abbrvnat.bst b/Master/texmf-dist/bibtex/bst/natbib/abbrvnat.bst new file mode 100644 index 00000000000..2068b0f1c27 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/natbib/abbrvnat.bst @@ -0,0 +1,1432 @@ +%% File: `abbrvnat.bst' +%% A modification of `abbrv.bst' for use with natbib package +%% +%% Copyright 1993-2005 Patrick W Daly +%% Max-Planck-Institut f\"ur Sonnensystemforschung +%% Max-Planck-Str. 2 +%% D-37191 Katlenburg-Lindau +%% Germany +%% E-mail: daly@mps.mpg.de +%% +%% This program 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. +%% + % Version and source file information: + % \ProvidesFile{natbst.mbs}[2005/01/07 1.8 (PWD)] + % + % BibTeX `plainnat' family + % version 0.99b for BibTeX versions 0.99a or later, + % for LaTeX versions 2.09 and 2e. + % + % For use with the `natbib.sty' package; emulates the corresponding + % member of the `plain' family, but with author-year citations. + % + % With version 6.0 of `natbib.sty', it may also be used for numerical + % citations, while retaining the commands \citeauthor, \citefullauthor, + % and \citeyear to print the corresponding information. + % + % For version 7.0 of `natbib.sty', the KEY field replaces missing + % authors/editors, and the date is left blank in \bibitem. + % + % Includes field EID for the sequence/citation number of electronic journals + % which is used instead of page numbers. + % + % Includes fields ISBN and ISSN. + % + % Includes field URL for Internet addresses. + % + % Includes field DOI for Digital Object Idenfifiers. + % + % Works best with the url.sty package of Donald Arseneau. + % + % Works with identical authors and year are further sorted by + % citation key, to preserve any natural sequence. + % +ENTRY + { address + author + booktitle + chapter + doi + eid + edition + editor + howpublished + institution + isbn + issn + journal + key + 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { new.block "ISBN " isbn * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { new.block "ISSN " issn * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { new.block "URL \url{" url * "}" * } + if$ +} + +FUNCTION {format.doi} +{ doi empty$ + { "" } + { new.block "\doi{" doi * "}" * } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.full} +{ author empty$ + { editor empty$ + { "" } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.full} +{ author empty$ + { "" } + { author format.full.names } + if$ +} + +FUNCTION {editor.full} +{ editor empty$ + { "" } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.full + { type$ "proceedings" = + 'editor.full + 'author.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 {n.dashify} +{ '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 {format.date} +{ year duplicate$ empty$ + { "empty year in " cite$ * warning$ + pop$ "" } + 'skip$ + if$ + month empty$ + 'skip$ + { month + " " * swap$ * + } + if$ + extra.label * +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.eid} +{ eid empty$ + { "" } + { "art." eid tie.or.space.connect } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "\penalty0 (" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":\penalty0 " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.vol.num.eid} +{ volume field.or.null + number empty$ + 'skip$ + { "\penalty0 (" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + eid empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.eid } + { ":\penalty0 " * eid * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In \emph{" journal * "}" * } + if$ + } + { "In " key * } + if$ + " \citep{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "\emph{" * series * "}" * } + if$ + } + { key * } + if$ + } + 'skip$ + if$ + ", \citet{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In \emph{" booktitle * "}" * } + if$ + } + { "In " key * } + if$ + } + { "In " } + if$ + " \citet{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + eid empty$ + { format.vol.num.pages output } + { format.vol.num.eid output } + if$ + format.date "year" output.check + } + { format.article.crossref output.nonnull + eid empty$ + { format.pages output } + { format.eid output } + if$ + } + if$ + format.issn output + format.doi output + format.url output + new.block + 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$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + format.isbn output + format.doi output + format.url output + new.block + 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$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + format.date output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.issn output + format.url output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output + format.date "year" output.check + new.sentence + organization output + publisher output + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + format.url output + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + + + +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. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + + +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 := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * 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 {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + 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 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { numnames #2 > nameptr #2 = and + { "zz" * year field.or.null * " " * } + 'skip$ + if$ + 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + + +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + cite$ + * + #1 entry.max$ substring$ + 'sort.label := + sort.label * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.label next.extra } + +INTEGERS { longest.label.width last.extra.num number.label } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'longest.label.width := + #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.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} +{ sort.label '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$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ + "\providecommand{\url}[1]{\texttt{#1}}" + write$ newline$ + "\expandafter\ifx\csname urlstyle\endcsname\relax" + write$ newline$ + " \providecommand{\doi}[1]{doi: #1}\else" + write$ newline$ + " \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi" + write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/natbib/plainnat.bst b/Master/texmf-dist/bibtex/bst/natbib/plainnat.bst new file mode 100644 index 00000000000..8b07c3cb60c --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/natbib/plainnat.bst @@ -0,0 +1,1432 @@ +%% File: `plainnat.bst' +%% A modification of `plain.bst' for use with natbib package +%% +%% Copyright 1993-2005 Patrick W Daly +%% Max-Planck-Institut f\"ur Sonnensystemforschung +%% Max-Planck-Str. 2 +%% D-37191 Katlenburg-Lindau +%% Germany +%% E-mail: daly@mps.mpg.de +%% +%% This program 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. +%% + % Version and source file information: + % \ProvidesFile{natbst.mbs}[2005/01/07 1.8 (PWD)] + % + % BibTeX `plainnat' family + % version 0.99b for BibTeX versions 0.99a or later, + % for LaTeX versions 2.09 and 2e. + % + % For use with the `natbib.sty' package; emulates the corresponding + % member of the `plain' family, but with author-year citations. + % + % With version 6.0 of `natbib.sty', it may also be used for numerical + % citations, while retaining the commands \citeauthor, \citefullauthor, + % and \citeyear to print the corresponding information. + % + % For version 7.0 of `natbib.sty', the KEY field replaces missing + % authors/editors, and the date is left blank in \bibitem. + % + % Includes field EID for the sequence/citation number of electronic journals + % which is used instead of page numbers. + % + % Includes fields ISBN and ISSN. + % + % Includes field URL for Internet addresses. + % + % Includes field DOI for Digital Object Idenfifiers. + % + % Works best with the url.sty package of Donald Arseneau. + % + % Works with identical authors and year are further sorted by + % citation key, to preserve any natural sequence. + % +ENTRY + { address + author + booktitle + chapter + doi + eid + edition + editor + howpublished + institution + isbn + issn + journal + key + 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { new.block "ISBN " isbn * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { new.block "ISSN " issn * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { new.block "URL \url{" url * "}" * } + if$ +} + +FUNCTION {format.doi} +{ doi empty$ + { "" } + { new.block "\doi{" doi * "}" * } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.full} +{ author empty$ + { editor empty$ + { "" } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.full} +{ author empty$ + { "" } + { author format.full.names } + if$ +} + +FUNCTION {editor.full} +{ editor empty$ + { "" } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.full + { type$ "proceedings" = + 'editor.full + 'author.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 {n.dashify} +{ '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 {format.date} +{ year duplicate$ empty$ + { "empty year in " cite$ * warning$ + pop$ "" } + 'skip$ + if$ + month empty$ + 'skip$ + { month + " " * swap$ * + } + if$ + extra.label * +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.eid} +{ eid empty$ + { "" } + { "art." eid tie.or.space.connect } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "\penalty0 (" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":\penalty0 " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.vol.num.eid} +{ volume field.or.null + number empty$ + 'skip$ + { "\penalty0 (" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + eid empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.eid } + { ":\penalty0 " * eid * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In \emph{" journal * "}" * } + if$ + } + { "In " key * } + if$ + " \citep{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "\emph{" * series * "}" * } + if$ + } + { key * } + if$ + } + 'skip$ + if$ + ", \citet{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In \emph{" booktitle * "}" * } + if$ + } + { "In " key * } + if$ + } + { "In " } + if$ + " \citet{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + eid empty$ + { format.vol.num.pages output } + { format.vol.num.eid output } + if$ + format.date "year" output.check + } + { format.article.crossref output.nonnull + eid empty$ + { format.pages output } + { format.eid output } + if$ + } + if$ + format.issn output + format.doi output + format.url output + new.block + 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$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + format.isbn output + format.doi output + format.url output + new.block + 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$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + format.date output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.issn output + format.url output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output + format.date "year" output.check + new.sentence + organization output + publisher output + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + format.url output + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + + + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + + +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 := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * 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 {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { numnames #2 > nameptr #2 = and + { "zz" * year field.or.null * " " * } + 'skip$ + if$ + 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + + +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + cite$ + * + #1 entry.max$ substring$ + 'sort.label := + sort.label * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.label next.extra } + +INTEGERS { longest.label.width last.extra.num number.label } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'longest.label.width := + #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.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} +{ sort.label '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$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ + "\providecommand{\url}[1]{\texttt{#1}}" + write$ newline$ + "\expandafter\ifx\csname urlstyle\endcsname\relax" + write$ newline$ + " \providecommand{\doi}[1]{doi: #1}\else" + write$ newline$ + " \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi" + write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/natbib/unsrtnat.bst b/Master/texmf-dist/bibtex/bst/natbib/unsrtnat.bst new file mode 100644 index 00000000000..63ba4b72aa2 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/natbib/unsrtnat.bst @@ -0,0 +1,1322 @@ +%% File: `unsrtnat.bst' +%% A modification of `unsrt.bst' for use with natbib package +%% +%% Copyright 1993-2005 Patrick W Daly +%% Max-Planck-Institut f\"ur Sonnensystemforschung +%% Max-Planck-Str. 2 +%% D-37191 Katlenburg-Lindau +%% Germany +%% E-mail: daly@mps.mpg.de +%% +%% This program 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. +%% + % Version and source file information: + % \ProvidesFile{natbst.mbs}[2005/01/07 1.8 (PWD)] + % + % BibTeX `plainnat' family + % version 0.99b for BibTeX versions 0.99a or later, + % for LaTeX versions 2.09 and 2e. + % + % For use with the `natbib.sty' package; emulates the corresponding + % member of the `plain' family, but with author-year citations. + % + % With version 6.0 of `natbib.sty', it may also be used for numerical + % citations, while retaining the commands \citeauthor, \citefullauthor, + % and \citeyear to print the corresponding information. + % + % For version 7.0 of `natbib.sty', the KEY field replaces missing + % authors/editors, and the date is left blank in \bibitem. + % + % Includes field EID for the sequence/citation number of electronic journals + % which is used instead of page numbers. + % + % Includes fields ISBN and ISSN. + % + % Includes field URL for Internet addresses. + % + % Includes field DOI for Digital Object Idenfifiers. + % + % Works best with the url.sty package of Donald Arseneau. + % + % Works with identical authors and year are further sorted by + % title text, as in the standard plain.bst etc. + % +ENTRY + { address + author + booktitle + chapter + doi + eid + edition + editor + howpublished + institution + isbn + issn + journal + key + 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { new.block "ISBN " isbn * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { new.block "ISSN " issn * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { new.block "URL \url{" url * "}" * } + if$ +} + +FUNCTION {format.doi} +{ doi empty$ + { "" } + { new.block "\doi{" doi * "}" * } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.full} +{ author empty$ + { editor empty$ + { "" } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.full} +{ author empty$ + { "" } + { author format.full.names } + if$ +} + +FUNCTION {editor.full} +{ editor empty$ + { "" } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.full + { type$ "proceedings" = + 'editor.full + 'author.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 {n.dashify} +{ '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 {format.date} +{ year duplicate$ empty$ + { "empty year in " cite$ * warning$ + pop$ "" } + 'skip$ + if$ + month empty$ + 'skip$ + { month + " " * swap$ * + } + if$ + extra.label * +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.eid} +{ eid empty$ + { "" } + { "art." eid tie.or.space.connect } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "\penalty0 (" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":\penalty0 " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.vol.num.eid} +{ volume field.or.null + number empty$ + 'skip$ + { "\penalty0 (" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + eid empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.eid } + { ":\penalty0 " * eid * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In \emph{" journal * "}" * } + if$ + } + { "In " key * } + if$ + " \citep{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "\emph{" * series * "}" * } + if$ + } + { key * } + if$ + } + 'skip$ + if$ + ", \citet{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In \emph{" booktitle * "}" * } + if$ + } + { "In " key * } + if$ + } + { "In " } + if$ + " \citet{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + eid empty$ + { format.vol.num.pages output } + { format.vol.num.eid output } + if$ + format.date "year" output.check + } + { format.article.crossref output.nonnull + eid empty$ + { format.pages output } + { format.eid output } + if$ + } + if$ + format.issn output + format.doi output + format.url output + new.block + 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$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + format.isbn output + format.doi output + format.url output + new.block + 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$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + format.date output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.issn output + format.url output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output + format.date "year" output.check + new.sentence + organization output + publisher output + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + format.url output + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + + + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + + +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 := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * 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 {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +INTEGERS { seq.num } + +FUNCTION {init.seq} +{ #0 'seq.num :=} + +EXECUTE {init.seq} + +FUNCTION {int.to.fix} +{ "000000000" swap$ int.to.str$ * + #-1 #10 substring$ +} + + +FUNCTION {presort} +{ calc.label + label sortify + " " + * + seq.num #1 + 'seq.num := + seq.num int.to.fix + 'sort.label := + sort.label * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.label next.extra } + +INTEGERS { longest.label.width last.extra.num number.label } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'longest.label.width := + #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.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} +{ sort.label '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$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ + "\providecommand{\url}[1]{\texttt{#1}}" + write$ newline$ + "\expandafter\ifx\csname urlstyle\endcsname\relax" + write$ newline$ + " \providecommand{\doi}[1]{doi: #1}\else" + write$ newline$ + " \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi" + write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/nature/naturemag.bst b/Master/texmf-dist/bibtex/bst/nature/naturemag.bst new file mode 100644 index 00000000000..81ae25c4362 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/nature/naturemag.bst @@ -0,0 +1,1524 @@ +%% +%% This is file `naturemag.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `head,seq-no,nm-rev,ed-rev,jnrlst,nmlm,x5,m1,yr-par,xmth,vol-bf,vnum-x,volp-com,num-xser,jnm-x,bkpg-x,pub-date,edparxc,ppx,ed,abr,xedn,jabr,amper,and-xcom,etal-it,eprint,url,url-blk,bibinfo,nfss,{}') +%% physjour.mbs (with options: `seq-no,nm-rev,ed-rev,jnrlst,nmlm,x5,m1,yr-par,xmth,vol-bf,vnum-x,volp-com,num-xser,jnm-x,bkpg-x,pub-date,edparxc,ppx,ed,abr,xedn,jabr,amper,and-xcom,etal-it,eprint,url,url-blk,bibinfo,nfss,{}') +%% geojour.mbs (with options: `seq-no,nm-rev,ed-rev,jnrlst,nmlm,x5,m1,yr-par,xmth,vol-bf,vnum-x,volp-com,num-xser,jnm-x,bkpg-x,pub-date,edparxc,ppx,ed,abr,xedn,jabr,amper,and-xcom,etal-it,eprint,url,url-blk,bibinfo,nfss,{}') +%% photjour.mbs (with options: `seq-no,nm-rev,ed-rev,jnrlst,nmlm,x5,m1,yr-par,xmth,vol-bf,vnum-x,volp-com,num-xser,jnm-x,bkpg-x,pub-date,edparxc,ppx,ed,abr,xedn,jabr,amper,and-xcom,etal-it,eprint,url,url-blk,bibinfo,nfss,{}') +%% merlin.mbs (with options: `tail,seq-no,nm-rev,ed-rev,jnrlst,nmlm,x5,m1,yr-par,xmth,vol-bf,vnum-x,volp-com,num-xser,jnm-x,bkpg-x,pub-date,edparxc,ppx,ed,abr,xedn,jabr,amper,and-xcom,etal-it,eprint,url,url-blk,bibinfo,nfss,{}') +%% ---------------------------------------- +%% *** Style for the journal Nature (created by Peter Czoschke) *** +%% +%% Copyright 1994-2002 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}[2002/10/21 4.05 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is a numerical citation style, and as such is standard LaTeX. + % It requires no extra package to interface to the main text. + % The form of the \bibitem entries is + % \bibitem{key}... + % Usage of \cite is as follows: + % \cite{key} ==>> [#] + % \cite[chap. 2]{key} ==>> [#, chap. 2] + % where # is a number determined by the ordering in the reference list. + % The order in the reference list is that by which the works were originally + % cited in the text, or that in the database. + %--------------------------------------------------------------------- + +ENTRY + { address + archive + author + booktitle + chapter + edition + editor + eprint + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + url + volume + year + } + {} + { label } +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} +{ + new.block +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} +FUNCTION {bolden} +{ duplicate$ empty$ + { pop$ "" } + { "\textbf{" swap$ * "}" * } + if$ +} +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. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edn." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "" } + +FUNCTION {bbl.page} +{ "" } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + + %------------------------------------------------------------------- + % Begin module: + % \ProvidesFile{physjour.mbs}[2002/01/14 2.2 (PWD)] +MACRO {aa}{"Astron. \& Astrophys."} +MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} +MACRO {aj} {"Astron. J."} +MACRO {aph} {"Acta Phys."} +MACRO {advp} {"Adv. Phys."} +MACRO {ajp} {"Amer. J. Phys."} +MACRO {ajm} {"Amer. J. Math."} +MACRO {amsci} {"Amer. Sci."} +MACRO {anofd} {"Ann. Fluid Dyn."} +MACRO {am} {"Ann. Math."} +MACRO {ap} {"Ann. Phys. (NY)"} +MACRO {adp} {"Ann. Phys. (Leipzig)"} +MACRO {ao} {"Appl. Opt."} +MACRO {apl} {"Appl. Phys. Lett."} +MACRO {app} {"Astroparticle Phys."} +MACRO {apj} {"Astrophys. J."} +MACRO {apjsup} {"Astrophys. J. Suppl."} +MACRO {apss} {"Astrophys. Space Sci."} +MACRO {araa} {"Ann. Rev. Astron. Astrophys."} +MACRO {baas} {"Bull. Amer. Astron. Soc."} +MACRO {baps} {"Bull. Amer. Phys. Soc."} +MACRO {cmp} {"Comm. Math. Phys."} +MACRO {cpam} {"Commun. Pure Appl. Math."} +MACRO {cppcf} {"Comm. Plasma Phys. \& Controlled Fusion"} +MACRO {cpc} {"Comp. Phys. Comm."} +MACRO {cqg} {"Class. Quant. Grav."} +MACRO {cra} {"C. R. Acad. Sci. A"} +MACRO {fed} {"Fusion Eng. \& Design"} +MACRO {ft} {"Fusion Tech."} +MACRO {grg} {"Gen. Relativ. Gravit."} +MACRO {ieeens} {"IEEE Trans. Nucl. Sci."} +MACRO {ieeeps} {"IEEE Trans. Plasma Sci."} +MACRO {ijimw} {"Interntl. J. Infrared \& Millimeter Waves"} +MACRO {ip} {"Infrared Phys."} +MACRO {irp} {"Infrared Phys."} +MACRO {jap} {"J. Appl. Phys."} +MACRO {jasa} {"J. Acoust. Soc. America"} +MACRO {jcp} {"J. Comp. Phys."} +MACRO {jetp} {"Sov. Phys.--JETP"} +MACRO {jfe} {"J. Fusion Energy"} +MACRO {jfm} {"J. Fluid Mech."} +MACRO {jmp} {"J. Math. Phys."} +MACRO {jne} {"J. Nucl. Energy"} +MACRO {jnec} {"J. Nucl. Energy, C: Plasma Phys., Accelerators, Thermonucl. Res."} +MACRO {jnm} {"J. Nucl. Mat."} +MACRO {jpc} {"J. Phys. Chem."} +MACRO {jpp} {"J. Plasma Phys."} +MACRO {jpsj} {"J. Phys. Soc. Japan"} +MACRO {jsi} {"J. Sci. Instrum."} +MACRO {jvst} {"J. Vac. Sci. \& Tech."} +MACRO {nat} {"Nature"} +MACRO {nature} {"Nature"} +MACRO {nedf} {"Nucl. Eng. \& Design/Fusion"} +MACRO {nf} {"Nucl. Fusion"} +MACRO {nim} {"Nucl. Inst. \& Meth."} +MACRO {nimpr} {"Nucl. Inst. \& Meth. in Phys. Res."} +MACRO {np} {"Nucl. Phys."} +MACRO {npb} {"Nucl. Phys. B"} +MACRO {nt/f} {"Nucl. Tech./Fusion"} +MACRO {npbpc} {"Nucl. Phys. B (Proc. Suppl.)"} +MACRO {inc} {"Nuovo Cimento"} +MACRO {nc} {"Nuovo Cimento"} +MACRO {pf} {"Phys. Fluids"} +MACRO {pfa} {"Phys. Fluids A: Fluid Dyn."} +MACRO {pfb} {"Phys. Fluids B: Plasma Phys."} +MACRO {pl} {"Phys. Lett."} +MACRO {pla} {"Phys. Lett. A"} +MACRO {plb} {"Phys. Lett. B"} +MACRO {prep} {"Phys. Rep."} +MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"} +MACRO {pp} {"Phys. Plasmas"} +MACRO {ppcf} {"Plasma Phys. \& Controlled Fusion"} +MACRO {phitrsl} {"Philos. Trans. Roy. Soc. London"} +MACRO {prl} {"Phys. Rev. Lett."} +MACRO {pr} {"Phys. Rev."} +MACRO {physrev} {"Phys. Rev."} +MACRO {pra} {"Phys. Rev. A"} +MACRO {prb} {"Phys. Rev. B"} +MACRO {prc} {"Phys. Rev. C"} +MACRO {prd} {"Phys. Rev. D"} +MACRO {pre} {"Phys. Rev. E"} +MACRO {ps} {"Phys. Scripta"} +MACRO {procrsl} {"Proc. Roy. Soc. London"} +MACRO {rmp} {"Rev. Mod. Phys."} +MACRO {rsi} {"Rev. Sci. Inst."} +MACRO {science} {"Science"} +MACRO {sciam} {"Sci. Am."} +MACRO {sam} {"Stud. Appl. Math."} +MACRO {sjpp} {"Sov. J. Plasma Phys."} +MACRO {spd} {"Sov. Phys.--Doklady"} +MACRO {sptp} {"Sov. Phys.--Tech. Phys."} +MACRO {spu} {"Sov. Phys.--Uspeki"} +MACRO {st} {"Sky and Telesc."} + % End module: physjour.mbs + %------------------------------------------------------------------- + % Begin module: + % \ProvidesFile{geojour.mbs}[2002/07/10 2.0h (PWD)] +MACRO {aisr} {"Adv. Space Res."} +MACRO {ag} {"Ann. Geophys."} +MACRO {anigeo} {"Ann. Geofis."} +MACRO {angl} {"Ann. Glaciol."} +MACRO {andmet} {"Ann. d. Meteor."} +MACRO {andgeo} {"Ann. d. Geophys."} +MACRO {andphy} {"Ann. Phys.-Paris"} +MACRO {afmgb} {"Arch. Meteor. Geophys. Bioklimatol."} +MACRO {atph} {"Atm\'osphera"} +MACRO {aao} {"Atmos. Ocean"} +MACRO {ass}{"Astrophys. Space Sci."} +MACRO {atenv} {"Atmos. Environ."} +MACRO {aujag} {"Aust. J. Agr. Res."} +MACRO {aumet} {"Aust. Meteorol. Mag."} +MACRO {blmet} {"Bound.-Lay. Meteorol."} +MACRO {bams} {"Bull. Amer. Meteorol. Soc."} +MACRO {cch} {"Clim. Change"} +MACRO {cdyn} {"Clim. Dynam."} +MACRO {cbul} {"Climatol. Bull."} +MACRO {cap} {"Contrib. Atmos. Phys."} +MACRO {dsr} {"Deep-Sea Res."} +MACRO {dhz} {"Dtsch. Hydrogr. Z."} +MACRO {dao} {"Dynam. Atmos. Oceans"} +MACRO {eco} {"Ecology"} +MACRO {empl}{"Earth, Moon and Planets"} +MACRO {envres} {"Environ. Res."} +MACRO {envst} {"Environ. Sci. Technol."} +MACRO {ecms} {"Estuarine Coastal Mar. Sci."} +MACRO {expa}{"Exper. Astron."} +MACRO {geoint} {"Geofis. Int."} +MACRO {geopub} {"Geofys. Publ."} +MACRO {geogeo} {"Geol. Geofiz."} +MACRO {gafd} {"Geophys. Astrophys. Fluid Dyn."} +MACRO {gfd} {"Geophys. Fluid Dyn."} +MACRO {geomag} {"Geophys. Mag."} +MACRO {georl} {"Geophys. Res. Lett."} +MACRO {grl} {"Geophys. Res. Lett."} +MACRO {ga} {"Geophysica"} +MACRO {gs} {"Geophysics"} +MACRO {ieeetap} {"IEEE Trans. Antenn. Propag."} +MACRO {ijawp} {"Int. J. Air Water Pollut."} +MACRO {ijc} {"Int. J. Climatol."} +MACRO {ijrs} {"Int. J. Remote Sens."} +MACRO {jam} {"J. Appl. Meteorol."} +MACRO {jaot} {"J. Atmos. Ocean. Technol."} +MACRO {jatp} {"J. Atmos. Terr. Phys."} +MACRO {jastp} {"J. Atmos. Solar-Terr. Phys."} +MACRO {jce} {"J. Climate"} +MACRO {jcam} {"J. Climate Appl. Meteor."} +MACRO {jcm} {"J. Climate Meteor."} +MACRO {jcy} {"J. Climatol."} +MACRO {jgr} {"J. Geophys. Res."} +MACRO {jga} {"J. Glaciol."} +MACRO {jh} {"J. Hydrol."} +MACRO {jmr} {"J. Mar. Res."} +MACRO {jmrj} {"J. Meteor. Res. Japan"} +MACRO {jm} {"J. Meteor."} +MACRO {jpo} {"J. Phys. Oceanogr."} +MACRO {jra} {"J. Rech. Atmos."} +MACRO {jaes} {"J. Aeronaut. Sci."} +MACRO {japca} {"J. Air Pollut. Control Assoc."} +MACRO {jas} {"J. Atmos. Sci."} +MACRO {jmts} {"J. Mar. Technol. Soc."} +MACRO {jmsj} {"J. Meteorol. Soc. Japan"} +MACRO {josj} {"J. Oceanogr. Soc. Japan"} +MACRO {jwm} {"J. Wea. Mod."} +MACRO {lao} {"Limnol. Oceanogr."} +MACRO {mwl} {"Mar. Wea. Log"} +MACRO {mau} {"Mausam"} +MACRO {meteor} {"``Meteor'' Forschungsergeb."} +MACRO {map} {"Meteorol. Atmos. Phys."} +MACRO {metmag} {"Meteor. Mag."} +MACRO {metmon} {"Meteor. Monogr."} +MACRO {metrun} {"Meteor. Rundsch."} +MACRO {metzeit} {"Meteor. Z."} +MACRO {metgid} {"Meteor. Gidrol."} +MACRO {mwr} {"Mon. Weather Rev."} +MACRO {nwd} {"Natl. Weather Dig."} +MACRO {nzjmfr} {"New Zeal. J. Mar. Freshwater Res."} +MACRO {npg} {"Nonlin. Proc. Geophys."} +MACRO {om} {"Oceanogr. Meteorol."} +MACRO {ocac} {"Oceanol. Acta"} +MACRO {oceanus} {"Oceanus"} +MACRO {paleoc} {"Paleoceanography"} +MACRO {pce} {"Phys. Chem. Earth"} +MACRO {pmg} {"Pap. Meteor. Geophys."} +MACRO {ppom} {"Pap. Phys. Oceanogr. Meteor."} +MACRO {physzeit} {"Phys. Z."} +MACRO {pps} {"Planet. Space Sci."} +MACRO {pss} {"Planet. Space Sci."} +MACRO {pag} {"Pure Appl. Geophys."} +MACRO {qjrms} {"Quart. J. Roy. Meteorol. Soc."} +MACRO {quatres} {"Quat. Res."} +MACRO {rsci} {"Radio Sci."} +MACRO {rse} {"Remote Sens. Environ."} +MACRO {rgeo} {"Rev. Geophys."} +MACRO {rgsp} {"Rev. Geophys. Space Phys."} +MACRO {rdgeo} {"Rev. Geofis."} +MACRO {revmeta} {"Rev. Meteorol."} +MACRO {sgp}{"Surveys in Geophys."} +MACRO {sp} {"Solar Phys."} +MACRO {ssr} {"Space Sci. Rev."} +MACRO {tellus} {"Tellus"} +MACRO {tac} {"Theor. Appl. Climatol."} +MACRO {tagu} {"Trans. Am. Geophys. Union (EOS)"} +MACRO {wrr} {"Water Resour. Res."} +MACRO {weather} {"Weather"} +MACRO {wafc} {"Weather Forecast."} +MACRO {ww} {"Weatherwise"} +MACRO {wmob} {"WMO Bull."} +MACRO {zeitmet} {"Z. Meteorol."} + % End module: geojour.mbs + %------------------------------------------------------------------- + % Begin module: + % \ProvidesFile{photjour.mbs}[1999/02/24 2.0b (PWD)] + +MACRO {appopt} {"Appl. Opt."} +MACRO {bell} {"Bell Syst. Tech. J."} +MACRO {ell} {"Electron. Lett."} +MACRO {jasp} {"J. Appl. Spectr."} +MACRO {jqe} {"IEEE J. Quantum Electron."} +MACRO {jlwt} {"J. Lightwave Technol."} +MACRO {jmo} {"J. Mod. Opt."} +MACRO {josa} {"J. Opt. Soc. America"} +MACRO {josaa} {"J. Opt. Soc. Amer.~A"} +MACRO {josab} {"J. Opt. Soc. Amer.~B"} +MACRO {jdp} {"J. Phys. (Paris)"} +MACRO {oc} {"Opt. Commun."} +MACRO {ol} {"Opt. Lett."} +MACRO {phtl} {"IEEE Photon. Technol. Lett."} +MACRO {pspie} {"Proc. Soc. Photo-Opt. Instrum. Eng."} +MACRO {sse} {"Solid-State Electron."} +MACRO {sjot} {"Sov. J. Opt. Technol."} +MACRO {sjqe} {"Sov. J. Quantum Electron."} +MACRO {sleb} {"Sov. Phys.--Leb. Inst. Rep."} +MACRO {stph} {"Sov. Phys.--Techn. Phys."} +MACRO {stphl} {"Sov. Techn. Phys. Lett."} +MACRO {vr} {"Vision Res."} +MACRO {zph} {"Z. f. Physik"} +MACRO {zphb} {"Z. f. Physik~B"} +MACRO {zphd} {"Z. f. Physik~D"} + +MACRO {CLEO} {"CLEO"} +MACRO {ASSL} {"Adv. Sol.-State Lasers"} +MACRO {OSA} {"OSA"} + % End module: photjour.mbs +%% Copyright 1994-2002 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$ + "\bibinfo{" swap$ * "}{" * swap$ * "}" * + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + "\bibinfo{" swap$ * "}{" * swap$ * "}" * + } + if$ + } + if$ +} +FUNCTION {format.eprint} +{ eprint duplicate$ empty$ + 'skip$ + { "\eprint" + archive empty$ + 'skip$ + { "[" * archive * "]" * } + if$ + "{" * swap$ * "}" * + } + 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 + "{vv~}{ll}{, f.}{, jj}" + format.name$ + bibinfo bibinfo.check + 't := + nameptr #1 > + { + nameptr #1 + #1 + = + numnames #5 + > 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 * + } + { + "\&" + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + } if$ +} +FUNCTION {format.names.ed} +{ + format.names +} +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 + "(" swap$ * ")" * + * + } + 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 + duplicate$ empty$ 'skip$ + { "t" change.case$ } + if$ + "title" bibinfo.check +} +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + '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 capitalize + " " * } + +FUNCTION {format.date} +{ + "" + duplicate$ empty$ + year "year" bibinfo.check duplicate$ empty$ + { swap$ 'skip$ + { "there's a month but no year in " cite$ * warning$ } + if$ + * + } + { swap$ 'skip$ + { + swap$ + " " * swap$ + } + if$ + * + } + if$ + duplicate$ empty$ + 'skip$ + { + before.all 'output.state := + " (" swap$ * ")" * + } + if$ +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } + 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 + { + n.dashify + } + { + } + if$ + "pages" bibinfo.check + } + if$ +} +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ", " * + swap$ + n.dashify + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + bolden + format.journal.pages +} + +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 {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + emphasize +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + " " * + get.bbl.editor + "(" swap$ * ") " * + * swap$ + * } + if$ + word.in swap$ * + } + if$ +} +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + 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} +{ + key duplicate$ empty$ + { pop$ + journal duplicate$ empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * warning$ } + { "journal" bibinfo.check emphasize word.in swap$ * } + if$ + } + { word.in swap$ * " " *} + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + "editor" bibinfo.check + editor num.names$ duplicate$ + #2 > + { pop$ + "editor" bibinfo.check + " " * bbl.etal + emphasize + * + } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + "editor" bibinfo.check + " " * bbl.etal + emphasize + * + } + { + " \& " + * editor #2 "{vv~}{ll}" format.name$ + "editor" bibinfo.check + * + } + if$ + } + if$ + } + if$ +} +FUNCTION {format.book.crossref} +{ volume duplicate$ empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + pop$ word.in + } + { bbl.volume + capitalize + swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series emphasize * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.incoll.inproc.crossref} +{ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { format.booktitle duplicate$ empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + } + { word.in swap$ * } + if$ + } + { word.in key * " " *} + if$ + } + { word.in format.crossref.editor * " " *} + if$ + " \cite{" * crossref * "}" * +} +FUNCTION {format.org.or.pub} +{ 't := + "" + year empty$ + { "empty year in " cite$ * warning$ } + 'skip$ + if$ + address empty$ t empty$ and + year empty$ and + 'skip$ + { + add.blank "(" * + t empty$ + { address "address" bibinfo.check * + } + { t * + address empty$ + 'skip$ + { ", " * address "address" bibinfo.check * } + if$ + } + if$ + year empty$ + 'skip$ + { t empty$ address empty$ and + 'skip$ + { ", " * } + if$ + year "year" bibinfo.check + * + } + if$ + ")" * + } + 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 + new.block + format.title "title" output.check + new.block + crossref missing$ + { + journal + "journal" bibinfo.check + emphasize + "journal" output.check + add.blank + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + format.url output + new.block + format.note output + format.eprint output + fin.entry +} +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + add.blank + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + format.publisher.address output + } + { + new.block + format.book.crossref output.nonnull + format.date "year" output.check + } + if$ + format.edition output + new.block + format.url output + new.block + format.note output + format.eprint output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + new.block + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.date output + new.block + format.url output + new.block + format.note output + format.eprint output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + format.date "year" output.check + } + if$ + format.edition output + new.block + format.url output + new.block + format.note output + format.eprint output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + format.publisher.address output + format.edition output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + format.url output + new.block + format.note output + format.eprint output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + new.sentence + 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$ + new.block + format.url output + new.block + format.note output + format.eprint output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization "organization" bibinfo.check + duplicate$ empty$ 'pop$ + { output + address "address" bibinfo.check output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { + address new.block.checka + address "address" bibinfo.check output + } + 'skip$ + if$ + } + { + organization address new.block.checkb + organization "organization" bibinfo.check output + address "address" bibinfo.check output + } + if$ + format.edition output + format.date output + new.block + format.url output + new.block + format.note output + format.eprint output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle + "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check + new.block + format.url output + new.block + format.note output + format.eprint output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished "howpublished" bibinfo.check output + format.date output + new.block + format.url output + new.block + format.note output + format.eprint output + fin.entry + empty.misc.check +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle + "title" output.check + new.block + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check + new.block + format.url output + new.block + format.note output + format.eprint output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization "organization" bibinfo.check output + } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + editor empty$ + { publisher empty$ + 'skip$ + { + new.sentence + format.publisher.address output + } + if$ + } + { publisher empty$ + { + new.sentence + format.organization.address output } + { + new.sentence + organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + } + if$ + new.block + format.url output + new.block + format.note output + format.eprint output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title + "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check + new.block + format.url output + new.block + format.note output + format.eprint output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + format.date output + new.block + format.url output + new.block + format.note "note" output.check + format.eprint output + fin.entry +} + +FUNCTION {default.type} { misc } +READ +STRINGS { longest.label } +INTEGERS { number.label longest.label.width } +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} +EXECUTE {initialize.longest.label} +ITERATE {longest.label.pass} +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * + write$ newline$ + "\expandafter\ifx\csname url\endcsname\relax" + write$ newline$ + " \def\url#1{\texttt{#1}}\fi" + write$ newline$ + "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi" + write$ newline$ + "\providecommand{\bibinfo}[2]{#2}" + write$ newline$ + "\providecommand{\eprint}[2][]{\url{#2}}" + 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 `nature.bst'. diff --git a/Master/texmf-dist/bibtex/bst/opcit/opcit.bst b/Master/texmf-dist/bibtex/bst/opcit/opcit.bst new file mode 100644 index 00000000000..3135c3faa1a --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/opcit/opcit.bst @@ -0,0 +1,789 @@ +%% +%% This is file `opcit.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% opcit.dtx (with options: `bst') +%% Part of the `opcit' project: bibliographical references as footnotes. +%% +%% Copyright 2002 Federico Garcia +%% +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + hereafter + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block quoted.state } + +STRINGS { s t last.authors } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #0 'quoted.state := + "" 'last.authors := +} +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { " " * write$ } + { output.state after.block = + { "\bibpunctuation" * + quoted.state #1 = + { #2 'quoted.state := } + { quoted.state #2 = + { "''" * #0 'quoted.state := } + 'skip$ + if$ + } + if$ + write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { "\bibpunctuation" * 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} +{ "\opcitend%" * write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +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$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" + "" 'last.authors := + } + { author last.authors = + { "\sameauthors" } + { author format.names } + if$ + author 'last.authors := + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names } + if$ +} + +FUNCTION {format.editors.ed} +{ editor empty$ + { "" } + { editor format.names " (ed.)" * } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series empty$ + { "" } + { ", series " * series * "" } + if$ } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.date.pages} +{ volume empty$ + 'skip$ + { volume } + if$ + number empty$ + 'skip$ + { "/" number * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + " (" * format.date * ")" * + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ": " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { "\bibIn \ " booktitle emphasize * + editor empty$ + 'skip$ + { ", ed.~" * format.editors * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} +FUNCTION{get.lastnames} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {make.address.publisher.year} +{ "\unskip\bibparenthesis{" + address empty$ + 'skip$ + { address * ": " * } + if$ + publisher empty$ + 'skip$ + { publisher * ", " * } + if$ + format.date * "}" * +} + +FUNCTION{format.title.quoted} +{ title empty$ + { "" } + { "``" title * } + if$ + #1 'quoted.state := +} +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ "}" * write$ + "" + newline$ + "\biblastnames{" write$ + author empty$ + { editor get.lastnames } + { author get.lastnames } + if$ + "}" * write$ + hereafter empty$ + 'skip$ + { "\bibhereafter{" write$ hereafter "}" * write$ } + if$ + newline$ + "\opcitstart " write$ + before.all 'output.state := + #0 'quoted.state := +} +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title.quoted "title" output.check + new.block + journal emphasize "journal" output.check + format.vol.num.date.pages "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors.ed "author and editor" output.check } + { format.authors output.nonnull + "author and editor" editor either.or.check + } + if$ + new.block + format.btitle "title" output.check + edition new.block.checka + format.edition output + format.bvolume output + format.number.series output + make.address.publisher.year output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title.quoted "title" output.check + new.block + format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + make.address.publisher.year output + format.chapter.pages output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors "author" output.check + new.block + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" write$ newline$ +} +ITERATE {presort} + +SORT + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/oxford/oxford_en.bst b/Master/texmf-dist/bibtex/bst/oxford/oxford_en.bst new file mode 100644 index 00000000000..b586d121e82 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/oxford/oxford_en.bst @@ -0,0 +1,1889 @@ +%% +%% This is file `oxford_se.bst', version 0.4 +%% It was first generated with the docstrip utility in custom-bib +%% and then heavily hacked by Peter Antman. +%% +%% This file must still bee considered beta. +%% +%% This version is for swedish citation, to get other languages to work +%% rename it and insert the right bbl.xxx funcions and MACROS from +%% the right mbd-file, availible with custom-bib. There are two new such +%% commands, bbl.lq (leftquote) and bbl.rq (rightquote). Here you give +%% your languages way of quoting titles. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `head,exlang,ay,har,harnm,vonx,nm-revf,ed-rev,dt-end,yr-col,note-yr,tit-qq,atit-u,vnum-nr,volp-com,jwdvol,add-pub,pub-date,pre-edn,edpar,blk-com,svenska,pp,ed,abr,amper,and-xcom,etal-it,{}') +%% svenska.mbs (with options: `exlang,ay,har,harnm,vonx,nm-revf,ed-rev,dt-end,yr-col,note-yr,tit-qq,atit-u,vnum-nr,volp-com,jwdvol,add-pub,pub-date,pre-edn,edpar,blk-com,svenska,pp,ed,abr,amper,and-xcom,etal-it,{}') +%% merlin.mbs (with options: `tail,exlang,ay,har,harnm,vonx,nm-revf,ed-rev,dt-end,yr-col,note-yr,tit-qq,atit-u,vnum-nr,volp-com,jwdvol,add-pub,pub-date,pre-edn,edpar,blk-com,svenska,pp,ed,abr,amper,and-xcom,etal-it,{}') +%% ---------------------------------------- +%% *** *** +%% + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{merlin.mbs}[1996/12/16 3.82 (PWD)] + % + % NOTICE: + % This file may be used for non-profit purposes. + % It may not be distributed in exchange for money, + % other than distribution costs. + % + % The author provides it `as is' and does not guarantee it in any way. + % + % Copyright (C) 1994, 1995, 1996 Patrick W. Daly + % Copyright (C) 1997 Peter Antman, peter.antman@abc.se + %------------------------------------------------------------------- + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % + % This is an Oxford style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is oxford.sty by Peter Antman + % + % The form of the bibitem entries is + % \harvarditem[Jones, New thesis]{Howard Jones, FULL ENTRY}{1990}{key} + % Jones, Howard, FULL ENTRY + % + % The style gives the full reference att the first citation and then a + % abrevated one. + % + % The file suports an additional entry in the bib-file, stitle. It is + % for all but the first citation, when only lastname, and if there are + % more lastnames that are the same, title (and if there is a stitle that + % instead). + % + % oxford.sty also inserts an ibid. if the current citation is the same + % as the last one. + %--------------------------------------------------------------------- + % + % Hacked by Peter Antman to provide Oxford citation style. + % FIX: Year cite not correct everywhere ??? + % changes version 0.2: + % moved note in article + % editor and key right in short.ref + % changes version 0.3: + % fixed editors in cite, now orde Firstname Lastname + % removed ( and ) around ed. + % removed comma before nr. if volume empty + % removed comma before year in article, misc and unpub + % changes version 0.4 + % fixed ", " error produced in ouput.bibitem (thanks to + % Oren Patashnik for telling me how to do it) + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + stitle + 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 +} + +% BY Peter Antman, special function to get rid of comma before +% year in article, misc and unpub, se also output.check.special +FUNCTION {output.nonnull.special} +{ '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.special} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull.special + 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$ "" } + { "{\em " swap$ * "\/}" * } + if$ +} + +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. + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{english.mbs}[1995/05/04 1.1 (PWD)] + % Copyright (C) 1994, 1995 Patrick W. Dal + %------------------------------------------------------------------- + + % The language selected here is ENGLISH + +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edn." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis"} + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.th} +{ "th" } + +% BY Peter Antman, new functions bbl.lq bbl.rq +FUNCTION {bbl.lq} +{ "'" } + +FUNCTION {bbl.rq} +{ "'" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + % End of language definition file + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +FUNCTION {write.url} +{ URL empty$ + { skip$ } + { "\newline\harvardurl{" URL * "}" * write$ newline$ } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, jj}{, ff}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.names.ed} +{ format.names } + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { + author format.names + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { + editor format.names + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title + bbl.lq swap$ * % BY Peter Antman, uses bbl.lq + non.stop + { bbl.rq * ", " * } % BY Peter Antman, uses bbl.rq + { bbl.rq * " " * } % PROBLEM: comma after title in book + if$ + } + if$ +} + +FUNCTION {end.quote.title} +{ title empty$ + 'skip$ + { before.all 'output.state := } + if$ +} + +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * 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$ +} + +% BY Peter Antman, function to format long cite +FUNCTION {format.firstname} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff }{jj }{vv }{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% BY Peter Antman, function to format lastname +FUNCTION {format.lastname} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll}{}{}{}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% By Peter Antman, to format eds as Firstname Lastname +FUNCTION {format.r.editors} +{ editor empty$ + { "" } + { + editor format.firstname + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +% BY Peter Antman, editors in Firstname Lastname +FUNCTION {format.in.r.editors} +{ editor empty$ + { "" } + { editor format.firstname + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +FUNCTION {format.au} +{ author empty$ + { "" } + { + author format.firstname + } + if$ +} +FUNCTION {format.auth} +{ author empty$ + { editor empty$ + {author format.key} + {editor format.lastname} + if$ + } + { + author format.lastname + } + if$ +} + +% BY Peter Antman, the repeated +% should contain name if no other name of the same +% if more names of the same, then stitle +% if no stitle, then title +FUNCTION {short.ref} +{ +% format.auth +% ", " * +% extra.label write$ + extra.label "" = + { +% format.auth + short.list % PANIC this is a bad bypas of not having solved ed. + "" * extra.label + } + { stitle empty$ + { + format.auth + ", " * title + } + { + format.auth + ", " * stitle + } + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\harvarditem[" write$ +% short.ref duplicate$ label = + "" short.ref * "]" * write$ + pop$ "" + "{" write$ +% pop$ % ERROR, does the right thing but produces error + before.all 'output.state := +} + +FUNCTION {end.bibitem} +{ "}{" * write$ + year duplicate$ empty$ + { pop$ "????" } + 'skip$ + if$ + extra.label * "}{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ '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 duplicate$ empty$ + { "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" } + 'skip$ + if$ +% extra.label * % BY Peter Antman, removed, not needed in Oxford + " (" swap$ * ")" * +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s bbl.th * 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { bbl.pages pages n.dashify tie.or.space.connect } + { bbl.page pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.journal.pages} +{ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + +% BY Peter Antman, removed comma before bbl.nr if volume empty +FUNCTION {format.vol.num.pages} +{ volume field.or.null + volume empty$ + 'skip$ + { bbl.volume "~" * swap$ * } + if$ + number empty$ + 'skip$ + { +% " " bbl.nr * number tie.or.space.connect * + volume empty$ + { " " bbl.nr * number tie.or.space.connect * } + { ", " bbl.nr * number tie.or.space.connect * } + if$ + } + if$ + format.journal.pages +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +% By Peter Antman, editors in Firstname Lastname order +FUNCTION {format.in.r.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in format.in.r.editors * ", " * + booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in format.in.editors * ", " * + booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { bbl.volume volume tie.or.space.connect + bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.publisher} +{ publisher empty$ + % "empty publisher in " cite$ * warning$ %dont like this warning + 'skip$ + 'skip$ + if$ + "" + add.blank "(" * + address empty$ + 'skip$ + { address * } + if$ + publisher empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + publisher * + } + if$ + year duplicate$ empty$ + { "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" } + 'skip$ + if$ + publisher empty$ address empty$ and + { * } + { ", " swap$ * * } + if$ + ")" * + output +} + +% BY Peter Antman, all types includes full ref +FUNCTION {article} +{ output.bibitem +% pop$ % to get rid of , + format.au "author" output.check % output instead of output check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { journal + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.date "year" output.check.special + note output + end.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { journal + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.date "year" output.check.special + note output + fin.entry + write.url +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.r.editors "author and editor" output.check + editor format.key output + } + { format.au 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.edition output + note output + format.publisher + } + { + format.book.crossref output.nonnull + } + if$ + end.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.edition output + note output + format.publisher + } + { + format.book.crossref output.nonnull + } + if$ +% note output + fin.entry + write.url +} + +FUNCTION {booklet} +{ output.bibitem + format.au output + author format.key output + format.title "title" output.check + end.quote.title + howpublished output +% address output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors output + author format.key output + format.title "title" output.check + end.quote.title + howpublished output +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.r.editors "author and editor" output.check + editor format.key output + } + { format.au 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.edition output + note output + format.publisher + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + end.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.edition output + note output + format.publisher + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ +% note output %note moved + fin.entry + write.url +} + +FUNCTION {incollection} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.r.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.edition output + format.chapter.pages output + note output + format.publisher + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + end.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 + format.bvolume output + format.number.series output + format.edition output + format.chapter.pages output + note output + format.publisher + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ +% note output %note moved + fin.entry + write.url +} + +FUNCTION {inproceedings} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.r.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + note output + publisher empty$ + { organization output +% address output +% format.date "year" output.check + format.publisher + } + { organization output + format.publisher + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + end.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 + format.bvolume output + format.number.series output + format.pages output + note output + publisher empty$ + { organization output +% address output +% format.date "year" output.check + format.publisher + } + { organization output + format.publisher + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ +% note output % note moved + fin.entry + write.url +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.au output + author format.key output + format.btitle "title" output.check + organization output +% address output + format.edition output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors output + author format.key output + format.btitle "title" output.check + organization output +% address output + format.edition output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.au "author" output.check + author format.key output + format.btitle "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors "author" output.check + author format.key output + format.btitle "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {misc} +{ output.bibitem + format.au output + author format.key output + format.title output + end.quote.title + howpublished output + note output + format.date "year" output.check.special + end.bibitem + format.authors output + author format.key output + format.title output + end.quote.title + howpublished output + note output + format.date "year" output.check.special + fin.entry + write.url +} + +FUNCTION {phdthesis} +{ output.bibitem + format.au "author" output.check + author format.key output + format.btitle "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors "author" output.check + author format.key output + format.btitle "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {proceedings} +{ output.bibitem + format.r.editors output + editor format.key output + format.btitle "title" output.check + format.bvolume output + format.number.series output +% address output + organization output +% publisher output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.editors output + editor format.key output + format.btitle "title" output.check + format.bvolume output + format.number.series output +% address output + organization output +% publisher output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {techreport} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + format.tr.number output.nonnull + institution "institution" output.check +% address output + note output +% format.date "year" output.check + format.publisher + end.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" output.check +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {unpublished} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + note "note" output.check + format.date "year" output.check.special + end.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + note "note" output.check + format.date "year" output.check.special + fin.entry + write.url +} + +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 := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " " * "et~al." emphasize * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * 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$ + { pop$ "????" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {calc.short.label} +{ calc.short.authors short.list + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll{ }}{ ff{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "aaaaa" * } + { 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 {not.uniq.forw} +{ last.label short.list = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + short.list 'last.label := + } + if$ + number.label #1 + 'number.label := +% label write$ +} + +FUNCTION {not.uniq.rew} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "" swap$ * "" * } + if$ + 'extra.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 := +% label write$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "" swap$ * "" * } + if$ + 'extra.label := +} + +EXECUTE {initialize.extra.label.stuff} + +%ITERATE {forward.pass} + +ITERATE {not.uniq.forw} + +REVERSE {not.uniq.rew} + +%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$ := + calc.short.label +} + +ITERATE {bib.sort.order} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ +% "\newcommand{\enquote}[1]{``#1''}" +% write$ newline$ +% "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" +% 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 `svenska.bst'. diff --git a/Master/texmf-dist/bibtex/bst/oxford/oxford_in.bst b/Master/texmf-dist/bibtex/bst/oxford/oxford_in.bst new file mode 100644 index 00000000000..b586d121e82 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/oxford/oxford_in.bst @@ -0,0 +1,1889 @@ +%% +%% This is file `oxford_se.bst', version 0.4 +%% It was first generated with the docstrip utility in custom-bib +%% and then heavily hacked by Peter Antman. +%% +%% This file must still bee considered beta. +%% +%% This version is for swedish citation, to get other languages to work +%% rename it and insert the right bbl.xxx funcions and MACROS from +%% the right mbd-file, availible with custom-bib. There are two new such +%% commands, bbl.lq (leftquote) and bbl.rq (rightquote). Here you give +%% your languages way of quoting titles. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `head,exlang,ay,har,harnm,vonx,nm-revf,ed-rev,dt-end,yr-col,note-yr,tit-qq,atit-u,vnum-nr,volp-com,jwdvol,add-pub,pub-date,pre-edn,edpar,blk-com,svenska,pp,ed,abr,amper,and-xcom,etal-it,{}') +%% svenska.mbs (with options: `exlang,ay,har,harnm,vonx,nm-revf,ed-rev,dt-end,yr-col,note-yr,tit-qq,atit-u,vnum-nr,volp-com,jwdvol,add-pub,pub-date,pre-edn,edpar,blk-com,svenska,pp,ed,abr,amper,and-xcom,etal-it,{}') +%% merlin.mbs (with options: `tail,exlang,ay,har,harnm,vonx,nm-revf,ed-rev,dt-end,yr-col,note-yr,tit-qq,atit-u,vnum-nr,volp-com,jwdvol,add-pub,pub-date,pre-edn,edpar,blk-com,svenska,pp,ed,abr,amper,and-xcom,etal-it,{}') +%% ---------------------------------------- +%% *** *** +%% + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{merlin.mbs}[1996/12/16 3.82 (PWD)] + % + % NOTICE: + % This file may be used for non-profit purposes. + % It may not be distributed in exchange for money, + % other than distribution costs. + % + % The author provides it `as is' and does not guarantee it in any way. + % + % Copyright (C) 1994, 1995, 1996 Patrick W. Daly + % Copyright (C) 1997 Peter Antman, peter.antman@abc.se + %------------------------------------------------------------------- + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % + % This is an Oxford style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is oxford.sty by Peter Antman + % + % The form of the bibitem entries is + % \harvarditem[Jones, New thesis]{Howard Jones, FULL ENTRY}{1990}{key} + % Jones, Howard, FULL ENTRY + % + % The style gives the full reference att the first citation and then a + % abrevated one. + % + % The file suports an additional entry in the bib-file, stitle. It is + % for all but the first citation, when only lastname, and if there are + % more lastnames that are the same, title (and if there is a stitle that + % instead). + % + % oxford.sty also inserts an ibid. if the current citation is the same + % as the last one. + %--------------------------------------------------------------------- + % + % Hacked by Peter Antman to provide Oxford citation style. + % FIX: Year cite not correct everywhere ??? + % changes version 0.2: + % moved note in article + % editor and key right in short.ref + % changes version 0.3: + % fixed editors in cite, now orde Firstname Lastname + % removed ( and ) around ed. + % removed comma before nr. if volume empty + % removed comma before year in article, misc and unpub + % changes version 0.4 + % fixed ", " error produced in ouput.bibitem (thanks to + % Oren Patashnik for telling me how to do it) + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + stitle + 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 +} + +% BY Peter Antman, special function to get rid of comma before +% year in article, misc and unpub, se also output.check.special +FUNCTION {output.nonnull.special} +{ '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.special} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull.special + 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$ "" } + { "{\em " swap$ * "\/}" * } + if$ +} + +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. + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{english.mbs}[1995/05/04 1.1 (PWD)] + % Copyright (C) 1994, 1995 Patrick W. Dal + %------------------------------------------------------------------- + + % The language selected here is ENGLISH + +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edn." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis"} + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.th} +{ "th" } + +% BY Peter Antman, new functions bbl.lq bbl.rq +FUNCTION {bbl.lq} +{ "'" } + +FUNCTION {bbl.rq} +{ "'" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + % End of language definition file + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +FUNCTION {write.url} +{ URL empty$ + { skip$ } + { "\newline\harvardurl{" URL * "}" * write$ newline$ } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, jj}{, ff}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.names.ed} +{ format.names } + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { + author format.names + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { + editor format.names + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title + bbl.lq swap$ * % BY Peter Antman, uses bbl.lq + non.stop + { bbl.rq * ", " * } % BY Peter Antman, uses bbl.rq + { bbl.rq * " " * } % PROBLEM: comma after title in book + if$ + } + if$ +} + +FUNCTION {end.quote.title} +{ title empty$ + 'skip$ + { before.all 'output.state := } + if$ +} + +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * 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$ +} + +% BY Peter Antman, function to format long cite +FUNCTION {format.firstname} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff }{jj }{vv }{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% BY Peter Antman, function to format lastname +FUNCTION {format.lastname} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll}{}{}{}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% By Peter Antman, to format eds as Firstname Lastname +FUNCTION {format.r.editors} +{ editor empty$ + { "" } + { + editor format.firstname + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +% BY Peter Antman, editors in Firstname Lastname +FUNCTION {format.in.r.editors} +{ editor empty$ + { "" } + { editor format.firstname + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +FUNCTION {format.au} +{ author empty$ + { "" } + { + author format.firstname + } + if$ +} +FUNCTION {format.auth} +{ author empty$ + { editor empty$ + {author format.key} + {editor format.lastname} + if$ + } + { + author format.lastname + } + if$ +} + +% BY Peter Antman, the repeated +% should contain name if no other name of the same +% if more names of the same, then stitle +% if no stitle, then title +FUNCTION {short.ref} +{ +% format.auth +% ", " * +% extra.label write$ + extra.label "" = + { +% format.auth + short.list % PANIC this is a bad bypas of not having solved ed. + "" * extra.label + } + { stitle empty$ + { + format.auth + ", " * title + } + { + format.auth + ", " * stitle + } + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\harvarditem[" write$ +% short.ref duplicate$ label = + "" short.ref * "]" * write$ + pop$ "" + "{" write$ +% pop$ % ERROR, does the right thing but produces error + before.all 'output.state := +} + +FUNCTION {end.bibitem} +{ "}{" * write$ + year duplicate$ empty$ + { pop$ "????" } + 'skip$ + if$ + extra.label * "}{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ '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 duplicate$ empty$ + { "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" } + 'skip$ + if$ +% extra.label * % BY Peter Antman, removed, not needed in Oxford + " (" swap$ * ")" * +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s bbl.th * 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { bbl.pages pages n.dashify tie.or.space.connect } + { bbl.page pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.journal.pages} +{ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + +% BY Peter Antman, removed comma before bbl.nr if volume empty +FUNCTION {format.vol.num.pages} +{ volume field.or.null + volume empty$ + 'skip$ + { bbl.volume "~" * swap$ * } + if$ + number empty$ + 'skip$ + { +% " " bbl.nr * number tie.or.space.connect * + volume empty$ + { " " bbl.nr * number tie.or.space.connect * } + { ", " bbl.nr * number tie.or.space.connect * } + if$ + } + if$ + format.journal.pages +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +% By Peter Antman, editors in Firstname Lastname order +FUNCTION {format.in.r.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in format.in.r.editors * ", " * + booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in format.in.editors * ", " * + booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { bbl.volume volume tie.or.space.connect + bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.publisher} +{ publisher empty$ + % "empty publisher in " cite$ * warning$ %dont like this warning + 'skip$ + 'skip$ + if$ + "" + add.blank "(" * + address empty$ + 'skip$ + { address * } + if$ + publisher empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + publisher * + } + if$ + year duplicate$ empty$ + { "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" } + 'skip$ + if$ + publisher empty$ address empty$ and + { * } + { ", " swap$ * * } + if$ + ")" * + output +} + +% BY Peter Antman, all types includes full ref +FUNCTION {article} +{ output.bibitem +% pop$ % to get rid of , + format.au "author" output.check % output instead of output check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { journal + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.date "year" output.check.special + note output + end.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { journal + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.date "year" output.check.special + note output + fin.entry + write.url +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.r.editors "author and editor" output.check + editor format.key output + } + { format.au 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.edition output + note output + format.publisher + } + { + format.book.crossref output.nonnull + } + if$ + end.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.edition output + note output + format.publisher + } + { + format.book.crossref output.nonnull + } + if$ +% note output + fin.entry + write.url +} + +FUNCTION {booklet} +{ output.bibitem + format.au output + author format.key output + format.title "title" output.check + end.quote.title + howpublished output +% address output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors output + author format.key output + format.title "title" output.check + end.quote.title + howpublished output +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.r.editors "author and editor" output.check + editor format.key output + } + { format.au 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.edition output + note output + format.publisher + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + end.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.edition output + note output + format.publisher + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ +% note output %note moved + fin.entry + write.url +} + +FUNCTION {incollection} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.r.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.edition output + format.chapter.pages output + note output + format.publisher + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + end.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 + format.bvolume output + format.number.series output + format.edition output + format.chapter.pages output + note output + format.publisher + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ +% note output %note moved + fin.entry + write.url +} + +FUNCTION {inproceedings} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.r.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + note output + publisher empty$ + { organization output +% address output +% format.date "year" output.check + format.publisher + } + { organization output + format.publisher + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + end.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 + format.bvolume output + format.number.series output + format.pages output + note output + publisher empty$ + { organization output +% address output +% format.date "year" output.check + format.publisher + } + { organization output + format.publisher + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ +% note output % note moved + fin.entry + write.url +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.au output + author format.key output + format.btitle "title" output.check + organization output +% address output + format.edition output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors output + author format.key output + format.btitle "title" output.check + organization output +% address output + format.edition output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.au "author" output.check + author format.key output + format.btitle "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors "author" output.check + author format.key output + format.btitle "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {misc} +{ output.bibitem + format.au output + author format.key output + format.title output + end.quote.title + howpublished output + note output + format.date "year" output.check.special + end.bibitem + format.authors output + author format.key output + format.title output + end.quote.title + howpublished output + note output + format.date "year" output.check.special + fin.entry + write.url +} + +FUNCTION {phdthesis} +{ output.bibitem + format.au "author" output.check + author format.key output + format.btitle "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors "author" output.check + author format.key output + format.btitle "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {proceedings} +{ output.bibitem + format.r.editors output + editor format.key output + format.btitle "title" output.check + format.bvolume output + format.number.series output +% address output + organization output +% publisher output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.editors output + editor format.key output + format.btitle "title" output.check + format.bvolume output + format.number.series output +% address output + organization output +% publisher output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {techreport} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + format.tr.number output.nonnull + institution "institution" output.check +% address output + note output +% format.date "year" output.check + format.publisher + end.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" output.check +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {unpublished} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + note "note" output.check + format.date "year" output.check.special + end.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + note "note" output.check + format.date "year" output.check.special + fin.entry + write.url +} + +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 := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " " * "et~al." emphasize * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * 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$ + { pop$ "????" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {calc.short.label} +{ calc.short.authors short.list + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll{ }}{ ff{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "aaaaa" * } + { 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 {not.uniq.forw} +{ last.label short.list = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + short.list 'last.label := + } + if$ + number.label #1 + 'number.label := +% label write$ +} + +FUNCTION {not.uniq.rew} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "" swap$ * "" * } + if$ + 'extra.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 := +% label write$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "" swap$ * "" * } + if$ + 'extra.label := +} + +EXECUTE {initialize.extra.label.stuff} + +%ITERATE {forward.pass} + +ITERATE {not.uniq.forw} + +REVERSE {not.uniq.rew} + +%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$ := + calc.short.label +} + +ITERATE {bib.sort.order} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ +% "\newcommand{\enquote}[1]{``#1''}" +% write$ newline$ +% "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" +% 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 `svenska.bst'. diff --git a/Master/texmf-dist/bibtex/bst/oxford/oxford_se.bst b/Master/texmf-dist/bibtex/bst/oxford/oxford_se.bst new file mode 100644 index 00000000000..fcb3d408bc1 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/oxford/oxford_se.bst @@ -0,0 +1,1890 @@ +%% +%% This is file `oxford_se.bst', version 0.4 +%% It was first generated with the docstrip utility in custom-bib +%% and then heavily hacked by Peter Antman. +%% +%% This file must still bee considered beta. +%% +%% This version is for swedish citation, to get other languages to work +%% rename it and insert the right bbl.xxx funcions and MACROS from +%% the right mbd-file, availible with custom-bib. There are two new such +%% commands, bbl.lq (leftquote) and bbl.rq (rightquote). Here you give +%% your languages way of quoting titles. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `head,exlang,ay,har,harnm,vonx,nm-revf,ed-rev,dt-end,yr-col,note-yr,tit-qq,atit-u,vnum-nr,volp-com,jwdvol,add-pub,pub-date,pre-edn,edpar,blk-com,svenska,pp,ed,abr,amper,and-xcom,etal-it,{}') +%% svenska.mbs (with options: `exlang,ay,har,harnm,vonx,nm-revf,ed-rev,dt-end,yr-col,note-yr,tit-qq,atit-u,vnum-nr,volp-com,jwdvol,add-pub,pub-date,pre-edn,edpar,blk-com,svenska,pp,ed,abr,amper,and-xcom,etal-it,{}') +%% merlin.mbs (with options: `tail,exlang,ay,har,harnm,vonx,nm-revf,ed-rev,dt-end,yr-col,note-yr,tit-qq,atit-u,vnum-nr,volp-com,jwdvol,add-pub,pub-date,pre-edn,edpar,blk-com,svenska,pp,ed,abr,amper,and-xcom,etal-it,{}') +%% ---------------------------------------- +%% *** *** +%% + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{merlin.mbs}[1996/12/16 3.82 (PWD)] + % + % NOTICE: + % This file may be used for non-profit purposes. + % It may not be distributed in exchange for money, + % other than distribution costs. + % + % The author provides it `as is' and does not guarantee it in any way. + % + % Copyright (C) 1994, 1995, 1996 Patrick W. Daly + % Copyright (C) 1997 Peter Antman, peter.antman@abc.se + %------------------------------------------------------------------- + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % + % This is an Oxford style bibliography. As such, it is + % non-standard LaTeX, and requires a special package file to function properly. + % Such a package is oxford.sty by Peter Antman + % + % The form of the bibitem entries is + % \harvarditem[Jones, New thesis]{Howard Jones, FULL ENTRY}{1990}{key} + % Jones, Howard, FULL ENTRY + % + % The style gives the full reference att the first citation and then a + % abrevated one. + % + % The file suports an additional entry in the bib-file, stitle. It is + % for all but the first citation, when only lastname, and if there are + % more lastnames that are the same, title (and if there is a stitle that + % instead). + % + % oxford.sty also inserts an ibid. if the current citation is the same + % as the last one. + %--------------------------------------------------------------------- + % + % Hacked by Peter Antman to provide Oxford citation style. + % FIX: Year cite not correct everywhere ??? + % changes version 0.2: + % moved note in article + % editor and key right in short.ref + % changes version 0.3: + % fixed editors in cite, now orde Firstname Lastname + % removed ( and ) around ed. + % removed comma before nr. if volume empty + % removed comma before year in article, misc and unpub + % changes version 0.4 + % fixed ", " error produced in ouput.bibitem (thanks to + % Oren Patashnik for telling me how to do it) + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + stitle + 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 +} + +% BY Peter Antman, special function to get rid of comma before +% year in article, misc and unpub, se also output.check.special +FUNCTION {output.nonnull.special} +{ '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.special} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull.special + 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$ "" } + { "{\em " swap$ * "\/}" * } + if$ +} + +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. + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{svenska.mbs}[1995/08/07 1.0 (RL/PWD)] + % Copyright (C) 1997, Peter Antman + %------------------------------------------------------------------- + + % The language selected here is SVENSKA + +FUNCTION {bbl.and} +{ "och"} + +FUNCTION {bbl.editors} +{ "red." } + +FUNCTION {bbl.editor} +{ "red." } + +FUNCTION {bbl.edby} +{ "redigerad av" } + +FUNCTION {bbl.edition} +{ "uppl." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "av" } + +FUNCTION {bbl.number} +{ "nr." } + +FUNCTION {bbl.nr} +{ "nr." } + +FUNCTION {bbl.in} +{ "i" } + +FUNCTION {bbl.pages} +{ "ss." } + +FUNCTION {bbl.page} +{ "s." } + +FUNCTION {bbl.chapter} +{ "kap." } + +FUNCTION {bbl.techrep} +{ "Tekn. rap." } + +FUNCTION {bbl.mthesis} +{ "Licenciatavgandling" } + +FUNCTION {bbl.phdthesis} +{ "Doktorgradsavhandling" } + +FUNCTION {bbl.first} +{ "F^^f6rsta" } + +FUNCTION {bbl.second} +{ "Andra" } + +FUNCTION {bbl.third} +{ "Tredje" } + +FUNCTION {bbl.fourth} +{ "Fj^^e4rde" } + +FUNCTION {bbl.fifth} +{ "Femte" } + +FUNCTION {bbl.th} +{ "." } + +% BY Peter Antman, new functions bbl.lq bbl.rq +FUNCTION {bbl.lq} +{ "''" } + +FUNCTION {bbl.rq} +{ "''" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"Maj"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + + % End of language definition file + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +FUNCTION {write.url} +{ URL empty$ + { skip$ } + { "\newline\harvardurl{" URL * "}" * write$ newline$ } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{, jj}{, ff}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.names.ed} +{ format.names } + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { + author format.names + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { + editor format.names + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title + bbl.lq swap$ * % BY Peter Antman, uses bbl.lq + non.stop + { bbl.rq * ", " * } % BY Peter Antman, uses bbl.rq + { bbl.rq * " " * } % PROBLEM: comma after title in book + if$ + } + if$ +} + +FUNCTION {end.quote.title} +{ title empty$ + 'skip$ + { before.all 'output.state := } + if$ +} + +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * 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$ +} + +% BY Peter Antman, function to format long cite +FUNCTION {format.firstname} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ff }{jj }{vv }{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% BY Peter Antman, function to format lastname +FUNCTION {format.lastname} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll}{}{}{}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% By Peter Antman, to format eds as Firstname Lastname +FUNCTION {format.r.editors} +{ editor empty$ + { "" } + { + editor format.firstname + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +% BY Peter Antman, editors in Firstname Lastname +FUNCTION {format.in.r.editors} +{ editor empty$ + { "" } + { editor format.firstname + editor num.names$ #1 > + { " " * bbl.editors * "" * } + { " " * bbl.editor * "" * } + if$ + } + if$ +} + +FUNCTION {format.au} +{ author empty$ + { "" } + { + author format.firstname + } + if$ +} +FUNCTION {format.auth} +{ author empty$ + { editor empty$ + {author format.key} + {editor format.lastname} + if$ + } + { + author format.lastname + } + if$ +} + +% BY Peter Antman, the repeated +% should contain name if no other name of the same +% if more names of the same, then stitle +% if no stitle, then title +FUNCTION {short.ref} +{ +% format.auth +% ", " * +% extra.label write$ + extra.label "" = + { +% format.auth + short.list % PANIC this is a bad bypas of not having solved ed. + "" * extra.label + } + { stitle empty$ + { + format.auth + ", " * title + } + { + format.auth + ", " * stitle + } + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\harvarditem[" write$ +% short.ref duplicate$ label = + "" short.ref * "]" * write$ + pop$ "" + "{" write$ +% pop$ % ERROR, does the right thing but produces error + before.all 'output.state := +} + +FUNCTION {end.bibitem} +{ "}{" * write$ + year duplicate$ empty$ + { pop$ "????" } + 'skip$ + if$ + extra.label * "}{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ '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 duplicate$ empty$ + { "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" } + 'skip$ + if$ +% extra.label * % BY Peter Antman, removed, not needed in Oxford + " (" swap$ * ")" * +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s bbl.th * 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { bbl.pages pages n.dashify tie.or.space.connect } + { bbl.page pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.journal.pages} +{ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + +% BY Peter Antman, removed comma before bbl.nr if volume empty +FUNCTION {format.vol.num.pages} +{ volume field.or.null + volume empty$ + 'skip$ + { bbl.volume "~" * swap$ * } + if$ + number empty$ + 'skip$ + { +% " " bbl.nr * number tie.or.space.connect * + volume empty$ + { " " bbl.nr * number tie.or.space.connect * } + { ", " bbl.nr * number tie.or.space.connect * } + if$ + } + if$ + format.journal.pages +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +% By Peter Antman, editors in Firstname Lastname order +FUNCTION {format.in.r.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in format.in.r.editors * ", " * + booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in format.in.editors * ", " * + booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { bbl.volume volume tie.or.space.connect + bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.publisher} +{ publisher empty$ + % "empty publisher in " cite$ * warning$ %dont like this warning + 'skip$ + 'skip$ + if$ + "" + add.blank "(" * + address empty$ + 'skip$ + { address * } + if$ + publisher empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + publisher * + } + if$ + year duplicate$ empty$ + { "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" } + 'skip$ + if$ + publisher empty$ address empty$ and + { * } + { ", " swap$ * * } + if$ + ")" * + output +} + +% BY Peter Antman, all types includes full ref +FUNCTION {article} +{ output.bibitem +% pop$ % to get rid of , + format.au "author" output.check % output instead of output check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { journal + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.date "year" output.check.special + note output + end.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { journal + emphasize + "journal" output.check + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.date "year" output.check.special + note output + fin.entry + write.url +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.r.editors "author and editor" output.check + editor format.key output + } + { format.au 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.edition output + note output + format.publisher + } + { + format.book.crossref output.nonnull + } + if$ + end.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.edition output + note output + format.publisher + } + { + format.book.crossref output.nonnull + } + if$ +% note output + fin.entry + write.url +} + +FUNCTION {booklet} +{ output.bibitem + format.au output + author format.key output + format.title "title" output.check + end.quote.title + howpublished output +% address output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors output + author format.key output + format.title "title" output.check + end.quote.title + howpublished output +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.r.editors "author and editor" output.check + editor format.key output + } + { format.au 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.edition output + note output + format.publisher + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + end.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.edition output + note output + format.publisher + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ +% note output %note moved + fin.entry + write.url +} + +FUNCTION {incollection} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.r.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.edition output + format.chapter.pages output + note output + format.publisher + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + end.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 + format.bvolume output + format.number.series output + format.edition output + format.chapter.pages output + note output + format.publisher + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ +% note output %note moved + fin.entry + write.url +} + +FUNCTION {inproceedings} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + crossref missing$ + { format.in.r.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + note output + publisher empty$ + { organization output +% address output +% format.date "year" output.check + format.publisher + } + { organization output + format.publisher + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + end.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 + format.bvolume output + format.number.series output + format.pages output + note output + publisher empty$ + { organization output +% address output +% format.date "year" output.check + format.publisher + } + { organization output + format.publisher + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ +% note output % note moved + fin.entry + write.url +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.au output + author format.key output + format.btitle "title" output.check + organization output +% address output + format.edition output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors output + author format.key output + format.btitle "title" output.check + organization output +% address output + format.edition output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.au "author" output.check + author format.key output + format.btitle "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors "author" output.check + author format.key output + format.btitle "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {misc} +{ output.bibitem + format.au output + author format.key output + format.title output + end.quote.title + howpublished output + note output + format.date "year" output.check.special + end.bibitem + format.authors output + author format.key output + format.title output + end.quote.title + howpublished output + note output + format.date "year" output.check.special + fin.entry + write.url +} + +FUNCTION {phdthesis} +{ output.bibitem + format.au "author" output.check + author format.key output + format.btitle "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.authors "author" output.check + author format.key output + format.btitle "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {proceedings} +{ output.bibitem + format.r.editors output + editor format.key output + format.btitle "title" output.check + format.bvolume output + format.number.series output +% address output + organization output +% publisher output + note output +% format.date "year" output.check + format.publisher + end.bibitem + format.editors output + editor format.key output + format.btitle "title" output.check + format.bvolume output + format.number.series output +% address output + organization output +% publisher output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {techreport} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + format.tr.number output.nonnull + institution "institution" output.check +% address output + note output +% format.date "year" output.check + format.publisher + end.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" output.check +% address output + note output +% format.date "year" output.check + format.publisher + fin.entry + write.url +} + +FUNCTION {unpublished} +{ output.bibitem + format.au "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + note "note" output.check + format.date "year" output.check.special + end.bibitem + format.authors "author" output.check + author format.key output + format.title "title" output.check + end.quote.title + note "note" output.check + format.date "year" output.check.special + fin.entry + write.url +} + +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 := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " " * "et~al." emphasize * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " * "et~al." emphasize * } + { " \harvardand\ " * 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$ + { pop$ "????" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {calc.short.label} +{ calc.short.authors short.list + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll{ }}{ ff{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "aaaaa" * } + { 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 {not.uniq.forw} +{ last.label short.list = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + short.list 'last.label := + } + if$ + number.label #1 + 'number.label := +% label write$ +} + +FUNCTION {not.uniq.rew} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "" swap$ * "" * } + if$ + 'extra.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 := +% label write$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "" swap$ * "" * } + if$ + 'extra.label := +} + +EXECUTE {initialize.extra.label.stuff} + +%ITERATE {forward.pass} + +ITERATE {not.uniq.forw} + +REVERSE {not.uniq.rew} + +%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$ := + calc.short.label +} + +ITERATE {bib.sort.order} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ +% "\newcommand{\enquote}[1]{``#1''}" +% write$ newline$ +% "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" +% 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 `svenska.bst'. diff --git a/Master/texmf-dist/bibtex/bst/perception/perception.bst b/Master/texmf-dist/bibtex/bst/perception/perception.bst new file mode 100644 index 00000000000..3a752891473 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/perception/perception.bst @@ -0,0 +1,1584 @@ +%% +%% This is file `perception.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `,ay,nat,nm-rv,keyxyr,dt-beg,yr-com,yrp-x,note-yr,tit-qq,qx,bt-qq,vol-bf,vnum-x,volp-blk,pp-last,jnm-x,add-pub,pub-par,pre-edn,url,url-nl,blk-com,com-blank,fin-bare,pp,ed,ord,amper,xand') +%% ---------------------------------------- +%% *** for the Pion journal Perception *** +%% +%% Copyright 1994-1999 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}[1999/05/28 3.89 (PWD)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % 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 + howpublished + institution + journal + key + 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} +{ duplicate$ empty$ + 'pop$ + 'write$ + if$ + 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} +{ + add.blank +} + +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$ "" } + { "{\em " swap$ * "\/}" * } + if$ +} + +FUNCTION {bolden} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + + +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. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edition" } + +FUNCTION {bbl.volume} +{ "volume" } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "number" } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chapter" } + +FUNCTION {bbl.techrep} +{ "Technical Report" } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +FUNCTION {write.url} +{ url empty$ + { skip$ } + { "\newline\urlprefix\url{" url * "}" * write$ newline$ } + if$ +} + + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}{ jj}{ f{~}}" format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + "," * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.names.ed} +{ 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f{~}~}{vv~}{ll}{ jj}" + format.name$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + "," * + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + + " " * bbl.etal * + } + { " " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + ", " * + editor num.names$ #1 > + 'bbl.editors + 'bbl.editor + if$ + * + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + editor num.names$ #1 > + { ", " * bbl.editors * } + { ", " * bbl.editor * } + 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$ * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ + "\enquote{" swap$ * + "} " * + } + 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 > + { + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { + numnames #2 > + { "," * } + 'skip$ + if$ + "\&" + 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 {n.dashify} +{ + '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 duplicate$ empty$ + { "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" } + 'skip$ + if$ + extra.label * + before.all 'output.state := + ", " swap$ * +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s eng.ord 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { bbl.pages pages n.dashify tie.or.space.connect } + { bbl.page pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.journal.pages} +{ pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { + " " * + pages n.dashify * + } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + bolden +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + { "" } + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + } + if$ +} + +FUNCTION {bt.enquote} +{ "\enquote{" swap$ * + "}, " * +} +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle bt.enquote * } + { word.in format.in.editors * ", " * + booktitle bt.enquote * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { bbl.volume volume tie.or.space.connect + bbl.of space.word * + } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + " \cite{" * crossref * "}" * +} + +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + add.blank "(" * + address empty$ + 'skip$ + { address * } + if$ + t empty$ + 'skip$ + { address empty$ + 'skip$ + { ": " * } + if$ + t * + } + if$ + ")" * + } + if$ +} + +FUNCTION {format.publisher.address} +{ publisher empty$ + { "empty publisher in " cite$ * warning$ + "" + } + { publisher } + if$ + format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization empty$ + { "" } + { organization } + if$ + format.org.or.pub +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + end.quote.title + crossref missing$ + { journal + emphasize + "journal" output.check + add.blank + format.vol.num.pages output + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.journal.pages + format.note output + fin.entry + write.url +} + +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.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + format.edition output + format.publisher.address output + } + { + format.book.crossref output.nonnull + } + if$ + format.note output + fin.entry + write.url +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + end.quote.title + howpublished output + address output + format.note output + fin.entry + write.url +} + +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.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + format.number.series output + format.edition output + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.pages "pages" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + 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.edition output + format.chapter.pages output + format.publisher.address output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.pages "pages" output.check + format.note output + fin.entry + write.url +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + 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 + publisher empty$ + { format.organization.address output } + { organization output + format.publisher.address output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.note output + fin.entry + write.url +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + organization output + address output + format.edition output + format.note output + fin.entry + write.url +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.note output + fin.entry + write.url +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title output + end.quote.title + howpublished output + format.note output + fin.entry + write.url +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.note output + fin.entry + write.url +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + publisher empty$ + { format.organization.address output } + { organization output + format.publisher.address output + } + if$ + format.note output + fin.entry + write.url +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + end.quote.title + format.tr.number output.nonnull + institution "institution" output.check + address output + format.note output + fin.entry + write.url +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + end.quote.title + format.note "note" output.check + fin.entry + write.url +} + +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 * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + } + { " \& " * 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$ "????" } + 'skip$ + 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 > + { + " " * + 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$ + "\newcommand{\enquote}[1]{``#1''}" + write$ newline$ + "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" + write$ newline$ + "\expandafter\ifx\csname url\endcsname\relax" + write$ newline$ + " \def\url#1{{\tt #1}}\fi" + write$ newline$ + "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi" + 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 `perception.bst'. diff --git a/Master/texmf-dist/bibtex/bst/revtex/apsrev.bst b/Master/texmf-dist/bibtex/bst/revtex/apsrev.bst new file mode 100644 index 00000000000..0d887568901 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/revtex/apsrev.bst @@ -0,0 +1,2380 @@ +%% +%% This is file `apsrev.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `head,ay,nat,seq-no,nm-init,ed-au,nmlm,x10,x0,m10,m0,nmft,nmft-def,fnm-def,nmfted,lab,lab-def,keyxyr,yr-par,note-yr,tit-it,jtit-x,jttl-rm,thtit-x,trtit-x,vol-bf,vnum-x,volp-com,jpg-1,num-xser,jnm-x,pub-date,pre-pub,isbn,issn,edby,blk-com,pp,ed,abr,ednx,ord,jabr,revdata,eprint,url,url-blk,misc-simple,bibinfo,nfss,{}') +%% physjour.mbs (with options: `ay,nat,seq-no,nm-init,ed-au,nmlm,x10,x0,m10,m0,nmft,nmft-def,fnm-def,nmfted,lab,lab-def,keyxyr,yr-par,note-yr,tit-it,jtit-x,jttl-rm,thtit-x,trtit-x,vol-bf,vnum-x,volp-com,jpg-1,num-xser,jnm-x,pub-date,pre-pub,isbn,issn,edby,blk-com,pp,ed,abr,ednx,ord,jabr,revdata,eprint,url,url-blk,misc-simple,bibinfo,nfss,{}') +%% geojour.mbs (with options: `ay,nat,seq-no,nm-init,ed-au,nmlm,x10,x0,m10,m0,nmft,nmft-def,fnm-def,nmfted,lab,lab-def,keyxyr,yr-par,note-yr,tit-it,jtit-x,jttl-rm,thtit-x,trtit-x,vol-bf,vnum-x,volp-com,jpg-1,num-xser,jnm-x,pub-date,pre-pub,isbn,issn,edby,blk-com,pp,ed,abr,ednx,ord,jabr,revdata,eprint,url,url-blk,misc-simple,bibinfo,nfss,{}') +%% photjour.mbs (with options: `ay,nat,seq-no,nm-init,ed-au,nmlm,x10,x0,m10,m0,nmft,nmft-def,fnm-def,nmfted,lab,lab-def,keyxyr,yr-par,note-yr,tit-it,jtit-x,jttl-rm,thtit-x,trtit-x,vol-bf,vnum-x,volp-com,jpg-1,num-xser,jnm-x,pub-date,pre-pub,isbn,issn,edby,blk-com,pp,ed,abr,ednx,ord,jabr,revdata,eprint,url,url-blk,misc-simple,bibinfo,nfss,{}') +%% merlin.mbs (with options: `tail,ay,nat,seq-no,nm-init,ed-au,nmlm,x10,x0,m10,m0,nmft,nmft-def,fnm-def,nmfted,lab,lab-def,keyxyr,yr-par,note-yr,tit-it,jtit-x,jttl-rm,thtit-x,trtit-x,vol-bf,vnum-x,volp-com,jpg-1,num-xser,jnm-x,pub-date,pre-pub,isbn,issn,edby,blk-com,pp,ed,abr,ednx,ord,jabr,revdata,eprint,url,url-blk,misc-simple,bibinfo,nfss,{}') +%% ---------------------------------------- +%% *** REVTeX-compatible apsrev.bst 1702 *** +%% +%% Copyright 1994-2000 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}[2000/05/04 4.01 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % 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 + archive + author + booktitle + chapter + collaboration + edition + editor + eid + eprint + howpublished + institution + isbn + issn + journal + key + month + note + number + numpages + 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 {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 {bolden} +{ duplicate$ empty$ + { pop$ "" } + { "\textbf{" swap$ * "}" * } + if$ +} +FUNCTION {bib.name.font} +{ duplicate$ empty$ + { pop$ "" } + { "\bibnamefont{" swap$ * "}" * } + if$ +} +FUNCTION {bib.fname.font} +{ duplicate$ empty$ + { pop$ "" } + { "\bibfnamefont{" swap$ * "}" * } + if$ +} +FUNCTION {cite.name.font} +{ duplicate$ empty$ + { pop$ "" } + { "\citenamefont{" swap$ * "}" * } + if$ +} +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. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "ed." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.eidpp} +{ "pages" } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + + + + + + + + + + + + + + + + + + + + + + + + + + + %------------------------------------------------------------------- + + % Begin module: + + + % \ProvidesFile{physjour.mbs}[1999/10/05 2.1 (PWD)] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +MACRO {aa}{"Astron. \& Astrophys."} + + +MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} + + +MACRO {aj} {"Astron. J."} + + +MACRO {aph} {"Acta Phys."} + +MACRO {advp} {"Adv. Phys."} + +MACRO {ajp} {"Amer. J. Phys."} + +MACRO {ajm} {"Amer. J. Math."} + +MACRO {amsci} {"Amer. Sci."} + +MACRO {anofd} {"Ann. Fluid Dyn."} + +MACRO {am} {"Ann. Math."} + +MACRO {ap} {"Ann. Phys. (NY)"} + +MACRO {adp} {"Ann. Phys. (Leipzig)"} + +MACRO {ao} {"Appl. Opt."} + +MACRO {apl} {"Appl. Phys. Lett."} + +MACRO {app} {"Astroparticle Phys."} + +MACRO {apj} {"Astrophys. J."} + + +MACRO {apjsup} {"Astrophys. J. Suppl."} + + +MACRO {apss} {"Astrophys. Space Sci."} + + +MACRO {araa} {"Ann. Rev. Astron. Astrophys."} + + +MACRO {baas} {"Bull. Amer. Astron. Soc."} + + +MACRO {baps} {"Bull. Amer. Phys. Soc."} + +MACRO {cmp} {"Comm. Math. Phys."} + +MACRO {cpam} {"Commun. Pure Appl. Math."} + +MACRO {cppcf} {"Comm. Plasma Phys. \& Controlled Fusion"} + +MACRO {cpc} {"Comp. Phys. Comm."} + +MACRO {cqg} {"Class. Quant. Grav."} + +MACRO {cra} {"C. R. Acad. Sci. A"} + +MACRO {fed} {"Fusion Eng. \& Design"} + +MACRO {ft} {"Fusion Tech."} + +MACRO {grg} {"Gen. Relativ. Gravit."} + +MACRO {ieeens} {"IEEE Trans. Nucl. Sci."} + +MACRO {ieeeps} {"IEEE Trans. Plasma Sci."} + +MACRO {ijimw} {"Interntl. J. Infrared \& Millimeter Waves"} + +MACRO {ip} {"Infrared Phys."} + +MACRO {irp} {"Infrared Phys."} + +MACRO {jap} {"J. Appl. Phys."} + +MACRO {jasa} {"J. Acoust. Soc. America"} + +MACRO {jcp} {"J. Comp. Phys."} + +MACRO {jetp} {"Sov. Phys.--JETP"} + +MACRO {jfe} {"J. Fusion Energy"} + +MACRO {jfm} {"J. Fluid Mech."} + +MACRO {jmp} {"J. Math. Phys."} + +MACRO {jne} {"J. Nucl. Energy"} + +MACRO {jnec} {"J. Nucl. Energy, C: Plasma Phys., Accelerators, Thermonucl. Res."} + +MACRO {jnm} {"J. Nucl. Mat."} + +MACRO {jpc} {"J. Phys. Chem."} + +MACRO {jpp} {"J. Plasma Phys."} + +MACRO {jpsj} {"J. Phys. Soc. Japan"} + +MACRO {jsi} {"J. Sci. Instrum."} + +MACRO {jvst} {"J. Vac. Sci. \& Tech."} + +MACRO {nat} {"Nature"} + +MACRO {nature} {"Nature"} + + + +MACRO {nedf} {"Nucl. Eng. \& Design/Fusion"} + +MACRO {nf} {"Nucl. Fusion"} + +MACRO {nim} {"Nucl. Inst. \& Meth."} + +MACRO {nimpr} {"Nucl. Inst. \& Meth. in Phys. Res."} + +MACRO {np} {"Nucl. Phys."} + +MACRO {npb} {"Nucl. Phys. B"} + +MACRO {nt/f} {"Nucl. Tech./Fusion"} + +MACRO {npbpc} {"Nucl. Phys. B (Proc. Suppl.)"} + +MACRO {inc} {"Nuovo Cimento"} + +MACRO {nc} {"Nuovo Cimento"} + +MACRO {pf} {"Phys. Fluids"} + +MACRO {pfa} {"Phys. Fluids A: Fluid Dyn."} + +MACRO {pfb} {"Phys. Fluids B: Plasma Phys."} + +MACRO {pl} {"Phys. Lett."} + +MACRO {pla} {"Phys. Lett. A"} + +MACRO {plb} {"Phys. Lett. B"} + +MACRO {prep} {"Phys. Rep."} + +MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"} + +MACRO {pp} {"Phys. Plasmas"} + +MACRO {ppcf} {"Plasma Phys. \& Controlled Fusion"} + +MACRO {phitrsl} {"Philos. Trans. Roy. Soc. London"} + +MACRO {prl} {"Phys. Rev. Lett."} + +MACRO {pr} {"Phys. Rev."} + +MACRO {physrev} {"Phys. Rev."} + +MACRO {pra} {"Phys. Rev. A"} + +MACRO {prb} {"Phys. Rev. B"} + +MACRO {prc} {"Phys. Rev. C"} + +MACRO {prd} {"Phys. Rev. D"} + +MACRO {pre} {"Phys. Rev. E"} + +MACRO {ps} {"Phys. Scripta"} + +MACRO {procrsl} {"Proc. Roy. Soc. London"} + +MACRO {rmp} {"Rev. Mod. Phys."} + +MACRO {rsi} {"Rev. Sci. Inst."} + +MACRO {science} {"Science"} + + +MACRO {sciam} {"Sci. Am."} + +MACRO {sam} {"Stud. Appl. Math."} + +MACRO {sjpp} {"Sov. J. Plasma Phys."} + +MACRO {spd} {"Sov. Phys.--Doklady"} + +MACRO {sptp} {"Sov. Phys.--Tech. Phys."} + +MACRO {spu} {"Sov. Phys.--Uspeki"} + +MACRO {st} {"Sky and Telesc."} + + + + + + % End module: physjour.mbs + + + + %------------------------------------------------------------------- + % Begin module: + % \ProvidesFile{geojour.mbs}[1999/11/16 2.0g (PWD)] +MACRO {aisr} {"Adv. Space Res."} +MACRO {ag} {"Ann. Geophys."} +MACRO {anigeo} {"Ann. Geofis."} +MACRO {angl} {"Ann. Glaciol."} +MACRO {andmet} {"Ann. d. Meteor."} +MACRO {andgeo} {"Ann. d. Geophys."} +MACRO {andphy} {"Ann. Phys.-Paris"} +MACRO {afmgb} {"Arch. Meteor. Geophys. Bioklimatol."} +MACRO {atph} {"Atm\'osphera"} +MACRO {aao} {"Atmos. Ocean"} +MACRO {ass}{"Astrophys. Space Sci."} +MACRO {atenv} {"Atmos. Environ."} +MACRO {aujag} {"Aust. J. Agr. Res."} +MACRO {aumet} {"Aust. Meteorol. Mag."} +MACRO {blmet} {"Bound.-Lay. Meteorol."} +MACRO {bams} {"Bull. Amer. Meteorol. Soc."} +MACRO {cch} {"Clim. Change"} +MACRO {cdyn} {"Clim. Dynam."} +MACRO {cbul} {"Climatol. Bull."} +MACRO {cap} {"Contrib. Atmos. Phys."} +MACRO {dsr} {"Deep-Sea Res."} +MACRO {dhz} {"Dtsch. Hydrogr. Z."} +MACRO {dao} {"Dynam. Atmos. Oceans"} +MACRO {eco} {"Ecology"} +MACRO {empl}{"Earth, Moon and Planets"} +MACRO {envres} {"Environ. Res."} +MACRO {envst} {"Environ. Sci. Technol."} +MACRO {ecms} {"Estuarine Coastal Mar. Sci."} +MACRO {expa}{"Exper. Astron."} +MACRO {geoint} {"Geofis. Int."} +MACRO {geopub} {"Geofys. Publ."} +MACRO {geogeo} {"Geol. Geofiz."} +MACRO {gafd} {"Geophys. Astrophys. Fluid Dyn."} +MACRO {gfd} {"Geophys. Fluid Dyn."} +MACRO {geomag} {"Geophys. Mag."} +MACRO {georl} {"Geophys. Res. Lett."} +MACRO {grl} {"Geophys. Res. Lett."} +MACRO {ga} {"Geophysica"} +MACRO {gs} {"Geophysics"} +MACRO {ieeetap} {"IEEE Trans. Antenn. Propag."} +MACRO {ijawp} {"Int. J. Air Water Pollut."} +MACRO {ijc} {"Int. J. Climatol."} +MACRO {ijrs} {"Int. J. Remote Sens."} +MACRO {jam} {"J. Appl. Meteorol."} +MACRO {jaot} {"J. Atmos. Ocean. Technol."} +MACRO {jatp} {"J. Atmos. Terr. Phys."} +MACRO {jce} {"J. Climate"} +MACRO {jcam} {"J. Climate Appl. Meteor."} +MACRO {jcm} {"J. Climate Meteor."} +MACRO {jcy} {"J. Climatol."} +MACRO {jgr} {"J. Geophys. Res."} +MACRO {jga} {"J. Glaciol."} +MACRO {jh} {"J. Hydrol."} +MACRO {jmr} {"J. Mar. Res."} +MACRO {jmrj} {"J. Meteor. Res. Japan"} +MACRO {jm} {"J. Meteor."} +MACRO {jpo} {"J. Phys. Oceanogr."} +MACRO {jra} {"J. Rech. Atmos."} +MACRO {jaes} {"J. Aeronaut. Sci."} +MACRO {japca} {"J. Air Pollut. Control Assoc."} +MACRO {jas} {"J. Atmos. Sci."} +MACRO {jmts} {"J. Mar. Technol. Soc."} +MACRO {jmsj} {"J. Meteorol. Soc. Japan"} +MACRO {josj} {"J. Oceanogr. Soc. Japan"} +MACRO {jwm} {"J. Wea. Mod."} +MACRO {lao} {"Limnol. Oceanogr."} +MACRO {mwl} {"Mar. Wea. Log"} +MACRO {mau} {"Mausam"} +MACRO {meteor} {"``Meteor'' Forschungsergeb."} +MACRO {map} {"Meteorol. Atmos. Phys."} +MACRO {metmag} {"Meteor. Mag."} +MACRO {metmon} {"Meteor. Monogr."} +MACRO {metrun} {"Meteor. Rundsch."} +MACRO {metzeit} {"Meteor. Z."} +MACRO {metgid} {"Meteor. Gidrol."} +MACRO {mwr} {"Mon. Weather Rev."} +MACRO {nwd} {"Natl. Weather Dig."} +MACRO {nzjmfr} {"New Zeal. J. Mar. Freshwater Res."} +MACRO {npg} {"Nonlin. Proc. Geophys."} +MACRO {om} {"Oceanogr. Meteorol."} +MACRO {ocac} {"Oceanol. Acta"} +MACRO {oceanus} {"Oceanus"} +MACRO {paleoc} {"Paleoceanography"} +MACRO {pce} {"Phys. Chem. Earth"} +MACRO {pmg} {"Pap. Meteor. Geophys."} +MACRO {ppom} {"Pap. Phys. Oceanogr. Meteor."} +MACRO {physzeit} {"Phys. Z."} +MACRO {pps} {"Planet. Space Sci."} +MACRO {pss} {"Planet. Space Sci."} +MACRO {pag} {"Pure Appl. Geophys."} +MACRO {qjrms} {"Quart. J. Roy. Meteorol. Soc."} +MACRO {quatres} {"Quat. Res."} +MACRO {rsci} {"Radio Sci."} +MACRO {rse} {"Remote Sens. Environ."} +MACRO {rgeo} {"Rev. Geophys."} +MACRO {rgsp} {"Rev. Geophys. Space Phys."} +MACRO {rdgeo} {"Rev. Geofis."} +MACRO {revmeta} {"Rev. Meteorol."} +MACRO {sgp}{"Surveys in Geophys."} +MACRO {sp} {"Solar Phys."} +MACRO {ssr} {"Space Sci. Rev."} +MACRO {tellus} {"Tellus"} +MACRO {tac} {"Theor. Appl. Climatol."} +MACRO {tagu} {"Trans. Am. Geophys. Union (EOS)"} +MACRO {wrr} {"Water Resour. Res."} +MACRO {weather} {"Weather"} +MACRO {wafc} {"Weather Forecast."} +MACRO {ww} {"Weatherwise"} +MACRO {wmob} {"WMO Bull."} +MACRO {zeitmet} {"Z. Meteorol."} + % End module: geojour.mbs + + + + + + + + + + + + + + + + + + + + + + + + + + %------------------------------------------------------------------- + + % Begin module: + + + % \ProvidesFile{photjour.mbs}[1999/02/24 2.0b (PWD)] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +MACRO {appopt} {"Appl. Opt."} + +MACRO {bell} {"Bell Syst. Tech. J."} + +MACRO {ell} {"Electron. Lett."} + +MACRO {jasp} {"J. Appl. Spectr."} + +MACRO {jqe} {"IEEE J. Quantum Electron."} + +MACRO {jlwt} {"J. Lightwave Technol."} + +MACRO {jmo} {"J. Mod. Opt."} + +MACRO {josa} {"J. Opt. Soc. America"} + +MACRO {josaa} {"J. Opt. Soc. Amer.~A"} + +MACRO {josab} {"J. Opt. Soc. Amer.~B"} + +MACRO {jdp} {"J. Phys. (Paris)"} + +MACRO {oc} {"Opt. Commun."} + +MACRO {ol} {"Opt. Lett."} + +MACRO {phtl} {"IEEE Photon. Technol. Lett."} + +MACRO {pspie} {"Proc. Soc. Photo-Opt. Instrum. Eng."} + +MACRO {sse} {"Solid-State Electron."} + +MACRO {sjot} {"Sov. J. Opt. Technol."} + +MACRO {sjqe} {"Sov. J. Quantum Electron."} + +MACRO {sleb} {"Sov. Phys.--Leb. Inst. Rep."} + +MACRO {stph} {"Sov. Phys.--Techn. Phys."} + +MACRO {stphl} {"Sov. Techn. Phys. Lett."} + +MACRO {vr} {"Vision Res."} + +MACRO {zph} {"Z. f. Physik"} + +MACRO {zphb} {"Z. f. Physik~B"} + +MACRO {zphd} {"Z. f. Physik~D"} + +MACRO {CLEO} {"CLEO"} + +MACRO {ASSL} {"Adv. Sol.-State Lasers"} + +MACRO {OSA} {"OSA"} + + + + + % End module: photjour.mbs + + + +%% Copyright 1994-2000 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$ + "\bibinfo{" swap$ * "}{" * swap$ * "}" * + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + "\bibinfo{" swap$ * "}{" * swap$ * "}" * + } + if$ + } + if$ +} +FUNCTION {format.eprint} +{ eprint duplicate$ empty$ + 'skip$ + { "\eprint" + archive empty$ + 'skip$ + { "[" * archive * "]" * } + if$ + "{" * swap$ * "}" * + } + 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.}" format.name$ duplicate$ empty$ 'skip$ + { tie.or.space.prefix bib.fname.font swap$ * } + if$ + s nameptr + "{vv~}{ll}" format.name$ bib.name.font * + s nameptr + "{jj}" format.name$ duplicate$ empty$ 'skip$ + { bib.fname.font ", " swap$ * } + if$ + * + bibinfo bibinfo.check + 't := + nameptr #1 > + { + nameptr #0 + #10 + + #1 + = + numnames #0 + #10 + + > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal bib.name.font * + } + { + bbl.and + bib.name.font + 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 + duplicate$ empty$ 'skip$ + { collaboration "collaboration" bibinfo.check + duplicate$ empty$ 'skip$ + { " (" swap$ * ")" * } + if$ + * + } + if$ +} +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 {format.isbn} +{ isbn "isbn" bibinfo.check + duplicate$ empty$ 'skip$ + { + "ISBN " swap$ * + } + if$ +} + +FUNCTION {format.issn} +{ issn "issn" bibinfo.check + duplicate$ empty$ 'skip$ + { + "ISSN " swap$ * + } + 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 + duplicate$ empty$ + { skip$ } + { "t" change.case$ } + if$ + "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } + 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 #0 + #10 + + #1 + = + numnames #0 + #10 + + > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + cite.name.font + } + { + numnames #2 > + { "," * } + 'skip$ + if$ + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + t "others" = + 'skip$ + { cite.name.font } + if$ +} + +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 {n.dashify} +{ + '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 * + before.all 'output.state := + " (" swap$ * ")" * +} +FUNCTION {format.date.misc} +{ + year empty$ 'skip$ { + format.date "year" output.check + } if$ +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } + 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 {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s eng.ord 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition duplicate$ empty$ 'skip$ + { + convert.edition + 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 {first.page} +{ 't := + "" + { t empty$ not t #1 #1 substring$ "-" = not and } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + while$ +} + +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ", " * + swap$ + first.page + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.journal.eid} +{ eid "eid" bibinfo.check + duplicate$ empty$ 'skip$ + { swap$ duplicate$ empty$ 'skip$ + { + ", " * + } + if$ + swap$ + numpages empty$ 'skip$ + { bbl.eidpp numpages tie.or.space.prefix + "numpages" bibinfo.check * * + " (" swap$ * ")" * * + } + if$ + } + if$ * +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + bolden + 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 {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + emphasize +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + bbl.edby + " " * swap$ * + swap$ + "," * + " " * 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 := + "" + add.blank "(" * + 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 + crossref missing$ + { + "" + journal + duplicate$ empty$ + { pop$ pop$ } { + "journal" bibinfo.check + * "journal" output.check + add.blank + } if$ + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn output + format.note output + format.eprint output + format.url 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.isbn output + format.note output + format.eprint output + format.url output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.title "title" output.check + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.date "year" output.check + format.isbn output + format.note output + format.eprint output + format.url 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.publisher.address output + format.bvolume output + format.chapter.pages "chapter and pages" output.check + format.number.series output + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + format.date "year" output.check + } + if$ + format.edition output + crossref missing$ + { format.isbn output } + 'skip$ + if$ + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.publisher.address output + format.bvolume output + format.number.series output + format.chapter.pages output + format.edition output + format.isbn output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.note output + format.eprint output + format.url output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.bvolume output + format.number.series output + format.pages output + format.isbn output + format.issn output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.note output + format.eprint output + format.url 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.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.title output + howpublished "howpublished" bibinfo.check output + format.date.misc + format.note output + format.eprint output + format.url output + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check + format.note output + format.eprint output + format.url 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.isbn output + format.issn output + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.date "year" output.check + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date.misc + format.note "note" output.check + format.eprint output + format.url output + 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 * + cite.name.font + "others" 't := + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + cite.name.font + "others" 't := + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ + t "others" = + 'skip$ + { cite.name.font } + 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$ "" } + 'skip$ + 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 #0 + #10 + + #1 + = + numnames #0 + #10 + + > 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$ +} +INTEGERS { seq.num } +FUNCTION {init.seq} +{ #0 'seq.num :=} +EXECUTE {init.seq} +FUNCTION {int.to.fix} +{ "000000000" swap$ int.to.str$ * + #-1 #10 substring$ +} +FUNCTION {presort} +{ calc.label + label sortify + " " + * + seq.num #1 + 'seq.num := + seq.num int.to.fix + '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$ + "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" + write$ newline$ + "\expandafter\ifx\csname bibnamefont\endcsname\relax" + write$ newline$ + " \def\bibnamefont#1{#1}\fi" + write$ newline$ + "\expandafter\ifx\csname bibfnamefont\endcsname\relax" + write$ newline$ + " \def\bibfnamefont#1{#1}\fi" + write$ newline$ + "\expandafter\ifx\csname citenamefont\endcsname\relax" + write$ newline$ + " \def\citenamefont#1{#1}\fi" + write$ newline$ + "\expandafter\ifx\csname url\endcsname\relax" + write$ newline$ + " \def\url#1{\texttt{#1}}\fi" + write$ newline$ + "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi" + write$ newline$ + "\providecommand{\bibinfo}[2]{#2}" + write$ newline$ + "\providecommand{\eprint}[2][]{\url{#2}}" + 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 `apsrev.bst'. diff --git a/Master/texmf-dist/bibtex/bst/revtex/apsrmp.bst b/Master/texmf-dist/bibtex/bst/revtex/apsrmp.bst new file mode 100644 index 00000000000..b603eadcb50 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/revtex/apsrmp.bst @@ -0,0 +1,2359 @@ +%% +%% This is file `apsrmp.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% merlin.mbs (with options: `head,ay,nat,vonx,nm-rev1,jnrlst,nmlm,x10,x2,m10,m2,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,keyxyr,dt-beg,xmth,yr-com,note-yr,jtit-x,jttl-rm,trtit-b,vol-bf,volp-com,jpg-1,pp-last,num-xser,jnm-x,pub-par,pre-pub,isbn,issn,edpar,edby,blk-com,pp,ed,xedn,jabr,and-com,etal-it,revdata,eprint,url,url-blk,pub-over-eprint,bibinfo,nfss,{}') +%% physjour.mbs (with options: `ay,nat,vonx,nm-rev1,jnrlst,nmlm,x10,x2,m10,m2,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,keyxyr,dt-beg,xmth,yr-com,note-yr,jtit-x,jttl-rm,trtit-b,vol-bf,volp-com,jpg-1,pp-last,num-xser,jnm-x,pub-par,pre-pub,isbn,issn,edpar,edby,blk-com,pp,ed,xedn,jabr,and-com,etal-it,revdata,eprint,url,url-blk,pub-over-eprint,bibinfo,nfss,{}') +%% geojour.mbs (with options: `ay,nat,vonx,nm-rev1,jnrlst,nmlm,x10,x2,m10,m2,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,keyxyr,dt-beg,xmth,yr-com,note-yr,jtit-x,jttl-rm,trtit-b,vol-bf,volp-com,jpg-1,pp-last,num-xser,jnm-x,pub-par,pre-pub,isbn,issn,edpar,edby,blk-com,pp,ed,xedn,jabr,and-com,etal-it,revdata,eprint,url,url-blk,pub-over-eprint,bibinfo,nfss,{}') +%% photjour.mbs (with options: `ay,nat,vonx,nm-rev1,jnrlst,nmlm,x10,x2,m10,m2,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,keyxyr,dt-beg,xmth,yr-com,note-yr,jtit-x,jttl-rm,trtit-b,vol-bf,volp-com,jpg-1,pp-last,num-xser,jnm-x,pub-par,pre-pub,isbn,issn,edpar,edby,blk-com,pp,ed,xedn,jabr,and-com,etal-it,revdata,eprint,url,url-blk,pub-over-eprint,bibinfo,nfss,{}') +%% merlin.mbs (with options: `tail,ay,nat,vonx,nm-rev1,jnrlst,nmlm,x10,x2,m10,m2,nmft,nmft-def,fnm-def,nmfted,nmand-rm,lab,lab-def,keyxyr,dt-beg,xmth,yr-com,note-yr,jtit-x,jttl-rm,trtit-b,vol-bf,volp-com,jpg-1,pp-last,num-xser,jnm-x,pub-par,pre-pub,isbn,issn,edpar,edby,blk-com,pp,ed,xedn,jabr,and-com,etal-it,revdata,eprint,url,url-blk,pub-over-eprint,bibinfo,nfss,{}') +%% ---------------------------------------- +%% *** REVTeX-compatible apsrmp.bst 1702 *** +%% +%% Copyright 1994-2000 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}[2000/05/04 4.01 (PWD, AO, DPC)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % 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 + archive + author + booktitle + chapter + collaboration + edition + editor + eid + eprint + howpublished + institution + isbn + issn + journal + key + month + note + number + numpages + 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 {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 {bolden} +{ duplicate$ empty$ + { pop$ "" } + { "\textbf{" swap$ * "}" * } + if$ +} +FUNCTION {bib.name.font} +{ duplicate$ empty$ + { pop$ "" } + { "\bibnamefont{" swap$ * "}" * } + if$ +} +FUNCTION {bib.fname.font} +{ duplicate$ empty$ + { pop$ "" } + { "\bibfnamefont{" swap$ * "}" * } + if$ +} +FUNCTION {cite.name.font} +{ duplicate$ empty$ + { pop$ "" } + { "\citenamefont{" swap$ * "}" * } + if$ +} +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. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edition" } + +FUNCTION {bbl.volume} +{ "volume" } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "number" } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.eidpp} +{ "pages" } + +FUNCTION {bbl.chapter} +{ "chapter" } + +FUNCTION {bbl.techrep} +{ "Technical Report" } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + + + + + + + + + + + + + + + + + + + + + + + + + + + %------------------------------------------------------------------- + + % Begin module: + + + % \ProvidesFile{physjour.mbs}[1999/10/05 2.1 (PWD)] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +MACRO {aa}{"Astron. \& Astrophys."} + + +MACRO {aasup}{"Astron. \& Astrophys. Suppl. Ser."} + + +MACRO {aj} {"Astron. J."} + + +MACRO {aph} {"Acta Phys."} + +MACRO {advp} {"Adv. Phys."} + +MACRO {ajp} {"Amer. J. Phys."} + +MACRO {ajm} {"Amer. J. Math."} + +MACRO {amsci} {"Amer. Sci."} + +MACRO {anofd} {"Ann. Fluid Dyn."} + +MACRO {am} {"Ann. Math."} + +MACRO {ap} {"Ann. Phys. (NY)"} + +MACRO {adp} {"Ann. Phys. (Leipzig)"} + +MACRO {ao} {"Appl. Opt."} + +MACRO {apl} {"Appl. Phys. Lett."} + +MACRO {app} {"Astroparticle Phys."} + +MACRO {apj} {"Astrophys. J."} + + +MACRO {apjsup} {"Astrophys. J. Suppl."} + + +MACRO {apss} {"Astrophys. Space Sci."} + + +MACRO {araa} {"Ann. Rev. Astron. Astrophys."} + + +MACRO {baas} {"Bull. Amer. Astron. Soc."} + + +MACRO {baps} {"Bull. Amer. Phys. Soc."} + +MACRO {cmp} {"Comm. Math. Phys."} + +MACRO {cpam} {"Commun. Pure Appl. Math."} + +MACRO {cppcf} {"Comm. Plasma Phys. \& Controlled Fusion"} + +MACRO {cpc} {"Comp. Phys. Comm."} + +MACRO {cqg} {"Class. Quant. Grav."} + +MACRO {cra} {"C. R. Acad. Sci. A"} + +MACRO {fed} {"Fusion Eng. \& Design"} + +MACRO {ft} {"Fusion Tech."} + +MACRO {grg} {"Gen. Relativ. Gravit."} + +MACRO {ieeens} {"IEEE Trans. Nucl. Sci."} + +MACRO {ieeeps} {"IEEE Trans. Plasma Sci."} + +MACRO {ijimw} {"Interntl. J. Infrared \& Millimeter Waves"} + +MACRO {ip} {"Infrared Phys."} + +MACRO {irp} {"Infrared Phys."} + +MACRO {jap} {"J. Appl. Phys."} + +MACRO {jasa} {"J. Acoust. Soc. America"} + +MACRO {jcp} {"J. Comp. Phys."} + +MACRO {jetp} {"Sov. Phys.--JETP"} + +MACRO {jfe} {"J. Fusion Energy"} + +MACRO {jfm} {"J. Fluid Mech."} + +MACRO {jmp} {"J. Math. Phys."} + +MACRO {jne} {"J. Nucl. Energy"} + +MACRO {jnec} {"J. Nucl. Energy, C: Plasma Phys., Accelerators, Thermonucl. Res."} + +MACRO {jnm} {"J. Nucl. Mat."} + +MACRO {jpc} {"J. Phys. Chem."} + +MACRO {jpp} {"J. Plasma Phys."} + +MACRO {jpsj} {"J. Phys. Soc. Japan"} + +MACRO {jsi} {"J. Sci. Instrum."} + +MACRO {jvst} {"J. Vac. Sci. \& Tech."} + +MACRO {nat} {"Nature"} + +MACRO {nature} {"Nature"} + + + +MACRO {nedf} {"Nucl. Eng. \& Design/Fusion"} + +MACRO {nf} {"Nucl. Fusion"} + +MACRO {nim} {"Nucl. Inst. \& Meth."} + +MACRO {nimpr} {"Nucl. Inst. \& Meth. in Phys. Res."} + +MACRO {np} {"Nucl. Phys."} + +MACRO {npb} {"Nucl. Phys. B"} + +MACRO {nt/f} {"Nucl. Tech./Fusion"} + +MACRO {npbpc} {"Nucl. Phys. B (Proc. Suppl.)"} + +MACRO {inc} {"Nuovo Cimento"} + +MACRO {nc} {"Nuovo Cimento"} + +MACRO {pf} {"Phys. Fluids"} + +MACRO {pfa} {"Phys. Fluids A: Fluid Dyn."} + +MACRO {pfb} {"Phys. Fluids B: Plasma Phys."} + +MACRO {pl} {"Phys. Lett."} + +MACRO {pla} {"Phys. Lett. A"} + +MACRO {plb} {"Phys. Lett. B"} + +MACRO {prep} {"Phys. Rep."} + +MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"} + +MACRO {pp} {"Phys. Plasmas"} + +MACRO {ppcf} {"Plasma Phys. \& Controlled Fusion"} + +MACRO {phitrsl} {"Philos. Trans. Roy. Soc. London"} + +MACRO {prl} {"Phys. Rev. Lett."} + +MACRO {pr} {"Phys. Rev."} + +MACRO {physrev} {"Phys. Rev."} + +MACRO {pra} {"Phys. Rev. A"} + +MACRO {prb} {"Phys. Rev. B"} + +MACRO {prc} {"Phys. Rev. C"} + +MACRO {prd} {"Phys. Rev. D"} + +MACRO {pre} {"Phys. Rev. E"} + +MACRO {ps} {"Phys. Scripta"} + +MACRO {procrsl} {"Proc. Roy. Soc. London"} + +MACRO {rmp} {"Rev. Mod. Phys."} + +MACRO {rsi} {"Rev. Sci. Inst."} + +MACRO {science} {"Science"} + + +MACRO {sciam} {"Sci. Am."} + +MACRO {sam} {"Stud. Appl. Math."} + +MACRO {sjpp} {"Sov. J. Plasma Phys."} + +MACRO {spd} {"Sov. Phys.--Doklady"} + +MACRO {sptp} {"Sov. Phys.--Tech. Phys."} + +MACRO {spu} {"Sov. Phys.--Uspeki"} + +MACRO {st} {"Sky and Telesc."} + + + + + + % End module: physjour.mbs + + + + %------------------------------------------------------------------- + % Begin module: + % \ProvidesFile{geojour.mbs}[1999/11/16 2.0g (PWD)] +MACRO {aisr} {"Adv. Space Res."} +MACRO {ag} {"Ann. Geophys."} +MACRO {anigeo} {"Ann. Geofis."} +MACRO {angl} {"Ann. Glaciol."} +MACRO {andmet} {"Ann. d. Meteor."} +MACRO {andgeo} {"Ann. d. Geophys."} +MACRO {andphy} {"Ann. Phys.-Paris"} +MACRO {afmgb} {"Arch. Meteor. Geophys. Bioklimatol."} +MACRO {atph} {"Atm\'osphera"} +MACRO {aao} {"Atmos. Ocean"} +MACRO {ass}{"Astrophys. Space Sci."} +MACRO {atenv} {"Atmos. Environ."} +MACRO {aujag} {"Aust. J. Agr. Res."} +MACRO {aumet} {"Aust. Meteorol. Mag."} +MACRO {blmet} {"Bound.-Lay. Meteorol."} +MACRO {bams} {"Bull. Amer. Meteorol. Soc."} +MACRO {cch} {"Clim. Change"} +MACRO {cdyn} {"Clim. Dynam."} +MACRO {cbul} {"Climatol. Bull."} +MACRO {cap} {"Contrib. Atmos. Phys."} +MACRO {dsr} {"Deep-Sea Res."} +MACRO {dhz} {"Dtsch. Hydrogr. Z."} +MACRO {dao} {"Dynam. Atmos. Oceans"} +MACRO {eco} {"Ecology"} +MACRO {empl}{"Earth, Moon and Planets"} +MACRO {envres} {"Environ. Res."} +MACRO {envst} {"Environ. Sci. Technol."} +MACRO {ecms} {"Estuarine Coastal Mar. Sci."} +MACRO {expa}{"Exper. Astron."} +MACRO {geoint} {"Geofis. Int."} +MACRO {geopub} {"Geofys. Publ."} +MACRO {geogeo} {"Geol. Geofiz."} +MACRO {gafd} {"Geophys. Astrophys. Fluid Dyn."} +MACRO {gfd} {"Geophys. Fluid Dyn."} +MACRO {geomag} {"Geophys. Mag."} +MACRO {georl} {"Geophys. Res. Lett."} +MACRO {grl} {"Geophys. Res. Lett."} +MACRO {ga} {"Geophysica"} +MACRO {gs} {"Geophysics"} +MACRO {ieeetap} {"IEEE Trans. Antenn. Propag."} +MACRO {ijawp} {"Int. J. Air Water Pollut."} +MACRO {ijc} {"Int. J. Climatol."} +MACRO {ijrs} {"Int. J. Remote Sens."} +MACRO {jam} {"J. Appl. Meteorol."} +MACRO {jaot} {"J. Atmos. Ocean. Technol."} +MACRO {jatp} {"J. Atmos. Terr. Phys."} +MACRO {jce} {"J. Climate"} +MACRO {jcam} {"J. Climate Appl. Meteor."} +MACRO {jcm} {"J. Climate Meteor."} +MACRO {jcy} {"J. Climatol."} +MACRO {jgr} {"J. Geophys. Res."} +MACRO {jga} {"J. Glaciol."} +MACRO {jh} {"J. Hydrol."} +MACRO {jmr} {"J. Mar. Res."} +MACRO {jmrj} {"J. Meteor. Res. Japan"} +MACRO {jm} {"J. Meteor."} +MACRO {jpo} {"J. Phys. Oceanogr."} +MACRO {jra} {"J. Rech. Atmos."} +MACRO {jaes} {"J. Aeronaut. Sci."} +MACRO {japca} {"J. Air Pollut. Control Assoc."} +MACRO {jas} {"J. Atmos. Sci."} +MACRO {jmts} {"J. Mar. Technol. Soc."} +MACRO {jmsj} {"J. Meteorol. Soc. Japan"} +MACRO {josj} {"J. Oceanogr. Soc. Japan"} +MACRO {jwm} {"J. Wea. Mod."} +MACRO {lao} {"Limnol. Oceanogr."} +MACRO {mwl} {"Mar. Wea. Log"} +MACRO {mau} {"Mausam"} +MACRO {meteor} {"``Meteor'' Forschungsergeb."} +MACRO {map} {"Meteorol. Atmos. Phys."} +MACRO {metmag} {"Meteor. Mag."} +MACRO {metmon} {"Meteor. Monogr."} +MACRO {metrun} {"Meteor. Rundsch."} +MACRO {metzeit} {"Meteor. Z."} +MACRO {metgid} {"Meteor. Gidrol."} +MACRO {mwr} {"Mon. Weather Rev."} +MACRO {nwd} {"Natl. Weather Dig."} +MACRO {nzjmfr} {"New Zeal. J. Mar. Freshwater Res."} +MACRO {npg} {"Nonlin. Proc. Geophys."} +MACRO {om} {"Oceanogr. Meteorol."} +MACRO {ocac} {"Oceanol. Acta"} +MACRO {oceanus} {"Oceanus"} +MACRO {paleoc} {"Paleoceanography"} +MACRO {pce} {"Phys. Chem. Earth"} +MACRO {pmg} {"Pap. Meteor. Geophys."} +MACRO {ppom} {"Pap. Phys. Oceanogr. Meteor."} +MACRO {physzeit} {"Phys. Z."} +MACRO {pps} {"Planet. Space Sci."} +MACRO {pss} {"Planet. Space Sci."} +MACRO {pag} {"Pure Appl. Geophys."} +MACRO {qjrms} {"Quart. J. Roy. Meteorol. Soc."} +MACRO {quatres} {"Quat. Res."} +MACRO {rsci} {"Radio Sci."} +MACRO {rse} {"Remote Sens. Environ."} +MACRO {rgeo} {"Rev. Geophys."} +MACRO {rgsp} {"Rev. Geophys. Space Phys."} +MACRO {rdgeo} {"Rev. Geofis."} +MACRO {revmeta} {"Rev. Meteorol."} +MACRO {sgp}{"Surveys in Geophys."} +MACRO {sp} {"Solar Phys."} +MACRO {ssr} {"Space Sci. Rev."} +MACRO {tellus} {"Tellus"} +MACRO {tac} {"Theor. Appl. Climatol."} +MACRO {tagu} {"Trans. Am. Geophys. Union (EOS)"} +MACRO {wrr} {"Water Resour. Res."} +MACRO {weather} {"Weather"} +MACRO {wafc} {"Weather Forecast."} +MACRO {ww} {"Weatherwise"} +MACRO {wmob} {"WMO Bull."} +MACRO {zeitmet} {"Z. Meteorol."} + % End module: geojour.mbs + + + + + + + + + + + + + + + + + + + + + + + + + + %------------------------------------------------------------------- + + % Begin module: + + + % \ProvidesFile{photjour.mbs}[1999/02/24 2.0b (PWD)] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +MACRO {appopt} {"Appl. Opt."} + +MACRO {bell} {"Bell Syst. Tech. J."} + +MACRO {ell} {"Electron. Lett."} + +MACRO {jasp} {"J. Appl. Spectr."} + +MACRO {jqe} {"IEEE J. Quantum Electron."} + +MACRO {jlwt} {"J. Lightwave Technol."} + +MACRO {jmo} {"J. Mod. Opt."} + +MACRO {josa} {"J. Opt. Soc. America"} + +MACRO {josaa} {"J. Opt. Soc. Amer.~A"} + +MACRO {josab} {"J. Opt. Soc. Amer.~B"} + +MACRO {jdp} {"J. Phys. (Paris)"} + +MACRO {oc} {"Opt. Commun."} + +MACRO {ol} {"Opt. Lett."} + +MACRO {phtl} {"IEEE Photon. Technol. Lett."} + +MACRO {pspie} {"Proc. Soc. Photo-Opt. Instrum. Eng."} + +MACRO {sse} {"Solid-State Electron."} + +MACRO {sjot} {"Sov. J. Opt. Technol."} + +MACRO {sjqe} {"Sov. J. Quantum Electron."} + +MACRO {sleb} {"Sov. Phys.--Leb. Inst. Rep."} + +MACRO {stph} {"Sov. Phys.--Techn. Phys."} + +MACRO {stphl} {"Sov. Techn. Phys. Lett."} + +MACRO {vr} {"Vision Res."} + +MACRO {zph} {"Z. f. Physik"} + +MACRO {zphb} {"Z. f. Physik~B"} + +MACRO {zphd} {"Z. f. Physik~D"} + +MACRO {CLEO} {"CLEO"} + +MACRO {ASSL} {"Adv. Sol.-State Lasers"} + +MACRO {OSA} {"OSA"} + + + + + % End module: photjour.mbs + + + +%% Copyright 1994-2000 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$ + "\bibinfo{" swap$ * "}{" * swap$ * "}" * + } + if$ + } + if$ +} +FUNCTION {bibinfo.warn} +{ swap$ + duplicate$ missing$ + { + swap$ "missing " swap$ * " in " * cite$ * warning$ pop$ + "" + } + { duplicate$ empty$ + { + swap$ "empty " swap$ * " in " * cite$ * warning$ + } + { swap$ + "\bibinfo{" swap$ * "}{" * swap$ * "}" * + } + if$ + } + if$ +} +FUNCTION {format.eprint} +{ eprint duplicate$ empty$ + 'skip$ + { "\eprint" + archive empty$ + 'skip$ + { "[" * archive * "]" * } + if$ + "{" * swap$ * "}" * + } + 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 + nameptr #1 > + { "{f.}" format.name$ duplicate$ empty$ 'skip$ + { tie.or.space.prefix bib.fname.font swap$ * } + if$ + s nameptr + "{vv~}{ll}" format.name$ bib.name.font * + s nameptr + "{jj}" format.name$ duplicate$ empty$ 'skip$ + { bib.fname.font ", " swap$ * } + if$ + } + { "{vv~}{ll}" format.name$ bib.name.font + s nameptr + "{f.}{, jj}" + format.name$ duplicate$ empty$ 'skip$ + { bib.fname.font ", " swap$ * } + if$ + } + if$ + * + bibinfo bibinfo.check + 't := + nameptr #1 > + { + nameptr #2 + #10 + + #1 + = + numnames #2 + #10 + + > 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} +{ + 'bibinfo := + duplicate$ empty$ 'skip$ { + 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.}" format.name$ duplicate$ empty$ 'skip$ + { tie.or.space.prefix bib.fname.font swap$ * } + if$ + s nameptr + "{vv~}{ll}" format.name$ bib.name.font * + s nameptr + "{jj}" format.name$ duplicate$ empty$ 'skip$ + { bib.fname.font ", " swap$ * } + if$ + * + bibinfo bibinfo.check + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + 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.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author "author" format.names + duplicate$ empty$ 'skip$ + { collaboration "collaboration" bibinfo.check + duplicate$ empty$ 'skip$ + { " (" swap$ * ")" * } + if$ + * + } + if$ +} +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 + "(" swap$ * ")" * + * + } + if$ +} +FUNCTION {format.isbn} +{ isbn "isbn" bibinfo.check + duplicate$ empty$ 'skip$ + { + "ISBN " swap$ * + } + if$ +} + +FUNCTION {format.issn} +{ issn "issn" bibinfo.check + duplicate$ empty$ 'skip$ + { + "ISSN " swap$ * + } + 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 + duplicate$ empty$ + { skip$ } + { "t" change.case$ } + if$ + "title" bibinfo.check +} + +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 #2 + #10 + + #1 + = + numnames #2 + #10 + + > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + cite.name.font + " " * bbl.etal emphasize * + } + { + numnames #2 > + { "," * } + 'skip$ + if$ + bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + t "others" = + 'skip$ + { cite.name.font } + if$ +} + +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 {n.dashify} +{ + '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 * + before.all 'output.state := + ", " swap$ * +} +FUNCTION {format.date.misc} +{ + format.date "year" output.check +} +FUNCTION {format.btitle} +{ title "title" bibinfo.check + duplicate$ empty$ 'skip$ + { + emphasize + } + 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 {first.page} +{ 't := + "" + { t empty$ not t #1 #1 substring$ "-" = not and } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + while$ +} + +FUNCTION {format.journal.pages} +{ pages duplicate$ empty$ 'pop$ + { swap$ duplicate$ empty$ + { pop$ pop$ format.pages } + { + ", " * + swap$ + first.page + "pages" bibinfo.check + * + } + if$ + } + if$ +} +FUNCTION {format.journal.eid} +{ eid "eid" bibinfo.check + duplicate$ empty$ 'skip$ + { swap$ duplicate$ empty$ 'skip$ + { + ", " * + } + if$ + swap$ + numpages empty$ 'skip$ + { bbl.eidpp numpages tie.or.space.prefix + "numpages" bibinfo.check * * + " (" swap$ * ")" * * + } + if$ + } + if$ * +} +FUNCTION {format.vol.num.pages} +{ volume field.or.null + duplicate$ empty$ 'skip$ + { + "volume" bibinfo.check + } + if$ + bolden + 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$ * +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + { "" } + { type empty$ + { bbl.chapter } + { type "l" change.case$ + "type" bibinfo.check + } + if$ + chapter tie.or.space.prefix + "chapter" bibinfo.check + * * + } + if$ +} + +FUNCTION {format.booktitle} +{ + booktitle "booktitle" bibinfo.check + emphasize +} +FUNCTION {format.in.ed.booktitle} +{ format.booktitle duplicate$ empty$ 'skip$ + { + editor "editor" format.names.ed duplicate$ empty$ 'pop$ + { + bbl.edby + " " * swap$ * + swap$ + "," * + " " * 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 := + "" + address empty$ t empty$ and + 'skip$ + { + add.blank "(" * + t empty$ + { address "address" bibinfo.check * + } + { t * + address empty$ + 'skip$ + { ", " * address "address" bibinfo.check * } + if$ + } + if$ + ")" * + } + 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.date "year" output.check + date.block + crossref missing$ + { + "" + journal + duplicate$ empty$ + { pop$ pop$ } { + "journal" bibinfo.check + * "journal" output.check + add.blank + } if$ + format.vol.num.pages output + } + { format.article.crossref output.nonnull + } + if$ + eid empty$ + { format.journal.pages } + { format.journal.eid } + if$ + format.issn output + format.note output + journal empty$ volume empty$ or { + format.eprint output + } {} if$ + format.url 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.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.number.series output + format.publisher.address output + } + { + format.book.crossref output.nonnull + } + if$ + format.edition output + format.isbn output + format.note output + format.eprint output + format.url output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + howpublished "howpublished" bibinfo.check output + address "address" bibinfo.check output + format.isbn output + format.note output + format.eprint output + format.url 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.date "year" output.check + date.block + format.btitle "title" output.check + crossref missing$ + { + format.publisher.address output + format.bvolume output + format.chapter.pages "chapter and pages" output.check + format.number.series output + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.edition output + crossref missing$ + { format.isbn output } + 'skip$ + if$ + format.pages "pages" output.check + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.publisher.address output + format.bvolume output + format.number.series output + format.chapter.pages output + format.edition output + format.isbn output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.pages "pages" output.check + format.note output + format.eprint output + format.url output + fin.entry +} +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + publisher empty$ + { format.organization.address output } + { organization "organization" bibinfo.check output + format.publisher.address output + } + if$ + format.bvolume output + format.number.series output + format.pages output + format.isbn output + format.issn output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.note output + format.eprint output + format.url output + fin.entry +} +FUNCTION {conference} { inproceedings } +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + format.date "year" output.check + date.block + format.btitle "title" output.check + organization "organization" bibinfo.check output + address "address" bibinfo.check output + format.edition output + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + format.date.misc + date.block + format.title output + howpublished "howpublished" bibinfo.check output + format.note output + format.eprint output + format.url output + fin.entry +} +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" bibinfo.warn output + address "address" bibinfo.check output + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + format.date "year" output.check + date.block + 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.isbn output + format.issn output + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.btitle + "title" output.check + format.tr.number output.nonnull + institution "institution" bibinfo.warn output + address "address" bibinfo.check output + format.note output + format.eprint output + format.url output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + format.date "year" output.check + date.block + format.title "title" output.check + format.note "note" output.check + format.eprint output + format.url output + 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$ + cite.name.font + " " * bbl.etal emphasize * + "others" 't := + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal emphasize * + "others" 't := + } + { bbl.and space.word * s #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ + t "others" = + 'skip$ + { cite.name.font } + 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$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr #1 > + { + nameptr #2 + #10 + + #1 + = + numnames #2 + #10 + + > 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$ + "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" + write$ newline$ + "\expandafter\ifx\csname bibnamefont\endcsname\relax" + write$ newline$ + " \def\bibnamefont#1{#1}\fi" + write$ newline$ + "\expandafter\ifx\csname bibfnamefont\endcsname\relax" + write$ newline$ + " \def\bibfnamefont#1{#1}\fi" + write$ newline$ + "\expandafter\ifx\csname citenamefont\endcsname\relax" + write$ newline$ + " \def\citenamefont#1{#1}\fi" + write$ newline$ + "\expandafter\ifx\csname url\endcsname\relax" + write$ newline$ + " \def\url#1{\texttt{#1}}\fi" + write$ newline$ + "\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi" + write$ newline$ + "\providecommand{\bibinfo}[2]{#2}" + write$ newline$ + "\providecommand{\eprint}[2][]{\url{#2}}" + 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 `apsrmp.bst'. diff --git a/Master/texmf-dist/bibtex/bst/savetrees/savetrees.bst b/Master/texmf-dist/bibtex/bst/savetrees/savetrees.bst new file mode 100644 index 00000000000..fe015c5b38e --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/savetrees/savetrees.bst @@ -0,0 +1,1420 @@ +%% +%% This is file `savetrees.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% savetrees.dtx (with options: `bibstyle') +%% +%% The original, *original* source files were: +%% +%% merlin.mbs (with options: `,lang,nm-init,ed-au,nmdash,nmlm,x2,m2,isbn,issn,pp,ed,abr,ednx,xedn,jabr,nfss') +%% +%% In addition, Scott Pakin slightly modified this +%% file by hand. +%% ---------------------------------------- +%% *** Extremely abbreviated BibTeX style *** +%% +%% Copyright 1994-1999 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}[1999/05/28 3.89 (PWD)] + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is a numerical citation style, and as such is standard LaTeX. + % It requires no extra package to interface to the main text. + % The form of the \bibitem entries is + % \bibitem{key}... + % Usage of \cite is as follows: + % \cite{key} ==>> [#] + % \cite[chap. 2]{key} ==>> [#, chap. 2] + % where # is a number determined by the ordering in the reference list. + % The order in the reference list is alphabetical by authors. + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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} +{ + new.block +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +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. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.etal} +{ "et~al." } + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "ed." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +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. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + "" 't := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" format.name$ + 't := + nameptr #1 > + { + nameptr #2 + #1 + = + numnames #2 + > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + s nameptr "{ll}" format.name$ duplicate$ "others" = + { 't := } + { pop$ } + if$ + t "others" = + { + " " * bbl.etal * + } + { bbl.and + space.word * t * + } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.names.ed} +{ format.names } + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + ", " * + editor num.names$ #1 > + 'bbl.editors + 'bbl.editor + if$ + * + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + editor num.names$ #1 > + { ", " * bbl.editors * } + { ", " * bbl.editor * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { + new.block + "ISBN " isbn * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { + new.block + "ISSN " issn * } + if$ +} + +FUNCTION {select.language} +{ duplicate$ empty$ + 'pop$ + { language empty$ + 'skip$ + { "{\selectlanguage{" language * "}" * swap$ * "}" * } + if$ + } + if$ +} +FUNCTION {format.note} +{ + note empty$ + { "" } + { "\savetreesbibnote{" + note #1 #1 substring$ + duplicate$ "{" = + 'skip$ + { output.state mid.sentence = + { "l" } + { "u" } + if$ + change.case$ + } + if$ + note #2 global.max$ substring$ * + "}" * * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ + select.language + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ + '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 capitalize + " " * } + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize + select.language +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " " * bbl.edition * } + { edition "t" change.case$ " " * bbl.edition * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { bbl.pages pages n.dashify tie.or.space.connect } + { bbl.page pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.journal.pages} +{ pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { + ":" * + pages n.dashify * + } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { + "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + format.journal.pages +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in format.in.editors * ", " * + booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { word.in journal emphasize * } + if$ + } + { word.in key * " " *} + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ + " " * bbl.etal * + } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { + " " * bbl.etal * + } + { bbl.and space.word * editor #2 "{vv~}{ll}" format.name$ + * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { bbl.volume capitalize + volume tie.or.space.connect + bbl.of space.word * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series emphasize * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { word.in booktitle emphasize * } + if$ + } + { word.in key * " " *} + if$ + } + { word.in format.crossref.editor * " " *} + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.org.or.pub} +{ 't := + "" + address empty$ t empty$ and + 'skip$ + { + t empty$ + { address empty$ + 'skip$ + { address * } + if$ + } + { t * + address empty$ + 'skip$ + { ", " * address * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.publisher.address} +{ publisher empty$ + { "empty publisher in " cite$ * warning$ + "" + } + { publisher } + if$ + format.org.or.pub +} + +FUNCTION {format.organization.address} +{ organization empty$ + { "" } + { organization } + if$ + format.org.or.pub +} + +STRINGS {oldname} + +FUNCTION {name.or.dash} +{ 's := + oldname empty$ + { s 'oldname := s } + { s oldname = + { "---" } + { s 'oldname := s } + if$ + } + if$ +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + name.or.dash + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal + emphasize + "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn output + new.block + format.note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + name.or.dash + } + { format.authors output.nonnull + name.or.dash + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + format.publisher.address output + } + { + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn output + new.block + format.note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + name.or.dash + new.block + format.title "title" output.check + new.block + howpublished output + address output + format.date output + format.isbn output + new.block + format.note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + name.or.dash + } + { format.authors output.nonnull + name.or.dash + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { + format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + format.publisher.address output + } + { + format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + crossref missing$ + { format.isbn output } + 'skip$ + if$ + new.block + format.note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + name.or.dash + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + format.publisher.address output + format.edition output + format.date "year" output.check + format.isbn output + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + format.note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + name.or.dash + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + new.sentence + publisher empty$ + { format.organization.address output } + { organization output + format.publisher.address output + } + if$ + format.date "year" output.check + format.isbn output + format.issn output + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + format.note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + name.or.dash + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { + address new.block.checka + address output + } + 'skip$ + if$ + } + { + organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + format.note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + name.or.dash + new.block + format.btitle "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + format.note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + name.or.dash + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + format.note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + name.or.dash + new.block + format.btitle "title" output.check + new.block + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + format.note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + name.or.dash + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + editor empty$ + { publisher empty$ + 'skip$ + { + new.sentence + format.publisher.address output + } + if$ + } + { publisher empty$ + { + new.sentence + format.organization.address output } + { + new.sentence + organization output + format.publisher.address output + } + if$ + } + if$ + format.date "year" output.check + format.isbn output + format.issn output + new.block + format.note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + name.or.dash + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + format.note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + name.or.dash + new.block + format.title "title" output.check + format.date output + new.block + 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 {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 #2 + #1 + = + numnames #2 + > 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * + write$ newline$ + "\expandafter\ifx\csname selectlanguage\endcsname\relax" + write$ newline$ + " \def\selectlanguage#1{\relax}\fi" + 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 `savetrees.bst'. diff --git a/Master/texmf-dist/bibtex/bst/smflatex/smfalpha.bst b/Master/texmf-dist/bibtex/bst/smflatex/smfalpha.bst new file mode 100644 index 00000000000..390575b3b56 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/smflatex/smfalpha.bst @@ -0,0 +1,1279 @@ +%% +%% This is file `smfalpha.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% smfbib.dtx (with options: `alpha') +%% +%%% ==================================================================== %%% +%%% FORMATS BibTeX SMF +%%% Styles BibTeX pour la SMF +%%% (c) A. Chambert-Loir et SMF, 1996-98 +%%% ==================================================================== %%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +%% @BibTeX-style-file{"smfplain.bst" +%% date="1998/06/15", +%% version="v0.1"} +%% Types of entries currently allowed in a BibTeX file: +%% ARTICLE -- An article from a journal or magazine. +%% BOOK -- A book with an explicit publisher. +%% BOOKLET -- A work that is printed and bound, +%% but without a named publisher or sponsoring institution. +%% CONFERENCE -- The same as INPROCEEDINGS, +%% included for Scribe compatibility. +%% INBOOK -- A part of a book, +%% which may be a chapter (or section or whatever) and/or a range of pages. +%% INCOLLECTION -- A part of a book having its own title. +%% INPROCEEDINGS -- An article in a conference proceedings. +%% MANUAL -- Technical documentation. +%% MASTERSTHESIS -- A Master's thesis. +%% MISC -- Use this type when nothing else fits. +%% PHDTHESIS -- A PhD thesis. +%% PROCEEDINGS -- The proceedings of a conference. +%% TECHREPORT -- A report published by a school or other institution, +%% usually numbered within a series. +%% UNPUBLISHED -- A document having an author and title, but not formally +%% published. +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label extra.same.label sort.label } + +INTEGERS { output.state before.all mid.sentence after.name } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'after.name := + #2 'mid.sentence := +} + + +STRINGS { s t } +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +FUNCTION {guillemetize} +{ duplicate$ empty$ + { pop$ "" } + { "{\og " swap$ * "\fg}" * } + if$ +} + +FUNCTION {scapify} +{ duplicate$ empty$ + { pop$ "" } + { "{\scshape " swap$ * "}" * } + if$ +} + + +FUNCTION {n.dashify} +{ '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 {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {add.space.if.necessary} +{ duplicate$ "" = + 'skip$ + { " " * } + if$ +} + + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + + +FUNCTION {output.nonnull} +{ 's := + output.state after.name = + { extra.same.label "\bysame" = + { ", " * write$ } + { " -- " * write$ } + if$ + mid.sentence 'output.state := } + { output.state mid.sentence = + { ", " * write$ } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + after.name 'output.state := } + if$ } + if$ + s +} + + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + + +FUNCTION {missing.warning} +{ "missing " swap$ * " in " * cite$ * warning$ } + + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ t missing.warning } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + + +FUNCTION {format.language} +{ language empty$ + { "" } + { " (" language * ")" * } + if$ +} +INTEGERS { nameptr namesleft numnames } + + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > +{ namesleft #1 > + { ", " * t * } + { numnames #2 > +{ "" * } +'skip$ + if$ + t "others" = +{ " {\normalfont et~al.}" * } +{ " {\normalfont \smfandname} " * t * } + if$ + } + if$ +} +'t + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { extra.same.label "\bysame" = + { "\bysame " } + { author format.names scapify } + if$ + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { extra.same.label "\bysame" = + { "\bysame " } + { editor format.names scapify } + if$ + editor num.names$ #1 > + { " (\smfedsname)" * } + { " (\smfedname)" * } + if$ + "\nomorebysame" 'extra.same.label := + } + if$ +} + +FUNCTION {format.nonauthor.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > +{ ", \smfedsname" * } +{ ", \smfedname" * } + if$ + } + if$ +} + +FUNCTION {format.booktitle} +{ title empty$ + { "" } + { title "t" change.case$ emphasize } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ guillemetize } + if$ +} + +FUNCTION {format.journal.vol.year} +{ journal empty$ + { "journal name" missing.warning ""} + { journal emphasize } + if$ + volume empty$ + 'skip$ + { " \textbf{" * volume * "}" * } + if$ + year empty$ + { "year" missing.warning } + { " (" * year * ")" * } + if$ +} + + +FUNCTION {format.number} +{ number empty$ + { "" } + { "no.~" number * } + if$ +} + + +FUNCTION {format.date} +{ year empty$ + { month empty$ +{ "" } +{ "there's a month but no year in " cite$ * warning$ + month +} + if$ + } + { month empty$ +'year +{ month " " * year * } + if$ + } + if$ +} + + +FUNCTION {format.bookvolume.series.number} +{ volume empty$ + { "" % Push the empty string as a placeholder in case everything else + % is empty too. + series empty$ + 'skip$ + { pop$ series } % if series is not empty put in stack + if$ + number empty$ + 'skip$ + { duplicate$ empty$ % if no preceding material, + 'skip$ % do nothing, otherwise + { ", " * } % add a comma and space to separate. + if$ + "no." number tie.or.space.connect * % add the number information + } + if$ + } +%% If the volume is NOT EMPTY: + { "vol." volume tie.or.space.connect % vol. XX + number empty$ + { series empty$ + 'skip$ + { series ", " * swap$ *} % Series Name, vol. XX + if$ + } + { series empty$ + { "can't use both volume and number if series info is missing" + warning$ + "in BibTeX entry type `" type$ * "'" * top$ + } + { ", " * series * ", no." * number tie.or.space.connect } + if$ + } + if$ + } + if$ + +} % end of format.bookvolume.series.number + +%% format.inproc.title.where.editors is used by inproceedings entry types + +FUNCTION {format.inproc.title.address.editors} +{ booktitle empty$ + { "" } +%% Emphasizing the title. We want initial caps, roman. + { booktitle emphasize } + if$ +%% We add parentheses around the address (place where conference +%% was held). + address empty$ + 'skip$ + { add.space.if.necessary "(" * address * ")" * } + if$ +%% Likewise we add parentheses around the editors' names. + editor empty$ + 'skip$ + { add.space.if.necessary "(" * format.nonauthor.editors * ")" * } + if$ +} + +%% format.incoll.title.editors is similar to format.inproc... but +%% omits the address. For collections that are not proceedings volumes. + +FUNCTION {format.incoll.title.editors} +{ booktitle empty$ + { "" } +%% No case changing or emphasizing for the title. We want initial +%% caps, roman. + { booktitle } + if$ +%% We add parentheses around the editors' names. + editor empty$ + 'skip$ + { add.space.if.necessary "(" * format.nonauthor.editors * ")" * } + if$ +} + + +FUNCTION {format.number.series} +{ series empty$ + { number empty$ + { "" } + { "there's a number but no series in " cite$ * warning$ } + if$ + } + { series + number empty$ + 'skip$ + { "\ \textbf{" * number * "}" * } + if$ + } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = +{ edition "l" change.case$ " \smfedname" * } +{ edition "t" change.case$ " \smfedname" * } + if$ + } + 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 empty$ + { "" } + { "p.~" pages n.dashify * } + if$ +} + +FUNCTION {format.book.pages} +{ pages empty$ + { "" } + { pages multi.page.check +{ "p.~" pages n.dashify * } +{ "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ +{ "ch.~" } +{ type "l" change.case$ " " * } + if$ + chapter * + pages empty$ +'skip$ +{ ", " * format.book.pages * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ +{ "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" +} +{ "in " journal * } + if$ + } + { "in " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < +'skip$ +{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " \smfandname\ " * editor #2 "{vv~}{ll}" format.name$ * } + if$ +} + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "vol." volume tie.or.space.connect + " de " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ +{ series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series * } + if$ +} +{ key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ key empty$ + { booktitle empty$ + { editor empty$ + editor field.or.null author field.or.null = + or + { "need editor, key, or booktitle for " cite$ * "to crossref " * + crossref * warning$ "" } + { "in " format.crossref.editor * } + if$ } + { "in \emph{" booktitle * "}" * } + if$ } + { "in " key * } + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.journal.vol.year output + format.number output + format.pages "pages" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.language * + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ +{ "author and editor" editor either.or.check } +'skip$ + if$ + } + if$ + format.booktitle "title" output.check + format.edition output + crossref missing$ + { format.bookvolume.series.number output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.language * + note output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.booktitle "title" output.check + howpublished output + address output + format.date output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ +{ "author and editor" editor either.or.check } +'skip$ + if$ + } + if$ + format.title "title" output.check + crossref missing$ + { format.bookvolume.series.number output + format.chapter.pages "chapter and pages" output.check + format.number.series output + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.language * + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.incoll.title.editors "booktitle" output.check + format.bookvolume.series.number output + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + note output + format.book.pages output + format.language * + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.inproc.title.address.editors "booktitle" output.check + format.bookvolume.series.number output + organization output + publisher output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + note output + format.book.pages output + format.language * + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ +'skip$ +{ organization output.nonnull + address output +} + if$ + } + { format.authors output.nonnull } + if$ + format.booktitle "title" output.check + author empty$ + { organization empty$ +{ address output } +'skip$ + if$ + } + { organization output + address output + } + if$ + format.edition output + format.date output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.booktitle "title" output.check + "\smfmastersthesisname" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + "\smfphdthesisname" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + note output + format.book.pages output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + format.booktitle "title" output.check + format.bookvolume.series.number output + address empty$ + { editor empty$ + 'skip$ +{ organization output } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + editor empty$ +'skip$ +{ organization output } + if$ + publisher output + format.date "year" output.check + } + if$ + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + note output + fin.entry +} + + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + howpublished output + format.date output + note output + format.book.pages output + fin.entry + empty.misc.check +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + note "note" output.check + format.date output + 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$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > +{ " " * } +'skip$ + if$ +%% s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + s nameptr "{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and +{ "et~al" * } +{ 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 {author.organization.sort} +{ author empty$ + { organization empty$ +{ key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ +} +{ "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ +{ key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ +} +{ "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ + calc.label + sort.label + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = +'editor.organization.sort +{ type$ "manual" = + 'author.organization.sort + 'author.sort + if$ +} + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT +STRINGS { longest.label last.sort.label next.extra this.author prev.author } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := + "abcxyz" 'prev.author := + "" 'this.author := +} +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ + + author empty$ + { editor empty$ + { "" } + 'editor + if$ + } + 'author + if$ + 'this.author := + this.author prev.author = + { "\bysame" 'extra.same.label := } + { "" 'extra.same.label := + this.author "" = + { "abcxyz" } + 'this.author + if$ + 'prev.author := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + + + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} +FUNCTION {begin.bib} +{ + et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\providecommand{\bysame}{\leavevmode ---\ }" write$ newline$ + "\providecommand{\og}{``}" write$ newline$ + "\providecommand{\fg}{''}" write$ newline$ + "\providecommand{\smfandname}{et}" write$ newline$ + "\providecommand{\smfedsname}{\'eds.}" write$ newline$ + "\providecommand{\smfedname}{\'ed.}" write$ newline$ + "\providecommand{\smfmastersthesisname}{M\'emoire}" write$ newline$ + "\providecommand{\smfphdthesisname}{Th\`ese}" write$ newline$ + "\begin{thebibliography}{" longest.label * "}" * 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 file `smfalpha.bst'. diff --git a/Master/texmf-dist/bibtex/bst/smflatex/smfplain.bst b/Master/texmf-dist/bibtex/bst/smflatex/smfplain.bst new file mode 100644 index 00000000000..06dad0ea62e --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/smflatex/smfplain.bst @@ -0,0 +1,1118 @@ +%% +%% This is file `smfplain.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% smfbib.dtx (with options: `plain') +%% +%%% ==================================================================== %%% +%%% FORMATS BibTeX SMF +%%% Styles BibTeX pour la SMF +%%% (c) A. Chambert-Loir et SMF, 1996-98 +%%% ==================================================================== %%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +%% @BibTeX-style-file{"smfplain.bst" +%% date="1998/06/15", +%% version="v0.1"} +%% Types of entries currently allowed in a BibTeX file: +%% ARTICLE -- An article from a journal or magazine. +%% BOOK -- A book with an explicit publisher. +%% BOOKLET -- A work that is printed and bound, +%% but without a named publisher or sponsoring institution. +%% CONFERENCE -- The same as INPROCEEDINGS, +%% included for Scribe compatibility. +%% INBOOK -- A part of a book, +%% which may be a chapter (or section or whatever) and/or a range of pages. +%% INCOLLECTION -- A part of a book having its own title. +%% INPROCEEDINGS -- An article in a conference proceedings. +%% MANUAL -- Technical documentation. +%% MASTERSTHESIS -- A Master's thesis. +%% MISC -- Use this type when nothing else fits. +%% PHDTHESIS -- A PhD thesis. +%% PROCEEDINGS -- The proceedings of a conference. +%% TECHREPORT -- A report published by a school or other institution, +%% usually numbered within a series. +%% UNPUBLISHED -- A document having an author and title, but not formally +%% published. +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + language + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label } + +INTEGERS { output.state before.all mid.sentence after.name } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'after.name := + #2 'mid.sentence := +} + + +STRINGS { s t } +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +FUNCTION {guillemetize} +{ duplicate$ empty$ + { pop$ "" } + { "{\og " swap$ * "\fg}" * } + if$ +} + +FUNCTION {scapify} +{ duplicate$ empty$ + { pop$ "" } + { "{\scshape " swap$ * "}" * } + if$ +} + + +FUNCTION {n.dashify} +{ '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 {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {add.space.if.necessary} +{ duplicate$ "" = + 'skip$ + { " " * } + if$ +} + + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + + +FUNCTION {output.nonnull} +{ 's := + output.state after.name = + { extra.label "\bysame" = + { ", " * write$ } + { " -- " * write$ } + if$ + mid.sentence 'output.state := } + { output.state mid.sentence = + { ", " * write$ } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + after.name 'output.state := } + if$ } + if$ + s +} + + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + + +FUNCTION {missing.warning} +{ "missing " swap$ * " in " * cite$ * warning$ } + + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ t missing.warning } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + + +FUNCTION {format.language} +{ language empty$ + { "" } + { " (" language * ")" * } + if$ +} +INTEGERS { nameptr namesleft numnames } + + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > +{ namesleft #1 > + { ", " * t * } + { numnames #2 > +{ "" * } +'skip$ + if$ + t "others" = +{ " {\normalfont et~al.}" * } +{ " {\normalfont \smfandname} " * t * } + if$ + } + if$ +} +'t + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { extra.label "\bysame" = + { "\bysame " } + { author format.names scapify } + if$ + } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { extra.label "\bysame" = + { "\bysame " } + { editor format.names scapify } + if$ + editor num.names$ #1 > + { " (\smfedsname)" * } + { " (\smfedname)" * } + if$ + "\nomorebysame" 'extra.label := + } + if$ +} + +FUNCTION {format.nonauthor.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > +{ ", \smfedsname" * } +{ ", \smfedname" * } + if$ + } + if$ +} + +FUNCTION {format.booktitle} +{ title empty$ + { "" } + { title "t" change.case$ emphasize } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ guillemetize } + if$ +} + +FUNCTION {format.journal.vol.year} +{ journal empty$ + { "journal name" missing.warning ""} + { journal emphasize } + if$ + volume empty$ + 'skip$ + { " \textbf{" * volume * "}" * } + if$ + year empty$ + { "year" missing.warning } + { " (" * year * ")" * } + if$ +} + + +FUNCTION {format.number} +{ number empty$ + { "" } + { "no.~" number * } + if$ +} + + +FUNCTION {format.date} +{ year empty$ + { month empty$ +{ "" } +{ "there's a month but no year in " cite$ * warning$ + month +} + if$ + } + { month empty$ +'year +{ month " " * year * } + if$ + } + if$ +} + + +FUNCTION {format.bookvolume.series.number} +{ volume empty$ + { "" % Push the empty string as a placeholder in case everything else + % is empty too. + series empty$ + 'skip$ + { pop$ series } % if series is not empty put in stack + if$ + number empty$ + 'skip$ + { duplicate$ empty$ % if no preceding material, + 'skip$ % do nothing, otherwise + { ", " * } % add a comma and space to separate. + if$ + "no." number tie.or.space.connect * % add the number information + } + if$ + } +%% If the volume is NOT EMPTY: + { "vol." volume tie.or.space.connect % vol. XX + number empty$ + { series empty$ + 'skip$ + { series ", " * swap$ *} % Series Name, vol. XX + if$ + } + { series empty$ + { "can't use both volume and number if series info is missing" + warning$ + "in BibTeX entry type `" type$ * "'" * top$ + } + { ", " * series * ", no." * number tie.or.space.connect } + if$ + } + if$ + } + if$ + +} % end of format.bookvolume.series.number + +%% format.inproc.title.where.editors is used by inproceedings entry types + +FUNCTION {format.inproc.title.address.editors} +{ booktitle empty$ + { "" } +%% Emphasizing the title. We want initial caps, roman. + { booktitle emphasize } + if$ +%% We add parentheses around the address (place where conference +%% was held). + address empty$ + 'skip$ + { add.space.if.necessary "(" * address * ")" * } + if$ +%% Likewise we add parentheses around the editors' names. + editor empty$ + 'skip$ + { add.space.if.necessary "(" * format.nonauthor.editors * ")" * } + if$ +} + +%% format.incoll.title.editors is similar to format.inproc... but +%% omits the address. For collections that are not proceedings volumes. + +FUNCTION {format.incoll.title.editors} +{ booktitle empty$ + { "" } +%% No case changing or emphasizing for the title. We want initial +%% caps, roman. + { booktitle } + if$ +%% We add parentheses around the editors' names. + editor empty$ + 'skip$ + { add.space.if.necessary "(" * format.nonauthor.editors * ")" * } + if$ +} + + +FUNCTION {format.number.series} +{ series empty$ + { number empty$ + { "" } + { "there's a number but no series in " cite$ * warning$ } + if$ + } + { series + number empty$ + 'skip$ + { "\ \textbf{" * number * "}" * } + if$ + } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = +{ edition "l" change.case$ " \smfedname" * } +{ edition "t" change.case$ " \smfedname" * } + if$ + } + 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 empty$ + { "" } + { "p.~" pages n.dashify * } + if$ +} + +FUNCTION {format.book.pages} +{ pages empty$ + { "" } + { pages multi.page.check +{ "p.~" pages n.dashify * } +{ "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ +{ "ch.~" } +{ type "l" change.case$ " " * } + if$ + chapter * + pages empty$ +'skip$ +{ ", " * format.book.pages * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ +{ "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" +} +{ "in " journal * } + if$ + } + { "in " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < +'skip$ +{ editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " \smfandname\ " * editor #2 "{vv~}{ll}" format.name$ * } + if$ +} + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "in " + } + { "vol." volume tie.or.space.connect + " de " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ +{ series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series * } + if$ +} +{ key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ key empty$ + { booktitle empty$ + { editor empty$ + editor field.or.null author field.or.null = + or + { "need editor, key, or booktitle for " cite$ * "to crossref " * + crossref * warning$ "" } + { "in " format.crossref.editor * } + if$ } + { "in \emph{" booktitle * "}" * } + if$ } + { "in " key * } + if$ + " \cite{" * crossref * "}" * +} + + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.journal.vol.year output + format.number output + format.pages "pages" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.language * + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ +{ "author and editor" editor either.or.check } +'skip$ + if$ + } + if$ + format.booktitle "title" output.check + format.edition output + crossref missing$ + { format.bookvolume.series.number output + publisher "publisher" output.check + address output + } + { format.book.crossref output.nonnull + } + if$ + format.date "year" output.check + format.language * + note output + fin.entry +} +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.booktitle "title" output.check + howpublished output + address output + format.date output + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ +{ "author and editor" editor either.or.check } +'skip$ + if$ + } + if$ + format.title "title" output.check + crossref missing$ + { format.bookvolume.series.number output + format.chapter.pages "chapter and pages" output.check + format.number.series output + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.language * + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.incoll.title.editors "booktitle" output.check + format.bookvolume.series.number output + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + note output + format.book.pages output + format.language * + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + crossref missing$ + { format.inproc.title.address.editors "booktitle" output.check + format.bookvolume.series.number output + organization output + publisher output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + } + if$ + note output + format.book.pages output + format.language * + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ +'skip$ +{ organization output.nonnull + address output +} + if$ + } + { format.authors output.nonnull } + if$ + format.booktitle "title" output.check + author empty$ + { organization empty$ +{ address output } +'skip$ + if$ + } + { organization output + address output + } + if$ + format.edition output + format.date output + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.booktitle "title" output.check + "\smfmastersthesisname" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + "\smfphdthesisname" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + note output + format.book.pages output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + format.booktitle "title" output.check + format.bookvolume.series.number output + address empty$ + { editor empty$ + 'skip$ +{ organization output } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + editor empty$ +'skip$ +{ organization output } + if$ + publisher output + format.date "year" output.check + } + if$ + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + note output + fin.entry +} + + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + howpublished output + format.date output + note output + format.book.pages output + fin.entry + empty.misc.check +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + note "note" output.check + format.date output + 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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > +{ " " * } +'skip$ + if$ +%% s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + s nameptr "{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and +{ "et~al" * } +{ 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 {author.organization.sort} +{ author empty$ + { organization empty$ +{ key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ +} +{ "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ +{ key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ +} +{ "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = +'editor.organization.sort +{ type$ "manual" = + 'author.organization.sort + 'author.sort + if$ +} + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT +STRINGS { longest.label prev.author this.author } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := + "abcxyz" 'prev.author := + "" 'this.author := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + author empty$ + { editor empty$ + { "" } + 'editor + if$ + } + 'author + if$ + 'this.author := + this.author prev.author = + { "\bysame" 'extra.label := } + { "" 'extra.label := + this.author "" = + { "abcxyz" } + 'this.author + if$ + 'prev.author := + } + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} +FUNCTION {begin.bib} +{ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\providecommand{\bysame}{\leavevmode ---\ }" write$ newline$ + "\providecommand{\og}{``}" write$ newline$ + "\providecommand{\fg}{''}" write$ newline$ + "\providecommand{\smfandname}{et}" write$ newline$ + "\providecommand{\smfedsname}{\'eds.}" write$ newline$ + "\providecommand{\smfedname}{\'ed.}" write$ newline$ + "\providecommand{\smfmastersthesisname}{M\'emoire}" write$ newline$ + "\providecommand{\smfphdthesisname}{Th\`ese}" write$ newline$ + "\begin{thebibliography}{" longest.label * "}" * 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 file `smfplain.bst'. diff --git a/Master/texmf-dist/bibtex/bst/spie/spiebib.bst b/Master/texmf-dist/bibtex/bst/spie/spiebib.bst new file mode 100644 index 00000000000..82a753f597a --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/spie/spiebib.bst @@ -0,0 +1,1050 @@ + +% spiebib.bst - Version 2.6 +% for Proc. SPIE, remove comma between journal name and vol. +% BibTeX bibliography style file for MaxEnt95 +% Essentially same as ieeetr.sty, +% but with bold journal volume number, +% no parentheses around editors, +% and publisher/address fields reversed. +% July 3, 1995 (kmh) Ken Hanson +% In "inproceedings" allow 'journal' and avoid complaint +% if 'booktitle' missing. +% Dec. 10, 1997 (kmh) Ken Hanson +% In "inproceedings", 'series' produces the same output as previous 'journal' +% May 14, 2001 (hto) Hwa-Tung Ong +% Put 'volume' in bold after 'series' in "collection", "incollection", +% and "inproceedings". +% Aug. 29, 2001 (kmh) Ken Hanson +% +% IEEE Transactions bibliography style (29-Jan-88 version) +% numeric labels, order-of-reference, IEEE abbreviations, +% quotes around article titles, commas separate all fields +% except after book titles and before "notes". Otherwise, +% much like the "plain" family, from which this is adapted. +% +% History +% 9/30/85 (HWT) Original version, by Howard Trickey. +% 1/29/88 (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashnik; +% THIS `ieeetr' VERSION DOES NOT WORK WITH BIBTEX 0.98i. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.quote after.sentence + after.quoted.block after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.quote := + #3 'after.sentence := + #4 'after.quoted.block := + #5 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.quote = + { " " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.quoted.block = + { write$ + newline$ + "\newblock " write$ + } + { add.period$ " " * write$ } + if$ + } + if$ + } + 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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {blank.sep} +{ after.quote 'output.state := +} + +FUNCTION {fin.entry} +{ output.state after.quoted.block = + 'skip$ + 'add.period$ + if$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { output.state after.quote = + { after.quoted.block 'output.state := } + { after.block 'output.state := } + if$ + } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {bold} %% kmh - new function like emphasize +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " {\em et~al.}" * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", eds." * } + { ", ed." * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { "``" title "t" change.case$ * ",''" * } + if$ +} + +FUNCTION {format.title.p} +{ title empty$ + { "" } + { "``" title "t" change.case$ * ".''" * } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "vol.~" volume * + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "no.~" } + { "No.~" } + if$ + number * + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition "l" change.case$ "~ed." * } + 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 empty$ + { "" } + { pages multi.page.check + { "pp.~" pages n.dashify * } + { "p.~" pages * } + if$ + } + if$ +} + +FUNCTION {format.number} +{ number empty$ + { "" } + { "(" number * ")" *} %% put number in paren +%% { "no.~" number * } %% ieeetr + if$ +} + +FUNCTION {format.journal.volume.number} +{ journal empty$ + { "empty " t * " in " * cite$ * warning$ ""} + { journal emphasize } + if$ + volume empty$ %% kmh - warning if no volume + { "empty volume in " cite$ * warning$ " " *} + { " " * volume bold *} %% kmh - make volume bold +%% { "vol.~" volume * } + if$ + month empty$ + { format.number *} + 'skip$ + if$ +} + +FUNCTION {format.series.volume.number} %% hto01 - similar to format.journal.volume.number +{ series empty$ +%% { "empty " t * " in " * cite$ * warning$ ""} + { "" } %% hto01 - no warning of empty title + { series emphasize } + if$ + volume empty$ + { "" *} %% kmh - no warning if no volume + { " " * volume bold *} %% kmh - make volume bold +%% { "vol.~" volume * } + if$ + month empty$ + { format.number *} + 'skip$ + if$ +} + +% following not used +FUNCTION {format.volume} +{ volume empty$ + { "" } + { volume bold } %% kmh - make volume bold +%% { "vol.~" volume * } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "ch.~" chapter * } + { type "l" change.case$ chapter tie.or.space.connect } + if$ + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { " in " * booktitle emphasize * ", " * + format.editors %% editors without paren. +% editor empty$ %% ieeetr adds paren. +% 'skip$ +% { " (" * format.editors * ")" * } +% if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + output.state after.block = + { type "t" change.case$ } + { type "l" change.case$ } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Tech. Rep." } + 'type + if$ + number empty$ + { "l" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.addr.pub} %% kmh - not used now +{ publisher empty$ + { "" } + { address empty$ + { "" } + { address ": " * } + if$ + publisher * + } + if$ +} + +FUNCTION {format.paddress} +{ address empty$ + { "" } + { "(" address * ")" * } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { " in {\em " journal * "\/}" * } + if$ + } + { " in " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " {\em et~al.}" * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " {\em et~al.}" * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Vol.~" volume * + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { " in {\em " booktitle * "\/}" * } +%% kmh - add space before 'in' + if$ + } + { " in " key * } %% kmh - add space before 'in' + if$ + } + { " in " format.crossref.editor * } +%% kmh - add space before 'in' + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + blank.sep + crossref missing$ + { format.journal.volume.number output + format.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { 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 +%% new.block %% ieeetr, kmh - remove period + format.number.series output +%% format.addr.pub "publisher" output.check %% ieeetr + publisher "publisher" output.check %% kmh + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + title empty$ + { "empty title in " cite$ * warning$ + howpublished new.sentence.checka + } + { howpublished empty$ not + address empty$ month empty$ year empty$ and and + or + { format.title.p output.nonnull } + { format.title output.nonnull } + if$ + blank.sep + } + if$ + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { 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 + new.block + format.number.series output +%% format.addr.pub "publisher" output.check %% ieeetr + publisher "publisher" output.check %% kmh + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + blank.sep + crossref missing$ + { format.in.ed.booktitle "booktitle or editor" output.check +%% format.bvolume output +%% format.number.series output + format.series.volume.number output %% kmh01 + format.chapter.pages output +%% format.addr.pub "publisher" output.check %% ieeetr + publisher "publisher" output.check %% kmh + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + blank.sep + crossref missing$ + { format.in.ed.booktitle output %remove check for booktitle +%% { format.in.ed.booktitle "booktitle" output.check %% unsrt + journal empty$ +%% {format.bvolume output %% this is standard unsrt +%% format.number.series output + {format.series.volume.number output %% hto01 +%% moved below format.paddress output + format.pages output + } + {format.journal.volume.number output + +%% add jour., vol.,and number + format.pages output + } + if$ + organization output + publisher output + format.paddress output %% publ. address moved to here + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + blank.sep + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title empty$ + { howpublished new.sentence.checka } + { howpublished empty$ not + month empty$ year empty$ and + or + { format.title.p output.nonnull } + { format.title output.nonnull } + if$ + blank.sep + } + if$ + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + format.btitle "title" output.check +%% format.bvolume output +%% format.number.series output + format.series.volume.number output %%kmh01 + format.paddress output + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + blank.sep + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title.p "title" output.check + blank.sep + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications ACM"} + +MACRO {ibmjrd} {"IBM J. Research and Development"} + +MACRO {ibmsj} {"IBM Systems~J."} + +MACRO {ieeese} {"IEEE Trans. Software Engineering"} + +MACRO {ieeetc} {"IEEE Trans. Computers"} + +MACRO {ieeetcad} + {"IEEE Trans. Computer-Aided Design"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM J. Computing"} + +MACRO {tocs} {"ACM Trans. Computer Systems"} + +MACRO {tods} {"ACM Trans. Database Systems"} + +MACRO {tog} {"ACM Trans. Graphics"} + +MACRO {toms} {"ACM Trans. Mathematical Software"} + +MACRO {toois} {"ACM Trans. Office Information Systems"} + +MACRO {toplas} {"ACM Trans. Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + + diff --git a/Master/texmf-dist/bibtex/bst/swebib/sweabbrv.bst b/Master/texmf-dist/bibtex/bst/swebib/sweabbrv.bst new file mode 100644 index 00000000000..30c1242b320 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/swebib/sweabbrv.bst @@ -0,0 +1,1096 @@ +%% sweabbrv.bst (Swedish version of BibTeX standard bibliography style `abbrv') +%% Copyright 2000 Lars Engebretsen +% +% This program may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.2 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.2 or later is part of all distributions of LaTeX +% version 1999/12/01 or later. +% +% This program consists of the files sweabbrv.bst, swealpha.bst, sweplain.bst + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " m.fl." * } + { " och " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", redaktrer" * } + { ", redaktr" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "band" volume tie.or.space.connect + series empty$ + 'skip$ + { " av " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "nummer" } + { "Nummer" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " i " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " utgva" * } + { edition "t" change.case$ " utgva" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "ss" pages n.dashify tie.or.space.connect } + { "s" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "kapitel" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "I " booktitle emphasize * } + { "I " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Teknisk rapport" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "I {\em " journal * "\/}" * } + if$ + } + { "I " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " m.fl." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " m.fl." * } + { " och " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "I " + } + { "Band" volume tie.or.space.connect + " av " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "I {\em " booktitle * "\/}" * } + if$ + } + { "I " key * } + if$ + } + { "I " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Examensarbete" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "Doktorsavhandling" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"jan."} + +MACRO {feb} {"febr."} + +MACRO {mar} {"mars"} + +MACRO {apr} {"april"} + +MACRO {may} {"maj"} + +MACRO {jun} {"juni"} + +MACRO {jul} {"juli"} + +MACRO {aug} {"aug."} + +MACRO {sep} {"sept."} + +MACRO {oct} {"okt."} + +MACRO {nov} {"nov."} + +MACRO {dec} {"dec."} + +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. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/swebib/swealpha.bst b/Master/texmf-dist/bibtex/bst/swebib/swealpha.bst new file mode 100644 index 00000000000..d5191bfca31 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/swebib/swealpha.bst @@ -0,0 +1,1256 @@ +%% swealpha.bst (Swedish version of BibTeX standard bibliography style `alpha') +%% Copyright 2000 Lars Engebretsen +% +% This program may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.2 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.2 or later is part of all distributions of LaTeX +% version 1999/12/01 or later. +% +% This program consists of the files sweabbrv.bst, swealpha.bst, sweplain.bst + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label } + +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 {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " m.fl." * } + { " och " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", redaktrer" * } + { ", redaktr" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "band" volume tie.or.space.connect + series empty$ + 'skip$ + { " av " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "nummer" } + { "Nummer" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " i " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " utgva" * } + { edition "t" change.case$ " utgva" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "ss" pages n.dashify tie.or.space.connect } + { "s" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "kapitel" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "I " booktitle emphasize * } + { "I " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Teknisk rapport" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "I {\em " journal * "\/}" * } + if$ + } + { "I " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " m.fl." * } + { " och " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "I " + } + { "Band" volume tie.or.space.connect + " av " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "I {\em " booktitle * "\/}" * } + if$ + } + { "I " key * } + if$ + } + { "I " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Examensarbete" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "Doktorsavhandling" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"januari"} + +MACRO {feb} {"februari"} + +MACRO {mar} {"mars"} + +MACRO {apr} {"april"} + +MACRO {may} {"maj"} + +MACRO {jun} {"juni"} + +MACRO {jul} {"juli"} + +MACRO {aug} {"augusti"} + +MACRO {sep} {"september"} + +MACRO {oct} {"oktober"} + +MACRO {nov} {"november"} + +MACRO {dec} {"december"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label + sort.label + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {begin.bib} +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/swebib/sweplain.bst b/Master/texmf-dist/bibtex/bst/swebib/sweplain.bst new file mode 100644 index 00000000000..e9ca6644438 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/swebib/sweplain.bst @@ -0,0 +1,1096 @@ +%% sweplain.bst (Swedish version of BibTeX standard bibliography style `plain') +%% Copyright 2000 Lars Engebretsen +% +% This program may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.2 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.2 or later is part of all distributions of LaTeX +% version 1999/12/01 or later. +% +% This program consists of the files sweabbrv.bst, swealpha.bst, sweplain.bst + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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 {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { t "others" = + { " m.fl." * } + { " och " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", redaktrer" * } + { ", redaktr" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "band" volume tie.or.space.connect + series empty$ + 'skip$ + { " av " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "nummer" } + { "Nummer" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " i " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " utgva" * } + { edition "t" change.case$ " utgva" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "ss" pages n.dashify tie.or.space.connect } + { "s" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "kapitel" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "I " booktitle emphasize * } + { "I " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Teknisk rapport" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "I {\em " journal * "\/}" * } + if$ + } + { "I " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " m.fl." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " m.fl." * } + { " och " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "I " + } + { "Band" volume tie.or.space.connect + " av " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "I {\em " booktitle * "\/}" * } + if$ + } + { "I " key * } + if$ + } + { "I " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Examensarbete" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "Doktorsavhandling" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"januari"} + +MACRO {feb} {"februari"} + +MACRO {mar} {"mars"} + +MACRO {apr} {"april"} + +MACRO {may} {"maj"} + +MACRO {jun} {"juni"} + +MACRO {jul} {"juli"} + +MACRO {aug} {"augusti"} + +MACRO {sep} {"september"} + +MACRO {oct} {"oktober"} + +MACRO {nov} {"november"} + +MACRO {dec} {"december"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/texsis/texsis.bst b/Master/texmf-dist/bibtex/bst/texsis/texsis.bst new file mode 100644 index 00000000000..ed9e3eb658b --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/texsis/texsis.bst @@ -0,0 +1,1195 @@ +%% +%% This is file `texsis.bst', generated +%% on <1995/9/17> with the docstrip utility (2.2h). +%% +%% modified by Bernd Dammann on <1995/9/17> +%% +%% The original source files were: +%% +%% texsis.mbs (with options: `,seq-no,nm-init,yr-par,tit-qq,atit-u,vol-bf,vnum-sp,volp-com,jpg-1,edpar,edby-par,blk-com,in-col,fin-bare,pp,ed,abr,ord,jabr,etal-it,em-it') +%% ---------------------------------------- +%% *** *** +%% + %------------------------------------------------------------------- + % The original source file contains the following version information: + % \ProvidesFile{merlin.mbs}[1995/09/04 3.3 (PWD)] + % + % NOTICE: + % This file may be used for non-profit purposes. + % It may not be distributed in exchange for money, + % other than distribution costs. + % + % The author provides it `as is' and does not guarantee it in any way. + % + % Copyright (C) 1994, 1995 Patrick W. Daly + %------------------------------------------------------------------- + % For use with BibTeX version 0.99a or later + %------------------------------------------------------------------- + % This bibliography style file is intended for texts in ENGLISH + % This is a numerical citation style, and as such is standard LaTeX. + % It requires no extra package to interface to the main text. + % The form of the \bibitem entries is + % \bibitem{key}... + % Usage of \cite is as follows: + % \cite{key} ==>> [#] + % \cite[chap. 2]{key} ==>> [#, chap. 2] + % where # is a number determined by the ordering in the reference list. + % This is the order in which the works were originally cited in the text. + %--------------------------------------------------------------------- + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label } + +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} +{ duplicate$ empty$ + 'pop$ + 'write$ + if$ + newline$ + "\endreference" 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.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\it " swap$ * "\/}" * } + if$ +} + +FUNCTION {bolden} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +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. + % The language selected here is ENGLISH +FUNCTION {bbl.and} +{ "and"} + +FUNCTION {bbl.editors} +{ "eds." } + +FUNCTION {bbl.editor} +{ "ed." } + +FUNCTION {bbl.edby} +{ "edited by" } + +FUNCTION {bbl.edition} +{ "edn." } + +FUNCTION {bbl.volume} +{ "vol." } + +FUNCTION {bbl.of} +{ "of" } + +FUNCTION {bbl.number} +{ "no." } + +FUNCTION {bbl.nr} +{ "no." } + +FUNCTION {bbl.in} +{ "in" } + +FUNCTION {bbl.pages} +{ "pp." } + +FUNCTION {bbl.page} +{ "p." } + +FUNCTION {bbl.chapter} +{ "chap." } + +FUNCTION {bbl.techrep} +{ "Tech. Rep." } + +FUNCTION {bbl.mthesis} +{ "Master's thesis" } + +FUNCTION {bbl.phdthesis} +{ "Ph.D. thesis" } + +FUNCTION {bbl.first} +{ "1st" } + +FUNCTION {bbl.second} +{ "2nd" } + +FUNCTION {bbl.third} +{ "3rd" } + +FUNCTION {bbl.fourth} +{ "4th" } + +FUNCTION {bbl.fifth} +{ "5th" } + +FUNCTION {bbl.st} +{ "st" } + +FUNCTION {bbl.nd} +{ "nd" } + +FUNCTION {bbl.rd} +{ "rd" } + +FUNCTION {bbl.th} +{ "th" } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"Jun."} + +MACRO {jul} {"Jul."} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sep."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +FUNCTION {eng.ord} +{ duplicate$ "1" swap$ * + #-2 #1 substring$ "1" = + { bbl.th * } + { duplicate$ #-1 #1 substring$ + duplicate$ "1" = + { pop$ bbl.st * } + { duplicate$ "2" = + { pop$ bbl.nd * } + { "3" = + { bbl.rd * } + { bbl.th * } + if$ + } + if$ + } + if$ + } + if$ +} + +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. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " " * "et~al." emphasize * } + { bbl.and space.word * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.names.ed} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" + format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " " * "et~al." emphasize * } + { bbl.and space.word * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { " (" * bbl.editors * ")" * } + { " (" * bbl.editor * ")" * } + if$ + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title + "\enquote{" swap$ * + non.stop + { "}, " * } + { "} " * } + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\reference{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ '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 empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ + before.all 'output.state := + " (" swap$ * ")" * +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +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.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { bbl.number } + { bbl.number capitalize } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { bbl.in space.word * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + +FUNCTION {convert.edition} +{ edition extract.num "l" change.case$ 's := + s "first" = s "1" = or + { bbl.first 't := } + { s "second" = s "2" = or + { bbl.second 't := } + { s "third" = s "3" = or + { bbl.third 't := } + { s "fourth" = s "4" = or + { bbl.fourth 't := } + { s "fifth" = s "5" = or + { bbl.fifth 't := } + { s #1 #1 substring$ is.num + { s eng.ord 't := } + { edition 't := } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + t +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { bbl.pages pages n.dashify tie.or.space.connect } + { bbl.page pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {first.page} +{ 't := + "" + { t empty$ not t #1 #1 substring$ "-" = not and } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + while$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + bolden + number empty$ + 'skip$ + { + "~(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages first.page * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { bbl.chapter } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in booktitle emphasize * + " (" * + bbl.edby + capitalize + * " " * + format.in.editors * + ")" * + } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { word.in journal emphasize * } + if$ + } + { word.in key * " " *} + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " " * "et~al." emphasize * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " " * "et~al." emphasize * } + { bbl.and space.word * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { bbl.volume volume tie.or.space.connect + bbl.of space.word * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { series emphasize * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { word.in booktitle emphasize * } + if$ + } + { word.in key * " " *} + if$ + } + { word.in format.crossref.editor * " " *} + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + before.all 'output.state := + ", " * + "\journal " * journal * ";" * + volume * "," * + pages first.page * + "(" * year * ")" * + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + } + { 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 + publisher "publisher" output.check + address output + } + { + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + format.title "title" output.check + before.all 'output.state := + howpublished output + address output + format.date output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + } + { 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 + publisher "publisher" output.check + address output + } + { + format.chapter.pages "chapter and pages" output.check + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + before.all 'output.state := + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + before.all 'output.state := + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + format.btitle "title" output.check + author empty$ + { organization empty$ + { + address output + } + 'skip$ + if$ + } + { + organization output + address output + } + if$ + format.edition output + format.date output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + format.title output + before.all 'output.state := + howpublished output + format.date output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + format.btitle "title" output.check + bbl.phdthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + before.all 'output.state := + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + format.title "title" output.check + before.all 'output.state := + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\def\enquote#1{``#1''}" + write$ newline$ + "\referencelist" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\endreferencelist" write$ newline$ +} + +EXECUTE {end.bib} +%% End of customized bst file diff --git a/Master/texmf-dist/bibtex/bst/tugboat/ltugbib.bst b/Master/texmf-dist/bibtex/bst/tugboat/ltugbib.bst new file mode 100644 index 00000000000..aefa8132e93 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/tugboat/ltugbib.bst @@ -0,0 +1,1181 @@ +%% This is the file `ltugbib.bst', used by the harvardcite option +%% to the ltug* LaTeX classes. +%% +%% \iffalse (this is a meta-comment (so they say)) +%% Copyright (C) 1995,1996,1997,1998,2000,2004 TeX Users Group. +%% Copying of this file is authorized only if either: +%% (1) you make absolutely no changes to your copy, OR +%% (2) if you do make changes, you first rename it to some other name. +%% \fi +%% +%% 7-Jun-04: (all related code marked OP) handle a title ending in, e.g., a +%% question-mark; otherwise the same as the (CTAN-time) 9-Apr-02 version: +%% +%% This file used to be generated from tugboat.dtx, but is now distributed +%% as a stand-alone file. +%% +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + } + {} + { label extra.label sort.label long.label short.label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block + suppress.period } % OP: after quoted title (trivalued) + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #0 'suppress.period := % OP: initialize to FALSE +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { suppress.period #2 = % OP: check for suppression this time + { #0 'suppress.period := } % suppress, reset to FALSE + 'add.period$ + if$ + 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 {output.bibitem} +{ newline$ + "\bibitem[" write$ + "\protect\citeauthoryear{" long.label * "}{" * write$ + short.label write$ + "}{" year duplicate$ empty$ + { pop$ "????" } + 'skip$ + if$ + * extra.label * "}]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ + suppress.period #1 = % OP: check to suppress period + { #2 'suppress.period := } % for current (1st) output + 'skip$ + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +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$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {bolden} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + nameptr #1 = + { "{vv~}{ll}{, jj}{, ff}" format.name$ } + { "{f.~}{vv~}{ll}{, jj}" format.name$ } + if$ + 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " \etal{}" * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.names.ed} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" + format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " \etal{}" * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.in.editors} +{ editor empty$ + { "" } + { editor format.names.ed + } + if$ +} + +FUNCTION {quote.period.spacing} % OP: reduce space between quotes and +{ "\kern -.15em" % period; remove negative kern by +} % replacing this simply with "" + +FUNCTION {format.title} % OP: a period follows the +{ title empty$ % quotation marks in this style + { "" } + { title + "``" swap$ * + duplicate$ "''" * swap$ % OP: create the quoted title + duplicate$ add.period$ = % see if title needs period + { #1 'suppress.period := } % no: suppress next (2nd) output + { quote.period.spacing * } % yes: add desired spacing + if$ + } + if$ +} + +FUNCTION {n.dashify} +{ '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} +{ "In " } + +FUNCTION {format.date} +{ year duplicate$ empty$ + { "empty year in " cite$ * "; set to ????" * warning$ + pop$ "????" } + 'skip$ + if$ + "\UseExtraLabel{" * extra.label * "}" * +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + bolden + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ", " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { word.in booktitle emphasize * } + { word.in booktitle emphasize * ", edited by " * + format.in.editors * } + if$ + } + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ + word.in + "\cite{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + word.in + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + "\cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ + word.in + "\cite{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + " " * before.all 'output.state := % OP: sic (preexisting kludge) + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + 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$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + new.block + format.title "title" output.check + new.block + howpublished output + address output + format.date "year" output.check + new.block + 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$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address output + new.sentence + organization output + publisher output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.btitle "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + new.block + format.title output + new.block + howpublished output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.btitle "title" output.check + new.block + "Ph.D.\ thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output + new.sentence + organization output + publisher output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + note "note" output.check + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +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 := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ % 2nd number of names + " \etal{}" * + } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " \etal{}" * } + { " and " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.long.lab.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " \etal{}" * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.key} +{ author empty$ + { "{" + key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ * + "}" * + } + 'author + if$ +} + +FUNCTION {author.editor.key} +{ author empty$ + { editor empty$ + { "{" + key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ * + "}" * + } + 'editor + if$ + } + 'author + if$ +} + +FUNCTION {editor.key} +{ editor empty$ + { "{" + key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ * + "}" * + } + 'editor + if$ +} + +FUNCTION {maybe.other.name.field} +{ swap$ % [stack: other.field name] + duplicate$ empty$ % is the name empty? + { pop$ % discard it [stack: other.field] + #1 swap$ 'skip$ if$ % try the other one + } + { swap$ pop$ % discard other.field + } + if$ +} + +FUNCTION {calc.label.names} +{ type$ "proceedings" = + 'editor + 'author + if$ + 'editor maybe.other.name.field + 'organization maybe.other.name.field + 'key maybe.other.name.field + { "Cannot create a label name in " cite$ * warning$ + cite$ #1 #3 substring$ } maybe.other.name.field +} + +FUNCTION {calc.short.label} +{ calc.label.names format.lab.names + 'short.label := +} + +FUNCTION {calc.label} +{ calc.short.label + short.label ", " * + year duplicate$ empty$ + { pop$ "????" } + { purify$ #-1 #4 substring$ } + if$ + * + 'label := +} + +FUNCTION {calc.long.label} +{ calc.label.names format.long.lab.names + 'long.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr + "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" + format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 } + +FUNCTION {initialize.extra.label.stuff} +{ #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'last.extra.num := +} + +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$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := +} + +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$ := + calc.long.label +} + +ITERATE {bib.sort.order} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{}" 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 file `ltugbib.bst'. diff --git a/Master/texmf-dist/bibtex/bst/urlbst/abbrvurl.bst b/Master/texmf-dist/bibtex/bst/urlbst/abbrvurl.bst new file mode 100644 index 00000000000..1a99ffbd620 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/urlbst/abbrvurl.bst @@ -0,0 +1,1250 @@ +%%% Modification of BibTeX style file /local2/teTeX-1.0/share/texmf/bibtex/bst/base/abbrv.bst +%%% to add webpage entry type, and url and lastchecked fields +%%% Edits by urlbst.pl, version 0.1 +%%% (marked with % urlbst.pl) +%%% Original headers follow... +% BibTeX standard bibliography style `abbrv' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + url % urlbst.pl + lastchecked + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +INTEGERS { bracket.state outside.brackets open.brackets within.brackets close.brackets } % urlbst.pl +FUNCTION {init.state.consts} +{ #0 'outside.brackets := % urlbst.pl + #1 'open.brackets := + #2 'within.brackets := + #3 'close.brackets := + + #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +STRINGS { s t } + +% urlbst.pl +FUNCTION {output.nonnull.original} +{ '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 +} + +% urlbst.pl... +FUNCTION {output.nonnull} +{ % Save the thing we've been asked to output + 's := + % If the bracket-state is close.brackets, then add a close-bracket to what's + % currently at the top of the stack, and set bracket.state to outside.brackets + bracket.state close.brackets = + { "]" * + outside.brackets 'bracket.state := + } + 'skip$ + if$ + bracket.state outside.brackets = + { % We're outside all brackets -- this is the normal situation. + % Write out what's currently at the top of the stack, using the + % original output.nonnull function. + s + output.nonnull.original + } + { % Still in brackets. Add open-bracket or (continuation) comma, add the + % new text (in s) to the top of the stack, and move to the close-brackets + % state, ready for next time (unless inbrackets resets it). If we come + % into this branch, then output.state is carefully undisturbed. + bracket.state open.brackets = + { " [" * } + { ", " * } % bracket.state will be within.brackets + if$ + s * + close.brackets 'bracket.state := + } + if$ +} + +% Call this function just before adding something which should be presented in +% brackets. bracket.state is handled specially within output.nonnull. +FUNCTION {inbrackets} +{ bracket.state close.brackets = + { within.brackets 'bracket.state := } % reset the state: not open nor closed + { open.brackets 'bracket.state := } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { "Available from World Wide Web: \url{" url * "}" * } + if$ +} + +FUNCTION {format.lastchecked} +{ lastchecked empty$ + { "" } + { inbrackets "cited " lastchecked * } + if$ +} +% ...% urlbst.pl + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ outside.brackets 'bracket.state := % urlbst.pl + newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ + bracket.state close.brackets = % urlbst.pl + { "]" * } + 'skip$ + if$ + 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +% urlbst.pl... +% Output a URL. We can't use the more normal idiom (something like +% `format.url output'), because the `inbrackets' within +% format.lastchecked applies to everything between calls to `output', +% so that `format.url format.lastchecked * output' ends up with both +% the URL and the lastchecked in brackets. +FUNCTION {output.url} +{ url empty$ + 'skip$ + { new.block + format.url output + format.lastchecked output + } + if$ +} + +% Webpage entry type. +% Title and url fields required; +% author, note, year, month, and lastchecked fields optional +% See references +% ISO 690-2 http://www.nlc-bnc.ca/iso/tc46sc9/standard/690-2e.htm +% http://www.classroom.net/classroom/CitingNetResources.html +% http://neal.ctstateu.edu/history/cite.html +% http://www.cas.usf.edu/english/walker/mla.html +% for citation formats for web pages. +FUNCTION {webpage} +{ output.bibitem + author empty$ + 'skip$ + { format.authors output.nonnull } + if$ + new.block + format.title "title" output.check + inbrackets "online" output + new.block + year empty$ + 'skip$ + { format.date "year" output.check } + if$ + lastchecked empty$ + 'skip$ + { format.lastchecked output } + if$ + new.block + format.url "url" output.check + new.block + note output + fin.entry +} +% ...% urlbst.pl + + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + output.url % urlbst.pl + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"Jan."} + +MACRO {feb} {"Feb."} + +MACRO {mar} {"Mar."} + +MACRO {apr} {"Apr."} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"Aug."} + +MACRO {sep} {"Sept."} + +MACRO {oct} {"Oct."} + +MACRO {nov} {"Nov."} + +MACRO {dec} {"Dec."} + +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. Softw. Eng."} + +MACRO {ieeetc} {"IEEE Trans. Comput."} + +MACRO {ieeetcad} + {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} + +MACRO {ipl} {"Inf. Process. Lett."} + +MACRO {jacm} {"J.~ACM"} + +MACRO {jcss} {"J.~Comput. Syst. Sci."} + +MACRO {scp} {"Sci. Comput. Programming"} + +MACRO {sicomp} {"SIAM J. Comput."} + +MACRO {tocs} {"ACM Trans. Comput. Syst."} + +MACRO {tods} {"ACM Trans. Database Syst."} + +MACRO {tog} {"ACM Trans. Gr."} + +MACRO {toms} {"ACM Trans. Math. Softw."} + +MACRO {toois} {"ACM Trans. Office Inf. Syst."} + +MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} + +MACRO {tcs} {"Theoretical Comput. Sci."} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/urlbst/alphaurl.bst b/Master/texmf-dist/bibtex/bst/urlbst/alphaurl.bst new file mode 100644 index 00000000000..d18332871bd --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/urlbst/alphaurl.bst @@ -0,0 +1,1410 @@ +%%% Modification of BibTeX style file /local2/teTeX-1.0/share/texmf/bibtex/bst/base/alpha.bst +%%% to add webpage entry type, and url and lastchecked fields +%%% Edits by urlbst.pl, version 0.1 +%%% (marked with % urlbst.pl) +%%% Original headers follow... +% BibTeX standard bibliography style `alpha' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + url % urlbst.pl + lastchecked + } + {} + { label extra.label sort.label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +INTEGERS { bracket.state outside.brackets open.brackets within.brackets close.brackets } % urlbst.pl +FUNCTION {init.state.consts} +{ #0 'outside.brackets := % urlbst.pl + #1 'open.brackets := + #2 'within.brackets := + #3 'close.brackets := + + #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +STRINGS { s t } + +% urlbst.pl +FUNCTION {output.nonnull.original} +{ '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 +} + +% urlbst.pl... +FUNCTION {output.nonnull} +{ % Save the thing we've been asked to output + 's := + % If the bracket-state is close.brackets, then add a close-bracket to what's + % currently at the top of the stack, and set bracket.state to outside.brackets + bracket.state close.brackets = + { "]" * + outside.brackets 'bracket.state := + } + 'skip$ + if$ + bracket.state outside.brackets = + { % We're outside all brackets -- this is the normal situation. + % Write out what's currently at the top of the stack, using the + % original output.nonnull function. + s + output.nonnull.original + } + { % Still in brackets. Add open-bracket or (continuation) comma, add the + % new text (in s) to the top of the stack, and move to the close-brackets + % state, ready for next time (unless inbrackets resets it). If we come + % into this branch, then output.state is carefully undisturbed. + bracket.state open.brackets = + { " [" * } + { ", " * } % bracket.state will be within.brackets + if$ + s * + close.brackets 'bracket.state := + } + if$ +} + +% Call this function just before adding something which should be presented in +% brackets. bracket.state is handled specially within output.nonnull. +FUNCTION {inbrackets} +{ bracket.state close.brackets = + { within.brackets 'bracket.state := } % reset the state: not open nor closed + { open.brackets 'bracket.state := } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { "Available from World Wide Web: \url{" url * "}" * } + if$ +} + +FUNCTION {format.lastchecked} +{ lastchecked empty$ + { "" } + { inbrackets "cited " lastchecked * } + if$ +} +% ...% urlbst.pl + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ outside.brackets 'bracket.state := % urlbst.pl + newline$ + "\bibitem[" write$ + label write$ + "]{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ + bracket.state close.brackets = % urlbst.pl + { "]" * } + 'skip$ + if$ + 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +% urlbst.pl... +% Output a URL. We can't use the more normal idiom (something like +% `format.url output'), because the `inbrackets' within +% format.lastchecked applies to everything between calls to `output', +% so that `format.url format.lastchecked * output' ends up with both +% the URL and the lastchecked in brackets. +FUNCTION {output.url} +{ url empty$ + 'skip$ + { new.block + format.url output + format.lastchecked output + } + if$ +} + +% Webpage entry type. +% Title and url fields required; +% author, note, year, month, and lastchecked fields optional +% See references +% ISO 690-2 http://www.nlc-bnc.ca/iso/tc46sc9/standard/690-2e.htm +% http://www.classroom.net/classroom/CitingNetResources.html +% http://neal.ctstateu.edu/history/cite.html +% http://www.cas.usf.edu/english/walker/mla.html +% for citation formats for web pages. +FUNCTION {webpage} +{ output.bibitem + author empty$ + 'skip$ + { format.authors output.nonnull } + if$ + new.block + format.title "title" output.check + inbrackets "online" output + new.block + year empty$ + 'skip$ + { format.date "year" output.check } + if$ + lastchecked empty$ + 'skip$ + { format.lastchecked output } + if$ + new.block + format.url "url" output.check + new.block + note output + fin.entry +} +% ...% urlbst.pl + + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + output.url % urlbst.pl + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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$ +} + +INTEGERS { et.al.char.used } + +FUNCTION {initialize.et.al.char.used} +{ #0 'et.al.char.used := +} + +EXECUTE {initialize.et.al.char.used} + +FUNCTION {format.lab.names} +{ 's := + s num.names$ 'numnames := + numnames #1 > + { numnames #4 > + { #3 'namesleft := } + { numnames 'namesleft := } + if$ + #1 'nameptr := + "" + { namesleft #0 > } + { nameptr numnames = + { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + } + { s nameptr "{v{}}{l{}}" format.name$ * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ + numnames #4 > + { "{\etalchar{+}}" * + #1 'et.al.char.used := + } + 'skip$ + if$ + } + { s #1 "{v{}}{l{}}" format.name$ + duplicate$ text.length$ #2 < + { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ } + 'skip$ + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + { key #3 text.prefix$ } + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.label} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + duplicate$ + year field.or.null purify$ #-1 #2 substring$ + * + 'label := + year field.or.null purify$ #-1 #4 substring$ + * + sortify 'sort.label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label + sort.label + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + * + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.sort.label next.extra } + +INTEGERS { longest.label.width last.extra.num } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.sort.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := +} + +FUNCTION {forward.pass} +{ last.sort.label sort.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 := + sort.label 'last.sort.label := + } + if$ +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + label extra.label * 'label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ + extra.label 'next.extra := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {begin.bib} +{ et.al.char.used + { "\newcommand{\etalchar}[1]{$^{#1}$}" write$ newline$ } + 'skip$ + if$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/urlbst/plainurl.bst b/Master/texmf-dist/bibtex/bst/urlbst/plainurl.bst new file mode 100644 index 00000000000..78fecde3486 --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/urlbst/plainurl.bst @@ -0,0 +1,1250 @@ +%%% Modification of BibTeX style file /local2/teTeX-1.0/share/texmf/bibtex/bst/base/plain.bst +%%% to add webpage entry type, and url and lastchecked fields +%%% Edits by urlbst.pl, version 0.1 +%%% (marked with % urlbst.pl) +%%% Original headers follow... +% BibTeX standard bibliography style `plain' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + url % urlbst.pl + lastchecked + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +INTEGERS { bracket.state outside.brackets open.brackets within.brackets close.brackets } % urlbst.pl +FUNCTION {init.state.consts} +{ #0 'outside.brackets := % urlbst.pl + #1 'open.brackets := + #2 'within.brackets := + #3 'close.brackets := + + #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +STRINGS { s t } + +% urlbst.pl +FUNCTION {output.nonnull.original} +{ '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 +} + +% urlbst.pl... +FUNCTION {output.nonnull} +{ % Save the thing we've been asked to output + 's := + % If the bracket-state is close.brackets, then add a close-bracket to what's + % currently at the top of the stack, and set bracket.state to outside.brackets + bracket.state close.brackets = + { "]" * + outside.brackets 'bracket.state := + } + 'skip$ + if$ + bracket.state outside.brackets = + { % We're outside all brackets -- this is the normal situation. + % Write out what's currently at the top of the stack, using the + % original output.nonnull function. + s + output.nonnull.original + } + { % Still in brackets. Add open-bracket or (continuation) comma, add the + % new text (in s) to the top of the stack, and move to the close-brackets + % state, ready for next time (unless inbrackets resets it). If we come + % into this branch, then output.state is carefully undisturbed. + bracket.state open.brackets = + { " [" * } + { ", " * } % bracket.state will be within.brackets + if$ + s * + close.brackets 'bracket.state := + } + if$ +} + +% Call this function just before adding something which should be presented in +% brackets. bracket.state is handled specially within output.nonnull. +FUNCTION {inbrackets} +{ bracket.state close.brackets = + { within.brackets 'bracket.state := } % reset the state: not open nor closed + { open.brackets 'bracket.state := } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { "Available from World Wide Web: \url{" url * "}" * } + if$ +} + +FUNCTION {format.lastchecked} +{ lastchecked empty$ + { "" } + { inbrackets "cited " lastchecked * } + if$ +} +% ...% urlbst.pl + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ outside.brackets 'bracket.state := % urlbst.pl + newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ + bracket.state close.brackets = % urlbst.pl + { "]" * } + 'skip$ + if$ + 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +% urlbst.pl... +% Output a URL. We can't use the more normal idiom (something like +% `format.url output'), because the `inbrackets' within +% format.lastchecked applies to everything between calls to `output', +% so that `format.url format.lastchecked * output' ends up with both +% the URL and the lastchecked in brackets. +FUNCTION {output.url} +{ url empty$ + 'skip$ + { new.block + format.url output + format.lastchecked output + } + if$ +} + +% Webpage entry type. +% Title and url fields required; +% author, note, year, month, and lastchecked fields optional +% See references +% ISO 690-2 http://www.nlc-bnc.ca/iso/tc46sc9/standard/690-2e.htm +% http://www.classroom.net/classroom/CitingNetResources.html +% http://neal.ctstateu.edu/history/cite.html +% http://www.cas.usf.edu/english/walker/mla.html +% for citation formats for web pages. +FUNCTION {webpage} +{ output.bibitem + author empty$ + 'skip$ + { format.authors output.nonnull } + if$ + new.block + format.title "title" output.check + inbrackets "online" output + new.block + year empty$ + 'skip$ + { format.date "year" output.check } + if$ + lastchecked empty$ + 'skip$ + { format.lastchecked output } + if$ + new.block + format.url "url" output.check + new.block + note output + fin.entry +} +% ...% urlbst.pl + + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + output.url % urlbst.pl + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +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 {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { 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 {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/bst/urlbst/unsrturl.bst b/Master/texmf-dist/bibtex/bst/urlbst/unsrturl.bst new file mode 100644 index 00000000000..7c4426bd0dc --- /dev/null +++ b/Master/texmf-dist/bibtex/bst/urlbst/unsrturl.bst @@ -0,0 +1,1104 @@ +%%% Modification of BibTeX style file /local2/teTeX-1.0/share/texmf/bibtex/bst/base/unsrt.bst +%%% to add webpage entry type, and url and lastchecked fields +%%% Edits by urlbst.pl, version 0.1 +%%% (marked with % urlbst.pl) +%%% Original headers follow... +% BibTeX standard bibliography style `unsrt' + % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09. + % Copyright (C) 1985, all rights reserved. + % Copying of this file is authorized only if either + % (1) you make absolutely no changes to your copy, including name, or + % (2) if you do make changes, you name it something other than + % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst. + % This restriction helps ensure that all standard styles are identical. + % The file btxbst.doc has the documentation for this style. + +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + volume + year + url % urlbst.pl + lastchecked + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +INTEGERS { bracket.state outside.brackets open.brackets within.brackets close.brackets } % urlbst.pl +FUNCTION {init.state.consts} +{ #0 'outside.brackets := % urlbst.pl + #1 'open.brackets := + #2 'within.brackets := + #3 'close.brackets := + + #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +STRINGS { s t } + +% urlbst.pl +FUNCTION {output.nonnull.original} +{ '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 +} + +% urlbst.pl... +FUNCTION {output.nonnull} +{ % Save the thing we've been asked to output + 's := + % If the bracket-state is close.brackets, then add a close-bracket to what's + % currently at the top of the stack, and set bracket.state to outside.brackets + bracket.state close.brackets = + { "]" * + outside.brackets 'bracket.state := + } + 'skip$ + if$ + bracket.state outside.brackets = + { % We're outside all brackets -- this is the normal situation. + % Write out what's currently at the top of the stack, using the + % original output.nonnull function. + s + output.nonnull.original + } + { % Still in brackets. Add open-bracket or (continuation) comma, add the + % new text (in s) to the top of the stack, and move to the close-brackets + % state, ready for next time (unless inbrackets resets it). If we come + % into this branch, then output.state is carefully undisturbed. + bracket.state open.brackets = + { " [" * } + { ", " * } % bracket.state will be within.brackets + if$ + s * + close.brackets 'bracket.state := + } + if$ +} + +% Call this function just before adding something which should be presented in +% brackets. bracket.state is handled specially within output.nonnull. +FUNCTION {inbrackets} +{ bracket.state close.brackets = + { within.brackets 'bracket.state := } % reset the state: not open nor closed + { open.brackets 'bracket.state := } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { "Available from World Wide Web: \url{" url * "}" * } + if$ +} + +FUNCTION {format.lastchecked} +{ lastchecked empty$ + { "" } + { inbrackets "cited " lastchecked * } + if$ +} +% ...% urlbst.pl + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {output.bibitem} +{ outside.brackets 'bracket.state := % urlbst.pl + newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {fin.entry} +{ + bracket.state close.brackets = % urlbst.pl + { "]" * } + 'skip$ + if$ + 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 {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {n.dashify} +{ '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 {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + 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 empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "(" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":" * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.crossref.editor} +{ editor #1 "{vv~}{ll}" format.name$ + editor num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * editor #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + { format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " format.crossref.editor * } + if$ + " \cite{" * crossref * "}" * +} + +% urlbst.pl... +% Output a URL. We can't use the more normal idiom (something like +% `format.url output'), because the `inbrackets' within +% format.lastchecked applies to everything between calls to `output', +% so that `format.url format.lastchecked * output' ends up with both +% the URL and the lastchecked in brackets. +FUNCTION {output.url} +{ url empty$ + 'skip$ + { new.block + format.url output + format.lastchecked output + } + if$ +} + +% Webpage entry type. +% Title and url fields required; +% author, note, year, month, and lastchecked fields optional +% See references +% ISO 690-2 http://www.nlc-bnc.ca/iso/tc46sc9/standard/690-2e.htm +% http://www.classroom.net/classroom/CitingNetResources.html +% http://neal.ctstateu.edu/history/cite.html +% http://www.cas.usf.edu/english/walker/mla.html +% for citation formats for web pages. +FUNCTION {webpage} +{ output.bibitem + author empty$ + 'skip$ + { format.authors output.nonnull } + if$ + new.block + format.title "title" output.check + inbrackets "online" output + new.block + year empty$ + 'skip$ + { format.date "year" output.check } + if$ + lastchecked empty$ + 'skip$ + { format.lastchecked output } + if$ + new.block + format.url "url" output.check + new.block + note output + fin.entry +} +% ...% urlbst.pl + + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { address new.block.checka + address output + } + 'skip$ + if$ + } + { organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + new.block + output.url % urlbst.pl + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + editor empty$ + { organization output } + { format.editors output.nonnull } + if$ + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address empty$ + { editor empty$ + { publisher new.sentence.checka } + { organization publisher new.sentence.checkb + organization output + } + if$ + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + editor empty$ + 'skip$ + { organization output } + if$ + publisher output + } + if$ + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + new.block + output.url % urlbst.pl + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/Master/texmf-dist/bibtex/csf/base/88592pl.csf b/Master/texmf-dist/bibtex/csf/base/88592pl.csf new file mode 100644 index 00000000000..9d0856ee52b --- /dev/null +++ b/Master/texmf-dist/bibtex/csf/base/88592pl.csf @@ -0,0 +1,291 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% FILE: 88592pl.csf +%% +%% External configuration file for the implementation of BiBTeX with +%% 8-bit character set support which is available under GNU Public +%% Licence in CTAN, also ftp.gust.org.pl/TeX/biblio/bibtex/8-bit/ +%% +%% Prepared by Andrzej Borzyszkowski (A.Borzyszkowski@ipipan.gda.pl) +%% This file is in the public domain. +%% +%% Date: 5 March 1999 +%% +%% CHARACTER SET: ISO 8859-2 +%% +%% ISO 8859-2 is the system character set used by Unix/X Window. +%% +%% SORTING ORDER: Polish +%% +%% Alphabetical sorting order of 0..9Aa..Zz +%% (including accented characters) +%% (non-Polish characters are ordered disregarding accents) +%% (lower-upper case relation is defined for all accented characters) +%% +%% WARNING +%% +%% This is a BibTeX Codepage and Sort definition file (CSF). It is +%% used to define the 8-bit character set used by BibTeX and the +%% order in which those characters should be sorted. The file +%% format is documented below this header section. +%% +%% This file will only work with the 8-bit implementation of BibTeX +%% written by Niel Kempson and Alejandro Aguilar-Sierra. It is +%% available by anonymous FTP from these Comprehensive TeX Archive +%% Network (CTAN) sites: +%% +%% ftp.tex.ac.uk:/tex-archive/biblio/bibtex/8-bit +%% ftp.shsu.edu:/tex-archive/biblio/bibtex/8-bit +%% ftp.uni-stuttgart.de:/tex-archive/biblio/bibtex/8-bit +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% FILE FORMAT +%% +%% The codepage and sorting order (CS) file defines how BibTeX will treat an +%% 8-bit character set, specifically which characters are to be treated as +%% letters, the upper/lower case relationships between characters, and the +%% sorting order of characters. +%% +%% The CS file may contain a number of sections, each presented in the +%% form of a TeX macro: +%% +%% \section-name{ +%%
+%% } +%% +%% Four sections are currently supported: \lowupcase, \lowercase, \uppercase +%% and \order. The syntax of the four supported sections is summarised below. +%% +%% 8-bit characters may be entered naturally, but to avoid problems with +%% character set translation or corruption, they can also be entered using +%% the TeX-style portable notation for character codes, i.e. ^^XX, where XX +%% is the hexadecimal value ofthe character code. +%% +%% Reading of the sections ends when the first '}' character is reached, so +%% '}' can't be included in a section. You can't use ^^7d either. +%% +%% The percent sign ('%') is used to introduce a trailing comment - it and +%% all remaining characters on a line are ignored. ^^25 has the same effect. +%% +%% +%% \lowupcase section +%% +%% The \lowupcase section of the CS file is used to define the lower +%% /upper and upper/lower case relationship of pairs of specified +%% characters. It is only used if the relationship is symmetrical - use +%% \lowercase or \upcase if it isn't. +%% +%% The syntax of the \lowupcase section is: +%% +%% \lowupcase{ +%% % Comment begins with a percent sign +%% +%% ... +%% +%% } +%% +%% Each pair of characters defines that the upper case +%% equivalent of is *and* the lower case equivalent of +%% is . +%% +%% You cannot redefine the lower or upper case equivalent of an ASCII +%% character (code < 128), so all instances of and +%% (i.e. both sides of the relationship) must have codes > 127. +%% +%% +%% \lowercase section +%% +%% The \lowercase section of the CS file is used to define the lower case +%% equivalent of specified characters. It should normally only be used +%% if the relationship isn't symmetrical - use \lowupcase if it is. +%% +%% The syntax of the \lowercase section is: +%% +%% \lowercase{ +%% % Comment begins with a percent sign +%% +%% ... +%% +%% } +%% +%% Each pair of characters defines that the lower case +%% equivalent of is . +%% +%% You cannot redefine the lower case equivalent of an ASCII character +%% (code < 128), so all instances of (i.e. the left hand side +%% of the relationship) must have codes > 127. +%% +%% +%% \uppercase section +%% +%% The \uppercase section of the CS file is used to define the upper case +%% equivalent of specified characters. It should normally only be used +%% if the relationship isn't symmetrical - use \lowupcase if it is. +%% +%% The syntax of the \uppercase section is: +%% +%% \uppercase{ +%% % Comment begins with a percent sign +%% +%% ... +%% +%% } +%% +%% Each pair of characters defines that the upper case +%% case equivalent of is . +%% +%% You cannot redefine the upper case equivalent of an ASCII character +%% (code < 128), so all instances of (i.e. the left hand side +%% of the relationship) must have codes > 127. +%% +%% +%% \order section +%% +%% The \order section of the CS file is used to define the order in which +%% characters are sorted. +%% +%% The syntax of the \order section is: +%% +%% \order{ +%% % Comment begins with a percent sign +%% % whitespace between the chars +%% - % a hyphen between the chars +%% _ % an underscore between the chars +%% ... +%% +%% } +%% +%% All characters on the same line are given the same sorting weight. +%% +%% The construct is used to denote that +%% all characters in the range to should be given the +%% same sorting weight. For example, "A _ Z"would cause all ASCII +%% upper case alphabetical characters to have the same sorting weight +%% and would be equivalent to placing all 26 characters on the same line. +%% +%% The construct is used to denote that all +%% characters in the range to should be given an +%% ascending set of sorting weights, starting with and ending +%% with . For example, "A - Z"would cause all upper case ASCII +%% alphabetical characters to be sorted in ascending order and would be +%% equivalent to placing 'A' on the first line, 'B' on the second, +%% through to 'Z' on the 26th line. +%% +%% The characters at the beginning of the order section are given a lower +%% sorting weight than characters occuring later. When sorting +%% alphabetically, characters with the lowest weight come first. +%% +%% All characters not in the \order section (including ASCII characters) +%% are given the same very high sorting weight to ensure that they come +%% last when sorting alphabetically. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%% +%% CHARACTER SET +%% +%% The ISO 8859-2 code page contains an equal number of upper and lower +%% case accented characters so we can use the \lowupcase{} section. The +%% \lowercase{} and \uppercase{} sections are not used. +%% +\lowupcase{ % Lowercase Uppercase remarks + % Code TeX Code TeX + % + % ^^e2 \^{a} ^^c2 \^{A} + % ^^e3 \u{a} ^^c3 \u{A} + % ^^e4 \"{a} ^^c4 \"{A} + % ^^e1 \'{a} ^^c1 \'{A} + % ^^b1 \k{a} ^^a1 \k{A} OT4 + % ^^e7 \c{c} ^^c7 \c{C} + % ^^e8 \v{c} ^^c8 \v{C} + % ^^e6 \'{c} ^^c6 \'{C} + % ^^ef \v{d} ^^cf \v{D} d caron + % ^^f0 \dj{} ^^d0 \DJ{} eth/ETH, not in OT4 + % ^^eb \"{e} ^^cb \"{E} + % ^^ec \v{e} ^^cc \v{E} + % ^^e9 \'{e} ^^c9 \'{E} + % ^^ea \k{e} ^^ca \k{E} OT4 + % ^^ee \^{\i} ^^ce \^{I} + % ^^ed \'{\i} ^^cd \'{I} + % ^^b5 \v{l} ^^a5 \v{L} l caron + % ^^e5 \'{l} ^^c5 \'{L} + % ^^b3 \l{} ^^a3 \L{} + % ^^f2 \v{n} ^^d2 \v{N} + % ^^f1 \'{n} ^^d1 \'{N} + % ^^f5 \H{o} ^^d5 \H{O} + % ^^f6 \"{o} ^^d6 \"{O} + % ^^f4 \^{o} ^^d4 \^{O} + % ^^f3 \'{o} ^^d3 \'{O} + % ^^e0 \'{r} ^^c0 \'{R} + % ^^f8 \v{r} ^^d8 \v{R} + % ^^ba \c{s} ^^aa \c{S} + % ^^b9 \v{s} ^^a9 \v{S} + % ^^b6 \'{s} ^^a6 \'{S} + % ^^fe \c{t} ^^de \c{T} + % ^^bb \v{t} ^^ab \v{T} t caron + % ^^fb \H{u} ^^db \H{U} + % ^^fc \"{u} ^^dc \"{U} + % ^^f9 \r{u} ^^d9 \r{U} + % ^^fa \'{u} ^^da \'{U} + % ^^fd \'{y} ^^dd \'{Y} + % ^^be \v{z} ^^ae \v{Z} + % ^^bc \'{z} ^^ac \'{Z} + % ^^bf \.{z} ^^af \.{Z} +} + + +%% +%% SORTING ORDER +%% +%% The sorting order defined is the natural language sorting order +%% of 0..9Aa..Zz (including accented characters). +%% (non-Polish characters are ordered disregarding accents) +%% +\order{ + 0-9 + a A + + b B + c C + + d D + e E + + f F + g G + h H + i I + j J + k K + l L + + m M + n N + + o O + + p P + q Q + r R + s S + + t T + u U + v V + w W + x X + y Y + z Z + + +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% END OF FILE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/bibtex/csf/base/cp1250pl.csf b/Master/texmf-dist/bibtex/csf/base/cp1250pl.csf new file mode 100644 index 00000000000..c1047203ded --- /dev/null +++ b/Master/texmf-dist/bibtex/csf/base/cp1250pl.csf @@ -0,0 +1,292 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% FILE: cp1250pl.csf +%% +%% External configuration file for the implementation of BiBTeX with +%% 8-bit character set support which is available under GNU Public +%% Licence in CTAN, also ftp.gust.org.pl/TeX/biblio/bibtex/8-bit/ +%% +%% Prepared by Andrzej Borzyszkowski (A.Borzyszkowski@ipipan.gda.pl) +%% This file is in the public domain. +%% +%% Date: 5 March 1999 +%% +%% CHARACTER SET: +%% +%% MS Windows encoding for Central and Eastern Europe, +%% known as Code Page 1250 +%% +%% SORTING ORDER: Polish +%% +%% Alphabetical sorting order of 0..9Aa..Zz +%% (including accented characters) +%% (non-Polish characters are ordered disregarding accents) +%% (lower-upper case relation is defined for all accented characters) +%% +%% WARNING +%% +%% This is a BibTeX Codepage and Sort definition file (CSF). It is +%% used to define the 8-bit character set used by BibTeX and the +%% order in which those characters should be sorted. The file +%% format is documented below this header section. +%% +%% This file will only work with the 8-bit implementation of BibTeX +%% written by Niel Kempson and Alejandro Aguilar-Sierra. It is +%% available by anonymous FTP from these Comprehensive TeX Archive +%% Network (CTAN) sites: +%% +%% ftp.tex.ac.uk:/tex-archive/biblio/bibtex/8-bit +%% ftp.shsu.edu:/tex-archive/biblio/bibtex/8-bit +%% ftp.uni-stuttgart.de:/tex-archive/biblio/bibtex/8-bit +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% FILE FORMAT +%% +%% The codepage and sorting order (CS) file defines how BibTeX will treat an +%% 8-bit character set, specifically which characters are to be treated as +%% letters, the upper/lower case relationships between characters, and the +%% sorting order of characters. +%% +%% The CS file may contain a number of sections, each presented in the +%% form of a TeX macro: +%% +%% \section-name{ +%%
+%% } +%% +%% Four sections are currently supported: \lowupcase, \lowercase, \uppercase +%% and \order. The syntax of the four supported sections is summarised below. +%% +%% 8-bit characters may be entered naturally, but to avoid problems with +%% character set translation or corruption, they can also be entered using +%% the TeX-style portable notation for character codes, i.e. ^^XX, where XX +%% is the hexadecimal value ofthe character code. +%% +%% Reading of the sections ends when the first '}' character is reached, so +%% '}' can't be included in a section. You can't use ^^7d either. +%% +%% The percent sign ('%') is used to introduce a trailing comment - it and +%% all remaining characters on a line are ignored. ^^25 has the same effect. +%% +%% +%% \lowupcase section +%% +%% The \lowupcase section of the CS file is used to define the lower +%% /upper and upper/lower case relationship of pairs of specified +%% characters. It is only used if the relationship is symmetrical - use +%% \lowercase or \upcase if it isn't. +%% +%% The syntax of the \lowupcase section is: +%% +%% \lowupcase{ +%% % Comment begins with a percent sign +%% +%% ... +%% +%% } +%% +%% Each pair of characters defines that the upper case +%% equivalent of is *and* the lower case equivalent of +%% is . +%% +%% You cannot redefine the lower or upper case equivalent of an ASCII +%% character (code < 128), so all instances of and +%% (i.e. both sides of the relationship) must have codes > 127. +%% +%% +%% \lowercase section +%% +%% The \lowercase section of the CS file is used to define the lower case +%% equivalent of specified characters. It should normally only be used +%% if the relationship isn't symmetrical - use \lowupcase if it is. +%% +%% The syntax of the \lowercase section is: +%% +%% \lowercase{ +%% % Comment begins with a percent sign +%% +%% ... +%% +%% } +%% +%% Each pair of characters defines that the lower case +%% equivalent of is . +%% +%% You cannot redefine the lower case equivalent of an ASCII character +%% (code < 128), so all instances of (i.e. the left hand side +%% of the relationship) must have codes > 127. +%% +%% +%% \uppercase section +%% +%% The \uppercase section of the CS file is used to define the upper case +%% equivalent of specified characters. It should normally only be used +%% if the relationship isn't symmetrical - use \lowupcase if it is. +%% +%% The syntax of the \uppercase section is: +%% +%% \uppercase{ +%% % Comment begins with a percent sign +%% +%% ... +%% +%% } +%% +%% Each pair of characters defines that the upper case +%% case equivalent of is . +%% +%% You cannot redefine the upper case equivalent of an ASCII character +%% (code < 128), so all instances of (i.e. the left hand side +%% of the relationship) must have codes > 127. +%% +%% +%% \order section +%% +%% The \order section of the CS file is used to define the order in which +%% characters are sorted. +%% +%% The syntax of the \order section is: +%% +%% \order{ +%% % Comment begins with a percent sign +%% % whitespace between the chars +%% - % a hyphen between the chars +%% _ % an underscore between the chars +%% ... +%% +%% } +%% +%% All characters on the same line are given the same sorting weight. +%% +%% The construct is used to denote that +%% all characters in the range to should be given the +%% same sorting weight. For example, "A _ Z"would cause all ASCII +%% upper case alphabetical characters to have the same sorting weight +%% and would be equivalent to placing all 26 characters on the same line. +%% +%% The construct is used to denote that all +%% characters in the range to should be given an +%% ascending set of sorting weights, starting with and ending +%% with . For example, "A - Z"would cause all upper case ASCII +%% alphabetical characters to be sorted in ascending order and would be +%% equivalent to placing 'A' on the first line, 'B' on the second, +%% through to 'Z' on the 26th line. +%% +%% The characters at the beginning of the order section are given a lower +%% sorting weight than characters occuring later. When sorting +%% alphabetically, characters with the lowest weight come first. +%% +%% All characters not in the \order section (including ASCII characters) +%% are given the same very high sorting weight to ensure that they come +%% last when sorting alphabetically. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%% +%% CHARACTER SET +%% +%% The 1250 code page contains an equal number of upper and lower +%% case accented characters so we can use the \lowupcase{} section. The +%% \lowercase{} and \uppercase{} sections are not used. +%% +\lowupcase{ % Lowercase Uppercase remarks + % Code TeX Code TeX + % + % ^^e2 \^{a} ^^c2 \^{A} + % ^^e3 \u{a} ^^c3 \u{A} + % ^^e4 \"{a} ^^c4 \"{A} OT4 + % ^^e1 \'{a} ^^c1 \'{A} + % ^^b9 \k{a} ^^a5 \k{A} + % ^^e7 \c{c} ^^c7 \c{C} + % ^^e8 \v{c} ^^c8 \v{C} + % ^^e6 \'{c} ^^c6 \'{C} + % ^^ef \v{d} ^^cf \v{D} d caron + % ^^f0 \dj{} ^^d0 \DJ{} eth/ETH, not in OT4 + % ^^eb \"{e} ^^cb \"{E} + % ^^ec \v{e} ^^cc \v{E} + % ^^e9 \'{e} ^^c9 \'{E} + % ^^ea \k{e} ^^ca \k{E} OT4 + % ^^ee \^{\i} ^^ce \^{I} + % ^^ed \'{\i} ^^cd \'{I} + % ^^be \v{l} ^^bc \v{L} l caron + % ^^e5 \'{l} ^^c5 \'{L} + % ^^b3 \l{} ^^a3 \L{} + % ^^f2 \v{n} ^^d2 \v{N} + % ^^f1 \'{n} ^^d1 \'{N} + % ^^f5 \H{o} ^^d5 \H{O} + % ^^f6 \"{o} ^^d6 \"{O} + % ^^f4 \^{o} ^^d4 \^{O} + % ^^f3 \'{o} ^^d3 \'{O} + % ^^e0 \'{r} ^^c0 \'{R} + % ^^f8 \v{r} ^^d8 \v{R} + % ^^ba \c{s} ^^aa \c{S} + % ^^9a \v{s} ^^8a \v{S} + % ^^9c \'{s} ^^8c \'{S} + % ^^fe \c{t} ^^de \c{T} + % ^^9d \v{t} ^^8d \v{T} t caron + % ^^fb \H{u} ^^db \H{U} + % ^^fc \"{u} ^^dc \"{U} + % ^^f9 \r{u} ^^d9 \r{U} + % ^^fa \'{u} ^^da \'{U} + % ^^fd \'{y} ^^dd \'{Y} + % ^^9e \v{z} ^^8e \v{Z} + % ^^9f \'{z} ^^8f \'{Z} + % ^^bf \.{z} ^^af \.{Z} +} + + +%% +%% SORTING ORDER +%% +%% The sorting order defined is the natural language sorting order +%% of 0..9Aa..Zz (including accented characters). +%% (non-Polish characters are ordered disregarding accents) +%% +\order{ + 0-9 + a A + + b B + c C + + d D + e E + + f F + g G + h H + i I + j J + k K + l L + + m M + n N + + o O + + p P + q Q + r R + s S + + t T + u U + v V + w W + x X + y Y + z Z + + +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% END OF FILE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/bibtex/csf/base/cp852pl.csf b/Master/texmf-dist/bibtex/csf/base/cp852pl.csf new file mode 100644 index 00000000000..cbb8136bfb0 --- /dev/null +++ b/Master/texmf-dist/bibtex/csf/base/cp852pl.csf @@ -0,0 +1,292 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% FILE: cp852pl.csf +%% +%% External configuration file for the implementation of BiBTeX with +%% 8-bit character set support which is available under GNU Public +%% Licence in CTAN, also ftp.gust.org.pl/TeX/biblio/bibtex/8-bit/ +%% +%% Prepared by Andrzej Borzyszkowski (A.Borzyszkowski@ipipan.gda.pl) +%% This file is in the public domain. +%% +%% Date: 5 March 1999 +%% +%% CHARACTER SET: IBM Code Page 852 +%% +%% Code page 852 for Central and Eastern Europe is used by +%% DOS and OS/2 systems. +%% +%% SORTING ORDER: Polish +%% +%% Alphabetical sorting order of 0..9Aa..Zz +%% (including accented characters) +%% (non-Polish characters are ordered disregarding accents) +%% (lower-upper case relation is defined for all accented characters) +%% +%% WARNING +%% +%% This is a BibTeX Codepage and Sort definition file (CSF). It is +%% used to define the 8-bit character set used by BibTeX and the +%% order in which those characters should be sorted. The file +%% format is documented below this header section. +%% +%% This file will only work with the 8-bit implementation of BibTeX +%% written by Niel Kempson and Alejandro Aguilar-Sierra. It is +%% available by anonymous FTP from these Comprehensive TeX Archive +%% Network (CTAN) sites: +%% +%% ftp.tex.ac.uk:/tex-archive/biblio/bibtex/8-bit +%% ftp.shsu.edu:/tex-archive/biblio/bibtex/8-bit +%% ftp.uni-stuttgart.de:/tex-archive/biblio/bibtex/8-bit +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% FILE FORMAT +%% +%% The codepage and sorting order (CS) file defines how BibTeX will treat an +%% 8-bit character set, specifically which characters are to be treated as +%% letters, the upper/lower case relationships between characters, and the +%% sorting order of characters. +%% +%% The CS file may contain a number of sections, each presented in the +%% form of a TeX macro: +%% +%% \section-name{ +%%
+%% } +%% +%% Four sections are currently supported: \lowupcase, \lowercase, \uppercase +%% and \order. The syntax of the four supported sections is summarised below. +%% +%% 8-bit characters may be entered naturally, but to avoid problems with +%% character set translation or corruption, they can also be entered using +%% the TeX-style portable notation for character codes, i.e. ^^XX, where XX +%% is the hexadecimal value ofthe character code. +%% +%% Reading of the sections ends when the first '}' character is reached, so +%% '}' can't be included in a section. You can't use ^^7d either. +%% +%% The percent sign ('%') is used to introduce a trailing comment - it and +%% all remaining characters on a line are ignored. ^^25 has the same effect. +%% +%% +%% \lowupcase section +%% +%% The \lowupcase section of the CS file is used to define the lower +%% /upper and upper/lower case relationship of pairs of specified +%% characters. It is only used if the relationship is symmetrical - use +%% \lowercase or \upcase if it isn't. +%% +%% The syntax of the \lowupcase section is: +%% +%% \lowupcase{ +%% % Comment begins with a percent sign +%% +%% ... +%% +%% } +%% +%% Each pair of characters defines that the upper case +%% equivalent of is *and* the lower case equivalent of +%% is . +%% +%% You cannot redefine the lower or upper case equivalent of an ASCII +%% character (code < 128), so all instances of and +%% (i.e. both sides of the relationship) must have codes > 127. +%% +%% +%% \lowercase section +%% +%% The \lowercase section of the CS file is used to define the lower case +%% equivalent of specified characters. It should normally only be used +%% if the relationship isn't symmetrical - use \lowupcase if it is. +%% +%% The syntax of the \lowercase section is: +%% +%% \lowercase{ +%% % Comment begins with a percent sign +%% +%% ... +%% +%% } +%% +%% Each pair of characters defines that the lower case +%% equivalent of is . +%% +%% You cannot redefine the lower case equivalent of an ASCII character +%% (code < 128), so all instances of (i.e. the left hand side +%% of the relationship) must have codes > 127. +%% +%% +%% \uppercase section +%% +%% The \uppercase section of the CS file is used to define the upper case +%% equivalent of specified characters. It should normally only be used +%% if the relationship isn't symmetrical - use \lowupcase if it is. +%% +%% The syntax of the \uppercase section is: +%% +%% \uppercase{ +%% % Comment begins with a percent sign +%% +%% ... +%% +%% } +%% +%% Each pair of characters defines that the upper case +%% case equivalent of is . +%% +%% You cannot redefine the upper case equivalent of an ASCII character +%% (code < 128), so all instances of (i.e. the left hand side +%% of the relationship) must have codes > 127. +%% +%% +%% \order section +%% +%% The \order section of the CS file is used to define the order in which +%% characters are sorted. +%% +%% The syntax of the \order section is: +%% +%% \order{ +%% % Comment begins with a percent sign +%% % whitespace between the chars +%% - % a hyphen between the chars +%% _ % an underscore between the chars +%% ... +%% +%% } +%% +%% All characters on the same line are given the same sorting weight. +%% +%% The construct is used to denote that +%% all characters in the range to should be given the +%% same sorting weight. For example, "A _ Z" would cause all ASCII +%% upper case alphabetical characters to have the same sorting weight +%% and would be equivalent to placing all 26 characters on the same line. +%% +%% The construct is used to denote that all +%% characters in the range to should be given an +%% ascending set of sorting weights, starting with and ending +%% with . For example, "A - Z" would cause all upper case ASCII +%% alphabetical characters to be sorted in ascending order and would be +%% equivalent to placing 'A' on the first line, 'B' on the second, +%% through to 'Z' on the 26th line. +%% +%% The characters at the beginning of the order section are given a lower +%% sorting weight than characters occuring later. When sorting +%% alphabetically, characters with the lowest weight come first. +%% +%% All characters not in the \order section (including ASCII characters) +%% are given the same very high sorting weight to ensure that they come +%% last when sorting alphabetically. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%% +%% CHARACTER SET +%% +%% The 852 code page contains an equal number of upper and lower case +%% accented characters so we can use the \lowupcase{} section. The +%% \lowercase{} and \uppercase{} sections are not used. +%% +\lowupcase{ % Lowercase Uppercase remarks + % Code TeX Code TeX + % + % ^^83 \^{a} ^^b6 \^{A} + % ^^c7 \u{a} ^^c6 \u{A} + % ^^84 \"{a} ^^8e \"{A} + % ^^a0 \'{a} ^^b5 \'{A} + % ^^a5 \k{a} ^^a4 \k{A} OT4 + % ^^87 \c{c} ^^80 \c{C} + % ^^9f \v{c} ^^ac \v{C} + % ^^86 \'{c} ^^8f \'{C} + % ^^d4 \v{d} ^^d2 \v{D} d caron + % ^^d0 \dj{} ^^d1 \DJ{} eth/ETH, not in OT4 + % ^^89 \"{e} ^^d3 \"{E} + % ^^d8 \v{e} ^^b7 \v{E} + % ^^82 \'{e} ^^90 \'{E} + % ^^a9 \k{e} ^^a8 \k{E} OT4 + % ^^8c \^{\i} ^^d7 \^{\I} + % ^^a1 \'{\i} ^^d6 \'{\I} + % ^^96 \v{l} ^^95 \v{L} l caron + % ^^92 \'{l} ^^91 \'{L} + % ^^88 \l{} ^^9d \L{} + % ^^e5 \v{n} ^^d5 \v{N} + % ^^e4 \'{n} ^^e3 \'{N} + % ^^8b \H{o} ^^8a \H{O} + % ^^94 \"{o} ^^99 \"{O} + % ^^93 \^{o} ^^e2 \^{O} + % ^^a2 \'{o} ^^e0 \'{O} + % ^^ea \'{r} ^^e8 \'{R} + % ^^fd \v{r} ^^fc \v{R} + % ^^ad \c{s} ^^b8 \c{S} + % ^^e7 \v{s} ^^e6 \v{S} + % ^^98 \'{s} ^^97 \'{S} + % ^^ee \c{t} ^^dd \c{T} + % ^^9c \v{t} ^^9b \v{T} t caron + % ^^fb \H{u} ^^eb \H{U} + % ^^81 \"{u} ^^9a \"{U} + % ^^85 \r{u} ^^de \r{U} + % ^^a3 \'{u} ^^e9 \'{U} + % ^^ec \'{y} ^^ed \'{Y} + % ^^a7 \v{z} ^^a6 \v{Z} + % ^^ab \'{z} ^^8d \'{Z} + % ^^be \.{z} ^^bd \.{Z} +} + + +%% +%% SORTING ORDER +%% +%% The sorting order defined is the natural language sorting order +%% of 0..9Aa..Zz (including accented characters). +%% (non-Polish characters are ordered disregarding accents) +%% +\order{ + 0-9 + a A + + b B + c C + + d D + e E + + f F + g G + h H + i I + j J + k K + l L + + m M + n N + + o O + + p P + q Q + r R + s S + + t T + u U + v V + w W + x X + y Y + z Z + + +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% END OF FILE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/bibtex/csf/base/iso8859-7.csf b/Master/texmf-dist/bibtex/csf/base/iso8859-7.csf new file mode 100644 index 00000000000..5984e51fc25 --- /dev/null +++ b/Master/texmf-dist/bibtex/csf/base/iso8859-7.csf @@ -0,0 +1,107 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% FILE: iso8859-7.csf +%% $Version: 1.0 $ +%% $Date: 2001/03/31 20:48:15 $ +%% +%% CHARACTER SET: ISO 8859-7 +%% Author : Apostolos Syropoulos apostolo@obelix.ee.duth.gr +\lowupcase{ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} +%% +%% SORTING ORDER +%% +%% The sorting order defined is the natural language sorting order +%% of 0..9Aa..Zz (including accented characters). +%% +\order{ + 0-9 + A a + B b + C c + D d + E e + F f + G g + H h + I i + J j + K k + L l + M m + N n + O o + P p + Q q + R r + S s + T t + U u + V v + W w + X x + Y y + Z z + + + + + + + + + + + + + + + + + + + + + + + + + } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% END OF FILE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/bibtex/csf/dk-bib/88591-dk.csf b/Master/texmf-dist/bibtex/csf/dk-bib/88591-dk.csf new file mode 100644 index 00000000000..6355c5421e3 --- /dev/null +++ b/Master/texmf-dist/bibtex/csf/dk-bib/88591-dk.csf @@ -0,0 +1,106 @@ +%%% 88591-dk.csf --- Danish latin-1 sorting order file for bibtex8 + +%% Copyright (C) 2005 Arne Jorgensen + +%% Author: Arne Jorgensen +%% Version: $Id: 88591-dk.csf 71 2005-08-05 22:44:05Z arne $ + +%% This file is free software; you can redistribute it and/or modify +%% it under the terms of the GNU General Public License as published +%% by the Free Software Foundation; either version 2 of the License, +%% or (at your option) any later version. + +%% This file is distributed in the hope that it will be useful, but +%% WITHOUT ANY WARRANTY; without even the implied warranty of +%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +%% General Public License for more details. + +%% You should have received a copy of the GNU General Public License +%% along with this file; if not, write to the Free Software +%% Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +%% 02110-1301, USA. + +%%% Commentary: + +%%% Code: + +%%% Character Set: + +\lowupcase{ + % \`{a} \`{A} + % \'{a} \'{A} + % \^{a} \^{A} + % \~{a} \~{A} + % \"{a} \"{A} + % \ring{a} \ring{A} + % \ae \AE + % \c{c} \c{C} + % \`{e} \`{E} + % \'{e} \'{E} + % \^{e} \^{E} + % \"{e} \"{E} + % \`{\i} \`{I} + % \'{\i} \'{I} + % \^{\i} \^{I} + % \"{\i} \"{I} + % eth ETH + % \~{n} \~{N} + % \`{o} \`{O} + % \'{o} \'{O} + % \^{o} \^{O} + % \~{o} \~{O} + % \"{o} \"{O} + % \o \O + % \`{u} \`{U} + % \'{u} \'{U} + % \^{u} \^{U} + % \"{u} \"{U} + % \'{y} \'{Y} + % thorn THORN +} + +%%% Sorting Order: + +%% Notice that / (THORN / thorn) will be sorted as T / t and not +%% as Th / th as it should be. You are probably better off be putting +%% \TH / \th into your .bib file. + +\order{ + 0-9 % 0-9 + A a % A \'{A} \`{A} \^{A} \~{A} a \'{a} \`{a} \^{a} \~{a} + B b % B b + C c % C \c{C} c \c{c} + D d % D ETH d eth + E e % E \'{E} \`{E} \"{E} \^{E} e \'{e} \`{e} \"{e} \^{e} + F f % F f + G g % G g + H h % H h + I i % I \'{I} \'{I} \"{I} \^{I} i \'{\i} \`{\i} \"{\i} \^{\i} + J j % J j + K k % K k + L l % L l + M m % M m + N n % N \~{N} n \~{n} + O o % O \'{O} \`{O} \^{O} \~{O} o \'{o} \`{o} \^{o} \~{o} + P p % P p + Q q % Q q + R r % R r + S s % S s + T t % T THORN t thorn + U u % U \'{U} \`{U} \^{U} u \'{u} \`{u} \^{u} + V v % V v + W w % W w + X x % X x + Y y % Y \"{U} \'{Y} y \"{u} \'{y} \"{y} + Z z % Z z + % \AE \"{A} \ae \"{a} + % \O \"{O} \o \"{o} + % \ring{A} \ring{a} +} + +%% Local Variables: +%% coding: iso-8859-1 +%% comment-start: "%% " +%% End: + +%%% 88591-dk.csf ends here diff --git a/Master/texmf-dist/bibtex/csf/dk-bib/cp850-dk.csf b/Master/texmf-dist/bibtex/csf/dk-bib/cp850-dk.csf new file mode 100644 index 00000000000..263786360b8 --- /dev/null +++ b/Master/texmf-dist/bibtex/csf/dk-bib/cp850-dk.csf @@ -0,0 +1,106 @@ +%%% cp850-dk.csf --- Danish CP 850 sorting order file for bibtex8 + +%% Copyright (C) 2005 Arne Jorgensen + +%% Author: Arne Jorgensen +%% Version: $Id: cp850-dk.csf 71 2005-08-05 22:44:05Z arne $ + +%% This file is free software; you can redistribute it and/or modify +%% it under the terms of the GNU General Public License as published +%% by the Free Software Foundation; either version 2 of the License, +%% or (at your option) any later version. + +%% This file is distributed in the hope that it will be useful, but +%% WITHOUT ANY WARRANTY; without even the implied warranty of +%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +%% General Public License for more details. + +%% You should have received a copy of the GNU General Public License +%% along with this file; if not, write to the Free Software +%% Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +%% 02110-1301, USA. + +%%% Commentary: + +%%% Code: + +%%% Character Set: + +\lowupcase{ + % \`{a} \`{A} + % \'{a} \'{A} + % \^{a} \^{A} + % \~{a} \~{A} + % \"{a} \"{A} + % \ring{a} \ring{A} + % \ae \AE + % \c{c} \c{C} + % \`{e} \`{E} + % \'{e} \'{E} + % \^{e} \^{E} + % \"{e} \"{E} + % \`{\i} \`{I} + % \'{\i} \'{I} + % \^{\i} \^{I} + % \"{\i} \"{I} + % eth ETH + % \~{n} \~{N} + % \`{o} \`{O} + % \'{o} \'{O} + % \^{o} \^{O} + % \~{o} \~{O} + % \"{o} \"{O} + % \o \O + % \`{u} \`{U} + % \'{u} \'{U} + % \^{u} \^{U} + % \"{u} \"{U} + % \'{y} \'{Y} + % thorn THORN +} + +%%% Sorting Order: + +%% Notice that / (THORN / thorn) will be sorted as T / t and not +%% as Th / th as it should be. You are probably better off be putting +%% \TH / \th into your .bib file. + +\order{ + 0-9 % 0-9 + A a % A \'{A} \`{A} \^{A} \~{A} a \'{a} \`{a} \^{a} \~{a} + B b % B b + C c % C \c{C} c \c{c} + D d % D ETH d eth + E e % E \'{E} \`{E} \"{E} \^{E} e \'{e} \`{e} \"{e} \^{e} + F f % F f + G g % G g + H h % H h + I i % I \'{I} \'{I} \"{I} \^{I} i \'{\i} \`{\i} \"{\i} \^{\i} + J j % J j + K k % K k + L l % L l + M m % M m + N n % N \~{N} n \~{n} + O o % O \'{O} \`{O} \^{O} \~{O} o \'{o} \`{o} \^{o} \~{o} + P p % P p + Q q % Q q + R r % R r + S s % S s + T t % T THORN t thorn + U u % U \'{U} \`{U} \^{U} u \'{u} \`{u} \^{u} + V v % V v + W w % W w + X x % X x + Y y % Y \"{U} \'{Y} y \"{u} \'{y} \"{y} + Z z % Z z + % \AE \"{A} \ae \"{a} + % \O \"{O} \o \"{o} + % \ring{A} \ring{a} +} + +%% Local Variables: +%% coding: cp850 +%% comment-start: "%% " +%% End: + +%%% cp850-dk.csf ends here diff --git a/Master/texmf-dist/bibtex/csf/dk-bib/mac-dk.csf b/Master/texmf-dist/bibtex/csf/dk-bib/mac-dk.csf new file mode 100644 index 00000000000..653459365b3 --- /dev/null +++ b/Master/texmf-dist/bibtex/csf/dk-bib/mac-dk.csf @@ -0,0 +1,99 @@ +%%% mac-dk.csf --- Danish mac-roman sorting order file for bibtex8 + +%% Copyright (C) 2005 Arne Jorgensen + +%% Author: Arne Jorgensen +%% Version: $Id: mac-dk.csf 70 2005-08-03 11:13:09Z arne $ + +%% This file is free software; you can redistribute it and/or modify +%% it under the terms of the GNU General Public License as published +%% by the Free Software Foundation; either version 2 of the License, +%% or (at your option) any later version. + +%% This file is distributed in the hope that it will be useful, but +%% WITHOUT ANY WARRANTY; without even the implied warranty of +%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +%% General Public License for more details. + +%% You should have received a copy of the GNU General Public License +%% along with this file; if not, write to the Free Software +%% Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +%% 02110-1301, USA. + +%%% Commentary: + +%%% Code: + +%%% Character Set: + +\lowupcase{ + % \`{a} \`{A} + % \'{a} \'{A} + % \^{a} \^{A} + % \~{a} \~{A} + % \"{a} \"{A} + % \ring{a} \ring{A} + % \ae \AE + % \c{c} \c{C} + % \`{e} \`{E} + % \'{e} \'{E} + % \^{e} \^{E} + % \"{e} \"{E} + % \`{\i} \`{I} + % \'{\i} \'{I} + % \^{\i} \^{I} + % \"{\i} \"{I} + % \~{n} \~{N} + % \`{o} \`{O} + % \'{o} \'{O} + % \^{o} \^{O} + % \~{o} \~{O} + % \"{o} \"{O} + % \o \O + % \`{u} \`{U} + % \'{u} \'{U} + % \^{u} \^{U} + % \"{u} \"{U} +} + +%%% Sorting Order: + +\order{ + 0-9 % 0-9 + A a % A \'{A} \`{A} \^{A} \~{A} a \'{a} \`{a} \^{a} \~{a} + B b % B b + C c % C \c{C} c \c{c} + D d % D d + E e % E \'{E} \`{E} \"{E} \^{E} e \'{e} \`{e} \"{e} \^{e} + F f % F f + G g % G g + H h % H h + I i % I \'{I} \'{I} \"{I} \^{I} i \'{\i} \`{\i} \"{\i} \^{\i} + J j % J j + K k % K k + L l % L l + M m % M m + N n % N \~{N} n \~{n} + O o % O \'{O} \`{O} \^{O} \~{O} o \'{o} \`{o} \^{o} \~{o} + P p % P p + Q q % Q q + R r % R r + S s % S s + T t % T t + U u % U \'{U} \`{U} \^{U} u \'{u} \`{u} \^{u} + V v % V v + W w % W w + X x % X x + Y y % Y \"{U} y \"{u} \"{y} + Z z % Z z + % \AE \"{A} \ae \"{a} + % \O \"{O} \o \"{o} + % \ring{A} \ring{a} +} + +%% Local Variables: +%% coding: mac-roman +%% comment-start: "%% " +%% End: + +%%% mac-dk.csf ends here diff --git a/Master/texmf-dist/bibtex/csf/dk-bib/utf8-dk.csf b/Master/texmf-dist/bibtex/csf/dk-bib/utf8-dk.csf new file mode 100644 index 00000000000..590841f46fc --- /dev/null +++ b/Master/texmf-dist/bibtex/csf/dk-bib/utf8-dk.csf @@ -0,0 +1,127 @@ +%%% utf8-dk.csf --- Danish UTF-8 sorting order file for bibtex8 + +%% Copyright (C) 2005 Arne Jorgensen + +%% Author: Arne Jorgensen +%% Version: $Id: utf8-dk.csf 71 2005-08-05 22:44:05Z arne $ + +%% This file is free software; you can redistribute it and/or modify +%% it under the terms of the GNU General Public License as published +%% by the Free Software Foundation; either version 2 of the License, +%% or (at your option) any later version. + +%% This file is distributed in the hope that it will be useful, but +%% WITHOUT ANY WARRANTY; without even the implied warranty of +%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +%% General Public License for more details. + +%% You should have received a copy of the GNU General Public License +%% along with this file; if not, write to the Free Software +%% Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +%% 02110-1301, USA. + +%%% Commentary: + +%% This is a VERY EXPERIMENTAL shot at making a sorting order file for +%% the Danish language and the UTF-8 character set. + +%% Generally it should not be possible to fit a sorting of the UTF-8 +%% character set into bibtex8's scheme, but we try to use some hacks +%% and unexplained behaviour to fit it in anyway. + +%% As we said VERY EXPERIMENTAL. + +%% Please report any experiences to the author. + +%%% Code: + +%%% Character Set: + +%% Whether this really works for UTF-8 is a big question. Please +%% report expriences with it. + +\lowupcase{ + ^^a0 ^^80 % \`{a} \`{A} + ^^a1 ^^81 % \'{a} \'{A} + ^^a2 ^^82 % \^{a} \^{A} + ^^a3 ^^83 % \~{a} \~{A} + ^^a4 ^^84 % \"{a} \"{A} + ^^a5 ^^85 % \ring{a} \ring{A} + ^^a6 ^^86 % \ae \AE + ^^a7 ^^87 % \c{c} \c{C} + ^^a8 ^^88 % \`{e} \`{E} + ^^a9 ^^89 % \'{e} \'{E} + ^^aa ^^8a % \^{e} \^{E} + ^^ab ^^8b % \"{e} \"{E} + ^^ac ^^8c % \`{\i} \`{I} + ^^ad ^^8d % \'{\i} \'{I} + ^^ae ^^8e % \^{\i} \^{I} + ^^af ^^8f % \"{\i} \"{I} + ^^b0 ^^90 % eth ETH + ^^b1 ^^91 % \~{n} \~{N} + ^^b2 ^^92 % \`{o} \`{O} + ^^b3 ^^93 % \'{o} \'{O} + ^^b4 ^^94 % \^{o} \^{O} + ^^b5 ^^95 % \~{o} \~{O} + ^^b6 ^^96 % \"{o} \"{O} + ^^b8 ^^98 % \o \O + ^^b9 ^^99 % \`{u} \`{U} + ^^ba ^^9a % \'{u} \'{U} + ^^bb ^^9b % \^{u} \^{U} + ^^bc ^^9c % \"{u} \"{U} + ^^bd ^^9d % \'{y} \'{Y} + ^^be ^^9e % thorn THORN +} + +%%% Sorting Order: + +%% For sorting we rely on the fact that the most used and relevant +%% parts of the special characters in Danish in UTF-8 is encoded as +%% the two-byte combination of a ^^c3 and a second byte which is +%% placed above value ^^7f and thus does not collide with the normal +%% character ranges. + +%% So we leave out ^^c3 of the sorting order and there by ignoring +%% it's presence (it shouldn't be ignored, but sorted last, but it +%% actually IS ignored) and let the second byte decide the order of +%% the character. + +\order{ + 0-9 % 0-9 + A ^^81 ^^80 ^^82 ^^83 a ^^a1 ^^a0 ^^a2 ^^a3 % A \'{A} \`{A} \^{A} \~{A} a \'{a} \`{a} \^{a} \~{a} + B b % B b + C ^^87 c ^^a7 % C \c{C} c \c{c} + D ^^90 d ^^b0 % D ETH d eth + E ^^89 ^^88 ^^8b ^^8a e ^^a9 ^^a8 ^^ab ^^aa % E \'{E} \`{E} \"{E} \^{E} e \'{e} \`{e} \"{e} \^{e} + F f % F f + G g % G g + H h % H h + I ^^8d ^^8c ^^8f ^^8e i ^^ad ^^ac ^^af ^^ae % I \'{I} \`{I} \"{I} \^{I} i \'{\i} \`{\i} \"{\i} \^{\i} + J j % J j + K k % K k + L l % L l + M m % M m + N ^^91 n ^^b1 % N \~{N} n \~{n} + O ^^93 ^^92 ^^94 ^^95 o ^^b3 ^^b2 ^^b4 ^^b5 % O \'{O} \`{O} \^{O} \~{O} o \'{o} \`{o} \^{o} \~{o} + P p % P p + Q q % Q q + R r % R r + S s % S s + T ^^9e t ^^be % T THORN t thorn + U ^^9a ^^99 ^^9b u ^^ba ^^b9 ^^bb % U \'{U} \`{U} \^{U} u \'{u} \`{u} \^{u} + V v % V v + W w % W w + X x % X x + Y ^^9c ^^9d y ^^bc ^^bd ^^bf % Y \"{U} \'{Y} y \"{u} \'{y} \"{y} + Z z % Z z + ^^86 ^^84 ^^a6 ^^a4 % \AE \"{A} \ae \"{a} + ^^98 ^^96 ^^b8 ^^b6 % \O \"{O} \o \"{o} + ^^85 ^^a5 % \ring{A} \ring{a} +} + +%% Local Variables: +%% coding: raw-text +%% comment-start: "%% " +%% End: + +%%% utf8-dk.csf ends here diff --git a/Master/texmf-dist/bibtex/csf/gost/cp1251.csf b/Master/texmf-dist/bibtex/csf/gost/cp1251.csf new file mode 100644 index 00000000000..692238930ba --- /dev/null +++ b/Master/texmf-dist/bibtex/csf/gost/cp1251.csf @@ -0,0 +1,275 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% CHARACTER SET: Cyrillic (CP 1251) +%% +%% SORTING ORDER: Ukrainian/Russian (First Cyrillic then Latin) +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% FILE FORMAT +%% +%% The codepage and sorting order (CS) file defines how BibTeX will treat an +%% 8-bit character set, specifically which characters are to be treated as +%% letters, the upper/lower case relationships between characters, and the +%% sorting order of characters. +%% +%% The CS file may contain a number of sections, each presented in the +%% form of a TeX macro: +%% +%% \section-name{ +%%
+%% } +%% +%% Four sections are currently supported: \lowupcase, \lowercase, \uppercase +%% and \order. The syntax of the four supported sections is summarised below. +%% +%% 8-bit characters may be entered naturally, but to avoid problems with +%% character set translation or corruption, they can also be entered using +%% the TeX-style portable notation for character codes, i.e. ^^XX, where XX +%% is the hexadecimal value ofthe character code. +%% +%% Reading of the sections ends when the first '}' character is reached, so +%% '}' can't be included in a section. You can't use ^^7d either. +%% +%% The percent sign ('%') is used to introduce a trailing comment - it and +%% all remaining characters on a line are ignored. ^^25 has the same effect. +%% +%% +%% \lowupcase section +%% +%% The \lowupcase section of the CS file is used to define the lower +%% /upper and upper/lower case relationship of pairs of specified +%% characters. It is only used if the relationship is symmetrical - use +%% \lowercase or \upcase if it isn't. +%% +%% The syntax of the \lowupcase section is: +%% +%% \lowupcase{ +%% % Comment begins with a percent sign +%% +%% ... +%% +%% } +%% +%% Each pair of characters defines that the upper case +%% equivalent of is *and* the lower case equivalent of +%% is . +%% +%% You cannot redefine the lower or upper case equivalent of an ASCII +%% character (code < 128), so all instances of and +%% (i.e. both sides of the relationship) must have codes > 127. +%% +%% +%% \lowercase section +%% +%% The \lowercase section of the CS file is used to define the lower case +%% equivalent of specified characters. It should normally only be used +%% if the relationship isn't symmetrical - use \lowupcase if it is. +%% +%% The syntax of the \lowercase section is: +%% +%% \lowercase{ +%% % Comment begins with a percent sign +%% +%% ... +%% +%% } +%% +%% Each pair of characters defines that the lower case +%% equivalent of is . +%% +%% You cannot redefine the lower case equivalent of an ASCII character +%% (code < 128), so all instances of (i.e. the left hand side +%% of the relationship) must have codes > 127. +%% +%% +%% \uppercase section +%% +%% The \uppercase section of the CS file is used to define the upper case +%% equivalent of specified characters. It should normally only be used +%% if the relationship isn't symmetrical - use \lowupcase if it is. +%% +%% The syntax of the \uppercase section is: +%% +%% \uppercase{ +%% % Comment begins with a percent sign +%% +%% ... +%% +%% } +%% +%% Each pair of characters defines that the upper case +%% case equivalent of is . +%% +%% You cannot redefine the upper case equivalent of an ASCII character +%% (code < 128), so all instances of (i.e. the left hand side +%% of the relationship) must have codes > 127. +%% +%% +%% \order section +%% +%% The \order section of the CS file is used to define the order in which +%% characters are sorted. +%% +%% The syntax of the \order section is: +%% +%% \order{ +%% % Comment begins with a percent sign +%% % whitespace between the chars +%% - % a hyphen between the chars +%% _ % an underscore between the chars +%% ... +%% +%% } +%% +%% All characters on the same line are given the same sorting weight. +%% +%% The construct is used to denote that +%% all characters in the range to should be given the +%% same sorting weight. For example, "A _ Z" would cause all ASCII +%% upper case alphabetical characters to have the same sorting weight +%% and would be equivalent to placing all 26 characters on the same line. +%% +%% The construct is used to denote that all +%% characters in the range to should be given an +%% ascending set of sorting weights, starting with and ending +%% with . For example, "A - Z" would cause all upper case ASCII +%% alphabetical characters to be sorted in ascending order and would be +%% equivalent to placing 'A' on the first line, 'B' on the second, +%% through to 'Z' on the 26th line. +%% +%% The characters at the beginning of the order section are given a lower +%% sorting weight than characters occuring later. When sorting +%% alphabetically, characters with the lowest weight come first. +%% +%% All characters not in the \order section (including ASCII characters) +%% are given the same very high sorting weight to ensure that they come +%% last when sorting alphabetically. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%% +%% CHARACTER SET +%% +\lowupcase{ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} + + + +%% +%% SORTING ORDER +%% +%% +\order{ + 0-9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A a + B b + C c + D d + E e + F f + G g + H h + I i + J j + K k + L l + M m + N n + O o + P p + Q q + R r + S s + T t + U u + V v + W w + X x + Y y + Z z +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% END OF FILE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/bibtex/csf/gost/koi8u.csf b/Master/texmf-dist/bibtex/csf/gost/koi8u.csf new file mode 100644 index 00000000000..f84ae4870ad --- /dev/null +++ b/Master/texmf-dist/bibtex/csf/gost/koi8u.csf @@ -0,0 +1,275 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% CHARACTER SET: Cyrillic (koi8-u) +%% +%% SORTING ORDER: Ukrainian/Russian (First Cyrillic then Latin) +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% FILE FORMAT +%% +%% The codepage and sorting order (CS) file defines how BibTeX will treat an +%% 8-bit character set, specifically which characters are to be treated as +%% letters, the upper/lower case relationships between characters, and the +%% sorting order of characters. +%% +%% The CS file may contain a number of sections, each presented in the +%% form of a TeX macro: +%% +%% \section-name{ +%%
+%% } +%% +%% Four sections are currently supported: \lowupcase, \lowercase, \uppercase +%% and \order. The syntax of the four supported sections is summarised below. +%% +%% 8-bit characters may be entered naturally, but to avoid problems with +%% character set translation or corruption, they can also be entered using +%% the TeX-style portable notation for character codes, i.e. ^^XX, where XX +%% is the hexadecimal value ofthe character code. +%% +%% Reading of the sections ends when the first '}' character is reached, so +%% '}' can't be included in a section. You can't use ^^7d either. +%% +%% The percent sign ('%') is used to introduce a trailing comment - it and +%% all remaining characters on a line are ignored. ^^25 has the same effect. +%% +%% +%% \lowupcase section +%% +%% The \lowupcase section of the CS file is used to define the lower +%% /upper and upper/lower case relationship of pairs of specified +%% characters. It is only used if the relationship is symmetrical - use +%% \lowercase or \upcase if it isn't. +%% +%% The syntax of the \lowupcase section is: +%% +%% \lowupcase{ +%% % Comment begins with a percent sign +%% +%% ... +%% +%% } +%% +%% Each pair of characters defines that the upper case +%% equivalent of is *and* the lower case equivalent of +%% is . +%% +%% You cannot redefine the lower or upper case equivalent of an ASCII +%% character (code < 128), so all instances of and +%% (i.e. both sides of the relationship) must have codes > 127. +%% +%% +%% \lowercase section +%% +%% The \lowercase section of the CS file is used to define the lower case +%% equivalent of specified characters. It should normally only be used +%% if the relationship isn't symmetrical - use \lowupcase if it is. +%% +%% The syntax of the \lowercase section is: +%% +%% \lowercase{ +%% % Comment begins with a percent sign +%% +%% ... +%% +%% } +%% +%% Each pair of characters defines that the lower case +%% equivalent of is . +%% +%% You cannot redefine the lower case equivalent of an ASCII character +%% (code < 128), so all instances of (i.e. the left hand side +%% of the relationship) must have codes > 127. +%% +%% +%% \uppercase section +%% +%% The \uppercase section of the CS file is used to define the upper case +%% equivalent of specified characters. It should normally only be used +%% if the relationship isn't symmetrical - use \lowupcase if it is. +%% +%% The syntax of the \uppercase section is: +%% +%% \uppercase{ +%% % Comment begins with a percent sign +%% +%% ... +%% +%% } +%% +%% Each pair of characters defines that the upper case +%% case equivalent of is . +%% +%% You cannot redefine the upper case equivalent of an ASCII character +%% (code < 128), so all instances of (i.e. the left hand side +%% of the relationship) must have codes > 127. +%% +%% +%% \order section +%% +%% The \order section of the CS file is used to define the order in which +%% characters are sorted. +%% +%% The syntax of the \order section is: +%% +%% \order{ +%% % Comment begins with a percent sign +%% % whitespace between the chars +%% - % a hyphen between the chars +%% _ % an underscore between the chars +%% ... +%% +%% } +%% +%% All characters on the same line are given the same sorting weight. +%% +%% The construct is used to denote that +%% all characters in the range to should be given the +%% same sorting weight. For example, "A _ Z" would cause all ASCII +%% upper case alphabetical characters to have the same sorting weight +%% and would be equivalent to placing all 26 characters on the same line. +%% +%% The construct is used to denote that all +%% characters in the range to should be given an +%% ascending set of sorting weights, starting with and ending +%% with . For example, "A - Z" would cause all upper case ASCII +%% alphabetical characters to be sorted in ascending order and would be +%% equivalent to placing 'A' on the first line, 'B' on the second, +%% through to 'Z' on the 26th line. +%% +%% The characters at the beginning of the order section are given a lower +%% sorting weight than characters occuring later. When sorting +%% alphabetically, characters with the lowest weight come first. +%% +%% All characters not in the \order section (including ASCII characters) +%% are given the same very high sorting weight to ensure that they come +%% last when sorting alphabetically. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%% +%% CHARACTER SET +%% +\lowupcase{ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} + + + +%% +%% SORTING ORDER +%% +%% +\order{ + 0-9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A a + B b + C c + D d + E e + F f + G g + H h + I i + J j + K k + L l + M m + N n + O o + P p + Q q + R r + S s + T t + U u + V v + W w + X x + Y y + Z z +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% END OF FILE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/bibtex/csf/gost/ruscii.csf b/Master/texmf-dist/bibtex/csf/gost/ruscii.csf new file mode 100644 index 00000000000..6f20a6f8af0 --- /dev/null +++ b/Master/texmf-dist/bibtex/csf/gost/ruscii.csf @@ -0,0 +1,275 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% CHARACTER SET: Cyrillic (CP 866nav aka RUSCII) +%% +%% SORTING ORDER: Ukrainian/Russian (First Cyrillic then Latin) +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% FILE FORMAT +%% +%% The codepage and sorting order (CS) file defines how BibTeX will treat an +%% 8-bit character set, specifically which characters are to be treated as +%% letters, the upper/lower case relationships between characters, and the +%% sorting order of characters. +%% +%% The CS file may contain a number of sections, each presented in the +%% form of a TeX macro: +%% +%% \section-name{ +%%
+%% } +%% +%% Four sections are currently supported: \lowupcase, \lowercase, \uppercase +%% and \order. The syntax of the four supported sections is summarised below. +%% +%% 8-bit characters may be entered naturally, but to avoid problems with +%% character set translation or corruption, they can also be entered using +%% the TeX-style portable notation for character codes, i.e. ^^XX, where XX +%% is the hexadecimal value ofthe character code. +%% +%% Reading of the sections ends when the first '}' character is reached, so +%% '}' can't be included in a section. You can't use ^^7d either. +%% +%% The percent sign ('%') is used to introduce a trailing comment - it and +%% all remaining characters on a line are ignored. ^^25 has the same effect. +%% +%% +%% \lowupcase section +%% +%% The \lowupcase section of the CS file is used to define the lower +%% /upper and upper/lower case relationship of pairs of specified +%% characters. It is only used if the relationship is symmetrical - use +%% \lowercase or \upcase if it isn't. +%% +%% The syntax of the \lowupcase section is: +%% +%% \lowupcase{ +%% % Comment begins with a percent sign +%% +%% ... +%% +%% } +%% +%% Each pair of characters defines that the upper case +%% equivalent of is *and* the lower case equivalent of +%% is . +%% +%% You cannot redefine the lower or upper case equivalent of an ASCII +%% character (code < 128), so all instances of and +%% (i.e. both sides of the relationship) must have codes > 127. +%% +%% +%% \lowercase section +%% +%% The \lowercase section of the CS file is used to define the lower case +%% equivalent of specified characters. It should normally only be used +%% if the relationship isn't symmetrical - use \lowupcase if it is. +%% +%% The syntax of the \lowercase section is: +%% +%% \lowercase{ +%% % Comment begins with a percent sign +%% +%% ... +%% +%% } +%% +%% Each pair of characters defines that the lower case +%% equivalent of is . +%% +%% You cannot redefine the lower case equivalent of an ASCII character +%% (code < 128), so all instances of (i.e. the left hand side +%% of the relationship) must have codes > 127. +%% +%% +%% \uppercase section +%% +%% The \uppercase section of the CS file is used to define the upper case +%% equivalent of specified characters. It should normally only be used +%% if the relationship isn't symmetrical - use \lowupcase if it is. +%% +%% The syntax of the \uppercase section is: +%% +%% \uppercase{ +%% % Comment begins with a percent sign +%% +%% ... +%% +%% } +%% +%% Each pair of characters defines that the upper case +%% case equivalent of is . +%% +%% You cannot redefine the upper case equivalent of an ASCII character +%% (code < 128), so all instances of (i.e. the left hand side +%% of the relationship) must have codes > 127. +%% +%% +%% \order section +%% +%% The \order section of the CS file is used to define the order in which +%% characters are sorted. +%% +%% The syntax of the \order section is: +%% +%% \order{ +%% % Comment begins with a percent sign +%% % whitespace between the chars +%% - % a hyphen between the chars +%% _ % an underscore between the chars +%% ... +%% +%% } +%% +%% All characters on the same line are given the same sorting weight. +%% +%% The construct is used to denote that +%% all characters in the range to should be given the +%% same sorting weight. For example, "A _ Z" would cause all ASCII +%% upper case alphabetical characters to have the same sorting weight +%% and would be equivalent to placing all 26 characters on the same line. +%% +%% The construct is used to denote that all +%% characters in the range to should be given an +%% ascending set of sorting weights, starting with and ending +%% with . For example, "A - Z" would cause all upper case ASCII +%% alphabetical characters to be sorted in ascending order and would be +%% equivalent to placing 'A' on the first line, 'B' on the second, +%% through to 'Z' on the 26th line. +%% +%% The characters at the beginning of the order section are given a lower +%% sorting weight than characters occuring later. When sorting +%% alphabetically, characters with the lowest weight come first. +%% +%% All characters not in the \order section (including ASCII characters) +%% are given the same very high sorting weight to ensure that they come +%% last when sorting alphabetically. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%% +%% CHARACTER SET +%% +\lowupcase{ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} + + + +%% +%% SORTING ORDER +%% +%% +\order{ + 0-9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A a + B b + C c + D d + E e + F f + G g + H h + I i + J j + K k + L l + M m + N n + O o + P p + Q q + R r + S s + T t + U u + V v + W w + X x + Y y + Z z +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% END OF FILE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -- cgit v1.2.3